@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Work+Sans:wght@400;500;600;700&display=swap";:root{--bg-primary: #FFFFFF;--bg-secondary: #F9FAFB;--bg-normally-off: #F3F4F6;--bg-hover: #F3F4F6;--border: #E5E7EB;--border-light: #F3F4F6;--text-primary: #111827;--text-secondary: #6B7280;--text-muted: #9CA3AF;--accent: #2563EB;--accent-light: #EFF6FF;--accent-hover: #1D4ED8;--warning: #F59E0B;--warning-light: #FEF3C7;--error: #DC2626;--error-light: #FEE2E2;--success: #059669;--production-bar: #3B82F6;--milestone: #8B5CF6;--font-display: "Space Grotesk", "Work Sans", sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--sidebar-width: 420px;--header-height: 56px;--row-height: 70px;--day-width: 40px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f7f7f4;padding:48px 24px}.login-card{width:min(460px,92vw);padding:44px 44px 40px;display:flex;flex-direction:column;gap:20px;border-radius:20px;border:1px solid #E4E1DB;box-shadow:0 24px 60px #0f172a1f}.login-loading{align-items:center;text-align:center}.login-logo{color:#1f2937}.login-logo svg{width:220px;height:auto;display:block}.login-title{font-family:var(--font-display);font-weight:600;color:#0f172a}.login-subtitle{color:#64748b}.login-form{display:grid;gap:14px}.form-input-wrapper{display:flex;flex-direction:column;gap:4px}.form-input-label{font-size:13px;font-weight:500;color:#475569}.form-input{padding:10px 14px;border-radius:12px;border:1px solid #D9D6CF;background:#fafaf7;font-size:14px;font-family:inherit;outline:none;transition:border-color .15s ease}.form-input:focus{border-color:#a16207}.form-input-wrapper.error .form-input{border-color:var(--error)}.form-input-helper{font-size:12px;color:var(--error);min-height:16px}.login-spinner{width:28px;height:28px;border:3px solid #E4E1DB;border-top-color:#1f2937;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-submit{font-family:inherit;font-size:14px;font-weight:600;padding:12px;border-radius:12px;border:none;background:#1f2937;color:#fff;cursor:pointer;transition:background .15s ease}.login-submit:hover{background:#111827}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-footnote{color:#94a3b8;font-size:13px}.login-error{color:var(--error);font-size:13px}@media(max-width:960px){.login-card{padding:36px 28px 32px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:var(--font-family)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.main{flex:1;overflow:hidden}.timeline-skeleton{height:100%;display:grid;grid-template-columns:minmax(320px,var(--sidebar-width)) 1fr;background:var(--bg-primary)}.timeline-skeleton-sidebar{border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0}.timeline-skeleton-sidebar-header{min-height:103px;padding:var(--space-4);border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) 68px 68px;align-items:center;gap:var(--space-2)}.timeline-skeleton-sidebar-body{flex:1;overflow:hidden}.timeline-skeleton-sidebar-row{height:var(--row-height);display:grid;grid-template-columns:minmax(0,1fr) 68px 68px;align-items:center;gap:var(--space-2);padding:0 var(--space-4);border-bottom:1px solid var(--border-light)}.timeline-skeleton-grid{display:flex;flex-direction:column;min-width:0}.timeline-skeleton-grid-header{border-bottom:1px solid var(--border)}.timeline-skeleton-months-row{height:52px;padding:0 var(--space-4);display:flex;align-items:center;gap:var(--space-3)}.timeline-skeleton-days-row{height:51px;display:grid;grid-template-columns:repeat(24,minmax(0,1fr))}.timeline-skeleton-grid-body{flex:1;overflow:hidden;position:relative}.timeline-skeleton-grid-row{height:var(--row-height);display:grid;grid-template-columns:repeat(24,minmax(0,1fr));border-bottom:1px solid var(--border-light);position:relative}.timeline-skeleton-grid-cell{border-right:1px solid var(--border-light)}.timeline-skeleton-grid-cell:last-child{border-right:none}.timeline-skeleton-day-cell{border-right:1px solid var(--border-light);position:relative}.timeline-skeleton-day-cell:nth-child(6n),.timeline-skeleton-day-cell:nth-child(7n){background:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(148,163,184,.12) 4px,rgba(148,163,184,.12) 8px)}.timeline-skeleton-day-cell:last-child{border-right:none}.timeline-skeleton-block,.timeline-skeleton-bar,.timeline-skeleton-marker{position:relative;overflow:hidden;background:linear-gradient(100deg,#f3f4f6 18%,#e5e7eb 42%,#f3f4f6 68%);background-size:220% 100%;animation:timeline-skeleton-wave 1.25s ease-in-out infinite}.timeline-skeleton-project-heading{height:16px;border-radius:999px;width:42%}.timeline-skeleton-date-heading{height:12px;border-radius:999px;width:100%}.timeline-skeleton-project-name{height:14px;border-radius:999px}.timeline-skeleton-date-pill{height:22px;border-radius:999px}.timeline-skeleton-month-block{height:16px;border-radius:999px;width:22%;min-width:120px}.timeline-skeleton-bar{position:absolute;top:22px;height:24px;border-radius:var(--radius-sm)}.timeline-skeleton-marker{position:absolute;top:28px;width:12px;height:12px;transform:translate(-50%) rotate(45deg);border-radius:2px}.timeline-skeleton-marker-end{opacity:.8}.timeline-skeleton-today-line{position:absolute;top:0;bottom:0;width:2px;background:#2563eb59}@keyframes timeline-skeleton-wave{0%{background-position:100% 0}to{background-position:-100% 0}}@media(max-width:960px){.timeline-skeleton{grid-template-columns:1fr}.timeline-skeleton-sidebar{display:none}}.header{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 var(--space-6);border-bottom:1px solid var(--border);background:var(--bg-primary);flex-shrink:0}.header-left{display:flex;align-items:center;gap:var(--space-8)}.header-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:var(--space-3)}.header-icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.header-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover)}.display-settings{position:relative}.display-settings-trigger{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);cursor:pointer;transition:all .15s ease}.display-settings-trigger:hover{background:var(--bg-hover)}.display-settings-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:240px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;padding:var(--space-2)}.display-settings-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;position:relative}.display-settings-item:hover{background:var(--bg-hover)}.display-settings-item .item-label{font-size:var(--font-size-sm);color:var(--text-primary)}.display-settings-item .item-value{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary);flex-shrink:0;text-align:right}.display-settings-submenu{position:absolute;left:calc(100% + 4px);top:0;min-width:160px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-2)}.submenu-option{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer}.submenu-option:hover{background:var(--bg-hover)}.submenu-option.selected{background:var(--accent-light);color:var(--accent)}.submenu-option.selected:hover{background:var(--accent-light)}.submenu-checkbox-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer}.submenu-checkbox-option:hover{background:var(--bg-hover)}.submenu-checkbox-option input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--accent)}.display-settings-section{padding:var(--space-2)}.display-settings-section .section-label{font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2);padding:0 var(--space-2)}.status-filter-list{display:flex;flex-direction:column;gap:var(--space-1)}.status-filter-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);color:var(--text-primary)}.status-filter-item:hover{background:var(--bg-hover)}.status-filter-item input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--accent)}.display-settings-divider{height:1px;background:var(--border);margin:var(--space-2) 0}.tabs{display:flex;gap:var(--space-1)}.tab{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.tab:hover{color:var(--text-primary);background:var(--bg-hover)}.tab.active{color:var(--text-primary);background:var(--bg-secondary)}.btn-secondary{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.btn-secondary:hover{background:var(--bg-hover)}.btn-primary{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:500;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.btn-primary:hover{background:var(--accent-hover)}.month-nav{display:flex;align-items:center;gap:var(--space-2)}.nav-arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-secondary);background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.nav-arrow:hover{color:var(--text-primary);background:var(--bg-hover)}.current-month{min-width:120px;text-align:center;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);background:none;border:none;cursor:default}.current-month.clickable{cursor:pointer;border-radius:var(--radius-sm);padding:4px 8px;transition:background .15s ease}.current-month.clickable:hover{background:var(--bg-secondary)}.month-nav{position:relative}.month-picker-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px;z-index:1000;min-width:200px}.month-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-light)}.month-picker-year{font-weight:600;font-size:var(--font-size-base);color:var(--text-primary)}.month-picker-nav{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease}.month-picker-nav:hover{background:var(--bg-secondary);color:var(--text-primary)}.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.month-picker-item{padding:8px 12px;background:none;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.month-picker-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.month-picker-item.current{background:var(--accent);color:#fff}.month-picker-item.current:hover{background:var(--accent-hover)}.project-view{display:flex;height:100%}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--bg-primary);flex-shrink:0;position:relative;min-width:280px;max-width:800px}.sidebar-resize-handle{position:absolute;right:-3px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:10;background:transparent;transition:background .15s ease}.sidebar-resize-handle:hover,.sidebar-resize-handle.resizing{background:var(--accent)}.sidebar-header{border-bottom:1px solid var(--border);background:var(--bg-secondary)}.sidebar-row{display:grid;grid-template-columns:24px minmax(0,1fr) repeat(var(--pinned-columns, 2),76px);align-items:center;height:var(--row-height);padding:0 var(--space-4);gap:var(--space-2)}.sidebar-row.header-row{height:52px;font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:flex-end;padding-bottom:var(--space-2)}.sidebar-row.header-row span{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-row.header-row span:nth-child(2){text-align:left;min-width:0}.column-header-draggable{cursor:grab;padding:4px 8px;border-radius:var(--radius-sm);transition:background .15s ease,opacity .15s ease}.column-header-draggable:hover{background:var(--bg-hover)}.column-header-draggable:active{cursor:grabbing}.column-header-draggable.dragging,.date-cell.column-dragging{opacity:.4}.column-highlight-overlay{position:absolute;top:0;bottom:0;background:#2563eb14;pointer-events:none;z-index:1}.sidebar.column-dragging .project-row{pointer-events:none}.sidebar.column-dragging .column-header-draggable{pointer-events:auto}.sidebar-body{flex:1;overflow:hidden;position:relative}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent)}.project-row{display:grid;grid-template-columns:24px minmax(0,1fr) repeat(var(--pinned-columns, 2),76px);align-items:center;height:var(--row-height);padding:0 var(--space-4);gap:var(--space-2);border-bottom:1px solid var(--border-light);transition:background .1s ease}.project-row:hover{background:var(--bg-hover)}.project-row.dragging{background:var(--accent-light);box-shadow:0 0 0 1px var(--accent);z-index:10}.project-row[draggable=true]{cursor:grab}.project-row[draggable=true]:active{cursor:grabbing}.project-row.archived{opacity:.5}.project-name{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);min-width:0}.project-name-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.project-id{font-size:var(--font-size-xs);font-weight:400;color:var(--text-muted)}.archived-badge{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);padding:2px 6px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.schedule-status-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:1px 5px;border-radius:999px;border:1px solid var(--border);cursor:pointer;flex-shrink:0;background:var(--bg-primary);line-height:18px;transition:all .15s ease;text-transform:uppercase;letter-spacing:.3px}.schedule-status-tag.draft{color:var(--text-muted);border-color:var(--border)}.schedule-status-tag.draft:hover{background:var(--bg-hover)}.schedule-status-tag.confirmed{color:#2563eb;border-color:var(--border);background:#eff6ff}.schedule-status-tag.confirmed:hover{background:#dbeafe}.status-tag-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-tag-chevron{color:var(--text-secondary);display:flex;align-items:center;margin-left:-1px}.status-dropdown-wrapper{position:relative}.status-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:120px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:50;padding:4px;overflow:hidden}.status-dropdown-item{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:5px;font-size:11px;font-weight:500;cursor:pointer;color:var(--text-primary)}.status-dropdown-item:hover{background:var(--bg-hover)}.status-dropdown-item.active{background:var(--accent);color:#fff}.status-dropdown-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dropdown-dot.confirmed{background:#2563eb}.status-dropdown-item.active .status-dropdown-dot.confirmed{background:#93c5fd}.status-dropdown-dot.draft{background:var(--text-muted)}.status-dropdown-item.active .status-dropdown-dot.draft{background:#fff9}.schedule-status-tag.draft .status-tag-dot{background:var(--text-muted)}.schedule-status-tag.confirmed .status-tag-dot{background:#2563eb}.conflict-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;cursor:help;flex-shrink:0;color:var(--error)}.pin-project-btn{display:flex;align-items:center;justify-content:center;margin-left:auto;padding:4px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease}.project-row:hover .pin-project-btn{opacity:1}.pin-project-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.pin-project-btn.pinned{opacity:1;color:var(--blue-500)}.pin-project-btn.pinned:hover{background:var(--blue-50);color:var(--blue-600)}.sidebar.timeline-v1 .sidebar-row,.sidebar.timeline-v1 .project-row.timeline-v1,.sidebar.timeline-v1 .header-row.timeline-v1{grid-template-columns:1fr}.sidebar.timeline-v1 .header-row.timeline-v1 span{text-align:left;padding-left:32px}.timeline-body.timeline-v1 .milestone-diamond .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.blue .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.purple .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.cyan .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.green .diamond-icon path{fill:#fff;stroke:var(--accent);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-diamond.red .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.warning .diamond-icon path{fill:#fff;stroke:var(--warning);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-diamond.tentative .diamond-icon path{stroke:#94a3b8}.timeline-body.timeline-v1 .milestone-diamond.tentative.red .diamond-icon path{stroke:var(--warning)}.timeline-body.timeline-v1 .milestone-diamond.filled .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.filled.green .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.filled.blue .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.filled.purple .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.filled.cyan .diamond-icon path{fill:var(--accent);stroke:var(--accent);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-diamond.filled.red .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.filled.warning .diamond-icon path{fill:var(--warning);stroke:var(--warning);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-diamond.locked .diamond-icon path{fill:var(--accent);stroke:var(--accent)}.timeline-body.timeline-v1 .milestone-diamond.locked.red .diamond-icon path,.timeline-body.timeline-v1 .milestone-diamond.locked.warning .diamond-icon path{fill:var(--warning);stroke:var(--warning)}.timeline-body.timeline-v1 .milestone-subrow-diamond .diamond-icon path{fill:#fff;stroke:var(--accent);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-subrow-diamond.filled .diamond-icon path{fill:var(--accent);stroke:var(--accent);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-subrow-diamond.red .diamond-icon path,.timeline-body.timeline-v1 .milestone-subrow-diamond.warning .diamond-icon path{fill:#fff;stroke:var(--warning);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-subrow-diamond.filled.red .diamond-icon path,.timeline-body.timeline-v1 .milestone-subrow-diamond.filled.warning .diamond-icon path{fill:var(--warning);stroke:var(--warning);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-subrow-diamond.end-marker .diamond-icon path{fill:var(--accent);stroke:var(--accent);stroke-width:1.5}.timeline-body.timeline-v1 .milestone-subrow-diamond.end-marker.red .diamond-icon path,.timeline-body.timeline-v1 .milestone-subrow-diamond.end-marker.warning .diamond-icon path{fill:var(--warning);stroke:var(--warning)}.timeline-body.timeline-v1 .milestone-subrow-diamond.end-marker.tentative .diamond-icon path{fill:#94a3b8;stroke:#94a3b8}.timeline-body.timeline-v1 .milestone-subrow-diamond.end-marker.tentative.red .diamond-icon path{fill:var(--warning);stroke:var(--warning)}.timeline-body.timeline-v1 .milestone-duration-bar{background:var(--accent);opacity:.3}.timeline-body.timeline-v1 .milestone-connector-vertical{background:transparent;border-left:1px dashed var(--text-muted);opacity:.5}.timeline-body.timeline-v1 .milestone-duration-bar.blue,.timeline-body.timeline-v1 .milestone-duration-bar.purple,.timeline-body.timeline-v1 .milestone-duration-bar.cyan,.timeline-body.timeline-v1 .milestone-duration-bar.green,.timeline-body.timeline-v1 .milestone-duration-bar.red{background:var(--accent)}.timeline-body.timeline-v1 .milestone-connector{display:none}.date-cell{font-size:var(--font-size-sm);color:var(--text-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;transition:all .1s ease;text-align:center}.date-cell:hover{background:#e5e7eb}.date-cell.empty{color:var(--text-muted)}.date-cell.empty:hover{background:#e5e7eb;color:var(--text-secondary)}.date-cell.warning{display:flex;align-items:center;justify-content:center;gap:2px;background:var(--warning-light);color:var(--warning)}.date-cell.warning:hover{background:#e5e7eb}.date-cell.disabled{cursor:default;pointer-events:none}.date-cell.disabled:hover{background:transparent;color:var(--text-primary)}.timeline-container{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.zoom-controls{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}.zoom-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.zoom-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.zoom-btn:disabled{opacity:.4;cursor:not-allowed}.zoom-label{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);min-width:40px;text-align:center}.zoom-controls.header-zoom{padding:0;background:transparent;border-bottom:none;gap:0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.zoom-controls.header-zoom .zoom-btn{border:none;border-radius:0;width:36px;height:34px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}.zoom-controls.header-zoom .zoom-btn:first-child{border-right:1px solid var(--border)}.timeline-header{display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;overflow-x:auto;overflow-y:hidden;overflow-anchor:none;scrollbar-width:none;-ms-overflow-style:none}.timeline-header::-webkit-scrollbar{display:none}.timeline-header-scroll{display:flex;flex-direction:column;min-width:max-content;position:relative}.timeline-months-row{display:flex;border-bottom:1px solid var(--border-light)}.timeline-month-span{position:relative;font-size:var(--font-size-xs);font-weight:600;color:var(--text-primary);border-right:1px solid var(--border-light);white-space:nowrap;overflow:visible}.month-label-sticky{position:sticky;left:0;display:inline-block;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);z-index:1}.timeline-month-span:last-child{border-right:none}.timeline-weeks-row{display:flex}.timeline-week{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-1);border-right:1px solid var(--border-light)}.timeline-week:last-child{border-right:none}.timeline-week-number{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.timeline-week-range{font-size:var(--font-size-xs);color:var(--text-muted)}.timeline-days-row{display:flex}.timeline-day-cell{display:flex;align-items:center;justify-content:center;padding:var(--space-1) 0;border-right:1px solid var(--border-light);font-size:var(--font-size-xs);color:var(--text-secondary)}.timeline-day-cell:last-child{border-right:none}.timeline-day-cell.normally-off{background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.15) 3px,rgba(148,163,184,.15) 6px)}.timeline-day-cell.normally-off .day-number{color:var(--text-muted)}.day-number{font-size:var(--font-size-xs);font-weight:500}.day-number.today{background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;font-weight:600}.timeline-body{flex:1;overflow:auto;position:relative;overflow-anchor:none}.timeline-body-scroll{min-width:max-content;position:relative}.timeline-row{display:flex;height:var(--row-height);border-bottom:1px solid var(--border-light);position:relative}.timeline-cell{height:100%;flex-shrink:0;border-right:1px solid var(--border-light)}.timeline-cell:last-child{border-right:none}.timeline-cell.normally-off{background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.12) 3px,rgba(148,163,184,.12) 6px)}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);z-index:10;pointer-events:none}.project-bar{position:absolute;top:22px;height:24px;background:#3b82f614;border:1px solid rgba(59,130,246,.25);border-radius:var(--radius-sm);z-index:2;display:flex;align-items:center;padding-left:var(--space-2);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.project-bar:hover{background:#3b82f61f;border-color:#3b82f666;box-shadow:0 2px 8px #3b82f626}.project-bar:active,.project-bar.dragging{border-color:var(--accent);background:#3b82f626;box-shadow:0 2px 12px #3b82f640}.project-bar.whole-dragging{border-color:var(--accent);background:#3b82f633;box-shadow:0 4px 16px #3b82f659;z-index:100}.project-bar.draft{background:#94a3b814;border-color:#94a3b84d;border-style:dashed}.project-bar.draft:hover{background:#94a3b81f;border-color:#94a3b873;box-shadow:0 2px 8px #94a3b826}.project-bar.draft:active,.project-bar.draft.dragging{border-color:#94a3b899;background:#94a3b826;box-shadow:0 2px 12px #94a3b840}.project-name-label{position:absolute;top:29px;transform:translate(-100%);font-size:var(--font-size-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;z-index:15;pointer-events:none}.project-name-sticky{position:sticky;left:8px;top:6px;font-size:var(--font-size-xs);font-weight:500;color:var(--text-primary);white-space:nowrap;z-index:15;pointer-events:none;background:linear-gradient(90deg,var(--bg-primary) 0%,var(--bg-primary) 90%,transparent 100%);padding-right:12px}.resize-handle{position:absolute;top:-2px;bottom:-2px;width:10px;cursor:ew-resize;z-index:10;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.resize-handle:after{content:"";width:3px;height:16px;background:transparent;border-radius:2px;transition:background .15s ease}.resize-handle.left{left:-4px;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.resize-handle.right{right:-4px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.resize-handle:hover{background:#3b82f626}.resize-handle:hover:after{background:var(--accent)}.resize-handle:active{background:#3b82f640}.resize-handle:active:after{background:var(--accent-hover)}.milestone-connector{position:absolute;top:34px;height:2px;background:#94a3b8;z-index:3;pointer-events:none}.milestone-connector.incomplete{background:transparent;border-top:2px dashed #94A3B8}.milestone-connector.scheduled{background:#5e6ad2}.milestone-connector.completed{background:#10b981}.milestone-connector.at-risk{background:transparent;border-top:2px dashed var(--error)}.milestone-group{position:absolute;top:27px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;z-index:11}.milestone-diamond{width:14px;height:14px;cursor:grab;transition:transform .15s ease,filter .15s ease;position:relative}.milestone-diamond:before{content:"";position:absolute;inset:-6px;border-radius:50%;background:transparent;transition:background .15s ease}.milestone-diamond:hover:before{background:#3b82f626}.milestone-diamond:active{cursor:grabbing}.milestone-diamond:hover{transform:scale(1.25);filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.milestone-diamond .diamond-icon{width:100%;height:100%}.milestone-lock-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;pointer-events:none;z-index:2}.milestone-diamond.locked{position:relative}.milestone-diamond.locked .diamond-icon path{fill:var(--accent);stroke:var(--accent)}.milestone-diamond.locked.blue .diamond-icon path{fill:var(--accent);stroke:var(--accent)}.milestone-diamond.locked.purple .diamond-icon path{fill:#8b5cf6;stroke:#8b5cf6}.milestone-diamond.locked.cyan .diamond-icon path{fill:#06b6d4;stroke:#06b6d4}.milestone-diamond.locked.green .diamond-icon path{fill:var(--success);stroke:var(--success)}.milestone-diamond.locked.red .diamond-icon path,.milestone-diamond.locked.warning .diamond-icon path{fill:var(--warning);stroke:var(--warning)}.milestone-diamond .diamond-icon path{fill:#fff;stroke:var(--accent);stroke-width:1.5}.milestone-diamond.blue .diamond-icon path{fill:#fff;stroke:var(--accent)}.milestone-diamond.purple .diamond-icon path{fill:#fff;stroke:#8b5cf6}.milestone-diamond.cyan .diamond-icon path{fill:#fff;stroke:#06b6d4}.milestone-diamond.green .diamond-icon path{fill:#fff;stroke:var(--success)}.milestone-diamond.red .diamond-icon path,.milestone-diamond.warning .diamond-icon path{fill:#fff;stroke:var(--warning)}.milestone-diamond.filled .diamond-icon path{stroke-width:1.5}.milestone-diamond.filled.green .diamond-icon path{fill:var(--success);stroke:var(--success)}.milestone-diamond.filled.red .diamond-icon path{fill:var(--warning);stroke:var(--warning)}.milestone-diamond.filled.blue .diamond-icon path{fill:var(--accent);stroke:var(--accent)}.milestone-diamond.filled.purple .diamond-icon path{fill:#8b5cf6;stroke:#8b5cf6}.milestone-diamond.filled.cyan .diamond-icon path{fill:#06b6d4;stroke:#06b6d4}.milestone-diamond.tentative{position:relative}.milestone-diamond.tentative:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;transform:translate(-50%,-50%) rotate(45deg);background:repeating-linear-gradient(-45deg,transparent,transparent 1.5px,rgba(148,163,184,.5) 1.5px,rgba(148,163,184,.5) 3.5px);pointer-events:none}.milestone-diamond.tentative.red:after,.milestone-diamond.tentative.warning:after{background:repeating-linear-gradient(-45deg,transparent,transparent 1.5px,rgba(148,163,184,.5) 1.5px,rgba(148,163,184,.5) 3.5px)}.milestone-stack-wrapper{position:absolute;top:27px;display:flex;align-items:center;flex-direction:column;transform:translate(-50%);z-index:11}.milestone-stack-wrapper .milestone-stack-row{display:flex;align-items:center;position:relative}.milestone-stack-wrapper .milestone-diamond{position:relative;background:#fff;clip-path:polygon(50% -15%,115% 50%,50% 115%,-15% 50%)}.milestone-stack-wrapper .milestone-diamond:before{display:none}.milestone-stack-wrapper .milestone-diamond:hover:before{display:none}.milestone-stack-wrapper:hover .milestone-diamond{transform:scale(1.15);filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.milestone-stack-wrapper .milestone-diamond:hover{transform:scale(1.15)}.milestone-stack-label{font-size:10px;font-weight:600;color:var(--text-secondary);margin-top:2px;white-space:nowrap}.milestone-label-container{display:flex;flex-direction:column;align-items:center;margin-top:2px}.milestone-label{font-size:9px;font-weight:500;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;text-align:center;margin-top:2px;text-shadow:-1px -1px 0 white,1px -1px 0 white,-1px 1px 0 white,1px 1px 0 white,0 -1px 0 white,0 1px 0 white,-1px 0 0 white,1px 0 0 white}.milestone-duration{font-size:8px;font-weight:500;color:var(--text-muted);white-space:nowrap;opacity:.7;overflow:hidden;text-overflow:ellipsis;display:inline-block;text-align:center}.milestone-crew-tag{position:absolute;top:-14px;left:50%;transform:translate(-50%);font-size:8px;font-weight:600;padding:1px 4px;border-radius:3px;white-space:nowrap;max-width:70px;overflow:hidden;text-overflow:ellipsis;z-index:5;cursor:pointer;display:flex;align-items:center;gap:2px;transition:all .15s ease}.milestone-crew-tag.assigned{color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border)}.milestone-crew-tag.assigned:hover{filter:brightness(1.15);transform:translate(-50%) scale(1.05);box-shadow:0 2px 6px #0003}.milestone-crew-tag.assigned.overbooked{background:var(--warning)!important}.milestone-crew-tag.unassigned{color:var(--text-muted);background:var(--bg-primary);border:1px dashed var(--text-muted);padding:0 5px;transition:all .15s ease}.milestone-crew-tag.unassigned:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light);transform:translate(-50%) scale(1.05)}.crew-tag-warning{width:8px;height:8px;flex-shrink:0}.crew-tag-more{opacity:.8;font-size:7px}.out-of-view{position:absolute;top:22px;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 2px 8px #00000014;z-index:20;cursor:pointer;transition:all .15s ease}.out-of-view.left{position:sticky;left:8px}.out-of-view.right{position:sticky;right:8px;margin-left:auto}.out-of-view-content{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.out-of-view-name{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);white-space:nowrap}.out-of-view-dates{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap}.out-of-view-arrow{font-size:14px;color:var(--text-muted);transition:transform .15s ease}.out-of-view:hover{background:var(--bg-hover);border-color:var(--border-hover);box-shadow:0 4px 12px #0000001f}.out-of-view:hover .out-of-view-arrow{color:var(--text-primary)}.out-of-view.right:hover .out-of-view-arrow{transform:translate(2px)}.out-of-view.left:hover .out-of-view-arrow{transform:translate(-2px)}.out-of-view.inline{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);box-shadow:none;gap:var(--space-2)}.out-of-view.inline .out-of-view-dates{font-size:var(--font-size-xs)}.out-of-view-overlay{position:absolute;inset:52px 0 0;pointer-events:none;z-index:25}.out-of-view-indicator{position:absolute;display:flex;align-items:center;gap:var(--space-1);line-height:1;cursor:pointer;pointer-events:auto;transition:opacity .15s ease;transform:translateY(-50%)}.out-of-view-indicator.left{left:8px}.out-of-view-indicator.right{right:8px}.out-of-view-indicator:hover{opacity:.7}.indicator-arrow{font-size:11px;color:var(--text-muted);flex-shrink:0;display:flex;align-items:center}.indicator-date{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;display:flex;align-items:center}.indicator-name{font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;display:flex;align-items:center}.crew-view{padding:var(--space-6);overflow-y:auto;height:100%;display:flex;flex-direction:column}.crew-view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4)}.crew-view-filters{display:flex;gap:var(--space-3)}.crew-filter-dropdown{position:relative}.crew-filter-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);cursor:pointer;transition:all .15s ease}.crew-filter-btn:hover{background:var(--bg-secondary);border-color:var(--border-hover)}.crew-filter-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:160px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:50;padding:var(--space-1)}.crew-filter-option{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer}.crew-filter-option:hover{background:var(--bg-secondary)}.crew-filter-option.selected{color:var(--accent)}.crew-filter-divider{height:1px;background:var(--border);margin:var(--space-1) 0}.crew-nav-btn{padding:var(--space-2) var(--space-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);cursor:pointer;transition:all .15s ease}.crew-nav-btn:hover{background:var(--bg-secondary);border-color:var(--border-hover)}.crew-nav-arrows{display:flex;align-items:center;gap:var(--space-2)}.crew-nav-arrow{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:all .15s ease}.crew-nav-arrow:hover{background:var(--bg-secondary);border-color:var(--border-hover)}.crew-period-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);min-width:140px;text-align:center}.summary-item{display:flex;align-items:center;gap:var(--space-1)}.summary-label{color:var(--text-secondary)}.summary-value{color:var(--text-primary);font-weight:500}.summary-item.conflict .summary-value{color:var(--warning)}.summary-divider{color:var(--text-muted)}.crew-list{display:flex;flex-direction:column;gap:var(--space-4);max-width:900px}.crew-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.crew-card.has-conflict{border-color:var(--warning)}.crew-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border);gap:var(--space-4)}.crew-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);flex-shrink:0}.crew-utilization{display:flex;align-items:center;gap:var(--space-3);flex:1;max-width:300px}.utilization-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.utilization-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .3s ease}.utilization-text{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap}.crew-card-body{padding:var(--space-4)}.crew-assignments{display:flex;flex-direction:column;gap:var(--space-1)}.crew-assignment{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:background .15s ease}.crew-assignment:hover{background:var(--bg-secondary)}.crew-assignment.past{opacity:.5}.assignment-info{display:flex;align-items:center;gap:var(--space-3)}.assignment-type{font-size:var(--font-size-xs);font-weight:500;padding:4px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em;line-height:1;flex-shrink:0}.assignment-type.backframing{color:#5e6ad2;background:#5e6ad21a}.assignment-type.roofInstall{color:#8b5cf6;background:#8b5cf61a}.assignment-project{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);line-height:1}.assignment-date{display:flex;align-items:center;gap:var(--space-2)}.date-badge{font-size:var(--font-size-xs);font-weight:600;padding:4px 8px;border-radius:var(--radius-sm);line-height:1;flex-shrink:0}.date-badge.today{background:var(--accent);color:#fff}.date-badge.this-week{background:var(--warning-light);color:var(--warning)}.date-value{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1}.date-value.today{color:var(--accent);font-weight:500}.duration-badge{font-size:var(--font-size-xs);color:var(--text-muted);background:var(--hover-bg);padding:2px 6px;border-radius:var(--radius-sm);font-weight:500}.conflict-warning{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--error);background:var(--error-light);border-radius:var(--radius-sm)}.no-assignments{font-size:var(--font-size-sm);color:var(--text-muted);font-style:italic;padding:var(--space-2)}.crew-view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.crew-view-left,.crew-view-right{display:flex;align-items:center;gap:var(--space-3)}.crew-view-toggle{display:flex;align-items:center;background:var(--bg-secondary);border-radius:var(--radius-md);padding:2px;gap:2px}.crew-view-toggle-btn{display:flex;align-items:center;justify-content:center;width:32px;height:28px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.crew-view-toggle-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.crew-view-toggle-btn.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 2px #0000000d}.crew-period-nav{display:flex;align-items:center;gap:var(--space-3)}.crew-view-summary{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm)}.conflicts-dropdown{position:relative}.conflicts-trigger{display:flex;align-items:center;gap:4px;padding:6px 10px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-md);color:var(--warning);cursor:pointer;transition:all .15s ease}.conflicts-trigger:hover{background:#f59e0b26}.conflicts-badge{font-size:11px;font-weight:600}.conflicts-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:280px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001a;z-index:100;overflow:hidden}.conflicts-dropdown-header{padding:var(--space-3) var(--space-4);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.conflicts-dropdown-list{max-height:280px;overflow-y:auto;padding:var(--space-2)}.conflicts-dropdown-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-2);cursor:pointer;transition:background .15s ease}.conflicts-dropdown-item:hover{background:var(--border-light)}.conflicts-dropdown-item:last-child{margin-bottom:0}.conflict-item-header{display:flex;align-items:center;justify-content:space-between}.conflict-crew-info{display:flex;align-items:center;gap:var(--space-2)}.conflict-crew-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.conflict-crew-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.conflict-date{font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary);background:var(--bg-primary);padding:2px 8px;border-radius:var(--radius-sm)}.conflict-projects{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.4}.crew-view-content{display:flex;gap:var(--space-6);flex:1;min-height:0}.crew-view-main{flex:1;min-width:0;display:flex;flex-direction:column}.crew-view-sidebar{width:320px;flex-shrink:0}.utilization-bar{flex:1;height:6px;background:var(--border-light);border-radius:3px;overflow:hidden}.utilization-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.utilization-fill.medium{background:var(--warning)}.utilization-fill.high{background:var(--success)}.crew-name-wrapper{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.crew-color-indicator{width:10px;height:10px;border-radius:3px;flex-shrink:0}.assignment-type{font-size:var(--font-size-xs);font-weight:500;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap;line-height:1;flex-shrink:0}.assignment-type.backframing{color:#5e6ad2;background:#5e6ad21f}.assignment-type.roofInstall{color:#8b5cf6;background:#8b5cf61f}.crew-assignment{border-bottom:1px solid var(--border-light);padding-bottom:var(--space-2);margin-bottom:var(--space-2)}.crew-assignment:last-child{border-bottom:none;margin-bottom:0}.crew-assignment.conflict{background:var(--warning-light);border-radius:var(--radius-sm)}.crew-assignment.weekend-exception{background:#fef3c7;border-radius:var(--radius-sm);border-left:3px solid #F59E0B}.date-badge.weekend{background:#f59e0b;color:#fff;display:inline-flex;align-items:center;gap:3px}.date-badge.conflict{background:var(--warning);color:#fff}.distribution-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.distribution-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-4)}.no-data{font-size:var(--font-size-sm);color:var(--text-muted);text-align:center;padding:var(--space-4)}.donut-chart-container{display:flex;justify-content:center;margin-bottom:var(--space-4)}.donut-chart{width:160px;height:160px}.donut-segment{transition:opacity .2s ease}.donut-segment:hover{opacity:.8}.donut-total{font-size:14px;font-weight:600;fill:var(--text-primary)}.distribution-legend{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}.distribution-legend-item{display:flex;align-items:center;gap:var(--space-2)}.distribution-legend-color{width:10px;height:10px;border-radius:2px;flex-shrink:0}.distribution-legend-name{flex:1;font-size:var(--font-size-sm);color:var(--text-secondary)}.distribution-legend-count{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.crew-calendar{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;flex:1;display:flex;flex-direction:column;min-height:0}.crew-calendar-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.calendar-day-header{padding:var(--space-2) var(--space-1);font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-align:center;text-transform:uppercase}.crew-calendar-section{border-bottom:1px solid var(--border)}.crew-calendar-section:last-child{border-bottom:none}.crew-calendar-label{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.crew-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;flex:1;min-height:0}.calendar-day{min-height:0;padding:var(--space-1);border-right:1px solid var(--border-light);border-bottom:1px solid var(--border-light);background:var(--bg-primary);overflow:hidden}.calendar-day:nth-child(7n){border-right:none}.calendar-day.other-month{background:var(--bg-secondary)}.calendar-day.other-month .calendar-day-number{color:var(--text-muted)}.calendar-day.today{background:var(--accent-light)}.calendar-day.today .calendar-day-number{color:var(--accent);font-weight:600}.calendar-day.off-day{background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.15) 3px,rgba(148,163,184,.15) 6px)}.calendar-day-number{font-size:var(--font-size-xs);color:var(--text-secondary);margin-bottom:var(--space-1)}.calendar-day-events{display:flex;flex-direction:column;gap:2px}.calendar-event{padding:4px 6px;border-radius:3px;font-size:10px;overflow:hidden;margin-bottom:2px;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.calendar-event:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.calendar-event:last-child{margin-bottom:0}.calendar-event .event-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-primary)}.calendar-event .event-type{display:block;font-size:9px;color:var(--text-secondary);margin-top:1px}.calendar-event.conflict{position:relative;box-shadow:inset 0 0 0 2px var(--warning);padding-right:20px}.calendar-event .event-conflict-badge{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:14px;height:14px;background:var(--warning);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.calendar-event.weekend-work{position:relative;box-shadow:inset 0 0 0 2px #f59e0b;padding-right:20px}.calendar-event .event-weekend-badge{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:14px;height:14px;background:#f59e0b;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.calendar-day.off-day .calendar-event{border:1px dashed #F59E0B}.event-popover{position:fixed;background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:0 8px 30px #0003,0 0 0 1px var(--border);width:260px;z-index:1000;animation:popover-in .15s ease-out;-webkit-user-select:none;user-select:none}.event-popover.dragging{animation:none;cursor:grabbing}@keyframes popover-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.event-popup-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-left:3px solid;background:var(--bg-secondary);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab}.event-popup-header:active{cursor:grabbing}.event-popup-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:0}.event-popup-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.event-popup-close:hover{background:var(--bg-hover);color:var(--text-primary)}.event-popup-body{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.event-popup-row{display:flex;justify-content:space-between;align-items:center}.event-popup-label{font-size:var(--font-size-xs);color:var(--text-secondary)}.event-popup-value{font-size:var(--font-size-xs);font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-1)}.event-popup-crew-dot{width:8px;height:8px;border-radius:2px}.event-popup-status{font-size:10px;font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);text-transform:capitalize}.event-popup-status.scheduled{background:var(--accent-light);color:var(--accent)}.event-popup-status.completed{background:#10b9811a;color:#10b981}.event-popup-status.unscheduled{background:var(--bg-secondary);color:var(--text-secondary)}.event-popup-status.in_progress{background:#f59e0b1a;color:#d97706}.crew-legend-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-top:var(--space-4)}.crew-legend-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.crew-legend-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.crew-legend-toggle{font-size:var(--font-size-xs);color:var(--accent);background:none;border:none;cursor:pointer;padding:0}.crew-legend-toggle:hover{text-decoration:underline}.crew-legend-list{display:flex;flex-direction:column;gap:var(--space-2)}.crew-legend-item{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-1) 0}.crew-legend-item:hover{opacity:.8}.crew-legend-checkbox{width:16px;height:16px;border-radius:3px;cursor:pointer;accent-color:var(--accent)}.crew-legend-color{width:12px;height:12px;border-radius:3px;flex-shrink:0;transition:opacity .15s ease}.crew-legend-name{font-size:var(--font-size-sm);color:var(--text-primary);transition:opacity .15s ease}.crew-legend-name.inactive{opacity:.5}.modal-overlay{position:fixed;inset:0;background:#0000004d;display:flex;align-items:flex-start;justify-content:center;padding-top:100px;z-index:100}.date-picker{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:var(--space-4);min-width:280px}.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.date-picker-month{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);margin-bottom:var(--space-2)}.date-picker-weekdays span{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);text-align:center;padding:var(--space-1)}.date-picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1)}.date-picker-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all .1s ease;border:none;background:transparent}.date-picker-day:hover{background:var(--bg-hover)}.date-picker-day.other-month{color:var(--text-muted)}.date-picker-day.normally-off{background:var(--bg-normally-off)}.date-picker-day.selected{background:var(--accent);color:#fff}.date-picker-day.today{border:1px solid var(--accent)}.date-picker.with-tabs{min-width:320px}.date-picker-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);padding:var(--space-1);background:var(--bg-secondary);border-radius:var(--radius-md)}.date-picker-tab{flex:1;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.date-picker-tab:hover{color:var(--text-primary)}.date-picker-tab.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 3px #0000001a}.date-picker-copy-content{display:flex;flex-direction:column;gap:var(--space-4)}.copy-section{display:flex;flex-direction:column;gap:var(--space-2)}.copy-section-label{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.date-picker-copy-content .copy-search-wrapper{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.date-picker-copy-content .copy-search-wrapper:focus-within{border-color:var(--accent)}.date-picker-copy-content .copy-search-wrapper input{flex:1;border:none;background:none;font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.date-picker-copy-content .copy-search-wrapper input::placeholder{color:var(--text-muted)}.date-picker-copy-content .copy-project-list,.date-picker-copy-content .copy-template-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:200px;overflow-y:auto}.copy-project-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--text-primary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .15s ease;width:100%}.copy-project-item:hover{background:var(--bg-hover)}.copy-project-item svg{color:var(--text-muted);flex-shrink:0}.copy-project-item .copy-project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-project-item.save-template{color:var(--text-secondary);border:1px dashed var(--border);margin-top:var(--space-1)}.copy-project-item.save-template:hover{color:var(--accent);border-color:var(--accent);background:transparent}.copy-template-item{display:flex;align-items:center;gap:var(--space-1)}.copy-template-item .copy-project-item{flex:1}.copy-template-item .template-delete-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:all .15s ease}.copy-template-item:hover .template-delete-btn{opacity:1}.copy-template-item .template-delete-btn:hover{color:var(--error);background:var(--bg-hover)}.date-picker-copy-content .copy-empty-message{font-size:var(--font-size-sm);color:var(--text-muted);text-align:center;padding:var(--space-3)}.date-picker-copy-content .save-template-input-wrapper{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.date-picker-copy-content .save-template-input-wrapper:focus-within{border-color:var(--accent)}.date-picker-copy-content .save-template-input-wrapper input{flex:1;border:none;background:none;font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.date-picker-copy-content .save-template-confirm{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--accent);border:none;color:#fff;cursor:pointer;border-radius:var(--radius-sm);transition:opacity .15s ease}.date-picker-copy-content .save-template-confirm:disabled{opacity:.5;cursor:not-allowed}.date-picker-copy-content .save-template-confirm:not(:disabled):hover{opacity:.9}.crew-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;min-width:360px;max-width:420px}.crew-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border)}.crew-modal-title{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .1s ease}.modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.crew-modal-body{padding:var(--space-4)}.crew-modal-section{margin-bottom:var(--space-4)}.crew-modal-section:last-child{margin-bottom:0}.crew-modal-label{display:block;font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.crew-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);min-height:32px;margin-bottom:var(--space-2)}.crew-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.crew-chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-muted);background:transparent;border:none;border-radius:50%;cursor:pointer;transition:all .1s ease}.crew-chip-remove:hover{color:var(--error);background:var(--error-light)}.crew-input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;transition:border-color .1s ease}.crew-input:focus{border-color:var(--accent)}.crew-input::placeholder{color:var(--text-muted)}.crew-modal-footer{display:flex;justify-content:flex-end;padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);background:var(--bg-secondary)}.tooltip{position:fixed;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:#fff;background:var(--text-primary);border-radius:var(--radius-sm);pointer-events:none;z-index:1000;max-width:240px;white-space:nowrap}.milestone-tooltip{position:fixed;transform:translate(-50%,-100%);padding:8px 12px;background:var(--bg-primary);border:none;border-radius:var(--radius-md);box-shadow:0 2px 12px #0000001f;pointer-events:none;min-width:100px;z-index:1000}.milestone-tooltip .tooltip-name{font-size:11px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.milestone-tooltip .tooltip-date{font-size:11px;font-weight:400;color:var(--text-muted);margin-bottom:2px}.milestone-tooltip .tooltip-status{font-size:10px;font-weight:500;color:var(--text-muted)}.milestone-tooltip .tooltip-status.completed{color:var(--success)}.milestone-tooltip .tooltip-status.late{color:var(--error)}.milestone-tooltip .tooltip-crew{font-size:10px;font-weight:400;color:var(--text-primary);margin-top:6px;padding-top:6px;border-top:1px solid var(--border-light)}.milestone-tooltip .tooltip-crew-label{color:var(--text-muted)}.milestone-tooltip .tooltip-crew.unassigned{color:var(--text-muted);font-style:italic}.milestone-tooltip:has(.tooltip-items){pointer-events:auto}.milestone-tooltip .tooltip-items{display:flex;flex-direction:column;gap:0}.milestone-tooltip .tooltip-item{display:flex;align-items:center;gap:var(--space-2);padding:6px 8px;border-bottom:1px solid var(--border);border-radius:var(--radius-sm);transition:background .1s ease}.milestone-tooltip .tooltip-item.clickable{cursor:pointer}.milestone-tooltip .tooltip-item.clickable:hover{background:#3b82f614}.milestone-tooltip .tooltip-item.clickable:hover .tooltip-item-arrow{opacity:1;color:var(--accent)}.milestone-tooltip .tooltip-item:last-child{border-bottom:none}.milestone-tooltip .tooltip-item-arrow{flex-shrink:0;opacity:.3;color:var(--text-muted);transition:opacity .1s ease,color .1s ease}.milestone-tooltip .tooltip-item-icon{width:10px;height:10px;flex-shrink:0}.milestone-tooltip .tooltip-item-icon path{fill:var(--text-muted)}.milestone-tooltip .tooltip-item-icon.filled path{fill:var(--success)}.milestone-tooltip .tooltip-item-content{flex:1;min-width:0}.milestone-tooltip .tooltip-item-name-row{display:flex;align-items:center;gap:var(--space-2)}.milestone-tooltip .tooltip-item-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.milestone-tooltip .tooltip-item-crew-tag{font-size:10px;font-weight:500;color:var(--accent);background:var(--accent-light);padding:1px 6px;border-radius:var(--radius-sm);white-space:nowrap}.milestone-tooltip .tooltip-item-date{font-size:var(--font-size-xs);color:var(--text-secondary)}.milestone-picker-backdrop{position:fixed;inset:0;z-index:100}.milestone-picker-dropdown{position:fixed;transform:translate(-50%);min-width:200px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001f;overflow:hidden;z-index:101}.milestone-picker-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-secondary)}.milestone-picker-title{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.milestone-picker-date{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.milestone-picker-section{padding:var(--space-2) 0}.milestone-picker-section-label{padding:var(--space-1) var(--space-4);font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.milestone-picker-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background .15s ease}.milestone-picker-option:hover{background:var(--bg-hover)}.milestone-picker-option .option-icon{font-size:14px;width:18px;text-align:center}.milestone-picker-option .option-icon.unscheduled{color:var(--text-muted)}.milestone-picker-option .option-icon.scheduled{color:var(--milestone)}.milestone-picker-option .option-label{flex:1;font-size:var(--font-size-sm);color:var(--text-primary)}.milestone-picker-option .option-current-date,.milestone-picker-option .option-move-indicator{font-size:var(--font-size-xs);color:var(--text-muted)}.milestone-picker-option.scheduled{opacity:.85}.milestone-picker-option.scheduled:hover{opacity:1}.milestone-picker-option.restore-option{background:#3b82f60d}.milestone-picker-option.restore-option:hover{background:#3b82f61a}.milestone-picker-option .option-icon.deleted{color:var(--text-muted);opacity:.6}.milestone-picker-option .option-restore-hint{font-size:var(--font-size-xs);color:var(--accent);font-weight:500}.milestone-picker-create-top{border-bottom:1px solid var(--border);padding:var(--space-2) 0}.milestone-picker-option.create-option{color:var(--text-secondary)}.milestone-picker-option.create-option:hover{color:var(--text-primary)}.option-icon-plus{color:var(--text-muted);width:16px;display:flex;align-items:center;justify-content:center}.milestone-picker-create-form{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.milestone-picker-input{flex:1;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none}.milestone-picker-input::placeholder{color:var(--text-muted)}.milestone-picker-create-btn{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);font-weight:500;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease}.milestone-picker-create-btn:hover:not(:disabled){background:var(--accent-hover)}.milestone-picker-create-btn:disabled{opacity:.5;cursor:default}.milestone-picker-copy-section{border-bottom:1px solid var(--border);padding-bottom:var(--space-2);margin-bottom:var(--space-1)}.milestone-picker-option.copy-toggle-option{color:var(--text-secondary)}.milestone-picker-option.copy-toggle-option:hover{color:var(--text-primary)}.option-icon-copy{color:var(--text-muted);margin-right:var(--space-1)}.milestone-picker-copy-content{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2)}.copy-subsection{display:flex;flex-direction:column;gap:var(--space-2)}.copy-subsection-label{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.milestone-picker-copy-content .copy-search-wrapper{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border)}.milestone-picker-copy-content .copy-search-wrapper:focus-within{border-color:var(--accent)}.milestone-picker-copy-content .copy-search-wrapper svg{color:var(--text-muted);flex-shrink:0}.milestone-picker-copy-content .copy-search-wrapper input{flex:1;border:none;background:none;font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.milestone-picker-copy-content .copy-search-wrapper input::placeholder{color:var(--text-muted)}.milestone-picker-copy-content .copy-project-list,.milestone-picker-copy-content .copy-template-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:150px;overflow-y:auto}.milestone-picker-copy-content .copy-project-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);font-size:var(--font-size-sm);color:var(--text-primary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .15s ease;width:100%}.milestone-picker-copy-content .copy-project-item:hover{background:var(--bg-hover)}.milestone-picker-copy-content .copy-project-item svg{color:var(--text-muted);flex-shrink:0}.milestone-picker-copy-content .copy-project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.milestone-picker-copy-content .copy-project-item.save-template{color:var(--text-secondary);border:1px dashed var(--border)}.milestone-picker-copy-content .copy-project-item.save-template:hover{color:var(--accent);border-color:var(--accent);background:transparent}.milestone-picker-copy-content .copy-template-item{display:flex;align-items:center;gap:var(--space-1)}.milestone-picker-copy-content .copy-template-item .copy-project-item{flex:1}.milestone-picker-copy-content .copy-template-item .template-delete-btn{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:all .15s ease}.milestone-picker-copy-content .copy-template-item:hover .template-delete-btn{opacity:1}.milestone-picker-copy-content .copy-template-item .template-delete-btn:hover{color:var(--error);background:var(--bg-hover)}.milestone-picker-copy-content .copy-empty-message{font-size:var(--font-size-sm);color:var(--text-muted);text-align:center;padding:var(--space-2)}.milestone-picker-copy-content .save-template-input-wrapper{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border)}.milestone-picker-copy-content .save-template-input-wrapper:focus-within{border-color:var(--accent)}.milestone-picker-copy-content .save-template-input-wrapper input{flex:1;border:none;background:none;font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.milestone-picker-copy-content .save-template-confirm{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--accent);border:none;color:#fff;cursor:pointer;border-radius:var(--radius-sm);transition:opacity .15s ease}.milestone-picker-copy-content .save-template-confirm:disabled{opacity:.5;cursor:not-allowed}.copy-back-btn{padding:var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.copy-back-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.scheduling-panel-backdrop{position:fixed;inset:0;z-index:1000}.scheduling-panel{position:fixed;width:260px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:1001;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.scheduling-panel-title{height:32px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:500;color:var(--text-primary);background:var(--bg-secondary);border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.scheduling-panel-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;border-radius:4px;cursor:pointer;color:var(--text-primary)}.scheduling-panel-close:hover{background:var(--bg-hover)}.scheduling-panel-content{padding:8px;display:flex;flex-direction:column;gap:8px;position:relative}.scheduling-panel-row{position:relative;display:flex;align-items:center;gap:8px}.scheduling-panel-row.date-row{gap:8px}.scheduling-panel-row.workdays-row{height:33px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:0 4px}.scheduling-panel-row.crew-row{z-index:5}.scheduling-panel-row.crew-row .scheduling-panel-dropdown-menu{width:296px;left:auto;right:0}.scheduling-panel-row.lock-row{justify-content:space-between;padding:4px 0}.scheduling-panel-dropdown{flex:1;height:33px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s ease}.scheduling-panel-dropdown:hover{border-color:var(--text-muted)}.scheduling-panel-dropdown-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.scheduling-panel-diamond{flex-shrink:0;color:var(--accent)}.scheduling-panel-diamond-small{flex-shrink:0;color:var(--text-muted)}.scheduling-panel-dropdown-label{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis}.scheduling-panel-dropdown-label.placeholder{color:var(--text-muted);white-space:nowrap}.scheduling-panel-dropdown>svg{color:var(--text-muted);flex-shrink:0}.scheduling-panel-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;max-height:280px;overflow:hidden;display:flex;flex-direction:column}.scheduling-panel-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.scheduling-panel-search svg{color:var(--text-muted);flex-shrink:0}.scheduling-panel-search input{flex:1;border:none;background:none;font-size:13px;color:var(--text-primary);outline:none}.scheduling-panel-search input::placeholder{color:var(--text-muted)}.scheduling-panel-dropdown-list{overflow-y:auto;max-height:220px;padding:4px 0}.scheduling-panel-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;color:var(--text-primary);cursor:pointer;transition:background .1s ease}.scheduling-panel-dropdown-item:hover,.scheduling-panel-dropdown-item.highlighted{background:var(--bg-secondary)}.scheduling-panel-dropdown-item.selected{background:#2563eb14}.scheduling-panel-dropdown-item.selected>svg{color:var(--accent)}.scheduling-panel-dropdown-item-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.scheduling-panel-dropdown-item.create-item{color:var(--accent);gap:6px;justify-content:flex-start}.scheduling-panel-dropdown-item.create-item svg{color:var(--accent)}.scheduling-panel-dropdown-empty{padding:20px;text-align:center;font-size:13px;color:var(--text-muted)}.scheduling-panel-dropdown-item.crew-item{flex-wrap:nowrap}.scheduling-panel-dropdown-item.crew-item .crew-item-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.scheduling-panel-dropdown-item.crew-item input[type=checkbox]{width:16px;height:16px;margin:0;flex-shrink:0;accent-color:var(--accent)}.scheduling-panel-dropdown-item.crew-item .crew-item-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.scheduling-panel-dropdown-item.crew-item .crew-status{font-size:11px;flex-shrink:0}.scheduling-panel-dropdown-item.crew-item .crew-status.available{color:var(--success)}.scheduling-panel-dropdown-item.crew-item .crew-status.busy{color:var(--error)}.scheduling-panel-dropdown-item.crew-item.busy{opacity:1}.scheduling-panel-dropdown-item.crew-item .crew-more-btn{display:flex;visibility:hidden;width:24px;height:24px;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);align-items:center;justify-content:center;flex-shrink:0}.scheduling-panel-dropdown-item.crew-item:hover .crew-more-btn{visibility:visible}.scheduling-panel-dropdown-item.crew-item .crew-more-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.crew-menu-popover{position:fixed;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:8px;z-index:10002;min-width:180px;display:flex;flex-direction:column;gap:8px}.crew-menu-input{height:33px;padding:0 10px;font-size:12px;font-family:Inter,sans-serif;font-weight:500;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none;box-shadow:0 0 0 2px #2563eb26}.crew-menu-input.error{border-color:var(--error);box-shadow:0 0 0 2px #ef444426}.crew-menu-error{font-size:11px;color:var(--error);padding:0 2px}.crew-menu-delete{display:flex;align-items:center;gap:8px;height:33px;padding:0 10px;font-size:12px;font-weight:500;color:var(--error);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease}.crew-menu-delete:hover{background:#ef44441a}.warning-dialog-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.warning-dialog{background:var(--bg-primary);border-radius:var(--radius-lg);padding:32px 40px;max-width:420px;text-align:center;box-shadow:0 20px 60px #0000004d}.warning-dialog-icon{width:56px;height:56px;border-radius:50%;background:#fef3c7;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#f59e0b}.warning-dialog-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.warning-dialog-message{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0 0 24px}.warning-dialog-message strong{color:var(--text-primary);font-weight:600}.warning-dialog-buttons{display:flex;flex-direction:column;gap:8px}.warning-dialog-btn{height:44px;font-size:13px;font-weight:600;letter-spacing:.5px;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.warning-dialog-btn.primary{background:var(--accent);color:#fff;border:none}.warning-dialog-btn.primary:hover{background:var(--accent-hover)}.warning-dialog-btn.secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border)}.warning-dialog-btn.secondary:hover{background:var(--bg-secondary)}.scheduling-panel-date-box{flex:1;height:33px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.scheduling-panel-date-box:hover{border-color:var(--text-muted)}.scheduling-panel-date-box.focused{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb1a}.scheduling-panel-date-box .scheduling-panel-date-input{width:100%;background:none;border:none;outline:none;font-size:12px;font-weight:500;font-family:Inter,sans-serif;color:var(--text-primary);text-align:center}.scheduling-panel-date-box .scheduling-panel-date-input::placeholder{color:var(--text-muted)}.scheduling-panel-date-box.end-date-box{position:relative;padding-right:28px}.scheduling-panel-date-box.end-date-box .scheduling-panel-remove-end{position:absolute;right:6px;opacity:0}.scheduling-panel-date-box.end-date-box:hover .scheduling-panel-remove-end{opacity:1}.scheduling-panel-remove-end{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease}.scheduling-panel-remove-end:hover{color:var(--error);background:#ef44441a}.scheduling-panel-add-end{flex:1;height:33px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;font-weight:600;color:var(--accent);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.scheduling-panel-add-end:hover{border-color:var(--accent);background:#2563eb0d}.scheduling-panel-add-end svg{color:var(--accent)}.scheduling-panel-workdays-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:16px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.scheduling-panel-workdays-btn:hover:not(:disabled){color:var(--text-primary)}.scheduling-panel-workdays-btn:disabled{opacity:.3;cursor:not-allowed}.scheduling-panel-workdays-value{flex:1;text-align:center;font-size:12px;font-weight:500;color:var(--text-primary)}.scheduling-panel-calendar{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px}.scheduling-panel-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.scheduling-panel-calendar-header button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.scheduling-panel-calendar-header button:hover{background:var(--bg-primary);color:var(--text-primary)}.scheduling-panel-calendar-header span{font-size:14px;font-weight:500;color:var(--text-primary)}.scheduling-panel-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px}.scheduling-panel-calendar-weekdays span{text-align:center;font-size:11px;color:var(--text-muted);padding:4px 0}.scheduling-panel-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.scheduling-panel-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-primary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .1s ease}.scheduling-panel-calendar-day:hover:not(:disabled):not(.empty){background:var(--bg-primary)}.scheduling-panel-calendar-day.empty{cursor:default}.scheduling-panel-calendar-day.weekend{color:var(--text-muted)}.scheduling-panel-calendar-day.selected{background:var(--accent);color:#fff}.scheduling-panel-calendar-day.selected.start{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.scheduling-panel-calendar-day.selected.end{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.scheduling-panel-calendar-day.in-range{background:#2563eb26;border-radius:0}.scheduling-panel-calendar-day.start-date{background:#2563eb4d;color:var(--accent)}.scheduling-panel-row.date-row{position:relative}.scheduling-panel-datepicker-popup{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000026;z-index:1000;padding:12px}.scheduling-panel-datepicker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:12px;font-weight:500;color:var(--text-primary)}.scheduling-panel-datepicker-clear{display:none;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;padding:0}.scheduling-panel-datepicker-header:hover .scheduling-panel-datepicker-clear{display:flex}.scheduling-panel-datepicker-clear:hover{color:var(--error);background:#ef44441a}.scheduling-panel-date-arrow{font-size:14px;color:var(--text-muted);margin:0 4px;flex-shrink:0}.scheduling-panel-lock-left{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--text-primary)}.scheduling-panel-lock-left svg{color:var(--text-muted)}.scheduling-panel-switch{position:relative;display:inline-block;width:40px;height:22px}.scheduling-panel-switch input{opacity:0;width:0;height:0}.scheduling-panel-switch-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--border);transition:.2s;border-radius:22px}.scheduling-panel-switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:#fff;transition:.2s;border-radius:50%;box-shadow:0 1px 3px #0003}.scheduling-panel-switch input:checked+.scheduling-panel-switch-slider{background-color:var(--accent)}.scheduling-panel-switch input:checked+.scheduling-panel-switch-slider:before{transform:translate(18px)}.scheduling-panel-schedule-btn{height:40px;width:100%;font-size:13px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.scheduling-panel-schedule-btn:hover:not(:disabled){background:var(--accent-hover)}.scheduling-panel-schedule-btn:disabled{opacity:.5;cursor:not-allowed}.scheduling-panel-unschedule-btn{height:40px;width:100%;font-size:13px;font-weight:600;color:var(--error);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.scheduling-panel-unschedule-btn:hover{background:#ef444414;border-color:var(--error)}.timeline-cell{cursor:pointer;transition:background .1s ease}.timeline-cell:hover{background:#2563eb26!important}.timeline-cell.normally-off:hover{background:#2563eb33!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.crew-assignment-panel{position:fixed;top:var(--header-height);right:0;bottom:0;width:380px;background:var(--bg-primary);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:200;display:flex;flex-direction:column;animation:slideInRight .2s ease}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.crew-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border)}.crew-panel-header h2{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0}.crew-panel-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.crew-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.crew-panel-filter{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.crew-panel-filter-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}.crew-panel-filter-toggle input{accent-color:var(--accent)}.crew-panel-filter-toggle:hover{color:var(--text-primary)}.unassigned-badge{background:var(--warning);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;margin-left:auto}.crew-panel-list{flex:1;overflow-y:auto;padding:var(--space-2)}.crew-panel-empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.crew-panel-project{padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2);background:var(--bg-secondary)}.crew-panel-project-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-2)}.crew-panel-milestone{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;border-top:1px solid var(--border-light)}.crew-panel-milestone:first-of-type{border-top:none}.crew-panel-milestone-info{display:flex;flex-direction:column;gap:2px}.crew-panel-milestone-name{font-size:var(--font-size-sm);color:var(--text-primary)}.crew-panel-milestone-date{font-size:var(--font-size-xs);color:var(--text-muted)}.crew-panel-milestone-crews{display:flex;align-items:center;gap:var(--space-1);position:relative}.crew-tag{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;border:none;transition:all .15s ease}.crew-tag.assigned{color:#fff}.crew-tag.assigned:hover{filter:brightness(1.1)}.crew-tag.unassigned{background:transparent;border:1px dashed var(--text-muted);color:var(--text-muted)}.crew-tag.unassigned:hover{border-color:var(--accent);color:var(--accent)}.crew-dropdown{position:absolute;top:100%;right:0;margin-top:var(--space-1);min-width:160px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;padding:var(--space-1)}.crew-dropdown-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer}.crew-dropdown-item:hover{background:var(--bg-hover)}.crew-dropdown-item.selected{background:var(--accent-light);color:var(--accent)}.crew-dropdown-color{width:10px;height:10px;border-radius:3px;flex-shrink:0}.project-detail-panel{position:fixed;top:var(--header-height);right:0;bottom:0;width:360px;background:var(--bg-primary);border-left:1px solid var(--border);box-shadow:-4px 0 20px #00000014;z-index:50;display:flex;flex-direction:column;overflow-y:auto;animation:slideIn .2s ease}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-primary);position:sticky;top:0;z-index:10}.panel-title{display:flex;align-items:center;gap:var(--space-2)}.panel-icon{color:var(--text-muted)}.panel-project-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.panel-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.panel-close:hover{color:var(--text-primary);background:var(--bg-hover)}.panel-header-actions{display:flex;align-items:center;gap:var(--space-2)}.panel-unschedule-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.panel-unschedule-btn:hover{color:var(--error);border-color:var(--error);background:#ef44440d}.panel-unschedule-btn svg{flex-shrink:0}.panel-project-id{padding:0 var(--space-4);margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--text-muted)}.panel-section{padding:var(--space-4);border-bottom:1px solid var(--border-light)}.panel-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.panel-properties{display:flex;flex-direction:column;gap:var(--space-1)}.panel-property{display:flex;align-items:center;gap:var(--space-3);min-height:28px}.property-label{flex-shrink:0;width:90px;font-size:var(--font-size-sm);color:var(--text-secondary)}.panel-property.address-property{align-items:flex-start}.panel-property.address-property .property-label{padding-top:1px}.property-value{flex:1;font-size:var(--font-size-sm);color:var(--text-primary)}.property-value-text{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-secondary);border-radius:var(--radius-sm)}.property-value-plain{font-size:var(--font-size-sm);color:var(--text-primary)}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-sm)}.status-badge.green{color:var(--success);background:#0596691a}.status-badge.blue{color:var(--accent);background:var(--accent-light)}.status-badge.yellow{color:var(--warning);background:var(--warning-light)}.status-badge.gray{color:var(--text-muted);background:var(--bg-secondary)}.crews-value{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.crew-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.crew-tag{padding:2px var(--space-2);font-size:var(--font-size-xs);color:var(--text-primary);background:var(--bg-secondary);border-radius:var(--radius-sm)}.empty-value{color:var(--text-muted);font-style:italic}.edit-btn{padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:500;color:var(--accent);background:transparent;border:none;cursor:pointer;transition:color .15s ease}.edit-btn:hover{color:var(--accent-hover)}.crew-selector{margin-top:var(--space-2);margin-left:102px;padding:var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--space-1)}.crew-option{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer}.crew-option input[type=checkbox]{accent-color:var(--accent)}.panel-property.crew-property{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.panel-property.crew-property .property-label{margin-bottom:0}.crew-picker{width:100%;position:relative}.crew-picker-display{display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:var(--space-1) var(--space-2);background:var(--bg-secondary);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.crew-picker-display:hover{border-color:var(--border)}.crew-picker-display .crew-tags{flex:1;display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center}.crew-picker-display .crew-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-primary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;white-space:nowrap}.crew-picker-display .crew-tag.has-conflict{background:#f59e0b1a;color:var(--warning)}.crew-picker-display .crew-tag .conflict-icon{color:var(--warning)}.crew-picker-placeholder{color:var(--text-muted);font-size:var(--font-size-sm)}.crew-picker-chevron{color:var(--text-muted);display:flex;align-items:center;margin-left:var(--space-2)}.crew-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0003;z-index:1000;overflow:hidden;max-height:300px;overflow-y:auto}.crew-picker-search{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light)}.crew-picker-search .search-icon{color:var(--text-muted);flex-shrink:0}.crew-picker-input{flex:1;border:none;outline:none;background:transparent;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text-primary)}.crew-picker-input::placeholder{color:var(--text-muted)}.crew-picker-list{max-height:200px;overflow-y:auto;padding:var(--space-1) 0}.crew-picker-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background .1s ease}.crew-picker-option:hover,.crew-picker-option.highlighted{background:var(--bg-hover)}.crew-picker-option.selected{background:var(--accent-light)}.crew-picker-option .option-checkbox{width:16px;height:16px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);border-radius:3px;flex-shrink:0;color:transparent;transition:all .15s ease}.crew-picker-option.selected .option-checkbox{background:var(--accent);border-color:var(--accent);color:#fff}.crew-picker-option .option-checkbox.create{border-color:var(--accent);color:var(--accent)}.crew-picker-option .option-name{flex:1;font-size:var(--font-size-sm);color:var(--text-primary)}.crew-picker-option.create-option .option-name{color:var(--accent)}.crew-picker-option .option-available{font-size:var(--font-size-xs);color:var(--success);margin-left:auto}.crew-picker-option .option-conflict{display:flex;align-items:center;gap:var(--space-1);color:var(--warning);margin-left:auto;cursor:help}.crew-picker-option .option-conflict .conflict-text{font-size:var(--font-size-xs);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-picker-option.has-conflict .option-name,.crew-picker-option.used-in-project .option-name{color:var(--text-secondary)}.crew-picker-option .option-used{font-size:var(--font-size-xs);color:var(--text-muted);margin-left:auto}.crew-picker-separator{display:flex;align-items:center;padding:var(--space-2) var(--space-3);margin:var(--space-1) 0;border-top:1px solid var(--border-light)}.crew-picker-separator span{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.crew-picker-empty{padding:var(--space-3);text-align:center;font-size:var(--font-size-sm);color:var(--text-muted)}.crew-picker.disabled{opacity:.6;cursor:not-allowed}.crew-picker.disabled .crew-picker-display{cursor:not-allowed;pointer-events:none}.crew-picker.disabled .crew-picker-display:hover{border-color:transparent}.crew-picker.disabled .crew-picker-placeholder{font-style:italic}.status-picker{position:relative}.status-picker-trigger{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease}.status-picker-trigger:hover{background:var(--bg-hover)}.status-picker-trigger .status-label{font-size:var(--font-size-sm);color:var(--text-primary)}.status-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;z-index:100;overflow:hidden}.status-picker-header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light)}.status-picker-search{width:100%;border:none;outline:none;background:transparent;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text-primary)}.status-picker-search::placeholder{color:var(--text-muted)}.status-picker-list{padding:var(--space-1) 0}.status-picker-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background .1s ease}.status-picker-option:hover{background:var(--bg-hover)}.status-picker-option.selected{background:var(--accent-light)}.status-picker-option .option-label{flex:1;font-size:var(--font-size-sm);color:var(--text-primary)}.status-picker-option .check-icon{color:var(--accent)}.status-picker-option .option-shortcut{font-size:var(--font-size-xs);color:var(--text-muted);padding:2px 6px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.project-row .status-picker{flex-shrink:0}.project-row .status-picker-trigger{padding:var(--space-1)}.project-row .status-picker-dropdown{left:0;top:calc(100% + 2px)}.panel-property.status-property .status-picker-trigger{padding:var(--space-1) var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm)}.panel-property.status-property .status-picker-trigger:hover{background:var(--bg-hover)}.panel-milestones{display:flex;flex-direction:column;gap:var(--space-2)}.milestone-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm);transition:background .15s ease}.milestone-row:hover{background:var(--bg-hover)}.milestone-info{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.panel-milestone-diamond{width:12px;height:12px;flex-shrink:0}.panel-milestone-diamond .diamond-icon path{fill:#fff;stroke:var(--text-muted);stroke-width:1.5}.panel-milestone-diamond.blue .diamond-icon path{fill:#fff;stroke:var(--accent)}.panel-milestone-diamond.cyan .diamond-icon path{fill:#fff;stroke:#06b6d4}.panel-milestone-diamond.purple .diamond-icon path{fill:#fff;stroke:#8b5cf6}.panel-milestone-diamond.green .diamond-icon path{fill:#fff;stroke:var(--success)}.panel-milestone-diamond.red .diamond-icon path{fill:#fff;stroke:var(--warning)}.panel-milestone-diamond.filled .diamond-icon path{stroke-width:1.5}.panel-milestone-diamond.filled.green .diamond-icon path{fill:var(--success);stroke:var(--success)}.panel-milestone-diamond.filled.red .diamond-icon path{fill:var(--warning);stroke:var(--warning)}.panel-milestone-diamond.filled.blue .diamond-icon path{fill:var(--accent);stroke:var(--accent)}.panel-milestone-diamond.filled.purple .diamond-icon path{fill:#8b5cf6;stroke:#8b5cf6}.panel-milestone-diamond.filled.cyan .diamond-icon path{fill:#06b6d4;stroke:#06b6d4}.panel-schedule{display:flex;flex-direction:column;gap:var(--space-1)}.schedule-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-sm);transition:background .15s ease}.schedule-row:hover{background:var(--bg-hover)}.schedule-row.has-warning{background:#f59e0b14}.schedule-info{display:flex;align-items:center;gap:var(--space-2)}.schedule-name{font-size:var(--font-size-sm);color:var(--text-primary)}.schedule-actions{display:flex;align-items:center;gap:var(--space-1)}.schedule-row .lock-btn{transition:all .15s ease}.milestone-name{font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.milestone-date{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.milestone-date:hover{background:var(--bg-primary);border-color:var(--border)}.milestone-date .date-value{display:flex;align-items:center;gap:var(--space-1);color:var(--text-primary)}.milestone-date .empty-date{color:var(--text-muted);font-style:italic}.milestone-date.warning .date-value{color:var(--warning)}.milestone-date .warning-icon{color:var(--warning);flex-shrink:0}.duration-select{padding:2px 4px;font-size:11px;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-width:60px}.duration-select:hover{border-color:var(--border-hover)}.duration-select:focus{outline:none;border-color:var(--accent)}.milestone-row.has-warning{background:#f59e0b14}.milestone-date-editor{display:flex;align-items:center;gap:var(--space-2)}.milestone-date-editor input[type=date]{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none}.milestone-date-editor .done-btn{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:500;color:var(--accent);background:transparent;border:none;cursor:pointer}.milestone-actions{display:flex;align-items:center;gap:var(--space-1)}.lock-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;opacity:.4;transition:all .15s ease}.milestone-row:hover .lock-btn{opacity:1}.lock-btn:hover{background:var(--bg-primary);color:var(--text-secondary)}.lock-btn.locked{opacity:1;color:var(--accent)}.lock-btn.locked:hover{color:var(--accent-hover)}.tentative-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:0;cursor:pointer;transition:all .15s ease}.tentative-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-light)}.tentative-btn.tentative{color:var(--accent);border-color:var(--accent);border-style:solid;background:var(--accent-light)}.tentative-btn.tentative:hover{background:#2563eb26}.milestones-header{display:flex;align-items:center;gap:var(--space-2)}.milestones-header>span:first-child{flex:1}.sort-dropdown-wrapper{position:relative}.sort-toggle-btn{display:flex;align-items:center;gap:2px;padding:4px 6px;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.sort-toggle-btn:hover,.sort-toggle-btn.active{color:var(--text-primary);background:var(--bg-hover)}.sort-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-1);min-width:160px;box-shadow:0 4px 12px #0000001a;z-index:100}.sort-option{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .15s ease}.sort-option:hover{background:var(--bg-hover);color:var(--text-primary)}.sort-option.active{color:var(--accent)}.sort-option span{flex:1}.copy-dropdown-wrapper{position:relative}.copy-schedule-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.copy-schedule-btn:hover,.copy-schedule-btn.active{color:var(--text-primary);background:var(--bg-hover)}.copy-schedule-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-1);min-width:220px;max-width:280px;max-height:400px;overflow-y:auto;box-shadow:0 4px 12px #0000001a;z-index:100}.copy-schedule-dropdown .dropdown-section-label{padding:6px 12px 4px;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.copy-schedule-dropdown .dropdown-divider{height:1px;background:var(--border);margin:var(--space-2) 0}.copy-search-wrapper{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);color:var(--text-muted)}.copy-search-wrapper input{flex:1;border:none;background:transparent;font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.copy-search-wrapper input::placeholder{color:var(--text-muted)}.copy-project-list{max-height:180px;overflow-y:auto}.copy-schedule-dropdown .dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--text-primary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .15s ease}.copy-schedule-dropdown .dropdown-item:hover{background:var(--bg-hover)}.copy-project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-empty-message{padding:var(--space-3);font-size:var(--font-size-sm);color:var(--text-muted);text-align:center}.template-item{display:flex;align-items:center}.template-item .dropdown-item{flex:1}.template-delete-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:all .15s ease}.template-item:hover .template-delete-btn{opacity:1}.template-delete-btn:hover{color:var(--error);background:var(--error-light)}.save-template-btn{color:var(--text-secondary)!important}.save-template-input-wrapper{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.save-template-input-wrapper input{flex:1;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);outline:none}.save-template-input-wrapper input:focus{border-color:var(--accent)}.save-template-confirm{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:var(--accent);background:var(--accent-light);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.save-template-confirm:hover:not(:disabled){background:var(--accent);color:#fff}.save-template-confirm:disabled{opacity:.4;cursor:not-allowed}.add-milestone-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.add-milestone-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.add-milestone-wrapper{position:relative}.add-milestone-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:4px 0;min-width:200px;box-shadow:0 4px 12px #0000004d;z-index:100}.add-milestone-dropdown .dropdown-section-label{padding:6px 12px 4px;font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.add-milestone-dropdown .dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;color:var(--text-secondary);font-size:13px;text-align:left;cursor:pointer;transition:background .15s ease}.add-milestone-dropdown .dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.add-milestone-dropdown .dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.milestone-menu-container{position:relative}.milestone-menu-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;opacity:.4;transition:all .15s ease}.milestone-row:hover .milestone-menu-btn{opacity:1}.milestone-menu-btn:hover{background:var(--bg-primary);color:var(--text-secondary)}.milestone-menu-btn.active{opacity:1;background:var(--bg-primary);color:var(--text-primary)}.milestone-menu{position:absolute;top:100%;right:0;z-index:100;min-width:140px;padding:var(--space-1);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001a}.milestone-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--text-primary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background .15s ease}.milestone-menu-item:hover{background:var(--bg-hover)}.milestone-menu-item.delete{color:var(--error)}.milestone-menu-item.delete:hover{background:var(--error-light)}.milestone-name-input,.milestone-rename-input{flex:1;min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none}.milestone-name-input::placeholder{color:var(--text-muted)}.milestone-rename-input{max-width:150px}.milestone-add-row{background:var(--bg-hover)}.milestone-drag-handle{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-muted);cursor:grab;opacity:0;transition:opacity .15s ease;flex-shrink:0}.milestone-row:hover .milestone-drag-handle{opacity:.6}.milestone-drag-handle:hover{opacity:1!important;color:var(--text-secondary)}.milestone-drag-handle:active{cursor:grabbing}.milestone-row.dragging{background:var(--accent-light);box-shadow:0 0 0 1px var(--accent);z-index:10;opacity:.8}.milestone-row[draggable=true]{cursor:default}.set-date-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.set-date-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-primary)}.set-date-btn:disabled{opacity:.4;cursor:default}.milestone-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.milestone-action-btn.cancel{color:var(--text-muted)}.milestone-action-btn.cancel:hover{color:var(--text-primary);background:var(--bg-primary)}.milestone-action-btn.confirm{color:var(--text-muted)}.milestone-action-btn.confirm:hover:not(:disabled){color:var(--success);background:#0596691a}.milestone-action-btn.confirm:disabled{opacity:.4;cursor:default}.panel-footer{padding:var(--space-4);margin-top:auto}.archive-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.archive-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.archive-btn.unarchive:hover{color:var(--success)}.project-row.selected{background:var(--accent-light)}.timeline-row.selected{background:#2563eb0a}.project-bar.selected{border-color:var(--accent);background:#3b82f626;box-shadow:0 0 0 2px #3b82f633}.subrow-picker-backdrop{position:fixed;inset:0;z-index:1000}.subrow-picker-dropdown{position:fixed;transform:translate(-50%);min-width:180px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001f;overflow:hidden;z-index:1001}.subrow-picker-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--bg-secondary)}.subrow-picker-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.subrow-picker-date{font-size:var(--font-size-xs);color:var(--text-secondary)}.subrow-picker-options{padding:var(--space-1)}.subrow-picker-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:var(--radius-md);transition:background .1s}.subrow-picker-option:hover{background:var(--hover-bg)}.subrow-picker-option .option-icon{font-size:var(--font-size-sm);color:var(--text-muted);width:16px;text-align:center}.subrow-picker-option .option-label{font-size:var(--font-size-sm);color:var(--text-primary)}.subrow-picker-info{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);color:var(--text-muted);text-align:center;font-style:italic}.timeline-crew-picker-overlay{position:fixed;inset:0;z-index:1000}.timeline-crew-picker{position:fixed;width:296px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 20px #00000026;z-index:1001;overflow:hidden}.timeline-crew-picker .scheduling-panel-dropdown-menu{position:static;border:none;border-radius:0;box-shadow:none;background:none;z-index:auto;max-height:none}.crew-picker-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.crew-picker-date{font-weight:400;color:var(--text-muted)}.notification-bell,.notification-bell-btn{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:var(--error);border-radius:9px;font-size:10px;font-weight:600;color:#fff;display:flex;align-items:center;justify-content:center;line-height:1}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;z-index:1001;overflow:hidden;display:flex;flex-direction:column}.notification-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);flex-shrink:0}.notification-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.notification-mark-read{background:none;border:none;font-size:var(--font-size-xs);font-weight:500;color:var(--accent);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background .15s ease}.notification-mark-read:hover{background:var(--accent-light)}.notification-list{overflow-y:auto;flex:1}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-8);color:var(--text-muted)}.notification-empty span{font-size:var(--font-size-sm)}.notification-list>div+div:not(.notification-section-header){border-top:1px solid var(--border)}.notification-section-header+div{border-top:none!important}.notification-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:background .15s ease}.notification-item:hover{background:var(--bg-hover)}.notification-item-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--accent-light);border-radius:var(--radius-md);color:var(--accent);flex-shrink:0;margin-top:2px}.notification-item-content{flex:1;min-width:0}.notification-item-project{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-item-change{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:2px;line-height:1.4}.notification-field{color:var(--text-primary);font-weight:500}.notification-old-date{color:var(--text-muted);text-decoration:line-through}.notification-new-date{color:var(--accent);font-weight:500}.notification-item-time{font-size:10px;color:var(--text-muted);margin-top:var(--space-1)}.notification-item-dismiss{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s ease;flex-shrink:0}.notification-item:hover .notification-item-dismiss{opacity:1}.notification-item-dismiss:hover{background:var(--bg-normally-off);color:var(--text-primary)}.expand-toggle{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0;padding:0;margin-right:var(--space-1)}.expand-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.project-row-container{display:flex;flex-direction:column;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:.5;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.project-row.pin-animating{opacity:.6;transition:opacity .2s ease}.project-row.expanded{border-bottom-color:transparent}.milestone-subrows{display:flex;flex-direction:column}.milestone-subrow{height:32px;display:flex;align-items:center;padding-left:68px;padding-right:var(--space-4);border-bottom:1px solid var(--border-light);background:var(--bg-secondary)}.milestone-subrow-name{font-size:var(--font-size-sm);color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.milestone-subrow-crew{font-size:var(--font-size-xs);color:var(--accent);background:var(--accent-light);padding:1px 6px;border-radius:var(--radius-sm);font-weight:500}.timeline-row-container{display:flex;flex-direction:column}.timeline-row.expanded{border-bottom-color:transparent}.timeline-row.expanded .milestone-diamond{opacity:.4}.timeline-row.expanded .milestone-connector{opacity:.3}.timeline-row.expanded .project-bar{opacity:.5}.milestone-timeline-subrows{display:flex;flex-direction:column}.milestone-timeline-subrow{height:32px;position:relative;display:flex;border-bottom:1px solid var(--border-light);background:var(--bg-secondary)}.milestone-connector-vertical{position:absolute;bottom:50%;width:1px;border-left:1px dashed var(--milestone);opacity:.3;transform:translate(-50%);pointer-events:none;z-index:0}.milestone-connector-vertical.green{border-color:var(--success)}.milestone-connector-vertical.blue{border-color:var(--production-bar)}.milestone-connector-vertical.purple{border-color:var(--milestone)}.milestone-connector-vertical.cyan{border-color:#06b6d4}.milestone-connector-vertical.red{border-color:var(--warning)}.milestone-subrow-diamond{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;cursor:pointer;z-index:3;transition:transform .15s}.milestone-subrow-diamond:hover{transform:translate(-50%,-50%) scale(1.2)}.milestone-subrow-diamond .diamond-icon{width:100%;height:100%;fill:var(--bg-primary);stroke:var(--milestone);stroke-width:1.5}.milestone-subrow-diamond.filled .diamond-icon{fill:var(--milestone);stroke:var(--milestone)}.milestone-subrow-diamond.green .diamond-icon{stroke:var(--success)}.milestone-subrow-diamond.green.filled .diamond-icon{fill:var(--success);stroke:var(--success)}.milestone-subrow-diamond.blue .diamond-icon{stroke:var(--production-bar)}.milestone-subrow-diamond.blue.filled .diamond-icon{fill:var(--production-bar);stroke:var(--production-bar)}.milestone-subrow-diamond.purple .diamond-icon{stroke:var(--milestone)}.milestone-subrow-diamond.purple.filled .diamond-icon{fill:var(--milestone);stroke:var(--milestone)}.milestone-subrow-diamond.cyan .diamond-icon{stroke:#06b6d4}.milestone-subrow-diamond.cyan.filled .diamond-icon{fill:#06b6d4;stroke:#06b6d4}.milestone-subrow-diamond.red .diamond-icon{stroke:var(--warning)}.milestone-subrow-diamond.red.filled .diamond-icon{fill:var(--warning);stroke:var(--warning)}.milestone-subrow-diamond.tentative:not(.end-marker) .diamond-icon,.milestone-subrow-diamond.tentative:not(.end-marker) .diamond-icon path{stroke:#94a3b8!important;fill:#fff!important}.milestone-subrow-diamond.end-marker{width:10px;height:10px;top:calc(50% - 4px);transform:translate(-50%,-50%);z-index:5}.milestone-subrow-diamond.end-marker:hover{transform:translate(-50%,-50%) scale(1.2)}.milestone-subrow-diamond.end-marker .diamond-icon{fill:var(--milestone);stroke:none}.milestone-subrow-diamond.end-marker.green .diamond-icon{fill:var(--success)}.milestone-subrow-diamond.end-marker.blue .diamond-icon{fill:var(--production-bar)}.milestone-subrow-diamond.end-marker.purple .diamond-icon{fill:var(--milestone)}.milestone-subrow-diamond.end-marker.cyan .diamond-icon{fill:#06b6d4}.milestone-subrow-diamond.end-marker.red .diamond-icon{fill:var(--warning)}.milestone-duration-bar{position:absolute;top:50%;height:4px;background:var(--milestone);opacity:.5;z-index:1;border-radius:2px;transform:translateY(-50%);box-sizing:border-box}.milestone-subrow-diamond.draggable,.milestone-duration-bar.draggable{cursor:grab}.milestone-subrow-diamond.draggable:active,.milestone-duration-bar.draggable:active{cursor:grabbing}.milestone-duration-bar.draggable:hover{height:8px;opacity:.7}.milestone-duration-bar.green{background:var(--success)}.milestone-duration-bar.blue{background:var(--production-bar)}.milestone-duration-bar.purple{background:var(--milestone)}.milestone-duration-bar.cyan{background:#06b6d4}.milestone-duration-bar.red{background:var(--warning)}.milestone-duration-bar.tentative,.milestone-duration-bar.tentative.green,.milestone-duration-bar.tentative.blue,.milestone-duration-bar.tentative.purple,.milestone-duration-bar.tentative.cyan,.milestone-duration-bar.tentative.red{background:#94a3b8!important;opacity:.3;height:4px}.milestone-subrow-diamond.tentative:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;transform:translate(-50%,-50%) rotate(45deg);background:repeating-linear-gradient(-45deg,transparent,transparent 1.5px,rgba(148,163,184,.5) 1.5px,rgba(148,163,184,.5) 3.5px);pointer-events:none}.milestone-subrow-diamond.end-marker.tentative:after{display:none}.milestone-subrow-diamond.end-marker.tentative.red .diamond-icon{fill:var(--warning)!important;stroke:var(--warning)!important}.milestone-subrow-diamond.tentative.red:not(.end-marker) .diamond-icon,.milestone-subrow-diamond.tentative.red:not(.end-marker) .diamond-icon path{stroke:var(--warning)!important;fill:#fff!important}.timeline-body.timeline-v1 .milestone-subrow-diamond.tentative.red:not(.end-marker) .diamond-icon path{stroke:var(--warning)!important;fill:#fff!important}.milestone-connector-vertical.tentative{border-left-color:#94a3b8!important}.add-duration-btn.icon-only{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:0;cursor:pointer;transition:all .15s ease}.add-duration-btn.icon-only:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-light)}.duration-select.compact{width:auto;min-width:0;padding:2px 6px 2px 4px;font-size:10px;text-align:right;background:var(--bg-tertiary);border:1px solid var(--border-light)}.duration-control{display:flex;align-items:center;gap:2px;margin-left:auto}.reset-duration-btn{width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;border-radius:var(--radius-sm);transition:all .15s ease}.reset-duration-btn:hover{color:var(--error);background:var(--error-light)}.reset-duration-btn.inline{width:16px;height:16px;font-size:12px;margin-left:2px;flex-shrink:0}.milestone-date-range{display:flex;align-items:center;gap:0}.milestone-date-range .milestone-date{border-top-right-radius:0;border-bottom-right-radius:0;padding-right:8px}.milestone-date-range .reset-duration-btn.inline{height:26px;width:20px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg-tertiary);border:1px solid var(--border-light);border-left:none;margin-left:0}.add-enddate-wrapper{position:relative}.floating-date-picker{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-3);z-index:100;min-width:240px}.floating-date-picker .picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);padding:0 var(--space-1)}.floating-date-picker .picker-header button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:16px;font-weight:600}.floating-date-picker .picker-header button:hover{background:var(--bg-hover);color:var(--text-primary)}.floating-date-picker .picker-header span{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.floating-date-picker .picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--space-1)}.floating-date-picker .picker-weekdays span{font-size:10px;font-weight:600;color:var(--text-muted);text-align:center;padding:4px 0}.floating-date-picker .picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.floating-date-picker .picker-day{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);color:var(--text-primary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer}.floating-date-picker .picker-day:hover:not(.disabled):not(.empty){background:var(--accent-light);color:var(--accent)}.floating-date-picker .picker-day.off{color:var(--text-muted);background:repeating-linear-gradient(-45deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px)}.floating-date-picker .picker-day.disabled{color:var(--text-muted);opacity:.4;cursor:not-allowed}.floating-date-picker .picker-day.empty{cursor:default}.notification-wrapper,.notification-bell{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;background:var(--error);color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center;border-radius:999px;pointer-events:none}.notification-panel{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:440px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 12px 40px #0000001f,0 2px 8px #0000000f;z-index:200;display:flex;flex-direction:column;overflow:hidden}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.notification-panel-title{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.notification-panel-actions{display:flex;gap:12px}.notification-link{background:none;border:none;padding:0;font-size:var(--font-size-xs);color:var(--accent);cursor:pointer}.notification-link:hover{text-decoration:underline}.notification-item.unread{background:var(--accent-light)}.notification-item.unread:hover{background:#e0edff}.notification-item.batch{-webkit-user-select:none;user-select:none}.notification-item.child{padding-left:60px;padding-top:6px;padding-bottom:6px;background:var(--bg-secondary)}.notification-item.child:hover{background:var(--bg-hover)}.notification-item.child+.notification-item.child{border-top:1px solid var(--border)}.notification-icon-badge{width:32px;min-height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center}.notification-dot{display:none}.notification-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notification-message{font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.4;display:block}.notification-separator{color:var(--text-muted)}.notification-action{display:block}.notification-action:first-letter{text-transform:uppercase}.notification-meta{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.3}.notification-user{color:var(--text-secondary);font-weight:500}.notification-unread-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;align-self:center}.notification-expand{display:flex;align-items:center;flex-shrink:0;align-self:center}.notification-children .notification-message{color:var(--text-muted)}.notification-children .notification-date{color:var(--text-primary)}.notification-section-header{font-size:var(--font-size-xs);font-weight:600;color:var(--text-primary);padding:6px 16px}.notification-section-header.earlier{padding:12px 16px 0}.notification-empty{padding:40px 16px;text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.notification-link-inline{color:var(--accent);cursor:pointer;font-weight:500}.notification-link-inline:hover{text-decoration:underline}@keyframes row-highlight-flash{0%{background-color:#2563eb12}70%{background-color:#2563eb08}to{background-color:transparent}}.row-highlight-flash{animation:row-highlight-flash 3s ease-out forwards}
