@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: #19202C;--text-secondary: #6B7280;--text-muted: #9CA3AF;--accent: #2563EB;--accent-light: #EFF6FF;--accent-hover: #1D4ED8;--crew-chip-color: #1E53C5;--crew-chip-bg: #E8F0FE;--warning: #F59E0B;--warning-light: #FEF3C7;--error: #D42E15;--error-light: #FEE2E2;--success: #49BF55;--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: 66px;--row-height: 111px;--day-width: 40px;--radius-sm: 2px;--radius-md: 2px;--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:#19202c}.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}@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:#19202c}.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-table-page{height:100%;background:#fff;display:flex;flex-direction:column}.timeline-table-shell{height:100%;background:#fff;overflow:hidden;display:flex;flex-direction:column}.timeline-table-scroll{flex:1;overflow:auto;scrollbar-gutter:stable both-edges;background:#fff}.ttable-container{width:max-content;min-width:100%}.ttable-thead{display:flex;align-items:stretch;position:sticky;top:0;z-index:5;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.ttable-thead .mlist-th{display:flex;align-items:center;gap:4px;padding:0 12px;height:36px;color:var(--text-secondary);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;border-right:1px solid rgba(25,32,44,.06)}.ttable-thead .mlist-th-text{overflow:hidden;text-overflow:ellipsis;min-width:0}.ttable-thead .mlist-th:last-child{border-right:none}.ttable-thead .mlist-th:hover{background:var(--bg-hover)}.ttable-thead .mlist-th.dragging{background:#dbeafe!important}[data-group-key=plant]{--milestone-group-accent: #1E3A8A;--milestone-group-tint: rgba(37, 99, 235, .08);--milestone-group-tint-strong: rgba(37, 99, 235, .12)}[data-group-key=site]{--milestone-group-accent: #671198;--milestone-group-tint: rgba(103, 17, 152, .08);--milestone-group-tint-strong: rgba(103, 17, 152, .12)}[data-group-key=custom]{--milestone-group-accent: #4C5E78;--milestone-group-tint: rgba(76, 94, 120, .08);--milestone-group-tint-strong: rgba(76, 94, 120, .12)}.ttable-thead .mlist-th.ttable-group-start,.ttable-cell.ttable-group-start,.date-cell.milestone-group-start,.column-header-draggable.milestone-group-start{border-left:2px solid var(--milestone-group-accent, #111827);background-image:linear-gradient(90deg,var(--milestone-group-tint, transparent),transparent 64%)}.timeline-table-group-label,.column-header-draggable.milestone-group-start:before{position:absolute;top:2px;left:8px;font-size:8px;font-weight:700;line-height:1;color:var(--milestone-group-accent, #111827);text-transform:uppercase;letter-spacing:.04em}.timeline-table-group-label+.mlist-th-text{margin-top:8px}.column-header-draggable.milestone-group-start:before{content:attr(data-group-label)}.ttable-tbody{display:flex;flex-direction:column}.ttable-row{display:flex;align-items:stretch;border-bottom:1px solid rgba(25,32,44,.1)}.ttable-row:hover{background:var(--bg-hover)}.ttable-cell{position:relative;display:flex;align-items:center;padding:0 12px;min-height:58px;font-size:12px;font-weight:500;color:var(--text-primary);background:transparent;border-right:1px solid rgba(25,32,44,.06)}.ttable-cell:last-child{border-right:none}.ttable-cell.empty{color:var(--text-secondary)}.ttable-cell:hover:after{content:"";position:absolute;inset:0;background:#19202c0a;pointer-events:none}.ttable-cell.col-dragging{background:#eff6ff!important}.ttable-project-col{position:sticky;left:0;z-index:3;box-shadow:2px 0 #e2e8f0;background:#fff}.ttable-project-head{position:sticky!important;left:0;z-index:6!important;background:var(--bg-secondary)!important}.ttable-project-head-filter{display:inline-flex;align-items:center;margin-left:auto}.project-header-with-filter{display:flex;align-items:center;justify-self:stretch;gap:4px;width:100%;min-width:0;grid-column:1 / -1;padding:0;margin:0}.project-header-label{margin:0 auto 0 0;padding:0;font-size:14px;font-weight:700;letter-spacing:-.01em;line-height:1.2;color:var(--text-primary)}.project-header-with-filter .project-search-btn+.crew-list-filter-wrapper,.project-header-with-filter .project-search-expanded+.crew-list-filter-wrapper{margin-left:0}.project-header-label{font-size:12px;font-weight:600;color:var(--text-primary);letter-spacing:0;text-transform:none}.project-schedule-filter-wrapper{position:relative;margin-right:auto;min-width:0}.project-schedule-filter-trigger{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 6px;margin:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;letter-spacing:-.01em;line-height:1.2;transition:background .12s ease,border-color .12s ease}.project-schedule-filter-trigger:hover,.project-schedule-filter-trigger.is-open{background:var(--bg-secondary, #F8FAFC);border-color:var(--border, rgba(15, 23, 42, .12))}.project-schedule-filter-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-schedule-filter-chevron{display:inline-flex;align-items:center;color:var(--text-secondary);opacity:0;transition:opacity .12s ease}.project-schedule-filter-trigger:hover .project-schedule-filter-chevron,.project-schedule-filter-trigger.is-open .project-schedule-filter-chevron,.project-schedule-filter-trigger:focus-visible .project-schedule-filter-chevron{opacity:1}.project-schedule-filter-popover{position:fixed;z-index:100;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000001a;padding:6px;display:flex;flex-direction:column;gap:2px}.project-schedule-filter-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:7px 10px;border:0;border-radius:4px;background:transparent;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;line-height:1.25;text-align:left}.project-schedule-filter-item:hover{background:var(--bg-hover)}.project-schedule-filter-item.is-active{color:var(--text-primary);font-weight:600}.project-schedule-filter-check{color:#16a34a;flex-shrink:0}.sidebar-chrome-btn{box-sizing:border-box;width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:var(--radius-sm);background:var(--bg-primary, #FFFFFF);color:var(--text-secondary);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.sidebar-chrome-btn:hover:not(:disabled){background:var(--bg-secondary, #F8FAFC);border-color:#0f172a33;color:var(--text-primary)}.sidebar-chrome-btn:disabled{opacity:.45;cursor:not-allowed}.ttable-project-head-filter .crew-list-filter-btn,.project-header-with-filter .crew-list-filter-btn{box-sizing:border-box;width:22px;height:22px;background:var(--bg-primary, #FFFFFF);border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:var(--radius-sm);color:var(--text-secondary);opacity:1;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,border-color .12s ease,color .12s ease}.project-header-with-filter .crew-list-filter-wrapper,.project-header-with-filter .project-expansion-menu-wrapper,.project-header-with-filter .crew-list-filter-btn{flex-shrink:0}.ttable-project-head-filter .crew-list-filter-btn:hover,.project-header-with-filter .crew-list-filter-btn:hover{background:var(--bg-secondary, #F8FAFC);border-color:#0f172a33;color:var(--text-primary)}.ttable-project-head-filter .crew-list-filter-btn.active,.project-header-with-filter .crew-list-filter-btn.active{background:var(--bg-primary, #FFFFFF);border-color:#0053d4;color:#0053d4}.ttable-project-head-filter .crew-list-filter-btn.active:hover,.project-header-with-filter .crew-list-filter-btn.active:hover{background:#0053d40f}.ttable-project-name{padding:0 16px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.ttable-project-name>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;color:var(--text-primary)}.ttable-project-name>small{display:block;margin-top:2px;color:var(--text-secondary);font-size:11px;font-weight:400}.ttable-unscheduled-divider{cursor:pointer;-webkit-user-select:none;user-select:none;border-top:1px solid #E2E8F0}.ttable-unscheduled-divider:hover{background:var(--bg-hover)}.timeline-table-col-type{display:inline-flex;flex-shrink:0;padding:2px 6px;border-radius:4px;background:#e2e8f0;color:#64748b;font-size:9px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:0}.timeline-table-cell.clickable{cursor:pointer}.timeline-table-cell.clickable:hover:after{background:#19202c14}.timeline-table-cell.clickable:focus-visible{box-shadow:inset 0 0 0 2px #2563eb;outline:none}.timeline-table-date-value{display:inline-flex;align-items:center;color:var(--text-primary);font-size:12px;font-weight:500;line-height:1.3;white-space:nowrap}.timeline-table-date-empty{color:var(--text-secondary);font-size:12px}.timeline-table-cell-content{display:flex;flex-direction:column;gap:6px;white-space:nowrap;min-width:max-content}.timeline-table-duration-badge{margin-left:6px;color:var(--text-secondary);font-size:11px;font-weight:500}.timeline-table-crew-chips{display:flex;flex-wrap:wrap;gap:4px}.timeline-table-crew-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:600;box-sizing:border-box;white-space:nowrap}.timeline-table-cell.state-overdue .timeline-table-date-value{color:#ef4444}.timeline-table-set-date{display:none;color:#94a3b8;font-size:12px;font-weight:500;cursor:pointer}.timeline-table-cell:hover .timeline-table-set-date{display:inline}.timeline-table-cell .timeline-table-date-empty{min-height:20px;display:flex;align-items:center}.timeline-table-unscheduled-toggle{padding:10px 12px;display:flex;align-items:center;gap:6px;font-size:10px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.timeline-table-unscheduled-count{color:var(--text-secondary);font-size:10px;font-weight:500}.timeline-table-empty{height:100%;display:grid;place-items:center;color:#64748b;font-size:14px;font-weight:500}.connection-status-banner{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;line-height:1.35;z-index:1300;animation:connection-banner-slide-in .25s ease-out}@keyframes connection-banner-slide-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.connection-status-banner.disconnected{background:#b91c1c;color:#fff;box-shadow:0 2px 8px #7f1d1d4d}.connection-status-banner.reconnected{background:#16a34a;color:#fff;box-shadow:0 2px 8px #15803d4d;animation:connection-banner-slide-in .25s ease-out,connection-banner-fade-out .5s ease-in 2.5s forwards}@keyframes connection-banner-fade-out{0%{opacity:1}to{opacity:0}}.connection-status-icon{font-size:14px;flex-shrink:0}.connection-status-text{white-space:nowrap}.save-error-toast{position:fixed;left:50%;bottom:16px;transform:translate(-50%);max-width:min(92vw,360px);padding:8px 12px;border-radius:8px;background:#b91c1c;color:#fff;font-size:12px;font-weight:600;line-height:1.35;box-shadow:0 8px 20px #7f1d1d59;z-index:1200;pointer-events:none}.milestone-created-toast{position:fixed;right:16px;bottom:16px;padding:8px 12px;border-radius:8px;background:#16a34ad1;color:#fff;font-size:12px;font-weight:600;line-height:1.35;box-shadow:0 8px 20px #15803d47;z-index:1200;pointer-events:none}.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:2px;width:42%}.timeline-skeleton-date-heading{height:12px;border-radius:2px;width:100%}.timeline-skeleton-project-name{height:14px;border-radius:2px}.timeline-skeleton-date-pill{height:22px;border-radius:2px}.timeline-skeleton-month-block{height:16px;border-radius:2px;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;flex-direction:column;background:var(--bg-primary);flex-shrink:0}.header-title-bar{display:flex;align-items:center;justify-content:space-between;padding:16px var(--space-4);background:#19202c}.header-title-bar .header-title{color:#fff}.header-title-group{display:flex;align-items:center;gap:12px}.header-title-bar .app-switcher-trigger{color:#ffffffd9;border-color:transparent}.header-title-bar .app-switcher-trigger:hover{background:#ffffff1a;color:#fff;border-color:#ffffff26}.header-title-bar .app-switcher-trigger[aria-expanded=true]{background:#ffffff29;color:#fff;border-color:#ffffff40}.header-title-bar .app-switcher-title{color:#fff}.header-title-actions{display:flex;align-items:center;gap:var(--space-3)}.header-title-actions .btn-secondary{background:transparent;border-color:#fff3;color:#fff}.header-title-actions .btn-secondary:hover{background:#ffffff1a}.header-title-actions .header-icon-btn{background:#ffffff24;border:none;color:#fff}.header-title-actions .header-icon-btn:hover{background:#ffffff38}.header-title-actions .header-icon-btn.has-unread{background:#f8717152;color:#ef4444}.header-title-actions .header-icon-btn.has-unread:hover{background:#f871716b;color:#ef4444}.header-title-actions .notification-badge{background:#ef4444}.header-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px var(--space-4);border-bottom:1px solid var(--border)}.header-left{display:flex;align-items:center;gap:12px}.header-right{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}.header-title{display:inline-flex;align-items:center;font-family:var(--font-family);font-size:20px;font-weight:600;color:#19202c;line-height:28px}.view-mode-toggle{display:inline-flex;align-items:stretch;border:1px solid #E8EAED;border-radius:2px;overflow:hidden;background:#fff;height:28px;box-sizing:border-box}.view-mode-btn{display:inline-flex;align-items:center;gap:4px;border:none;background:#fff;color:#19202c;font-size:var(--font-size-sm);font-weight:500;line-height:16px;padding:0 8px;cursor:pointer;transition:color .15s ease,background .15s ease}.view-mode-btn+.view-mode-btn{border-left:1px solid #E8EAED}.view-mode-btn:hover:not(.active){background:#f8fafc}.view-mode-btn.active{color:#0053d4}.header-tabs-row{display:flex;align-items:stretch;background:var(--bg-primary);border-bottom:1px solid var(--border)}.page-tabs{display:flex;align-items:stretch;gap:0;padding:0 var(--space-4);flex:1;min-width:0}.crew-schedule-search{display:flex;align-items:center;gap:8px;padding:0 8px;margin:auto 16px;background:#f0f2f5;border-radius:2px;border:2px solid transparent;height:30px;box-sizing:border-box;min-width:240px;transition:background .15s,border-color .15s}.crew-schedule-search:focus-within{background:#fff;border-color:#0053d4}.crew-schedule-search .search-icon{color:#19202c;flex-shrink:0}.crew-schedule-search input{border:none;background:transparent;padding:0;font-size:12px;font-weight:500;color:var(--text-primary);outline:none;flex:1;min-width:0}.crew-schedule-search input::placeholder{color:#9ca3af}.crew-schedule-search .search-clear{display:flex;align-items:center;justify-content:center;width:12px;height:12px;background:none;border:none;padding:0;cursor:pointer;color:#6b7280;flex-shrink:0}.crew-schedule-search .search-clear:hover{color:#19202c}.page-tab{display:inline-flex;align-items:center;gap:6px;padding:12px 16px;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;line-height:16px;cursor:pointer;position:relative;transition:color .15s ease}.page-tab:hover:not(.active){color:var(--text-primary)}.page-tab.active{color:#0053d4}.page-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#0053d4;border-radius:1px 1px 0 0}.crew-mgmt-grid-row{display:grid!important;gap:8px}.crew-tag-square{display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}.crew-tag-cell{display:inline-flex;align-items:center;gap:8px;font-size:var(--font-size-sm);color:var(--text-secondary)}.crew-actions-cell{display:flex!important;justify-content:flex-end!important;position:sticky;right:0;background:inherit;padding-right:16px!important;z-index:1}.crew-modal-tag-wrapper{position:relative}.crew-modal-tag-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;background:var(--bg-primary);border:1px solid var(--border);border-top:none;border-radius:0 0 2px 2px;box-shadow:0 4px 12px #00000014;max-height:180px;overflow-y:auto}.crew-modal-tag-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;text-align:left}.crew-modal-tag-option:hover{background:var(--bg-secondary)}.crew-modal-tag-create{border-top:1px solid var(--border-light, #F3F4F6)}.crew-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.crew-modal{background:var(--bg-primary);border-radius:2px;width:420px;max-width:90vw;box-shadow:0 8px 32px #00000029}.crew-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.crew-modal-header h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.crew-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:2px}.crew-modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.crew-modal-body{padding:20px 24px}.crew-modal-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);margin-bottom:6px}.crew-modal-input{width:100%;padding:10px 12px;font-family:var(--font-family);font-size:14px;color:var(--text-primary);background:#f3f4f6;border:2px solid transparent;border-radius:2px;outline:none;box-sizing:border-box;transition:border-color .15s ease,background .15s ease}.crew-modal-input:focus{background:var(--bg-primary);border-color:var(--accent)}.crew-modal-input::placeholder{color:var(--text-secondary)}.crew-modal-error{font-size:11px;color:#d42e15;margin-top:4px}.crew-modal-footer{padding:0 24px 20px}.crew-modal-submit{width:100%;padding:10px;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.crew-modal-submit:disabled{opacity:.4;cursor:not-allowed}.crew-modal-color-btn.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--text-primary)}.crew-row-menu-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.crew-row-menu-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);border-radius:2px;cursor:pointer;opacity:0;transition:all .1s ease}.mlist-row:hover .crew-row-menu-btn,.crew-mgmt-grid-row:hover .crew-row-menu-btn{opacity:1}.crew-row-menu-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.crew-row-menu-dropdown{position:fixed;z-index:1000;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;box-shadow:0 4px 12px #0000001a;min-width:160px;padding:4px 0}.crew-row-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;text-align:left}.crew-row-menu-item:hover{background:var(--bg-secondary)}.crew-row-menu-item.crew-row-menu-delete{color:#d42e15}.crew-row-menu-item.crew-row-menu-delete:hover{background:#fef2f2}.crew-mgmt-topbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0 var(--space-4);margin-top:-45px;height:45px;pointer-events:none}.crew-mgmt-topbar>*{pointer-events:auto}.crew-mgmt-search input{border:none;outline:none;background:transparent;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--text-primary);width:100%;line-height:20px}.crew-mgmt-search input::placeholder{color:var(--text-secondary)}.mlist-row:hover .crew-mgmt-actions,.crew-mgmt-grid-row:hover .crew-mgmt-actions{opacity:1}.crew-mgmt-actions button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);border-radius:2px;cursor:pointer;transition:all .15s ease}.crew-mgmt-actions button:hover{background:var(--bg-secondary);color:var(--text-primary)}.crew-mgmt-actions button.crew-delete-btn:hover{color:#dc2626;background:#fef2f2}.crew-mgmt-add-row input{border:1px solid var(--accent);border-radius:2px;padding:4px 8px;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;width:200px}.crew-mgmt-sidebar-card{padding:16px;border-bottom:1px solid var(--border)}.crew-mgmt-sidebar-card h4{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:0 0 8px}.crew-mgmt-sidebar-stat{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.crew-mgmt-sidebar-stat span:last-child{font-weight:600;color:var(--text-primary)}.crew-confirm-delete{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fef2f2;border-bottom:1px solid #FECACA;font-size:var(--font-size-sm);color:#dc2626}.crew-confirm-delete button{font-family:var(--font-family);font-size:var(--font-size-xs, 11px);font-weight:500;padding:2px 8px;border-radius:2px;cursor:pointer;border:1px solid}.crew-confirm-delete .crew-confirm-yes{background:#dc2626;color:#fff;border-color:#dc2626}.crew-confirm-delete .crew-confirm-no{background:#fff;color:var(--text-primary);border-color:var(--border)}.crew-timeline-wrapper{display:flex;flex:1;min-height:0;height:100%;background:var(--bg-primary)}.crew-timeline-sidebar{flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.crew-timeline-sidebar-header{padding:0 12px;font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;flex-shrink:0}.crew-timeline-main .timeline-cell:hover{background:transparent!important}.crew-timeline-main .timeline-cell.normally-off:hover{background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.08) 3px,rgba(148,163,184,.08) 6px)!important}.crew-timeline-main .timeline-row .timeline-cell:after{display:none}.crew-timeline-sidebar-row.hovered{background:var(--bg-secondary)}.crew-timeline-main .timeline-row.crew-row-hovered{background:#00000005}.crew-timeline-sidebar-row[draggable=true]{cursor:grab}.crew-timeline-sidebar-row[draggable=true]:active{cursor:grabbing}.crew-timeline-sidebar-row.dragging{opacity:.4}.crew-timeline-sidebar-row.drop-above{box-shadow:inset 0 2px 0 0 var(--accent)}.crew-timeline-sidebar-row.drop-below{box-shadow:inset 0 -2px 0 0 var(--accent)}.crew-timeline-sidebar-row{display:flex;align-items:center;padding:0 12px;border-bottom:1px solid var(--border-light, #F3F4F6)}.crew-timeline-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.crew-timeline-main .timeline-body{scrollbar-width:none}.crew-timeline-main .timeline-body::-webkit-scrollbar{display:none}.crew-timeline-main .timeline-body{cursor:grab}.crew-timeline-main .timeline-body:active{cursor:grabbing}.crew-timeline-sidebar-body{flex:1;overflow:hidden}.crew-timeline-sidebar-info{display:flex;flex-direction:column;gap:1px}.crew-timeline-sidebar-name{font-size:13px;font-weight:600;color:var(--text-primary)}.crew-timeline-task-count{font-size:11px;font-weight:400;color:var(--text-secondary)}.crew-timeline-sidebar-row.drop-target,.timeline-row.crew-drop-target{background:#eff6ff}.crew-event-bar{display:flex;align-items:center;overflow:hidden}.crew-event-bar[draggable=true]:active{cursor:grabbing;opacity:.7}.crew-event-bar-content{display:flex;flex-direction:column;gap:1px;padding:3px 8px;min-width:0;overflow:hidden;width:100%}.crew-event-bar-top{display:flex;align-items:center;gap:4px}.crew-event-bar-milestone{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-event-bar-badge{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;font-size:10px;font-weight:600;opacity:.7}.crew-event-bar-project{font-size:10px;font-weight:400;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-calendar-cell.outside{background:var(--bg-secondary)}.crew-calendar-cell.weekend{background:#fafbfc}.crew-calendar-cell.today{background:#f0f6ff}.crew-calendar-date-num.today{background:#0053d4;color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0}.crew-list-selector{font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;color:#111827;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;padding:0 10px;height:30px;cursor:pointer;appearance:none;min-width:140px;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.crew-list-selector:focus{outline:none;border-color:var(--accent)}.crew-multi-select{position:relative}.crew-multi-dropdown{position:absolute;top:100%;left:0;z-index:100;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;box-shadow:0 4px 12px #00000014;min-width:180px;max-height:240px;overflow-y:auto;margin-top:2px}.crew-multi-option{display:flex;align-items:center;gap:8px;width:100%;padding:7px 12px;border:none;background:transparent;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);cursor:pointer;text-align:left}.crew-multi-option:hover{background:var(--bg-secondary)}.crew-multi-option:first-child{border-bottom:1px solid var(--border-light, #F3F4F6);font-weight:500}.crew-checkbox{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1.5px solid var(--border);border-radius:2px;background:var(--bg-primary);flex-shrink:0;transition:all .1s ease}.crew-checkbox.checked{background:#0053d4;border-color:#0053d4}.crew-checkbox.checked:after{content:"";width:8px;height:5px;border-left:2px solid white;border-bottom:2px solid white;transform:rotate(-45deg) translateY(-1px)}.crew-schedule-wrapper{display:flex;flex-direction:row;height:calc(100vh - 120px);background:var(--bg-primary);position:relative}.crew-schedule-main{flex:1;min-width:0;display:flex;flex-direction:column}.crew-schedule-toolbar{display:flex;align-items:center;gap:12px;padding:6px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.crew-schedule-toolbar-filters{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.crew-schedule-toolbar .view-mode-toggle{height:30px}.crew-schedule-toolbar .nav-arrow{width:30px;height:30px;color:#111827}.crew-schedule-toolbar .current-month,.crew-schedule-toolbar .header-action-btn{height:30px;color:#111827}.crew-schedule-toolbar .crew-list-selector{height:30px}.crew-schedule-toolbar .crew-list-filter-btn,.crew-schedule-toolbar .view-mode-btn{color:#111827}.crew-schedule-toolbar .view-mode-btn.active{color:#0053d4}.crew-schedule-split{display:flex;flex:1;min-height:0;background:var(--bg-primary)}.crew-list-toggle-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;box-sizing:border-box;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);cursor:pointer;color:var(--text-secondary);transition:background .1s,color .1s}.crew-list-toggle-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.crew-list-toggle-btn.active{background:#f2f6fd;color:#0053d4;border-color:#c5d8f8}.crew-list-toggle-btn:disabled{cursor:not-allowed;background:var(--bg-secondary);color:var(--text-muted);border-color:var(--border)}.crew-list-toggle-btn:disabled:hover{background:var(--bg-secondary);color:var(--text-muted)}.header-settings-wrapper{position:relative}.header-settings-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:280px;padding:12px 14px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 32px #0f172a29;max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain}.header-settings-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.header-settings-row:has(.header-settings-segmented){flex-direction:column;align-items:stretch;gap:8px}.header-settings-row:has(.header-settings-segmented) .header-settings-segmented{align-self:flex-start}.header-settings-row+.header-settings-row{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.header-settings-row.disabled{opacity:.45;cursor:not-allowed}.header-settings-row.disabled .header-settings-label,.header-settings-row.disabled .header-settings-switch{cursor:not-allowed}.header-settings-label{display:flex;flex-direction:column;gap:2px;font-size:13px;font-weight:500;color:var(--text-primary);cursor:pointer}.header-settings-hint{font-size:11px;font-weight:400;color:var(--text-muted);line-height:1.35}.header-settings-switch{flex-shrink:0;width:34px;height:20px;padding:2px;border:none;border-radius:10px;background:var(--border);cursor:pointer;transition:background .15s ease;position:relative}.header-settings-switch.on{background:var(--accent)}.header-settings-switch-thumb{display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s ease;transform:translate(0)}.header-settings-switch.on .header-settings-switch-thumb{transform:translate(14px)}.header-settings-segmented{flex-shrink:0;display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg-secondary, #f5f5f5)}.header-settings-segmented-btn{border:none;background:transparent;padding:4px 10px;font-size:11px;font-weight:500;color:var(--text-secondary, #555);cursor:pointer;transition:background .15s ease,color .15s ease}.header-settings-segmented-btn+.header-settings-segmented-btn{border-left:1px solid var(--border)}.header-settings-segmented-btn:hover{background:#2563eb0f}.header-settings-segmented-btn.active{background:var(--accent);color:#fff}.creation-drag-preview{position:absolute;z-index:6;border-radius:2px;background:#2563eb14;outline:1.5px dashed rgba(37,99,235,.5);outline-offset:1px;pointer-events:none}.creation-drag-preview.picker-focused{background:#2563eb29;outline:1.5px solid rgba(37,99,235,.7);box-shadow:0 0 0 3px #2563eb1a,0 2px 10px #2563eb2e;animation:picker-focused-pulse 1.6s ease-in-out infinite}@keyframes picker-focused-pulse{0%,to{box-shadow:0 0 0 3px #2563eb1a,0 2px 10px #2563eb2e}50%{box-shadow:0 0 0 5px #2563eb24,0 2px 14px #2563eb42}}.crew-list-resize-handle{width:4px;cursor:col-resize;background:transparent;transition:background .15s;position:absolute;top:0;bottom:0;z-index:10}.crew-list-resize-handle:hover,.crew-list-resize-handle:active{background:#c5d8f8}.crew-schedule-left{flex:none;display:flex;flex-direction:column;overflow-y:auto;background:#fff;border-left:1px solid var(--border);scrollbar-width:thin;scrollbar-color:transparent transparent}.crew-schedule-left:hover{scrollbar-color:rgba(0,0,0,.2) transparent}.crew-list-panel-header{display:flex;align-items:center;gap:8px;padding:6px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.crew-list-panel-header .crew-list-close-btn{margin-left:auto}.crew-list-date-filter{display:inline-flex;align-items:center;gap:6px;font-size:12px;border-radius:4px;padding:4px 8px}.crew-list-date-filter.active{font-weight:600;color:var(--text-primary);background:#f0f2f5}.crew-list-date-filter button{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:#6b7280}.crew-list-date-filter button:hover{color:#19202c}.crew-list-filter-chips{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden;flex-wrap:wrap;margin-right:8px}.crew-list-filter-wrapper{position:relative}.header-icon-btn,.crew-list-filter-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);cursor:pointer;color:var(--text-secondary);transition:all .15s}.header-icon-btn:hover,.crew-list-filter-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.header-icon-btn.active,.crew-list-filter-btn.active{color:#0053d4;border-color:#0053d4;background:#f0f4ff}.crew-list-filter-popover{position:fixed;z-index:100;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000001a;padding:16px;display:flex;flex-direction:column;gap:16px;min-width:200px;max-height:80vh;overflow-y:auto}.project-expansion-menu{min-width:172px;gap:4px;padding:6px}.project-expansion-menu-item{width:100%;border:0;border-radius:4px;background:transparent;color:var(--text-primary);cursor:pointer;font-size:12px;font-weight:500;line-height:1.25;padding:7px 8px;text-align:left}.project-expansion-menu-item:hover{background:var(--bg-hover)}.project-expansion-menu-btn:disabled{cursor:not-allowed;opacity:.45}.header-tabs-row .crew-list-filter-wrapper{align-self:center;margin-right:16px}.crew-list-filter-section>label{display:block;font-size:10px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.crew-list-filter-checkbox-row input[type=checkbox]{margin:0;cursor:pointer}.crew-list-filter-section select{width:100%;padding:0 28px 0 10px;height:30px;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:#111827;outline:none;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 256 256'%3E%3Cpath d='M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z' fill='%23111827'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.crew-list-filter-section select:focus{border-color:#0053d4}.crew-list-filter-section input[type=text]{width:100%;padding:0 10px;height:30px;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:#111827;outline:none;box-sizing:border-box}.crew-list-filter-section input[type=text]:focus{border-color:#0053d4}.filter-multi-select{position:relative}.filter-multi-select .crew-list-selector{min-width:0;width:100%}.filter-multi-select .crew-multi-dropdown{position:fixed;z-index:200;max-height:200px;overflow-y:auto;scrollbar-width:thin;min-width:200px}.crew-list-clear-filters{border:none;background:none;font-size:11px;color:#0053d4;cursor:pointer;padding:2px 4px;white-space:nowrap}.crew-list-clear-filters:hover{text-decoration:underline}.crew-list-sort-option.active{color:#0053d4;font-weight:600}.crew-list-close-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:2px;border:1px solid var(--border);background:#fff;cursor:pointer;color:#111827;flex-shrink:0}.crew-list-close-btn:hover{background:#f3f4f6;color:#111827}.crew-schedule-right{scrollbar-width:thin;scrollbar-color:transparent transparent}.crew-schedule-right:hover{scrollbar-color:rgba(0,0,0,.2) transparent}.crew-schedule-right{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;border-right:none}.cs-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 24px;text-align:center;color:#9ca3af;font-size:12px}.cs-list-empty-icon{color:#d1d5db}.cs-list-day-group{padding:0 16px}.cs-list-day-heading{display:flex;align-items:center;gap:8px;height:28px;margin:0 -16px;padding:0 16px;background:var(--bg-secondary)}.cs-list-day-label{font-size:10px;font-weight:700;color:#19202c;text-transform:uppercase;letter-spacing:.05em}.cs-list-today-badge{font-size:11px;font-weight:600;color:#4b5563;background:#e5e7eb;border-radius:4px;padding:2px 7px;letter-spacing:.03em}.cs-list-item{display:flex;align-items:center;gap:8px;min-height:72px;padding:10px 0;box-sizing:border-box;border-bottom:1px solid var(--border);cursor:pointer;position:relative}.cs-list-item--no-border{border-bottom:none}.cs-list-item--full-border{margin:0 -16px;padding-left:16px;padding-right:16px}.cs-list-bar{width:3px;height:56px;border-radius:2px;flex-shrink:0;position:relative;z-index:1}.cs-list-item:hover:before,.cs-list-item.highlighted:before{content:"";position:absolute;inset:0 -16px;background:#e5e7eb;z-index:0}.cs-list-item--full-border:hover:before,.cs-list-item--full-border.highlighted:before{left:0;right:0}.cs-list-item>*{position:relative;z-index:1}.cs-list-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cs-list-item-top{display:flex;align-items:baseline;gap:6px}.cs-list-project-name{font-size:12px;font-weight:600;color:#19202c}.cs-list-project-code{font-size:12px;color:#9ca3af}.cs-list-milestone-name{font-size:12px;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;min-width:0}.cs-list-address{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;min-width:0}.cs-drilldown{display:flex;flex-direction:column;padding:0}.cs-drilldown-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-primary, #ffffff);z-index:2}.cs-drilldown-back{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:4px 6px;margin:0;font-size:12px;font-weight:500;color:#4b5563;cursor:pointer;border-radius:4px}.cs-drilldown-back:hover{background:#f3f4f6;color:#111827}.cs-drilldown-section{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.cs-drilldown-section:last-child{border-bottom:none}.cs-drilldown-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.cs-drilldown-milestone-name{font-size:14px;font-weight:600;color:#111827;line-height:1.3}.cs-drilldown-project-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.cs-drilldown-project-name{font-size:12px;font-weight:600;color:#111827}.cs-drilldown-project-code{font-size:12px;color:#9ca3af}.cs-drilldown-address{font-size:12px;color:#0053d4;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.cs-drilldown-address:hover{text-decoration:underline}.cs-drilldown-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280;cursor:pointer;border-radius:4px;padding:2px 0}.cs-drilldown-meta:hover .cs-drilldown-date-link{text-decoration:underline}.cs-drilldown-date-link{color:#111827}.cs-drilldown-meta-item{display:inline-flex;align-items:center;gap:4px}.cs-drilldown-meta-divider{color:#d1d5db}.cs-drilldown-crew-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.cs-drilldown-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.cs-drilldown-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}.cs-drilldown-section-count{font-size:11px;font-weight:500;color:#9ca3af}.cs-drilldown-subtask-list{display:flex;flex-direction:column;gap:6px}.cs-drilldown-subtask{display:flex;align-items:center;gap:8px;font-size:12px;color:#111827}.cs-drilldown-subtask.completed .cs-drilldown-subtask-label{color:#9ca3af;text-decoration:line-through}.subtask-checkbox.readonly{cursor:default;pointer-events:none}.cs-drilldown-subtask-label{flex:1;min-width:0}.cs-drilldown-subtask-due{display:inline-flex;align-items:center;gap:3px;color:#6b7280;font-size:11px;font-weight:500;white-space:nowrap}.cs-drilldown-readiness-list{display:flex;flex-direction:column;gap:6px}.cs-drilldown-readiness-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f9fafb;border:1px solid var(--border-light, #F3F4F6);border-radius:6px;position:relative;overflow:hidden}.cs-drilldown-readiness-bar{width:3px;align-self:stretch;border-radius:2px;flex-shrink:0}.cs-drilldown-readiness-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cs-drilldown-clickable{cursor:pointer;transition:background .1s ease,border-color .1s ease}.cs-drilldown-clickable:hover{background:#f2f6fd;border-color:#bfdbfe}.cs-drilldown-readiness-name{font-size:12px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cs-drilldown-readiness-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:#6b7280}.cs-drilldown-show-more{background:none;border:none;padding:4px 0;font-size:12px;font-weight:500;color:#0053d4;cursor:pointer;text-align:left;align-self:flex-start}.cs-drilldown-show-more:hover{text-decoration:underline}.crew-cal-view-btn.active{background:#f2f6fd;color:#0053d4;font-weight:600}.crew-cal-view-btn:hover:not(.active){background:var(--bg-secondary)}.crew-week-view{flex:1;display:flex;flex-direction:column;overflow:auto}.crew-week-header{display:grid;grid-template-columns:100px repeat(7,1fr);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1;background:var(--bg-primary)}.crew-week-sidebar-header{border-right:1px solid var(--border)}.crew-week-day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 0;border-right:1px solid var(--border-light, #F3F4F6);cursor:pointer;transition:background .1s}.crew-week-day-header:hover,.crew-week-day-header.selected{background:#e8f0fe}.crew-week-day-header.off{color:var(--text-muted, #C1C9D4)}.crew-week-day-name{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:inherit}.crew-week-day-num{font-size:16px;font-weight:600;color:inherit}.crew-week-day-num.today{background:#0053d4;color:#fff;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}.crew-week-row{display:grid;grid-template-columns:100px 1fr;border-bottom:1px solid var(--border-light, #F3F4F6);min-height:80px}.crew-week-sidebar{display:flex;align-items:center;padding:0 10px;font-size:12px;font-weight:500;color:#4c5e78;border-right:1px solid var(--border)}.crew-week-cells-wrapper{display:grid;grid-template-columns:repeat(7,1fr);grid-column:2 / -1;position:relative;min-height:80px}.crew-week-cell{border-right:1px solid var(--border-light, #F3F4F6);grid-row:1}.crew-week-cell.normally-off{background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.08) 3px,rgba(148,163,184,.08) 6px)}.crew-week-cell.today:not(.normally-off){background:transparent}.crew-week-holiday-row{display:grid;grid-template-columns:100px repeat(7,1fr);border-bottom:1px solid var(--border-light, #F3F4F6);min-height:24px;background:var(--bg-secondary)}.crew-week-sidebar-label{display:flex;align-items:center;padding:0 12px;font-size:10px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-right:1px solid var(--border-light, #F3F4F6)}.crew-week-holiday-cell{border-right:1px solid var(--border-light, #F3F4F6);display:flex;align-items:center;justify-content:center}.crew-week-holiday-cell.has-holiday{background:#e5e7eb}.crew-week-holiday-label{font-size:10px;font-weight:600;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.crew-week-event{display:flex;flex-direction:column;gap:0;padding:3px 8px;border-radius:2px;border-left:3px solid transparent;font-size:10px;line-height:14px;cursor:pointer;overflow:hidden;position:relative;grid-row:1;align-self:start;margin:4px 2px;z-index:1;transition:filter .1s ease}.crew-week-event:hover{filter:brightness(.95)}.crew-week-event.highlighted{outline:2px solid #0053D4;outline-offset:-1px;z-index:2}.crew-week-event.continues-right{border-radius:2px 0 0 2px;margin-right:-2px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);padding-right:16px}.crew-week-event.continues-left{border-radius:0 2px 2px 0;margin-left:0;border-left-width:0}.crew-cal-day-names{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-primary, #ffffff);z-index:5}.crew-cal-day-name{padding:6px 0;text-align:center;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.crew-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1}.crew-cal-cell{min-height:90px;border-right:1px solid var(--border-light, #F3F4F6);border-bottom:1px solid var(--border-light, #F3F4F6);padding:2px 4px;display:flex;flex-direction:column;cursor:pointer;transition:background .1s ease}.crew-cal-cell:nth-child(7n){border-right:none}.crew-cal-cell:hover:not(:has(.crew-cal-event:hover)){background:#f0f4ff;cursor:pointer}.crew-cal-cell.normally-off:hover:not(:has(.crew-cal-event:hover)){background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(0,83,212,.08) 3px,rgba(0,83,212,.08) 6px)}.crew-cal-cell.outside{background:var(--bg-secondary)}.crew-cal-cell.normally-off{background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.08) 3px,rgba(148,163,184,.08) 6px)}.crew-cal-cell.today{background:#f0f6ff}.crew-cal-cell.today.normally-off{background:repeating-linear-gradient(-45deg,#f0f6ff,#f0f6ff 3px,#0053d414 3px 6px)}.crew-cal-cell.selected{box-shadow:inset 0 0 0 2px var(--accent)}.crew-cal-date-row{display:flex;align-items:center;justify-content:space-between}.crew-cal-holiday-label{font-size:9px;font-weight:600;color:#4b5563;background:#e5e7eb;padding:1px 4px;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.crew-cal-date-num{font-size:12px;font-weight:500;color:var(--text-secondary);padding:2px 4px;line-height:18px;align-self:flex-end}.crew-cal-date-num.today{background:#0053d4;color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-weight:600}.crew-cal-events{display:flex;flex-direction:column;gap:3px;flex:1;overflow:visible;margin-top:2px}.crew-cal-event{display:flex;flex-direction:column;gap:0;padding:3px 8px;border-radius:2px;font-size:10px;line-height:14px;cursor:pointer;overflow:hidden;border-left:3px solid transparent;transition:filter .1s ease;position:relative;height:34px;flex-shrink:0;box-sizing:border-box}.crew-cal-event:before{content:"";position:absolute;inset:0;border-top:1px solid var(--event-border, transparent);border-bottom:1px solid var(--event-border, transparent);border-radius:inherit;pointer-events:none}.crew-cal-event:not(.multiday):before,.crew-cal-event.multiday.start:before,.crew-cal-event.multiday.week-start:before{border-left:1px solid var(--event-border, transparent)}.crew-cal-event:not(.multiday):before,.crew-cal-event.multiday.end:before,.crew-cal-event.multiday.week-end:before{border-right:1px solid var(--event-border, transparent)}.crew-cal-event-placeholder{height:34px;flex-shrink:0;pointer-events:none;box-sizing:border-box}.crew-cal-event.highlighted{z-index:2;outline:none!important;overflow:visible}.crew-cal-event.highlighted:after{content:"";position:absolute;inset:-1px;border-top:2px solid #0053D4;border-bottom:2px solid #0053D4;pointer-events:none;z-index:3}.crew-cal-event.highlighted:not(.multiday):after,.crew-cal-event.multiday.highlighted.start.end:after{border-left:2px solid #0053D4;border-right:2px solid #0053D4}.crew-cal-event.multiday.highlighted.start:not(.end):after,.crew-cal-event.multiday.highlighted.week-start:not(.end):after{border-left:2px solid #0053D4}.crew-cal-event.multiday.highlighted.end:not(.start):not(.week-start):after,.crew-cal-event.multiday.highlighted.week-end:not(.start):after{border-right:2px solid #0053D4}.crew-cal-event.multiday{border-radius:0;margin-left:-5px;margin-right:-5px;padding-left:8px;border-left-width:0;position:relative;z-index:1}.crew-cal-event.multiday.start{border-radius:2px 0 0 2px;margin-left:0;border-left-width:3px}.crew-cal-event.multiday.end{border-radius:0 2px 2px 0;margin-right:0}.crew-cal-event.multiday:not(.start):not(.week-start) .crew-cal-event-text,.crew-cal-event.multiday:not(.start):not(.week-start) .crew-cal-event-crew{visibility:hidden}.crew-cal-event.multiday.week-start{border-left-width:3px;border-radius:0;margin-left:-5px;padding-left:11px}.crew-cal-event.start.end{border-radius:2px;margin-left:0;margin-right:0;border-left-width:3px}.crew-cal-event-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;font-size:10px;color:#19202c!important}.crew-cal-event-crew{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:10px;color:#4c5e78!important}.crew-day-segment{position:absolute;top:2px;bottom:2px;z-index:3;cursor:pointer;border:1.5px dashed transparent;border-radius:3px;transition:border-color .12s,background .12s;box-sizing:border-box}.crew-event-bar{overflow:visible!important}.crew-day-segment:hover{border-color:#0006;background:#0000000f}.crew-day-segment.off{background:#ffffff8c;border-color:#0003}.crew-day-segment.off:hover{background:var(--event-bar-color, rgba(0, 83, 212, .15));border-color:#00000059}.crew-day-segment:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);bottom:auto;left:50%;transform:translate(-50%);background:#19202c;color:#fff;font-size:11px;font-weight:500;white-space:nowrap;padding:5px 10px;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .1s;z-index:200}.crew-day-segment:hover:after{opacity:1}.crew-event-bar:hover{z-index:100!important}.crew-timeline-main .timeline-row:has(.crew-day-segment:hover){z-index:10;position:relative}.crew-cal-event.past-event,.crew-week-event.past-event{opacity:.45}.crew-cal-events.has-drilldown .crew-cal-event:not(.drilldown-active),.crew-week-event:not(.drilldown-active).drilldown-sibling{background:#f3f4f6!important;border-left-color:#d1d5db!important;--event-border: transparent !important}.crew-cal-events.has-drilldown .crew-cal-event:not(.drilldown-active) .crew-cal-event-text,.crew-cal-events.has-drilldown .crew-cal-event:not(.drilldown-active) .crew-cal-event-crew,.crew-week-event:not(.drilldown-active).drilldown-sibling .crew-cal-event-text,.crew-week-event:not(.drilldown-active).drilldown-sibling .crew-cal-event-crew{color:#9ca3af!important}.crew-cal-events.has-drilldown .crew-cal-event:not(.drilldown-active):before{border-color:transparent!important}.crew-cal-event.off-day{opacity:.5}.crew-week-offday-mark{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.35) 3px,rgba(148,163,184,.35) 5px);pointer-events:none;z-index:2}.cs-list-nonwork-badge{font-size:10px;font-weight:600;color:#ef4444;margin-left:auto}.crew-cal-more{font-size:10px;font-weight:500;color:var(--text-secondary);padding:1px 4px;background:none;border:none;cursor:pointer;text-align:left;border-radius:3px;margin-top:1px;align-self:flex-start}.crew-cal-more:hover{background:#94a3b82e;color:var(--text-primary)}.crew-cal-more.crew-cal-less{margin-top:4px}.crew-cal-cell.expanded{min-height:unset;height:auto}.crew-popover{position:fixed;z-index:1000;width:280px;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;box-shadow:0 4px 16px #0000001f;font-size:var(--font-size-sm)}.crew-popover-header{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 14px 8px;border-left:3px solid var(--accent)}.crew-popover-milestone{font-weight:600;font-size:15px;color:var(--text-primary);line-height:1.3}.crew-popover-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:2px;flex-shrink:0;margin:-2px -4px 0 8px}.crew-popover-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.crew-popover-body{padding:0 14px 12px}.crew-popover-info{font-weight:500;font-size:13px;color:var(--text-primary);line-height:1.4}.crew-popover-address{font-weight:400;color:var(--text-secondary);font-size:12px;margin-bottom:8px;line-height:1.4}.crew-popover-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);font-weight:500;margin-top:4px}.crew-popover-crew-chip{padding:2px 8px;border-radius:2px;font-size:11px;font-weight:600}.crew-agenda-toggle.active{color:#0053d4;border-color:#0053d4;background:#f2f6fd}.crew-mini-cal-day.outside{color:var(--text-muted, #D1D5DB)}.crew-mini-cal-day.today{font-weight:700;color:#0053d4}.crew-mini-cal-day.selected{background:#0053d4;color:#fff;font-weight:600}.crew-mini-cal-day.selected .crew-mini-cal-dot{background:#fff}.crew-schedule-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:calc(100vh - 200px);color:var(--text-secondary);text-align:center}.crew-schedule-placeholder h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.crew-schedule-placeholder p{font-size:var(--font-size-sm);margin:0;max-width:320px}.header-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;box-sizing:border-box}.header-icon-btn: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 input[type=checkbox],.status-filter-item input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--accent)}.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:2px;cursor:pointer;transition:all .15s ease}.btn-secondary:hover{background:var(--bg-hover)}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary:disabled:hover{background:var(--bg-primary)}.header-action-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;box-sizing:border-box}.header-logout-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:2px;background:#ffffff24;color:#fff;cursor:pointer;flex-shrink:0}.header-logout-btn:hover{background:#ffffff38}.btn-primary{display:inline-flex;align-items:center;gap:4px;padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;color:#fff;background:var(--accent);border:none;border-radius:2px;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:2px;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:51px;font-size:12px;font-weight:600;color:var(--text-primary);letter-spacing:0;text-transform:none;align-items:center;padding-bottom:0}.sidebar-row.header-row span{text-align:left;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.dragging,.date-cell.column-dragging{opacity:.4}.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 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 #F0F1F4;position:relative;transition:background .1s ease}.project-row.menu-open{z-index:30}.project-row.dragging{background:var(--accent-light);box-shadow:0 0 0 1px var(--accent);z-index:10}.project-row[draggable=true]{cursor:default}.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;position:relative}.project-name-info{display:flex;flex-direction:column;min-width:0;gap:4px;align-items:flex-start}.project-name-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.project-number-text{font-size:var(--font-size-xs);font-weight:400;color:var(--text-muted);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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)}.project-sqft-badge{font-size:10px;font-weight:500;color:var(--text-muted);white-space:nowrap;flex-shrink:0;letter-spacing:.2px;line-height:1.3}.project-meta-stack{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto;flex-shrink:0}.project-name-info-gantt{flex-direction:column;gap:4px;flex:1;min-width:0}.project-name-info-gantt .project-name-row{display:flex;align-items:center;gap:8px;min-width:0;line-height:1.2}.project-name-info-gantt .project-name-row .project-name-text{font-size:14px;font-weight:700;letter-spacing:-.01em;line-height:1.2;display:inline-flex;align-items:center}.project-name-info-gantt .project-meta-row .project-number-text,.project-name-info-gantt .project-meta-row .project-sqft-badge{font-size:11px;font-weight:600;letter-spacing:0;line-height:1.3}.project-name-info-gantt .project-meta-row{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap;row-gap:2px}.project-name-info-gantt .project-meta-row>*+*:before{content:"·";margin-right:6px;color:var(--text-muted)}.gantt-mode .project-name-info-gantt .schedule-status-tag{font-size:10px;font-weight:600;padding:1px 6px;line-height:14px;letter-spacing:.3px;gap:3px;border-width:1px;align-self:center;transform:translateY(-1px)}.gantt-mode .project-name-info-gantt .schedule-status-tag .status-tag-chevron svg{width:7px;height:7px}.schedule-status-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:1px 5px;border-radius:2px;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:#ccddf6;background:#eff6ff}.schedule-status-tag.confirmed:hover{background:#dbeafe}.schedule-status-tag .status-tag-chevron svg{color:currentColor}.schedule-status-tag .status-tag-chevron svg path,.schedule-status-tag .status-tag-chevron svg polyline,.schedule-status-tag .status-tag-chevron svg polygon{fill:currentColor;stroke:currentColor}.project-category-tag{display:inline-flex;align-items:center;font-size:10px;font-weight:500;padding:1px 6px;border-radius:2px;flex-shrink:0;line-height:18px;letter-spacing:.02em;pointer-events:none}.project-category-tag.production{color:#5e6ad2;background:#eef0ff}.project-category-tag.prospect{color:#b45309;background:#fef3c7}.project-category-tag.demo{color:#64748b;background:#f1f5f9}.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;position:relative;cursor:default;flex-shrink:0;color:var(--error)}.conflict-badge.clickable{cursor:pointer}.conflict-badge.clickable:hover{color:var(--error-hover, #c0392b);transform:scale(1.15)}.conflict-detail-modal{background:var(--bg-primary);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:420px;max-width:90vw;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.conflict-detail-body{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.conflict-detail-item{border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--bg-secondary)}.conflict-detail-crew{display:flex;align-items:center;gap:8px;margin-bottom:8px}.conflict-detail-icon{color:var(--error);flex-shrink:0}.conflict-detail-crew-name{font-weight:600;font-size:13px;color:var(--text-primary)}.conflict-detail-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;margin-left:auto;text-transform:uppercase;letter-spacing:.03em}.conflict-detail-badge.same-project{background:#f5a62326;color:#d97706}.conflict-detail-same-project,.conflict-detail-cross-project{padding-left:22px}.conflict-detail-project-header{font-weight:600;font-size:12px;color:var(--text-primary);margin-bottom:6px}.conflict-detail-assignments{display:flex;flex-direction:column;gap:4px}.conflict-detail-assignment{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.conflict-detail-assignment-row{display:flex;align-items:center;gap:8px;font-size:12px}.conflict-detail-project-name{font-weight:500;color:var(--text-primary);flex-shrink:0}.conflict-detail-milestone-name{color:var(--text-primary);font-weight:500}.conflict-detail-range{color:var(--text-secondary);font-size:11px;margin-left:auto;white-space:nowrap}.conflict-detail-vs{font-size:11px;color:var(--text-secondary);font-style:italic;padding:2px 0}.project-row:hover .pin-project-btn{opacity:1}.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:0}.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:2px;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-controls.header-zoom{padding:0;background:transparent;border-bottom:none;gap:0;border:1px solid var(--border);border-radius:2px;overflow:hidden}.zoom-controls.header-zoom .zoom-btn{border:none;border-radius:0;width:32px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;line-height:0;font-size:0}.zoom-controls.header-zoom .zoom-btn:first-child{border-right:1px solid var(--border)}.header-toolbar-divider{width:1px;align-self:stretch;background:var(--border-light, #F3F4F6);margin:0 4px}.header-right .crew-list-toggle-btn,.header-right .crew-list-filter-btn,.header-right .header-icon-btn{width:32px;height:30px;border-radius:2px}.timeline-header{display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;overflow-x:hidden;overflow-y:hidden;overflow-anchor:none;-webkit-user-select:none;user-select:none;scrollbar-width:none;-ms-overflow-style:none}.timeline-header::-webkit-scrollbar{display:none}.timeline-header.right-pan-ready,.timeline-body.right-pan-ready{cursor:grab}.timeline-header.right-pan-active,.timeline-body.right-pan-active{cursor:grabbing;-webkit-user-select:none;user-select:none}.timeline-header.right-pan-active *,.timeline-body.right-pan-active *{cursor:grabbing!important}.timeline-header.right-pan-active *,.timeline-body.right-pan-active *{pointer-events:none!important;transition:none!important}.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:hover{background:#2563eb0a}.timeline-day-cell.selected-day{background:#2563eb14}.timeline-day-cell.selected-day .day-number{color:#2563eb;font-weight:600}.timeline-day-cell.selected-day .day-number.today{color:#fff}.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:not(.today){color:var(--text-muted)}.day-number{font-size:10px;font-weight:500;letter-spacing:.01em;white-space:nowrap}.day-name{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);margin-left:1px}.day-number.today{background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;font-weight:600;display:inline-flex;align-items:center;gap:2px}.timeline-body{flex:1;overflow:auto;position:relative;overflow-anchor:none;-webkit-user-select:none;user-select:none}.timeline-body-scroll{min-width:max-content;min-height:100%;position:relative;display:flex;flex-direction:column}.timeline-row{display:flex;height:var(--row-height);border-bottom:1px solid #F0F1F4;position:relative}.timeline-cell{height:100%;flex-shrink:0;border-right:1px solid #F0F1F4}.timeline-cell:last-child{border-right:none}.timeline-cell.normally-off{background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.08) 3px,rgba(148,163,184,.08) 6px)}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);z-index:1;pointer-events:none;transform:translate(-1px)}.out-of-view{position:absolute;top:50%;transform:translateY(-50%);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: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;left:0;right:0;bottom: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}.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-filter-option.selected{color:var(--accent)}.summary-item.conflict .summary-value{color:var(--warning)}.crew-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);flex-shrink:0}.crew-assignment.past{opacity:.5}.assignment-type.backframing{color:#5e6ad2;background:#5e6ad21a}.assignment-type.roofInstall{color:#8b5cf6;background:#8b5cf61a}.date-badge.today{background:var(--accent);color:#fff}.date-value.today{color:var(--accent);font-weight:500}.crew-view-toggle-btn.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 2px #0000000d}.utilization-fill.medium{background:var(--warning)}.utilization-fill.high{background:var(--success)}.assignment-type.backframing{color:#5e6ad2;background:#5e6ad21f}.assignment-type.roofInstall{color:#8b5cf6;background:#8b5cf61f}.crew-assignment.conflict{background:var(--warning-light);border-radius:var(--radius-sm)}.date-badge.weekend{background:#f59e0b;color:#fff;display:inline-flex;align-items:center;gap:3px}.date-badge.conflict{background:var(--warning);color:#fff}.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-event.conflict{position:relative;box-shadow:inset 0 0 0 2px var(--warning);padding-right:20px}.calendar-day.off-day .calendar-event{border:1px dashed #F59E0B}.event-popover.dragging{animation:none;cursor:grabbing}@keyframes popover-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.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-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-weekdays span{font-size:10px;font-weight:500;color:var(--text-muted);text-align:center;padding:var(--space-1);white-space:nowrap}.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-tab.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 3px #0000001a}.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)}.copy-project-item svg{color:var(--text-muted);flex-shrink:0}.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 .save-template-input-wrapper input{flex:1;border:none;background:none;font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.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)}.feedback-modal-overlay{align-items:center;padding-top:0;z-index:1100}.feedback-modal{width:560px;max-width:calc(100vw - 28px);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 20px 50px #0003}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--border)}.feedback-modal-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.feedback-modal-body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4)}.admin-tools-modal{width:min(1500px,calc(100vw - 24px));height:min(960px,calc(100vh - 24px));max-height:calc(100vh - 24px);display:flex;flex-direction:column}.admin-tools-body{display:flex;flex-direction:column;flex:1;gap:var(--space-3);min-height:0;overflow:hidden}.admin-tools-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.admin-tools-section h4{margin:0 0 var(--space-2);font-size:var(--font-size-md);font-weight:600;color:var(--text-primary)}.milestone-config-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--space-3);flex:1;min-height:0}.milestone-config-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);flex:1;min-height:0}.milestone-config-column{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-primary);overflow:hidden;min-height:0;display:flex;flex-direction:column;transition:border-color .15s ease,box-shadow .15s ease}.milestone-config-column.is-drop-target{border-color:var(--milestone-group-accent, #0053D4);box-shadow:inset 0 0 0 2px var(--milestone-group-tint-strong, #EFF6FF)}.milestone-config-column-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.milestone-template-modal .admin-tools-label{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.milestone-config-list{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);overflow-y:auto}.milestone-config-section-divider{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1);padding:4px 6px;border-left:3px solid var(--milestone-group-accent, #111827);border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--milestone-group-tint-strong, transparent),transparent 70%);color:var(--milestone-group-accent, #111827);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.milestone-config-section-divider:after{content:"";flex:1;border-top:1px solid var(--milestone-group-accent, #CBD5E1);opacity:.35}.milestone-config-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);cursor:grab;box-shadow:inset 3px 0 0 var(--milestone-group-accent, #CBD5E1)}.milestone-config-card:active{cursor:grabbing}.milestone-config-card.is-dragging{opacity:.45}.milestone-config-card.is-selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent),0 0 0 2px #2563eb1a}.milestone-config-card-main{min-width:0;display:flex;flex-direction:column;gap:2px}.milestone-config-card-main strong{color:var(--text-primary);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.milestone-config-card-main span{color:var(--text-tertiary);font-size:var(--font-size-xs)}.milestone-config-card-tags{display:flex;align-items:center;gap:4px;flex-shrink:0}.milestone-config-card-badge{flex-shrink:0;padding:2px 6px;border-radius:var(--radius-sm);background:var(--milestone-group-tint, #F1F5F9);color:var(--milestone-group-accent, var(--text-tertiary));font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.milestone-config-subtasks{display:flex;flex-direction:column;gap:var(--space-2);min-height:0;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-primary)}.milestone-config-subtasks-header{display:flex;flex-direction:column;gap:2px;padding-bottom:var(--space-2);border-bottom:1px solid var(--border-light)}.milestone-config-subtasks-header strong{color:var(--text-primary);font-size:var(--font-size-md)}.milestone-config-subtask-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2)}.milestone-config-subtask-add .btn-secondary{display:inline-flex;align-items:center;gap:4px;min-height:36px}.milestone-config-subtask-list{display:flex;flex:1;min-height:72px;flex-direction:column;gap:var(--space-2);overflow-y:auto}.milestone-config-subtask-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm)}.milestone-config-subtask-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.milestone-config-subtask-delete{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-muted);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer}.milestone-config-subtask-delete:hover{color:var(--error);border-color:var(--error)}@media(max-width:720px){.admin-tools-modal{width:calc(100vw - 12px);height:calc(100vh - 12px);max-height:calc(100vh - 12px)}.milestone-config-layout{grid-template-columns:1fr;overflow-y:auto}.milestone-config-board{grid-template-columns:1fr;min-height:520px}.milestone-config-subtasks{min-height:280px}}.milestone-template-modal{max-height:calc(100vh - 24px)}.milestone-template-subtitle,.project-template-subtitle{margin:4px 0 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.milestone-template-body{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--space-4);flex:1;min-height:0;overflow:hidden}.milestone-template-sidebar{display:flex;flex-direction:column;gap:var(--space-2);min-height:0;padding-right:var(--space-3);border-right:1px solid var(--border)}.milestone-template-create,.milestone-template-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:center}.milestone-template-list{display:flex;flex-direction:column;gap:var(--space-2);min-height:0;overflow-y:auto}.milestone-template-list-item{display:flex;flex-direction:column;gap:1px;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-weight:500;text-align:left;cursor:pointer;min-width:0}.milestone-template-list-item.is-active{border-color:#0053d4;background:#eff6ff;box-shadow:inset 3px 0 #0053d4}.milestone-template-list-item small{color:var(--text-tertiary);font-size:12px;font-weight:400}.milestone-template-editor{display:flex;flex-direction:column;gap:var(--space-3);min-height:0;overflow:hidden}.milestone-template-empty{min-height:220px;display:flex;align-items:center;justify-content:center}.milestone-template-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:end}.milestone-template-name-field{display:flex;flex-direction:column;gap:var(--space-1)}.milestone-template-delete-template{height:34px;display:inline-flex;align-items:center;gap:var(--space-1)}.milestone-template-board{grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);min-height:0;overflow:hidden}.milestone-template-column{min-height:0}.milestone-template-column.factory,.milestone-template-column.site{background:var(--bg-primary)}.milestone-template-column-hint{color:var(--text-tertiary);font-size:11px;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.35;display:block;margin-top:2px}.milestone-template-milestone-card .milestone-template-icon-btn,.milestone-template-simple-row .milestone-template-icon-btn{opacity:0;transition:opacity .12s ease}.milestone-template-milestone-card:hover .milestone-template-icon-btn,.milestone-template-simple-row:hover .milestone-template-icon-btn{opacity:1}.milestone-template-column .milestone-config-column-header{gap:var(--space-2)}.milestone-template-column .milestone-config-column-header>div{display:flex;flex-direction:column;gap:2px;min-width:0}.milestone-template-milestone-list{max-height:none;min-height:0;flex:1}.milestone-template-simple-list{gap:0}.milestone-template-milestone-card{border-bottom:1px solid rgba(15,23,42,.16);transition:background .12s ease}.milestone-template-milestone-card:last-child{border-bottom:0}.milestone-template-milestone-card:not(.is-selected):hover{background:#0f172a06}.milestone-template-milestone-card.is-selected{background:transparent}.milestone-template-simple-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto 28px;align-items:center;gap:6px;padding:6px 10px}.milestone-template-milestone-row{cursor:default}.milestone-template-milestone-card.is-factory .milestone-template-milestone-row{cursor:pointer}.milestone-template-expand-chevron{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-muted);transition:transform .15s ease}.milestone-template-expand-chevron.open{transform:rotate(180deg);color:var(--accent)}.milestone-template-expand-chevron.is-spacer{visibility:hidden}.milestone-template-simple-input{width:auto;max-width:100%;min-width:0;height:30px;border:0;background:transparent;color:var(--text-primary);font-family:inherit;font-size:12px;font-weight:500;line-height:1.25;outline:none;box-sizing:border-box;justify-self:start}.milestone-template-simple-input:focus{background:var(--bg-primary);box-shadow:inset 0 0 0 1px #2563eb47;border-radius:var(--radius-sm);padding:0 var(--space-2)}.milestone-template-production-pill{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-pill, 999px);padding:2px 8px;font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;justify-self:center}.milestone-template-production-pill.is-spacer{visibility:hidden;border-color:transparent;background:transparent}.milestone-template-production-inline{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:var(--space-2);align-items:end;padding:0;background:transparent;border:none}.milestone-template-production-default-label{display:flex;flex-direction:column;gap:2px;min-width:0}.milestone-template-production-default-label:not(:last-child){margin-bottom:var(--space-2)}.milestone-template-field-helper{margin-top:4px;color:var(--text-tertiary);font-size:11px;font-weight:400;line-height:1.35}.milestone-template-production-field{display:flex;flex-direction:column;gap:2px;min-width:0}.milestone-template-production-field .admin-tools-select{width:100%}.milestone-template-production-short .admin-tools-select{text-transform:uppercase;text-align:center;letter-spacing:.05em;max-width:80px}.milestone-template-production-qty .admin-tools-select{text-align:right;font-variant-numeric:tabular-nums}.milestone-template-production-help{grid-column:1 / -1;margin:4px 0 0;font-size:11px;font-weight:400;color:var(--text-muted);line-height:1.4}.milestone-template-add-row{padding:var(--space-2);border-top:1px solid var(--border);background:#ffffffbd}.milestone-template-icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0}.milestone-template-icon-btn.small{width:22px;height:22px}.project-template-modal{width:min(620px,calc(100vw - 32px))}.project-template-body{display:flex;flex-direction:column;gap:var(--space-2);max-height:min(520px,calc(100vh - 180px));overflow-y:auto}.project-template-empty{min-height:160px;display:flex;align-items:center;justify-content:center;text-align:center}.project-template-option{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);text-align:left;cursor:pointer}.project-template-option:hover{border-color:#0053d4;background:#f8fbff}.project-template-option strong,.project-template-option span{display:block}.project-template-option strong{font-size:var(--font-size-sm)}.project-template-option span{margin-top:2px;color:var(--text-tertiary);font-size:var(--font-size-xs)}.project-template-counts{display:flex;flex-wrap:wrap;gap:var(--space-1);justify-content:flex-end}.project-template-counts span{margin-top:0;padding:3px 7px;border-radius:var(--radius-sm);font-weight:700;color:var(--text-secondary)}.project-template-counts .factory{background:#2563eb14;color:#2563eb}.project-template-counts .site{background:#10b98114;color:#10a36d}.milestone-category-add{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffffdb;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.milestone-category-add:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-primary)}.milestone-add-gutter{display:flex;align-items:center;justify-content:flex-start;gap:8px;height:34px;width:100%;padding:0 12px 0 36px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;font-size:11.5px;font-weight:500;opacity:.5;transition:opacity .15s ease,background-color .15s ease,color .15s ease}.milestone-add-gutter:hover{background:#2563eb0f;color:var(--accent);opacity:1}.milestone-add-gutter-label{font-size:11.5px;letter-spacing:0}.gantt-subrow.gantt-subrow-add-gutter{background:transparent;pointer-events:none}@media(max-width:720px){.milestone-template-body{grid-template-columns:1fr;overflow-y:auto}.milestone-template-sidebar{padding-right:0;padding-bottom:var(--space-3);border-right:none;border-bottom:1px solid var(--border)}.milestone-template-toolbar,.milestone-template-board{grid-template-columns:1fr}}.admin-tools-empty{padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary)}.admin-tools-plan-list>li{padding:var(--space-3);border-top:1px solid var(--border)}.admin-tools-plan-list>li:first-child{border-top:none}.admin-tools-plan-changes>li{line-height:1.5}.admin-tools-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.admin-tools-select{width:100%;padding:var(--space-2) var(--space-3);height:34px;font-family:var(--font-family);font-size:var(--font-size-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);outline:none}.admin-tools-select:focus{border-color:#0053d4}.admin-tools-plan-changes>li.is-conflict{color:#92400e}.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)}.dcr-overlay{align-items:center;padding-top:0;z-index:1100}.dcr-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 12px;border-bottom:1px solid var(--border)}.dcr-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0}.dcr-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border)}.crew-modal-body{padding:var(--space-4)}.crew-modal-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);text-transform:none;letter-spacing:0;margin-bottom:6px}.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-row{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.milestone-tooltip .tooltip-item-crew-tag{font-size:10px;font-weight:500;color:var(--crew-chip-color);background:var(--crew-chip-bg);padding:2px 8px;border-radius:4px;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)}.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-suggestions{display:flex;flex-wrap:wrap;gap:4px;padding:4px 8px 8px}.milestone-picker-suggestion{font-size:11px;padding:2px 8px;border-radius:4px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .15s ease}.milestone-picker-suggestion:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.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)}.milestone-picker-copy-content{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2)}.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}.scheduling-sidebar-overlay{position:fixed;inset:0;z-index:999;background:linear-gradient(270deg,#0f172a24,#0f172a00 54%)}.scheduling-sidebar{position:fixed;top:0;right:0;bottom:0;width:400px;background:#fff;border-left:1px solid #E2E8F0;box-shadow:-8px 0 24px #02061714;z-index:1001;display:flex;flex-direction:column;overflow:hidden;isolation:isolate;transform:translate(100%);transition:transform .2s ease,box-shadow .2s ease}.scheduling-sidebar:before,.scheduling-sidebar:after{display:none}.scheduling-sidebar.open{transform:translate(0)}.project-view.right-pan-dragging .scheduling-sidebar,.project-view.right-pan-dragging .scheduling-sidebar *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.project-view.right-pan-dragging .scheduling-sidebar{box-shadow:-10px 0 24px #02061724}.scheduling-panel{display:flex;flex-direction:column;flex:1;min-height:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;position:relative;z-index:1}.scheduling-panel-title{height:32px;flex-shrink:0;padding:0 12px;display:flex;align-items:center;gap:0;font-size:11px;font-weight:500;color:var(--text-primary);background:#fff;border-bottom:1px solid #E2E8F0;border-radius:0;min-width:0;white-space:nowrap}.scheduling-panel-title-project{font-weight:600;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.scheduling-panel-title-separator{padding:0 4px;color:var(--text-secondary);flex-shrink:0}.scheduling-panel-title-event{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.scheduling-panel-title .scheduling-panel-close{margin-left:auto;flex-shrink: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:12px;display:flex;flex-direction:column;gap:10px;position:relative;overflow-y:auto;scrollbar-gutter:stable;flex:1}.scheduling-panel-content.milestone-panel-v2-properties{padding:0;gap:0}.scheduling-panel-content.milestone-panel-v2-properties>.milestone-panel-v2-property+.milestone-panel-v2-property{border-top:0}.scheduling-panel-content.milestone-panel-v2-properties>.milestone-panel-v2-property.is-section{border-top:1px solid var(--border-light)}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-subtask-item{display:grid;grid-template-columns:142px 1fr auto;column-gap:12px;align-items:center}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-subtask-item .subtask-leading{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-subtask-item .subtask-due-date-control{justify-self:start}.scheduling-panel-content.milestone-panel-v2-properties .milestone-panel-v2-popover{position:absolute!important;left:154px}.block-panel-crew-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 6px 0 4px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);font-size:12px;font-weight:500;color:var(--text-primary);line-height:1;transition:border-color .12s ease,background .12s ease}.block-panel-crew-chip:hover{border-color:#0f172a33;background:var(--bg-secondary, #F8FAFC)}.block-panel-crew-chip.conflict{border-color:#dc262659;color:#b91c1c}.block-panel-crew-chip-avatar{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:9px;font-weight:700;color:#fff;letter-spacing:.02em;flex-shrink:0}.block-panel-crew-chip-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.block-panel-crew-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;border:0;border-radius:2px;background:transparent;color:var(--text-muted);cursor:pointer;margin-left:2px}.block-panel-crew-chip-remove:hover{background:#0f172a14;color:var(--text-primary)}.scheduling-panel-content.milestone-panel-v2-properties .milestone-panel-v2-property-detail{background:transparent;border:1px solid var(--border);border-radius:2px}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-row.working-days-row:before,.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-working-days-header{display:none}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-row.working-days-row{padding-top:0}.scheduling-panel-content.milestone-panel-v2-properties .milestone-panel-v2-popover-row .subtask-due-date-control input[type=date]{flex:1;height:auto;border:0;border-radius:0;padding:0;background:transparent;font-family:inherit;font-size:12px;font-weight:500;color:var(--text-primary)}.scheduling-panel-content.milestone-panel-v2-properties .milestone-panel-v2-popover-row .subtask-due-date-control input[type=date]:focus{box-shadow:none;border-color:transparent}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-crew-accordion{grid-column:1 / -1;margin-top:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);box-shadow:0 8px 24px #0f172a1a;padding:8px;max-height:280px;overflow:hidden;display:flex;flex-direction:column}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-crew-accordion .scheduling-panel-search{margin-bottom:6px}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-crew-accordion .scheduling-panel-dropdown-list{overflow-y:auto}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-crew-accordion .scheduling-panel-dropdown-item.crew-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px;border-radius:4px}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-crew-accordion .crew-item-left{display:inline-flex;align-items:center;gap:8px;min-width:0}.scheduling-panel-content.milestone-panel-v2-properties .scheduling-panel-crew-accordion .crew-item-right{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.subtask-due-date-input::-webkit-calendar-picker-indicator{display:none}.scheduling-panel-content.milestone-panel-v2-properties>.milestone-panel-v2-property:not(.is-section){grid-template-columns:142px 1fr}.block-panel-production-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;width:100%;min-width:0;position:relative}.block-panel-production-row .milestone-panel-v2-property-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.block-panel-production-input{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);font-size:12px;font-weight:500;line-height:1;transition:border-color .12s ease,background .12s ease}.block-panel-production-input:hover,.block-panel-production-input:focus-within{border-color:#0f172a33;background:var(--bg-secondary, #F8FAFC)}.block-panel-production-input-num{border:0;background:transparent;outline:none;field-sizing:content;min-width:14px;padding:0;font:inherit;color:var(--text-primary);text-align:left;-moz-appearance:textfield}.block-panel-production-input-num::-webkit-outer-spin-button,.block-panel-production-input-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.block-panel-production-input:focus-within .block-panel-production-input-num{-moz-appearance:auto}.block-panel-production-input:focus-within .block-panel-production-input-num::-webkit-outer-spin-button,.block-panel-production-input:focus-within .block-panel-production-input-num::-webkit-inner-spin-button{-webkit-appearance:auto}.block-panel-production-input-uom{font:inherit;color:var(--text-muted)}.block-panel-add-production-trigger{appearance:none;display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border:1px dashed var(--border, rgba(15, 23, 42, .18));border-radius:2px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}.block-panel-add-production-trigger:hover:not(:disabled){border-color:#0f172a66;background:var(--bg-secondary, #F8FAFC);color:var(--text-primary)}.block-panel-add-production-trigger:disabled{cursor:not-allowed;opacity:.55}.block-panel-add-production-editor{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.block-panel-add-production-input{height:26px;padding:0 8px;border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;background:var(--bg-primary);font:inherit;font-size:12px;font-weight:500;color:var(--text-primary);outline:none;-moz-appearance:textfield}.block-panel-add-production-input::-webkit-outer-spin-button,.block-panel-add-production-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.block-panel-add-production-input.uom{width:56px}.block-panel-add-production-input.num{width:64px}.block-panel-add-production-input.type{width:140px}.block-panel-add-production-input:focus{border-color:var(--accent, #2563EB)}.scheduling-panel-content.milestone-panel-v2-properties>.scheduling-panel-row--padded{padding:10px 16px;border-bottom:1px solid var(--border-light)}.scheduling-panel-row{position:relative;display:flex;align-items:center;gap:8px}.scheduling-panel-row.date-row{gap:8px}.scheduling-panel-production-preview.active{color:var(--accent);background:#d5e3f9;border-color:#2563eb73}.scheduling-panel-production-custom-toggle input[type=checkbox]{margin:0;cursor:pointer}.scheduling-panel-section.collapsed{gap:0}.milestone-subrow-label-short{font-variant-numeric:tabular-nums;letter-spacing:.4px;font-weight:700;color:var(--accent)}.scheduling-panel-row.workdays-row{height:33px;background:#fff;border:1px solid rgba(148,163,184,.2);box-shadow:0 12px 24px -24px #0f172a57,inset 0 1px #ffffff6b;border-radius:var(--radius-md);padding:0 4px}.scheduling-panel-row.crew-row{z-index:5;flex-direction:column;align-items:stretch;padding-top:10px}.scheduling-panel-row.crew-row:before{content:"";position:absolute;top:0;left:-12px;right:-12px;height:1px;background:var(--border)}.scheduling-panel-crew-add-btn svg{width:12px;height:12px;flex-shrink:0}.scheduling-panel-crew-chip.conflict{color:var(--warning);background:var(--warning-light)}.scheduling-panel-crew-chip.conflict svg{flex-shrink:0}.scheduling-panel-crew-accordion{border:1px solid rgba(148,163,184,.2);border-radius:var(--radius-md);background:#ffffff57;box-shadow:0 12px 24px -24px #0f172a57,inset 0 1px #ffffff6b;-webkit-backdrop-filter:blur(11px) saturate(150%);backdrop-filter:blur(11px) saturate(150%);overflow:hidden;display:flex;flex-direction:column;margin-top:4px}.scheduling-panel-crew-accordion .scheduling-panel-dropdown-list{max-height:160px;overflow-y:auto}.daily-sidebar{flex:none;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--border)}.daily-sidebar .crew-list-panel-header{flex-shrink:0}.daily-sidebar .crew-list-filter-chips{position:relative}.daily-sidebar-resize-handle{width:4px;cursor:col-resize;background:transparent;transition:background .15s;flex-shrink:0}.daily-sidebar-resize-handle:hover,.daily-sidebar-resize-handle:active{background:#c5d8f8}.daily-sidebar-content{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:transparent transparent}.daily-sidebar-content:hover{scrollbar-color:rgba(0,0,0,.2) transparent}.daily-sidebar-header{display:flex;align-items:stretch;justify-content:space-between;flex-shrink:0;border-bottom:1px solid var(--border);padding-right:8px}.daily-sidebar-header .crew-list-close-btn{border:none;background:transparent;align-self:center}.daily-sidebar-header .crew-list-close-btn:hover{background:var(--bg-hover, #F3F4F6)}.daily-sidebar-tabs{display:flex;align-items:stretch;gap:0;flex:1;min-width:0}.daily-sidebar-tab{appearance:none;background:transparent;border:none;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-muted);cursor:pointer;position:relative;transition:color .1s ease}.daily-sidebar-tab:hover,.daily-sidebar-tab.active{color:var(--text-primary)}.daily-sidebar-tab.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px 2px 0 0}.sidebar-strip{flex:none;width:32px;display:flex;flex-direction:column;align-items:stretch;background:#fff;border-left:1px solid var(--border)}.sidebar-strip-toggle{appearance:none;background:transparent;border:none;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:background .1s ease,color .1s ease}.sidebar-strip-toggle:hover{background:var(--bg-secondary);color:var(--text-primary)}.sidebar-strip-item{appearance:none;background:transparent;border:none;padding:12px 0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);transition:background .1s ease}.sidebar-strip-item:hover{background:var(--bg-secondary)}.sidebar-strip-rotated{writing-mode:vertical-rl;transform:rotate(180deg);display:inline-flex;align-items:center;gap:6px}.sidebar-strip-count{font-size:12px;font-weight:700;line-height:1;color:var(--text-primary)}.sidebar-strip-label{font-size:11px;font-weight:600;letter-spacing:.2px;color:var(--text-secondary);white-space:nowrap}.overtime-project-heading{align-items:center;justify-content:space-between;padding-right:16px;min-height:32px}.overtime-project-name{font-size:12px;font-weight:700;color:#19202c;letter-spacing:0;text-transform:none}.overtime-project-code{font-size:11px;color:#9ca3af}.overtime-milestone-section{padding:6px 16px 8px;border-bottom:1px solid var(--border-light)}.overtime-milestone-section:last-child{border-bottom:none}.overtime-milestone-label{font-size:12px;font-weight:600;color:#19202c;margin:4px 0 4px 12px}.overtime-day-row{appearance:none;background:transparent;border:none;width:100%;display:flex;align-items:center;gap:10px;padding:4px 0 4px 12px;cursor:pointer;text-align:left;border-radius:4px;transition:background .1s ease}.overtime-day-row:hover{background:var(--bg-secondary)}.overtime-day-bar{width:3px;height:18px;border-radius:2px;background:#ff8c28e6;flex-shrink:0}.overtime-day-text{font-size:12px;color:#19202c;flex:1}.overtime-day-pill{font-size:11px;font-weight:600;color:#b4500af2;background:#ff8c282e;border-radius:2px;padding:2px 10px}.unsched-list{padding:0}.unsched-group{border-bottom:1px solid var(--border)}.unsched-group:last-child{border-bottom:none}.unsched-group-header{appearance:none;background:var(--bg-secondary);border:none;border-bottom:1px solid var(--border);width:100%;display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-primary);cursor:pointer;text-align:left}.unsched-group-header:hover{background:var(--bg-hover)}.unsched-group-caret{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);width:14px}.unsched-group-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unsched-group-code{font-size:11px;font-weight:400;color:var(--text-muted);flex-shrink:0}.unsched-row{position:relative;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;cursor:grab;-webkit-user-select:none;user-select:none}.unsched-row:hover{background:var(--bg-hover)}.unsched-row:active{cursor:grabbing}.unsched-row-handle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-muted);opacity:0;transition:opacity .1s ease;flex-shrink:0}.unsched-row:hover .unsched-row-handle{opacity:1}.unsched-row-color{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.unsched-row-color[data-color=blue]{background:#6fa1f2}.unsched-row-color[data-color=cyan]{background:#58b99d}.unsched-row-color[data-color=purple]{background:#c285ff}.unsched-row-color[data-color$=-draft]{background:#94a3b82e;border:1px dashed rgba(148,163,184,.7);box-sizing:border-box}.unsched-row-label{flex:1;min-width:0;font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unsched-row-menu-btn{appearance:none;background:transparent;border:1px solid transparent;border-radius:4px;padding:2px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .1s ease,background .1s ease,border-color .1s ease;flex-shrink:0}.unsched-row:hover .unsched-row-menu-btn{opacity:1}.unsched-row-menu-btn:hover{background:var(--bg-hover)}.unsched-row-menu-btn:focus-visible,.unsched-row-menu-btn:active{background:var(--bg-hover);border-color:var(--accent);opacity:1}.unsched-row-menu{position:absolute;right:8px;top:calc(100% - 4px);z-index:20;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0f172a1f;padding:4px;display:flex;flex-direction:column;min-width:160px}.unsched-row-menu button{appearance:none;background:transparent;border:none;padding:8px 10px;font-size:13px;color:var(--text-primary);display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer;border-radius:4px}.unsched-row-menu button:hover{background:var(--bg-hover)}.unsched-row-menu .unsched-row-menu-danger{color:#d42e15}.unsched-row-renaming,.unsched-row-adding{cursor:default;border:1px solid var(--accent);border-radius:6px;margin:4px 8px;padding:4px 6px 4px 4px;background:#fff;box-shadow:0 0 0 3px #0053d414}.unsched-row-renaming:hover,.unsched-row-adding:hover{background:#fff}.unsched-row-rename-input{flex:1;min-width:0;appearance:none;border:none;outline:none;background:transparent;font-size:13px;font-weight:500;color:var(--text-primary);padding:2px 0}.unsched-row-cancel-btn{appearance:none;background:transparent;border:none;padding:2px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;border-radius:4px;flex-shrink:0}.unsched-row-cancel-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.unsched-row-suggestions{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:6px;padding:4px;box-shadow:0 8px 24px #0f172a1f;z-index:5;display:flex;flex-direction:column}.unsched-row-suggestion{appearance:none;background:transparent;border:none;padding:6px 8px;font-size:12px;color:var(--text-primary);text-align:left;cursor:pointer;border-radius:4px}.unsched-row-suggestion:hover{background:var(--bg-hover)}.unsched-add-btn{appearance:none;background:transparent;border:none;padding:8px 12px;font-size:12px;font-weight:500;color:var(--accent);display:flex;align-items:center;gap:6px;cursor:pointer;width:100%;text-align:left}.unsched-add-btn:hover{background:var(--bg-hover)}.timeline-cell.drop-target{background:#0053d414;outline:1.5px dashed rgba(37,99,235,.5);outline-offset:-2px}.out-of-view-mini-slot{position:absolute;display:flex;align-items:center;pointer-events:none;z-index:26}.out-of-view-mini-slot.left{left:8px}.out-of-view-mini-slot.right{right:8px}.out-of-view-indicator-mini{position:static;width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;pointer-events:auto;padding:0;transition:background .12s ease,color .12s ease}.out-of-view-indicator-mini:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-drop-cell-highlight{position:absolute;background:#0053d41f;outline:1.5px dashed rgba(37,99,235,.6);outline-offset:-2px;pointer-events:none;z-index:6}.project-row-container.dimmed-by-sidebar-drag,.timeline-row-container.dimmed-by-sidebar-drag{opacity:.35;pointer-events:none;transition:opacity .12s ease}.gantt-subrows{display:flex;flex-direction:column;background:var(--bg-secondary)}.gantt-group-header-row{position:relative;box-sizing:border-box;height:26px;min-height:26px;display:flex;align-items:center;border-bottom:1px solid #F0F1F4;border-left:4px solid var(--milestone-group-accent, #111827);background:var(--milestone-group-tint, transparent);color:var(--milestone-group-accent, #111827);box-shadow:inset -1px 0 #c1c9d4;z-index:2}.gantt-group-header-row.timeline{border-left:0;background:var(--milestone-group-tint, transparent);box-shadow:none}.gantt-group-header-row:not(.timeline){height:25px;min-height:25px}.gantt-group-header-row.collapsed,.gantt-group-header-row.timeline.collapsed{background:var(--milestone-group-tint, transparent)}.gantt-group-toggle{appearance:none;border:0;background:transparent;color:inherit;height:100%;display:inline-flex;align-items:center;gap:15px;padding:0 8px 0 16px;margin:0;cursor:pointer;font-size:10px;font-weight:700;line-height:1;letter-spacing:.04em;text-transform:uppercase}.gantt-group-header-row.has-project-toggle .gantt-group-toggle{padding-left:40px}.gantt-group-header-row.timeline .gantt-group-toggle{position:sticky;left:8px;z-index:3;height:24px;border-radius:4px}.gantt-group-toggle:hover{background:transparent}.gantt-group-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-group-project-name{min-width:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}.gantt-group-project-name:before{content:"·";margin-right:6px;color:var(--text-muted)}.gantt-group-count{margin-left:-11px;min-width:16px;height:16px;padding:0 5px;border-radius:2px;background:#ffffffb8;color:inherit;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.gantt-mode .timeline-body{scrollbar-width:none}.gantt-mode .timeline-body::-webkit-scrollbar{display:none}.gantt-subrow{position:relative;display:flex;border-bottom:1px solid var(--border)}.gantt-subrow.selected{background:#2563eb0b;box-shadow:inset 3px 0 0 var(--accent)}.gantt-subrow .lane-bar{position:absolute}.app.gantt-mode .expand-toggle{display:flex!important}.milestone-subrow{height:30px;align-items:center;background:var(--bg-primary)}.milestone-subrow:hover{background:var(--bg-hover)}.milestone-row-menu-wrap{position:relative;display:inline-flex;flex-shrink:0}.milestone-subrow-menu-btn{appearance:none;background:var(--bg-primary, #FFFFFF);border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:var(--radius-sm);width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,border-color .12s ease,color .12s ease;flex-shrink:0}.milestone-subrow:hover .milestone-subrow-menu-btn,.milestone-subrow-menu-btn[aria-expanded=true]{opacity:1}.milestone-subrow-menu-btn:hover{background:var(--bg-secondary, #F8FAFC);border-color:#0f172a33;color:var(--text-primary)}.milestone-row-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:80;min-width:200px;background:var(--bg-primary, #fff);border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:6px;box-shadow:0 8px 24px #0f172a24;padding:4px;display:flex;flex-direction:column;gap:2px}.milestone-row-menu-item{appearance:none;text-align:left;display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border:0;background:transparent;border-radius:4px;font-size:12px;font-weight:500;color:var(--text-primary);cursor:pointer}.milestone-row-menu-item:hover:not(:disabled){background:var(--bg-hover, rgba(0, 0, 0, .05))}.milestone-row-menu-item:disabled{color:var(--text-muted);cursor:not-allowed}.milestone-row-menu-item.danger{color:#b91c1c}.milestone-row-menu-item.danger:hover:not(:disabled){background:#dc262614}.milestone-row-menu-divider{height:1px;background:var(--border-light, rgba(15, 23, 42, .08));margin:4px 0}.milestone-subrow.cross-group-drop-target:before{content:"";position:absolute;top:0;left:8px;right:8px;height:2px;background:var(--accent, #2563EB);border-radius:1px;pointer-events:none;z-index:7}.gantt-subrow-unscheduled-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#fcb900;pointer-events:auto;z-index:6;box-shadow:0 0 0 2px #fcb9002e}.gantt-subrow-unscheduled-dot.selected{background:var(--accent);box-shadow:0 0 0 4px #2563eb2e}.subtask-due-diamond{position:absolute;width:14px;height:14px;transform:translate(-50%,-50%);z-index:7;pointer-events:auto;display:flex;align-items:center;justify-content:center;transition:width .12s ease,height .12s ease,transform .18s cubic-bezier(.34,1.56,.64,1),filter .18s ease}.subtask-due-diamond.free{width:20px;height:20px;cursor:grab}.subtask-due-diamond.dragging{cursor:grabbing;z-index:10}.subtask-due-diamond.overlapping{width:10px;height:10px}.subtask-due-diamond.hovered{z-index:9;transform:translate(-50%,-50%) scale(1.2)}.subtask-due-diamond .diamond-icon{width:100%;height:100%;fill:#fef3c7;stroke:#f59e0b;stroke-width:1.6;filter:drop-shadow(0 0 2px rgba(245,158,11,.25));transition:filter .18s ease,stroke-width .18s ease}.subtask-due-diamond.hovered .diamond-icon{filter:drop-shadow(0 0 5px rgba(245,158,11,.6));stroke-width:1.9}.subtask-due-diamond.completed .diamond-icon{fill:#dbf2dd;stroke:#49bf55;filter:drop-shadow(0 0 2px rgba(73,191,85,.25))}.subtask-due-diamond.completed.hovered .diamond-icon{filter:drop-shadow(0 0 5px rgba(73,191,85,.55))}.subtask-connector-line{position:absolute;z-index:5;pointer-events:none;overflow:visible}@keyframes subtask-connector-draw-in{0%{stroke-dashoffset:24;opacity:0}to{stroke-dashoffset:0;opacity:1}}.subtask-connector-line line{animation:subtask-connector-draw-in .32s ease-out both}@keyframes subtask-target-highlight-in{0%{opacity:0;transform:scale(.92);box-shadow:0 0 #f59e0b00,0 0 #f59e0b00}to{opacity:1;transform:scale(1);box-shadow:0 0 0 2px #f59e0ba6,0 0 14px 2px #f59e0b59}}.subtask-target-highlight{position:absolute;z-index:6;border-radius:3px;pointer-events:none;transform-origin:center;animation:subtask-target-highlight-in .32s cubic-bezier(.34,1.56,.64,1) both}.milestone-subrow-date{font-size:11px;font-weight:500;color:var(--text-secondary);white-space:nowrap;flex-shrink:0;width:130px;padding:0 8px 0 0;text-align:right}.milestone-subrow-date-unscheduled{color:var(--text-muted);font-style:italic}button.milestone-subrow-date{border:none;background:transparent;cursor:default;font-family:inherit}button.milestone-subrow-date.is-clickable{cursor:pointer;border-radius:4px;transition:color .12s ease,background .12s ease}button.milestone-subrow-date.is-clickable:hover{color:var(--accent);background:transparent}.lane-bar-inline-label.stacked{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.05}.milestone-subrow-delete{appearance:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;margin:0;background:var(--bg-primary, #FFFFFF);border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:var(--radius-sm, 4px);color:var(--text-secondary);cursor:pointer;opacity:0;z-index:2;transition:opacity .12s ease,background .12s ease,border-color .12s ease}.milestone-subrow:hover .milestone-subrow-delete{opacity:1}.milestone-subrow-delete:hover{background:var(--bg-hover, rgba(15, 23, 42, .06));color:var(--text-primary)}.milestone-subrow-status{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;color:var(--text-secondary)}.project-row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;position:absolute;right:0;top:4px;bottom:4px;padding:0;pointer-events:auto;z-index:2}.gantt-row-action-btn{appearance:none;background:var(--bg-primary, #FFFFFF);border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:var(--radius-sm);width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,border-color .12s ease,color .12s ease;flex-shrink:0}.project-row:hover .gantt-row-action-btn,.project-row:focus-within .gantt-row-action-btn,.project-row-actions:hover .gantt-row-action-btn{opacity:1}.gantt-row-action-btn.pin-action.pinned{opacity:1}.gantt-row-action-btn:hover{background:var(--bg-secondary, #F8FAFC);border-color:#0f172a33;color:var(--text-primary)}.gantt-row-action-btn.pin-action.pinned{opacity:1;color:var(--blue-500)}.gantt-row-action-btn.pin-action.pinned:hover{background:var(--blue-50);color:var(--blue-600);border-color:var(--blue-300, var(--accent))}.project-kebab-wrapper{position:relative;display:inline-flex}.project-kebab-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:80;min-width:200px;background:var(--bg-primary, #fff);border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:6px;box-shadow:0 8px 24px #0f172a24;padding:4px;display:flex;flex-direction:column;gap:2px}.project-kebab-item{appearance:none;text-align:left;display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border:0;background:transparent;border-radius:4px;font-size:12px;font-weight:500;color:var(--text-primary);cursor:pointer;white-space:nowrap}.project-kebab-item:hover:not(:disabled){background:var(--bg-hover, rgba(0, 0, 0, .05))}.project-kebab-item:disabled{color:var(--text-muted);cursor:not-allowed}.project-kebab-item.danger{color:#b91c1c}.project-kebab-item.danger:hover:not(:disabled){background:#dc262614}.scheduling-panel-row.subtask-row{z-index:4;flex-direction:column;align-items:stretch;padding-top:10px}.scheduling-panel-row.subtask-row:before{content:"";position:absolute;top:0;left:-12px;right:-12px;height:1px;background:var(--border)}.scheduling-panel-subtask-list{display:flex;flex-direction:column;gap:2px;margin-top:6px}.scheduling-panel-subtask-item{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:var(--radius-sm);transition:background .12s}.scheduling-panel-subtask-item.related{cursor:default;padding:4px}.scheduling-panel-subtask-item.related:hover{background:#f59e0b14}.subtask-related-marker{width:10px;height:10px;flex-shrink:0;background:#fef3c7;border:1.5px solid #F59E0B;transform:rotate(45deg)}.subtask-related-marker.completed{background:#dbf2dd;border-color:#49bf55}.subtask-related-source{color:var(--text-muted);font-weight:400;font-size:var(--font-size-xs)}.subtask-related-due{margin-left:auto;font-size:var(--font-size-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.scheduling-panel-subtask-item:hover{background:#94a3b814}.subtask-checkbox{width:18px;height:18px;border-radius:50%;border:1.5px solid #CBD5E1;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;transition:all .15s}.subtask-checkbox:hover{border-color:var(--blue-500)}.subtask-checkbox.checked{border-color:transparent;background:transparent;padding:0}.subtask-label{font-size:13px;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduling-panel-subtask-item.completed .subtask-label{text-decoration:line-through;color:var(--text-muted)}.subtask-due-date-control{width:132px;height:26px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);display:flex;align-items:center;gap:6px;padding:0 10px;flex-shrink:0}.subtask-due-date-control:focus-within{border-color:var(--blue-500);background:var(--bg-primary)}.subtask-due-date-control svg{color:currentColor;flex-shrink:0}.subtask-due-date-input{width:100%;min-width:0;border:0;background:transparent;color:inherit;font-family:inherit;font-size:12px;font-weight:500;outline:none;padding:0}.subtask-delete-btn{width:20px;height:20px;border-radius:var(--radius-sm);border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);opacity:0;transition:all .12s;flex-shrink:0;padding:0}.scheduling-panel-subtask-item:hover .subtask-delete-btn{opacity:1}.subtask-delete-btn:hover{background:#ef44441a;color:#ef4444}.scheduling-panel-subtask-add{margin-top:4px;display:flex;align-items:center;gap:8px}.subtask-add-input{flex:1;min-width:0;height:32px;border:1px solid rgba(148,163,184,.3);border-radius:var(--radius-sm);padding:6px 8px;font-size:13px;color:var(--text-primary);background:#ffffff80;outline:none;transition:border-color .15s}.subtask-add-input:focus{border-color:var(--blue-500)}.subtask-add-input::placeholder{color:var(--text-muted)}.subtask-add-date-control{height:32px;background:#ffffffb8}.scheduling-panel-row.working-days-row{z-index:3;flex-direction:column;align-items:stretch;padding-top:10px}.scheduling-panel-row.working-days-row:before{content:"";position:absolute;top:0;left:-12px;right:-12px;height:1px;background:var(--border)}.scheduling-panel-working-days-header{display:flex;align-items:center;justify-content:space-between;height:24px}.scheduling-panel-working-days-label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.scheduling-panel-working-days-count{font-size:11px;font-weight:500;color:var(--text-secondary);background:#2563eb1a;padding:1px 6px;border-radius:10px}.scheduling-panel-working-days-list{display:flex;flex-direction:column;gap:2px;max-height:184px;overflow-y:auto;padding-right:2px;margin-top:6px}.scheduling-panel-working-day{min-height:30px;display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background .12s,color .12s}.scheduling-panel-working-day:hover{background:#94a3b814}.scheduling-panel-working-day.checked{color:var(--text-primary)}.scheduling-panel-working-day.factory-off{background:#f59e0b0f}.scheduling-panel-working-day.factory-off:hover{background:#f59e0b1a}.scheduling-panel-working-day.overtime{background:#f59e0b1a;color:#92400e}.scheduling-panel-working-day.overtime:hover{background:#f59e0b24}.scheduling-panel-working-day input{width:16px;height:16px;margin:0;accent-color:var(--blue-500);flex-shrink:0;cursor:pointer}.scheduling-panel-working-day-date{flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduling-panel-working-day-tags{display:flex;align-items:center;gap:4px;flex-shrink:0}.scheduling-panel-working-day-tag{font-size:10px;font-weight:600;line-height:16px;color:var(--text-muted);background:#94a3b81f;border-radius:2px;padding:0 6px}.scheduling-panel-working-day-tag.off{color:#b45309;background:#f59e0b24}.scheduling-panel-working-day-tag.overtime{color:#92400e;background:#f59e0b2e}.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:#fff;border:1px solid rgba(148,163,184,.2);box-shadow:0 12px 24px -24px #0f172a57,inset 0 1px #ffffff6b;border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s ease}.scheduling-panel-dropdown:hover{border-color:var(--text-muted)}.scheduling-panel-dropdown.focused{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb1a}.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;white-space:nowrap;min-width:0}.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.milestone-title{height:40px;padding:0 10px;background:#fff;border:1px solid rgba(148,163,184,.22);box-shadow:0 12px 26px -24px #0f172a61,inset 0 1px #ffffff75;border-radius:var(--radius-md)}.scheduling-panel-dropdown.milestone-title .scheduling-panel-dropdown-label{font-size:15px;font-weight:600}.scheduling-panel-dropdown.milestone-title.locked{cursor:default;background:#f8fafce6;border-color:#94a3b852}.scheduling-panel-dropdown.milestone-title.locked:hover{background:#f8fafce6}.scheduling-panel-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid rgba(148,163,184,.22);border-radius:var(--radius-md);box-shadow:0 16px 30px #0f172a2e,0 6px 12px #0f172a1a;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.scheduled{opacity:.6}.scheduling-panel-dropdown-item.already-scheduled{color:var(--text-secondary)}.scheduling-panel-dropdown-item.already-scheduled .scheduling-panel-dropdown-item-left{flex:1}.scheduling-panel-scheduled-tag{margin-left:6px;padding:1px 6px;font-size:10px;font-weight:500;color:var(--text-muted);background:var(--bg-secondary);border-radius:2px;letter-spacing:.2px;text-transform:uppercase}.milestone-scheduled-badge{font-size:10px;color:var(--text-muted);background:var(--bg-secondary);padding:1px 6px;border-radius:var(--radius-sm);margin-left:auto}.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-divider{height:1px;background:var(--border-light);margin:4px 8px}.scheduling-panel-dropdown-item.saved-custom{color:var(--text-secondary)}.scheduling-panel-dropdown-item.saved-custom:hover{color:var(--accent)}.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;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-options{display:flex;flex-direction:column;gap:12px;margin:0 0 20px;padding:12px;background:#0f172a08;border-radius:6px;border:1px solid rgba(15,23,42,.06)}.warning-dialog-option{display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.45}.warning-dialog-option strong{color:var(--text-primary);font-weight:600}.warning-dialog-option span{color:var(--text-secondary)}.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)}.overtime-dialog-customize-link{height:36px;font-size:13px;font-weight:500;border:none;background:transparent;color:var(--accent);cursor:pointer;padding:0;text-align:center;transition:opacity .15s ease}.overtime-dialog-customize-link:hover{opacity:.7}.overtime-dialog-bulk-btn.active{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--text-secondary)}.overtime-dialog-day-list{list-style:none;margin:0 0 24px;padding:0;max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.overtime-dialog-day-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border)}.overtime-dialog-day-row:last-child{border-bottom:none}.overtime-dialog-day-label{font-size:13px;color:var(--text-primary);font-weight:500}.overtime-dialog-day-toggle{display:inline-flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:2px;gap:2px}.overtime-dialog-toggle-btn{padding:4px 12px;font-size:12px;font-weight:500;border:none;border-radius:calc(var(--radius-md) - 2px);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.overtime-dialog-toggle-btn.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 2px #00000014}.scheduling-panel-date-box.focused{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb1a}input.scheduling-panel-date-box{min-width:0;width:0;text-align:center;outline:none;font-family:inherit;box-sizing:border-box}input.scheduling-panel-date-box::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}input.scheduling-panel-date-box::placeholder{color:var(--text-muted)}.scheduling-panel-calendar-hint{margin:8px 0 0;padding:0 4px;font-size:11px;font-weight:400;color:var(--text-muted);text-align:center;line-height:1.4}.scheduling-panel-date-box.placeholder{color:var(--text-muted)}.scheduling-panel-add-end svg{color:var(--accent)}.scheduling-panel-calendar{background:#ffffff59;border:1px solid rgba(148,163,184,.2);box-shadow:inset 0 1px #ffffff6b;-webkit-backdrop-filter:blur(11px) saturate(150%);backdrop-filter:blur(11px) saturate(150%);border-radius:var(--radius-md);padding:10px}.scheduling-panel-calendar-reset{display:block;margin:8px auto 0;padding:4px 10px;font-size:11px;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid rgba(148,163,184,.4);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.scheduling-panel-calendar-reset:hover{background:#94a3b81f;color:var(--text-primary);border-color:#94a3b8a6}.scheduling-panel-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.scheduling-panel-calendar-header button{width:24px;height:24px;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:12px;font-weight:600;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:10px;color:var(--text-muted);padding:2px 0}.scheduling-panel-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);column-gap:0;row-gap:1px}.scheduling-panel-calendar-day{aspect-ratio:1.15;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-primary);background:none;border:none;border-radius:0;cursor:pointer;transition:all .1s ease}.scheduling-panel-calendar-day:hover:not(:disabled):not(.empty):not(.hover-end):not(.hover-start):not(.selected){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.selected.start.end{border-radius:var(--radius-sm)}.scheduling-panel-calendar-day.in-range{background:#2563eb26;border-radius:0}.scheduling-panel-calendar-day.hover-range{background:#2563eb14;border-radius:0}.scheduling-panel-calendar-day.hover-end{background:var(--accent);color:#fff;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.scheduling-panel-calendar-day.hover-start{background:var(--accent);color:#fff;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.scheduling-panel-calendar-day.selected.hover-end,.scheduling-panel-calendar-day.selected.hover-start{border-radius:var(--radius-sm)}.scheduling-panel-calendar-day.start-date{background:#2563eb4d;color:var(--accent)}.scheduling-panel-calendar-day.in-range.off-day,.scheduling-panel-calendar-day.off-day{background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.22) 3px,rgba(148,163,184,.22) 6px);background-color:transparent;color:var(--text-muted)}.scheduling-panel-calendar-day.in-range.overtime-day,.scheduling-panel-calendar-day.overtime-day{background-color:#fde6be;background-image:none;color:#92400e}.scheduling-panel-calendar-day.selected.overtime-day{background-color:#f59e0b;background-image:none;color:#fff}.scheduling-panel-calendar-day.in-range,.scheduling-panel-calendar-day.selected{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent)}.scheduling-panel-calendar-day.selected.start{border-left:1px solid var(--accent)}.scheduling-panel-calendar-day.selected.end{border-right:1px solid var(--accent)}.scheduling-panel-calendar-day.selected.overtime-day{border-color:#d97706}.scheduling-panel-calendar-day.manager-flipped,.scheduling-panel-row.date-row{position:relative}.scheduling-panel-datepicker-popup.above{top:auto;bottom:calc(100% + 4px)}.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{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;width:100%;font-size:12px;font-weight:600;color:var(--error, #dc2626);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, #dc2626)}.scheduling-panel-mode-badge{margin-left:6px;padding:2px 6px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#2563eb1a;border-radius:4px}.scheduling-panel-footer{flex-shrink:0;display:flex;flex-direction:column;gap:8px;padding:12px;border-top:1px solid rgba(148,163,184,.18);background:#ffffff57;-webkit-backdrop-filter:blur(12px) saturate(145%);backdrop-filter:blur(12px) saturate(145%)}@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))){.scheduling-sidebar{background:var(--bg-primary)}.scheduling-sidebar:before{display:none}.scheduling-panel-dropdown-menu,.scheduling-panel-footer{background:var(--bg-primary)}}.timeline-cell{cursor:pointer;transition:background .1s ease}.timeline-cell:hover{background-color:#2563eb14!important}.timeline-row .timeline-cell{position:relative}.timeline-row .timeline-cell:after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;font-weight:600;color:var(--accent);opacity:0;transition:opacity .15s ease;pointer-events:none}.timeline-row .timeline-cell:hover:after{opacity:.5}.timeline-cell.normally-off:hover{background-color:#2563eb14!important}.timeline-row>.timeline-cell{cursor:default}.timeline-row>.timeline-cell:hover,.timeline-row>.timeline-cell.normally-off:hover{background-color:transparent!important}.timeline-row>.timeline-cell:hover:after{opacity:0!important}.timeline-row.cell-focused{background:#2563eb0a}.timeline-row.milestone-editor-selected{background:#2563eb09}.timeline-row.milestone-editor-selected:not(.timeline-row-hidden-main){box-shadow:none}::-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)}.panel-unschedule-btn svg{flex-shrink:0}.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)}.crew-option input[type=checkbox]{accent-color:var(--accent)}.crew-picker-search .search-icon{color:var(--text-muted);flex-shrink:0}.crew-picker-option:hover,.crew-picker-option.highlighted{background:var(--bg-hover)}.crew-picker-option.selected{background:var(--accent-light)}.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-separator span{font-size:var(--font-size-xs);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.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-option.selected{background:var(--accent-light)}.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)}.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 .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}.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}.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)}.milestone-row:hover .lock-btn{opacity:1}.lock-btn.locked{opacity:1;color:var(--accent)}.lock-btn.locked:hover{color:var(--accent-hover)}.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>span:first-child{flex:1}.sort-toggle-btn:hover,.sort-toggle-btn.active{color:var(--text-primary);background:var(--bg-hover)}.sort-option.active{color:var(--accent)}.sort-option span{flex:1}.copy-schedule-btn:hover,.copy-schedule-btn.active{color:var(--text-primary);background:var(--bg-hover)}.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)}.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-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)}.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}.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}.archive-btn.unarchive:hover{color:var(--success)}.project-row.selected{background:var(--accent-light)}.timeline-row.selected{background:#2563eb0a}.timeline-row.flash{animation:timeline-row-flash 1.8s ease-out}@keyframes timeline-row-flash{0%{background:#3b82f652}20%{background:#3b82f647}to{background:#3b82f600}}.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}.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}.notification-bell{position:relative}.notification-bell.has-unread{color:inherit}.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-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-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{position:relative;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0;padding:0;margin-right:var(--space-1);transition:all .15s ease}.expand-toggle:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted);color:var(--text-primary)}.expand-toggle.template-select-toggle{background:var(--accent-light);border-color:#bfdbfe;color:var(--accent)}.expand-toggle.template-select-toggle:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd;color:var(--accent-hover)}.expand-toggle.disabled,.expand-toggle:disabled{opacity:.35;cursor:default;pointer-events:none}.project-row-container{display:flex;flex-direction:column}.project-virtual-spacer,.timeline-virtual-spacer{flex:0 0 auto;pointer-events:none}.project-row.pin-animating{opacity:.6;transition:opacity .2s ease}.project-row.expanded{border-bottom-color:transparent}.project-row.project-row-hidden-main,.timeline-row.timeline-row-hidden-main{height:4px!important;min-height:4px;box-sizing:border-box;padding:0;border-top:3px solid #111827;border-bottom:0;background:var(--bg-primary);cursor:default;overflow:hidden}.project-row.project-row-hidden-main{padding:0;gap:0}.project-row.project-row-hidden-main:hover,.timeline-row.timeline-row-hidden-main:hover{background:var(--bg-primary)}.project-row.project-row-hidden-main>*,.timeline-row.timeline-row-hidden-main>*{display:none!important}.milestone-subrows{display:flex;flex-direction:column;background:var(--bg-secondary)}.milestone-subrow{height:30px;display:flex;align-items:center;padding-left:47px;padding-right:16px;border-bottom:1px solid #F0F1F4;background:var(--bg-secondary);position:relative}.app.gantt-mode .milestone-subrow{height:30px}.milestone-subrow.milestone-group-start,.gantt-subrow.milestone-group-start{border-top:2px solid var(--milestone-group-accent, #111827)}.milestone-subrow.milestone-group-start:before,.gantt-subrow.milestone-group-start:before{content:attr(data-group-label);position:absolute;top:1px;left:8px;z-index:4;color:var(--milestone-group-accent, #111827);font-size:9px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.04em;pointer-events:none}.milestone-subrow.milestone-group-start:after,.gantt-subrow.milestone-group-start:after{content:"";position:absolute;inset:0;z-index:1;border-left:4px solid var(--milestone-group-accent, #111827);background:linear-gradient(90deg,var(--milestone-group-tint, transparent),transparent 48%);pointer-events:none}.milestone-subrow.has-project-toggle{padding-left:64px}.milestone-subrow.has-project-toggle.milestone-group-start:before{left:64px}.milestone-subrow-collapse-toggle{position:absolute;left:8px;top:50%;transform:translateY(-50%);margin-right:0;z-index:5}.milestone-subrow.has-project-toggle .milestone-subrow-handle{left:45px}.milestone-subrow-handle{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:grab;opacity:0;transition:opacity .12s ease,color .12s ease}.milestone-subrow:hover .milestone-subrow-handle{opacity:1}.milestone-subrow-handle:hover{color:var(--text-primary)}.milestone-subrow-handle:active{cursor:grabbing}.milestone-subrow{cursor:default}.milestone-subrow-set-production{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;background:transparent;border:1px dashed rgba(15,23,42,.32);border-radius:2px;color:var(--text-tertiary);font-size:10.5px;font-weight:500;letter-spacing:.2px;cursor:pointer;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .12s ease,border-color .12s ease,color .12s ease,background-color .12s ease}.milestone-subrow:hover .milestone-subrow-set-production{opacity:1;pointer-events:auto}.milestone-subrow-set-production:hover{border-color:var(--accent);color:var(--accent);background:#2563eb0f}.milestone-subrow-production-editor{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 4px;background:var(--bg-primary);border:1px solid var(--accent);border-radius:4px;flex-shrink:0}.milestone-subrow-production-editor input{height:18px;border:none;outline:none;background:transparent;font-size:11px;color:var(--text-primary);padding:0 2px;-moz-appearance:textfield}.milestone-subrow-production-editor input::-webkit-outer-spin-button,.milestone-subrow-production-editor input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.milestone-subrow-production-editor-qty{width:40px;text-align:right}.milestone-subrow-production-editor-code{width:32px;text-align:center;font-weight:600}.milestone-subrow-label.clickable{cursor:pointer;border-radius:4px;padding:1px 4px;margin:-1px -4px;transition:background-color .12s ease,color .12s ease}.milestone-subrow-label.clickable:hover{background:#2563eb14;color:var(--accent)}.milestone-subrow.selected{background:#2563eb14;box-shadow:inset 3px 0 0 var(--accent)}.milestone-subrow.selected:hover{background:#2563eb1a}.milestone-subrow.milestone-subrow-creating{background:var(--bg-primary);box-shadow:inset 0 0 0 1.5px var(--blue-500);border-radius:var(--radius-sm)}.milestone-subrow-name-input{flex:1;min-width:0;border:none;outline:none;background:transparent;padding:0;font:inherit;color:var(--text-primary)}.milestone-subrow-name-input::placeholder{color:var(--text-muted)}.milestone-subrow-name{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-2);white-space:nowrap;overflow:hidden;min-width:0;flex:1}.milestone-subrow-label{flex-shrink:0}.milestone-subrow-duration{flex-shrink:0;margin-left:var(--space-2);padding:1px 6px;font-size:10px;font-weight:600;color:var(--text-muted);background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;letter-spacing:.3px;line-height:16px}.milestone-subrow-crews{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden}.milestone-subrow-crew{font-size:var(--font-size-xs);font-weight:600;color:var(--accent);background:#fff;border:1px solid var(--gray-200, #E5E7EB);padding:2px 6px;border-radius:2px;white-space:nowrap;flex-shrink:0;cursor:pointer;transition:background .1s ease,border-color .1s ease;display:inline-flex;align-items:center;gap:4px}.milestone-subrow-crew-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #fff9}.milestone-subrow-crew:hover{background:var(--gray-100, #F3F4F6);border-color:var(--gray-300, #D1D5DB)}.milestone-subrow-crews-overflow{font-size:10px;font-weight:600;color:var(--text-muted);background:var(--border);padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0}.milestone-subrow-production{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:1px 6px;border-radius:2px;background:#2563eb1a;color:var(--accent);font-size:10.5px;font-weight:600;line-height:14px;letter-spacing:.2px;white-space:nowrap;flex-shrink:0}.milestone-subrow-production.complete{background:#16a34a24;color:var(--green-600, #16A34A)}.milestone-subrow-production-count{font-variant-numeric:tabular-nums}.milestone-subrow-production-total.editable{cursor:text;border-radius:3px;padding:0 2px;transition:background .1s ease,box-shadow .1s ease}.milestone-subrow-production-total.editable:hover{background:var(--bg-primary, #fff);box-shadow:inset 0 -1px 0 currentColor}.milestone-subrow-production-total-input{appearance:none;width:3.2em;min-width:28px;padding:0 4px;margin:0;border:1px solid currentColor;border-radius:3px;background:var(--bg-primary, #fff);color:inherit;font:inherit;font-variant-numeric:tabular-nums;text-align:center}.milestone-subrow-production-total-input::-webkit-inner-spin-button,.milestone-subrow-production-total-input::-webkit-outer-spin-button{appearance:none;margin:0}.milestone-subrow-production-type{font-weight:500;opacity:.85}.milestone-subrow-chunks{display:inline-flex;align-items:center;gap:3px;margin-left:6px;flex-shrink:1;min-width:0;overflow:hidden}.milestone-subrow-chunk{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;letter-spacing:.2px;color:var(--accent);background:#fff;border:1px solid rgba(37,99,235,.35);border-radius:3px;padding:1px 5px;white-space:nowrap;font-variant-numeric:tabular-nums}.milestone-subrow-chunk.completed{background:#16a34a1a;border-color:#16a34a73;color:var(--green-600, #16A34A)}.timeline-row-container{display:flex;flex-direction:column;position:relative}.timeline-row.expanded{border-bottom-color:transparent}.lane-bar.focus-pulse{animation:lane-bar-focus-pulse 2.4s cubic-bezier(0,0,.2,1) 1;z-index:6}@keyframes lane-bar-focus-pulse{0%{box-shadow:0 0 #3b82f68c}40%{box-shadow:0 0 0 8px #3b82f633}to{box-shadow:0 0 0 14px #3b82f600}}.timeline-row.project-row-focus-pulse{animation:project-row-focus-pulse 2.4s cubic-bezier(0,0,.2,1) 1}@keyframes project-row-focus-pulse{0%{background-color:#3b82f62e}40%{background-color:#3b82f61a}to{background-color:#3b82f600}}.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)}.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}.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 span{font-size:10px;font-weight:600;color:var(--text-muted);text-align:center;padding:4px 0}.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:2px;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-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-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-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}.notification-digest-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a85}.notification-digest-modal{width:min(620px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 24px 70px #0f172a47}.notification-digest-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:20px 22px 16px;border-bottom:1px solid var(--border)}.notification-digest-header h2{margin:0;font-size:20px;font-weight:700;color:var(--text-primary)}.notification-digest-header p{margin:6px 0 0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.4}.notification-digest-list{overflow-y:auto;padding:6px 0}.notification-digest-item{display:flex;gap:var(--space-3);padding:14px 22px;border-bottom:1px solid var(--border-light)}.notification-digest-item:last-child{border-bottom:none}.notification-digest-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.notification-digest-children{display:flex;flex-direction:column;gap:4px;margin-top:8px}.notification-digest-child{display:flex;justify-content:space-between;gap:var(--space-3);width:100%;padding:7px 9px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);font-family:inherit;text-align:left;cursor:pointer}.notification-digest-child:hover{background:var(--bg-hover)}.notification-digest-child span:first-child{color:var(--text-primary);font-weight:500}.notification-digest-footer{display:flex;justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--border);background:var(--bg-secondary)}.notification-digest-ack-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:0 14px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-family:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.notification-digest-ack-btn:hover{background:var(--accent-hover)}@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}.milestone-celebration-overlay{position:fixed;inset:0;z-index:2200;pointer-events:none;overflow:hidden}.milestone-confetti-layer{position:absolute;inset:-12vh 0 0}.milestone-confetti-piece{position:absolute;left:var(--confetti-left);top:0;width:var(--confetti-size);height:calc(var(--confetti-size) * .48);border-radius:2px;background:var(--confetti-color);opacity:0;will-change:transform,opacity;transform:translate3d(0,-10vh,0) rotate(var(--confetti-rotate));animation:milestone-confetti-fall var(--confetti-duration) cubic-bezier(.19,.77,.32,1) var(--confetti-delay) forwards}.milestone-celebration-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;filter:drop-shadow(0 10px 22px rgba(15,23,42,.24))}.milestone-celebration-star{font-size:clamp(78px,14vw,148px);line-height:1;color:#fbbf24;text-shadow:0 0 16px rgba(251,191,36,.45);animation:milestone-celebration-star-pop .85s cubic-bezier(.18,.82,.22,1.15) forwards}.milestone-celebration-text{margin-top:8px;font-size:clamp(24px,4.1vw,42px);line-height:1.05;font-weight:700;letter-spacing:.01em;color:#0f172a;text-transform:lowercase;animation:milestone-celebration-text-pop .95s ease-out .11s both}@keyframes milestone-confetti-fall{0%{opacity:0;transform:translate3d(0,-12vh,0) rotate(var(--confetti-rotate))}12%{opacity:1}to{opacity:0;transform:translate3d(var(--confetti-drift),114vh,0) rotate(calc(var(--confetti-rotate) + 820deg))}}@keyframes milestone-celebration-star-pop{0%{opacity:0;transform:translateY(16px) scale(.62) rotate(-12deg)}62%{opacity:1;transform:translateY(0) scale(1.13) rotate(3deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes milestone-celebration-text-pop{0%{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.milestone-list-view{max-width:720px;margin:0 auto;padding:0 0 64px}.milestone-list-view.mlist-wide{max-width:none}.mlist-two-col{display:flex;gap:0;height:calc(100vh - 120px);overflow:visible;position:relative}.mlist-two-col.in-detail{height:auto;min-height:0}.mlist-two-col.in-detail .mlist-col-left{overflow:visible;height:auto}.main:has(.mlist-two-col.in-detail){overflow:auto}.mlist-col-left{flex:1;min-width:0;overflow-x:auto;overflow-y:auto;scrollbar-width:none}.mlist-col-left:hover{scrollbar-width:thin}.mlist-col-left::-webkit-scrollbar{height:6px}.mlist-col-left::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}.mlist-col-left:hover::-webkit-scrollbar-thumb{background:#0003}.mlist-col-right{width:320px;flex-shrink:0;border-left:1px solid var(--border-light);position:relative;transition:width .2s ease;overflow:visible}.mlist-col-right.collapsed{width:44px;min-width:44px;overflow:visible}.mlist-sidebar-toggle{position:absolute;top:8px;left:-13px;z-index:10;width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 3px #0000001a;transition:color .15s}.mlist-sidebar-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}.mlist-collapsed-stat strong{font-weight:700;color:var(--text-primary)}.mlist-thead,.mlist-row{display:flex;align-items:stretch;gap:8px}.mlist-thead{display:flex;align-items:stretch;padding:0 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.mlist-th{font-size:10px;font-weight:500;color:#374151;display:flex;align-items:center;gap:4px;position:relative;border-radius:2px;transition:background .1s;cursor:pointer;padding:8px}.mlist-th:first-child{padding-left:0}.mlist-th:hover:not(.dragging){background:#f3f4f6}.mlist-th.dragging{background:#dbeafe!important}.is-dragging .mlist-th:hover:not(.dragging){background:transparent}.dash-tbl-td.col-dragging{background:#eff6ff!important}.mlist-cell.col-dragging{background:#eff6ff}.mlist-col-resize{position:absolute;top:0;right:-2px;width:5px;height:100%;cursor:col-resize;z-index:4}.mlist-col-resize:hover,.mlist-col-resize:active{background:#2563eb;opacity:.4}.mlist-th-icons{display:flex;align-items:center;gap:2px;color:#9ca3af;opacity:0;pointer-events:none;flex-shrink:0;width:0;overflow:hidden;transition:width .1s ease,opacity .1s ease}.mlist-th:hover .mlist-th-icons,.mlist-th-icons.has-active{opacity:1;pointer-events:auto;width:auto;overflow:visible}.mlist-th-icons svg{cursor:pointer;border-radius:2px;padding:1px}.mlist-th-icons svg:hover{color:#374151;background:#e5e7eb}.mlist-icon-active{background:#eff6ff!important;border-radius:4px;color:#2563eb!important}.mlist-th-text{cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mlist-drag-handle{cursor:grab;touch-action:none}.mlist-drag-handle:active{cursor:grabbing}.mlist-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:#fff;border:1px solid var(--border-light);border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:180px;z-index:100;padding:4px 0}.mlist-menu-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.mlist-menu-item:hover{background:var(--bg-hover)}.mlist-menu-item svg{flex-shrink:0;color:var(--text-secondary);width:14px;height:14px}.mlist-menu-item.active{color:#2563eb}.mlist-menu-item.active svg{color:#2563eb}.mlist-menu-check{margin-left:auto}.mlist-menu-separator{border-top:1px solid var(--border-light);margin:4px 0}.mlist-filter-item.selected{font-weight:600}.mlist-filter-item svg{flex-shrink:0}.mlist-date-range-pill.active{border-color:var(--accent);background:var(--accent-light)}.mlist-date-day:not(.empty):hover{background:var(--bg-hover)}.mlist-date-day.in-range{background:var(--accent-light);border-radius:0}.mlist-date-day.selected{background:var(--accent);color:#fff;font-weight:600;border-radius:4px}.mlist-date-day.empty{cursor:default}.mlist-row{position:relative;padding:0 16px;cursor:pointer;transition:background .15s ease;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-light)}.mlist-row:last-child{border-bottom:none}.mlist-row:hover{background:var(--bg-hover)}.mlist-cell{font-size:12px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;padding:12px 8px;min-width:0}.mlist-cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.mlist-cell:first-child{padding-left:0}.mlist-cell-name{font-weight:700}.mlist-cell-status{overflow:visible}.mlist-cell-milestone{position:relative;overflow:visible}.mlist-cell-progress{display:flex;align-items:center;gap:8px;overflow:visible}.mlist-cell-empty{color:var(--text-muted)}.mlist-cell-hint{font-size:11px}.mlist-cell-dash{font-size:10px}.mlist-next-ms-label.done{color:var(--text-secondary)}.mlist-next-ms.overdue .mlist-next-ms-label,.mlist-next-ms.overdue .mlist-next-ms-date{color:#d42e15}.mlist-ms-dropdown-label.unscheduled{color:var(--text-muted)}.mlist-status-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:600;height:22px;padding:0 8px;border-radius:4px;white-space:nowrap;box-sizing:border-box}.mlist-progress-fill.complete{background:#3a9944}.mlist-groupby-btn.active{background:#eff6ff;border-color:#bfdbfe;color:#2563eb}.mlist-group-chevron.collapsed{transform:rotate(-90deg)}.mlist-dash-section-subtitle strong{font-weight:700;color:var(--text-primary)}.mlist-stacked-bar>div{min-width:4px;border-radius:2px}.mlist-legend-item strong{font-weight:700}.mlist-detail-list .dash-tbl-thead{padding:0 4px;position:sticky;top:0;z-index:3}.mlist-ms-th:hover .mlist-th-icons{visibility:visible}.mlist-ms-th.dragging{opacity:.5;background:var(--accent-light)}.mlist-ms-cell.col-dragging{background:#eff6ff!important}.mlist-ms-th .mlist-col-resize{position:absolute;top:0;right:-2px;width:5px;height:100%;cursor:col-resize;z-index:4}.mlist-ms-th .mlist-col-resize:hover,.mlist-ms-th .mlist-col-resize:active{background:#2563eb;opacity:.4}.mlist-milestone-row.unscheduled{opacity:.55}.mlist-milestone-group-divider.muted{opacity:.72}.mlist-milestone-label.done,.mlist-milestone-label.unscheduled{color:#94a3b8}.mlist-milestone-badge{font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px;flex-shrink:0}.mlist-milestone-badge.badge-early{color:#15803d;background:#dcfce7}.mlist-milestone-badge.badge-late{color:#d42e15;background:#fee2e2}.mlist-milestone-tag{font-size:11px;font-weight:600;padding:1px 8px;border-radius:4px;border:none;background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.mlist-milestone-tag:hover{background:var(--border);color:var(--text-secondary)}.mlist-milestone-tag.tag-ontime{background:var(--bg-secondary);color:var(--text-muted)}.mlist-milestone-tag.tag-early{border:none;background:#dcfce7;color:#15803d;font-weight:600}.mlist-milestone-tag.tag-late{border:none;background:#fee2e2;color:#d42e15;font-weight:600}.mlist-milestone-date.done{color:#cbd5e1}.mlist-milestone-date.overdue{color:#ef4444;font-weight:500}.mlist-milestone-date.unscheduled{color:#cbd5e1;font-style:italic}.mlist-status-btn-wrap[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);top:auto;left:50%;transform:translate(-50%);padding:4px 10px;border-radius:4px;background:#1e293b;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:100}.mlist-status-btn-wrap[data-tooltip]:hover:after{opacity:1}.mlist-ms-date-btn.overdue{color:var(--error)}.mlist-date-day.non-working{color:var(--text-muted)}.mlist-crew-chip.clickable{cursor:pointer;transition:background .15s,color .15s}.mlist-crew-chip.clickable:hover{background:#dbeafe;color:#1d4ed8}.mlist-crew-chip.conflict{border-color:var(--warning);background:var(--warning-light);color:var(--text-primary)}.mlist-crew-option:hover,.mlist-crew-option.highlighted{background:var(--bg-hover)}.mlist-crew-option.selected{background:var(--accent-light)}.mlist-crew-option.selected .mlist-crew-checkbox{border-color:var(--accent);background:var(--accent);color:#fff}.mlist-crew-checkbox.create{border-style:dashed;color:var(--text-muted)}.mlist-crew-conflict span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mlist-crew-separator span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.mlist-timing-option.active,.analytics-kpi-breakdown strong{font-weight:600}.analytics-crew-thead span:nth-child(n+3){text-align:right}.analytics-phase-header span:not(:first-child){text-align:right}.analytics-phase-val strong{font-weight:600}.dash-builder{display:flex;flex-direction:column;height:100%;position:relative}.dash-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-primary);flex-shrink:0;gap:12px;position:relative;z-index:200}.dash-toolbar-right{position:relative;flex-shrink:0;display:flex;align-items:center;gap:8px;z-index:200}.dash-add-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap;box-sizing:border-box}.dash-add-btn:hover{background:var(--bg-hover)}.dfb-bar{display:flex;align-items:center;gap:6px;padding:0 16px;height:40px;min-height:40px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap;position:relative;z-index:20}.dfb-bar::-webkit-scrollbar{display:none}.dfb-icon{color:var(--text-muted);flex-shrink:0;margin-right:2px}.dfb-dropdown{position:relative;flex-shrink:0}.dfb-trigger{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap;-webkit-user-select:none;user-select:none}.dfb-trigger:hover{background:var(--bg-hover);border-color:#d1d5db}.dfb-trigger--active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.dfb-trigger--active .dfb-trigger-caret{color:var(--accent)}.dfb-trigger-label{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:500}.dfb-trigger--active .dfb-trigger-label{color:var(--accent)}.dfb-trigger-value{font-weight:500;color:var(--text-primary);max-width:120px;overflow:hidden;text-overflow:ellipsis}.dfb-trigger--active .dfb-trigger-value{color:var(--accent)}.dfb-trigger-caret{color:var(--text-muted);flex-shrink:0}.dfb-panel{position:absolute;top:calc(100% + 4px);left:0;min-width:180px;max-height:260px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;box-shadow:0 4px 16px #0000001a;z-index:200;padding:4px 0;scrollbar-width:thin}.dfb-panel::-webkit-scrollbar{width:4px}.dfb-panel::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.dfb-option{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s;width:100%;text-align:left;border:none;background:none}.dfb-option:hover{background:var(--bg-hover)}.dfb-option--single{display:flex;padding-left:12px}.dfb-option--selected{color:var(--accent);font-weight:500;background:var(--accent-light)}.dfb-option--selected:hover{background:var(--accent-light)}.dfb-checkbox{accent-color:var(--accent);width:13px;height:13px;flex-shrink:0;cursor:pointer}.dfb-option-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dfb-divider{height:1px;background:var(--border-light);margin:3px 0}.dfb-clear-btn{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;margin-left:4px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:color .12s,background .12s;white-space:nowrap;flex-shrink:0}.dfb-clear-btn:hover{color:var(--error);background:var(--error-light);border-color:var(--error)}.dfb-panel--time-range{min-width:160px}.dfb-custom-dates{padding:4px 10px 6px}.dfb-custom-dates-row{display:flex;align-items:center;gap:6px;margin-top:5px}.dfb-custom-dates-label{font-size:11px;color:var(--text-muted);font-weight:500;width:26px;flex-shrink:0}.dfb-date-input{flex:1;height:24px;padding:0 5px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-family:inherit;outline:none;min-width:0}.dfb-date-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.aw-overlay{position:fixed;inset:0;z-index:200;background:#00000040;display:flex;align-items:center;justify-content:center}.aw-modal{width:600px;max-height:80vh;display:flex;flex-direction:column;background:var(--bg-primary);border-radius:4px;box-shadow:0 16px 48px #0000002e;overflow:hidden}.aw-modal--browse{width:780px}.aw-modal-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.aw-modal-title{flex:1;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.aw-back-btn,.aw-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:2px;background:none;color:var(--text-secondary);cursor:pointer;transition:background .15s;flex-shrink:0}.aw-back-btn:hover,.aw-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.aw-modal-body{flex:1;overflow-y:auto;padding:16px;scrollbar-width:thin}.aw-config-body{display:flex;flex-direction:column;gap:6px}.aw-config-label{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin-top:8px}.aw-config-label:first-child{margin-top:0}.aw-config-input{width:100%;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm);box-sizing:border-box;outline:none;transition:border-color .15s}.aw-config-input:focus{border-color:var(--accent)}.aw-config-project-list{display:flex;flex-direction:column;gap:1px;max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:2px;padding:4px 6px;scrollbar-width:thin}.aw-config-project-item{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:2px;cursor:pointer;font-size:var(--font-size-sm);color:var(--text-primary);-webkit-user-select:none;user-select:none}.aw-config-project-item:hover{background:var(--bg-hover)}.aw-config-project-all{font-weight:500}.aw-config-divider{height:1px;min-height:1px;background:var(--border);margin:4px -6px}.aw-checkbox{appearance:none;-webkit-appearance:none;width:16px;height:16px;min-width:16px;border:1.5px solid #A3B0C5;border-radius:2px;background:#fff;cursor:pointer;position:relative;transition:background .1s,border-color .1s;flex-shrink:0}.aw-checkbox:checked{background:#0053d4;border-color:#0053d4;background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 5L6.66667 11L4 8.00013' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:16px 16px;background-position:center;background-repeat:no-repeat}.aw-config-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:16px;margin-top:4px;border-top:1px solid var(--border)}.aw-cancel-btn{height:32px;padding:0 12px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .15s}.aw-cancel-btn:hover{background:var(--bg-hover)}.aw-confirm-btn{height:32px;padding:0 14px;border:none;border-radius:2px;background:var(--accent);color:#fff;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background .15s}.aw-confirm-btn:hover:not(:disabled){background:var(--accent-hover)}.aw-confirm-btn:disabled{opacity:.45;cursor:not-allowed}.aw-custom-options{display:flex;flex-wrap:wrap;gap:6px}.aw-custom-option{height:28px;padding:0 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .1s,border-color .1s,color .1s;white-space:nowrap}.aw-custom-option:hover{background:var(--bg-hover)}.aw-custom-option.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.dash-color-list{display:flex;flex-direction:column;gap:4px}.dash-color-row{display:flex;align-items:center;gap:8px;padding:3px 0;-webkit-user-select:none;user-select:none}.dash-color-row-all{padding:4px 0}.dash-color-swatch{width:22px;height:22px;min-width:22px;border-radius:4px;border:1px solid rgba(0,0,0,.12);position:relative;overflow:hidden;cursor:pointer;flex-shrink:0}.dash-color-input{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);opacity:0;cursor:pointer;padding:0;border:none}.dash-color-label{font-size:var(--font-size-sm);color:var(--text-primary)}.aw-browse-layout{display:flex;flex:1;min-height:0;overflow:hidden}.aw-browse-sidebar{width:160px;min-width:160px;border-right:1px solid var(--border);padding:8px 6px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;scrollbar-width:thin}.aw-browse-cat{display:flex;align-items:center;width:100%;height:32px;padding:0 10px;border:none;border-radius:4px;background:none;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;text-align:left;transition:background .1s,color .1s;white-space:nowrap}.aw-browse-cat:hover{background:var(--bg-hover);color:var(--text-primary)}.aw-browse-cat.active{background:var(--accent-light);color:var(--accent)}.aw-browse-main{flex:1;overflow-y:auto;padding:12px;scrollbar-width:thin}.aw-browse-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.aw-browse-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);cursor:pointer;text-align:left;overflow:hidden;transition:border-color .15s,box-shadow .15s;padding:0}.aw-browse-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #0053d41a}.aw-browse-card--custom{border-style:dashed}.aw-browse-card-preview{display:flex;align-items:center;justify-content:center;height:72px;color:var(--text-secondary)}.aw-browse-card:hover .aw-browse-card-preview{color:var(--accent)}.aw-browse-card-info{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;border-top:1px solid var(--border-light)}.aw-browse-card-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);line-height:1.3}.aw-browse-card-desc{font-size:11px;color:var(--text-muted);line-height:1.4}.crew-wl-wrap{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;gap:4px}.crew-wl-nav{display:flex;align-items:center;gap:4px;flex-shrink:0}.crew-wl-nav-btn{display:flex;align-items:center;justify-content:center;height:24px;padding:0 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;flex-shrink:0}.crew-wl-nav-btn:hover{background:var(--bg-hover)}.crew-wl-range-label{flex:1;font-size:11px;font-weight:600;color:var(--text-primary);text-align:center}.crew-wl-grid{flex:1;display:grid;gap:1px;min-height:0;overflow:auto;scrollbar-width:thin;grid-auto-rows:minmax(32px,1fr)}.crew-wl-grid--list{grid-auto-rows:minmax(40px,1fr)}.crew-wl-hdr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px 0}.crew-wl-hdr--today .crew-wl-hdr-dow,.crew-wl-hdr--today .crew-wl-hdr-date{color:var(--accent)}.crew-wl-hdr-dow{font-size:9px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;line-height:1}.crew-wl-hdr-date{font-size:13px;font-weight:700;color:var(--text-primary);line-height:1}.crew-wl-name{font-size:11px;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;padding:0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--border)}.crew-wl-cell{display:flex;align-items:center;justify-content:center;border-radius:4px;cursor:default}.crew-wl-cell--today{box-shadow:inset 0 0 0 1.5px #93c5fd}.crew-wl-num{font-size:13px;font-weight:700;line-height:1}.crew-wl-cell-list{display:flex;flex-direction:column;gap:1px;padding:2px 3px;border-radius:4px;background:#fafafa;overflow:hidden;cursor:default}.crew-wl-cell-list.crew-wl-cell--today{background:#eff6ff;box-shadow:inset 0 0 0 1.5px #93c5fd}.crew-wl-pill{display:flex;flex-direction:column;font-size:9px;line-height:1.3;padding:2px 4px;border-left:2.5px solid;border-radius:2px;background:#fff;box-shadow:0 0 0 1px #00000014,0 1px 3px #0000000f;overflow:hidden;min-width:0}.crew-wl-pill-label{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-wl-pill-project{font-weight:400;font-size:8px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-wl-more{font-size:8px;font-weight:600;color:var(--text-muted);padding:0 3px}.crew-wl-hdr--weekend .crew-wl-hdr-dow,.crew-wl-hdr--weekend .crew-wl-hdr-date{color:#c9cdd4}.crew-wl-cell--weekend{background:#f9fafb!important}.crew-wl-cell-list.crew-wl-cell--weekend{background:#f6f7f8!important}.crew-wl-grid--month{grid-auto-rows:minmax(56px,1fr)}.crew-wl-cell-month{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:4px;padding:4px;cursor:default}.crew-wl-month-count{font-size:18px;font-weight:800;line-height:1}.crew-wl-month-sub{font-size:9px;font-weight:500;color:var(--text-muted);line-height:1.2}.crew-wl-month-empty{font-size:14px;color:#d1d5db}.dash-content{flex:1;display:flex;min-height:0}.dash-canvas{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:16px;overflow-y:auto;min-height:0;align-content:start;background:var(--bg-secondary);scrollbar-width:thin;scrollbar-color:transparent transparent}.dash-canvas:hover{scrollbar-color:rgba(0,0,0,.2) transparent}.dash-canvas::-webkit-scrollbar{width:6px}.dash-canvas::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}.dash-canvas:hover::-webkit-scrollbar-thumb{background:#0003}.dash-widget-body{scrollbar-width:thin;scrollbar-color:transparent transparent}.dash-widget-body:hover{scrollbar-color:rgba(0,0,0,.15) transparent}.dash-widget-body::-webkit-scrollbar{width:4px}.dash-widget-body::-webkit-scrollbar-thumb{background:transparent;border-radius:2px}.dash-widget-body:hover::-webkit-scrollbar-thumb{background:#00000026}.dash-canvas-empty{display:flex;align-items:center;justify-content:center}.dash-drop-indicator{border:2px dashed var(--accent);border-radius:2px;background:var(--accent-light);opacity:.5;pointer-events:none}.dash-widget{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);overflow:hidden;position:relative;transition:box-shadow .15s}.dash-widget:hover{box-shadow:0 2px 12px #0000000f}.dash-widget-resizing{-webkit-user-select:none;user-select:none;box-shadow:0 4px 16px #0000001a}.dash-widget-header{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border-light);cursor:grab;flex-shrink:0}.dash-widget-header:active{cursor:grabbing}.dash-widget-drag{color:var(--text-muted);flex-shrink:0}.dash-widget-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-widget-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.dash-widget:hover .dash-widget-actions{opacity:1}.dash-widget-action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-secondary);cursor:pointer}.dash-widget-action:hover{background:var(--bg-hover);color:var(--text-primary)}.dash-widget-body{flex:1;overflow:auto;padding:12px;display:flex;align-items:center;justify-content:center}.dash-widget-body:has(.dash-widget-table),.dash-widget-body:has(.dash-notes-container),.dash-widget-body:has(.crew-wl-wrap){align-items:stretch}.dash-widget-body:has(.dash-widget-table),.dash-widget-body:has(.dash-notes-container){padding:0}.dash-widget-resize-handle{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:se-resize;opacity:0;transition:opacity .15s}.dash-widget:hover .dash-widget-resize-handle{opacity:1}.dash-widget-resize-handle:after{content:"";position:absolute;bottom:4px;right:4px;width:8px;height:8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);border-radius:0 0 2px}.dash-widget-empty{font-size:var(--font-size-sm);color:var(--text-muted)}.dash-widget-kpi{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;width:100%}.dash-kpi-value{font-size:clamp(24px,5vw,40px);font-weight:700;color:var(--text-primary);line-height:1.1;font-family:var(--font-family)}.dash-kpi-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary)}.dash-kpi-sub{font-size:var(--font-size-xs);color:var(--text-muted)}.app-switcher{position:relative;display:inline-flex;align-items:center;gap:10px}.app-switcher-trigger{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-secondary, #4B5563);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.app-switcher-trigger:hover{background:var(--bg-hover, rgba(0, 0, 0, .05));color:var(--text-primary, #111827);border-color:var(--border-light, #E5E7EB)}.app-switcher-trigger[aria-expanded=true]{background:var(--bg-hover, rgba(37, 99, 235, .08));color:var(--accent, #2563EB);border-color:var(--border-light, #E5E7EB)}.app-switcher-title{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--text-primary, #111827);white-space:nowrap}.app-switcher-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:240px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-light, #E5E7EB);border-radius:10px;box-shadow:0 12px 28px #0000001f,0 2px 4px #0000000f;padding:6px;z-index:1000}.app-switcher-menu-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #6B7280);padding:6px 10px 4px}.app-switcher-menu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-primary, #111827);text-decoration:none;transition:background .1s}.app-switcher-menu-item:hover{background:var(--bg-hover, rgba(0, 0, 0, .05))}.app-switcher-menu-item.is-active{background:var(--bg-hover, rgba(37, 99, 235, .08));color:var(--accent, #2563EB)}.app-switcher-menu-icon{display:inline-flex;width:18px;align-items:center;justify-content:center;color:inherit}.app-switcher-menu-label{flex:1;text-align:left}.app-switcher-menu-dot{width:6px;height:6px;border-radius:2px;background:currentColor}.dash-kpi-breakdown{display:flex;align-items:stretch;justify-content:center;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-light, #E5E7EB);width:100%;max-width:360px;flex-wrap:wrap}.dash-kpi-breakdown-item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px}.dash-kpi-breakdown-swatch{width:6px;height:6px;border-radius:2px;margin-bottom:2px}.dash-kpi-breakdown-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.dash-kpi-breakdown-value{font-size:var(--font-size-sm);font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.dash-widget-kpi--clickable{cursor:pointer;border-radius:6px;transition:background .15s;height:100%;padding:12px}.dash-widget-kpi--clickable:hover{background:var(--bg-hover)}.dd-overlay{position:fixed;inset:0;background:#00000059;z-index:9999;display:flex;align-items:center;justify-content:center}.dd-panel{background:var(--bg-primary);border-radius:8px;box-shadow:0 16px 48px #0000002e;width:min(900px,90vw);max-height:80vh;display:flex;flex-direction:column}.dd-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.dd-title{font-size:15px;font-weight:600;color:var(--text-primary)}.dd-count{font-size:12px;font-weight:500;color:var(--text-muted);background:var(--bg-secondary);padding:2px 8px;border-radius:10px}.dd-close{margin-left:auto;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer}.dd-close:hover{background:var(--bg-hover)}.dd-body{flex:1;overflow:auto;min-height:0}.dd-table-head{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr .7fr 1.2fr;padding:0 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-primary);z-index:1}.dd-table-head .mlist-th{padding:8px 4px}.dd-table-head .mlist-th:hover{background:transparent}.dd-row{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr .7fr 1.2fr;gap:0;padding:7px 16px;border-bottom:1px solid #F3F4F6;align-items:center}.dd-row:hover{background:var(--bg-hover)}.dd-td{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-td-name{font-weight:500;color:var(--text-primary)}.dd-empty{padding:32px;text-align:center;font-size:13px;color:var(--text-muted)}.dash-widget-bar{width:100%;height:100%;display:flex;flex-direction:column}.dash-bar-chart-area{flex:1 1 0;min-height:100px;display:grid;grid-template-columns:32px 1fr;grid-template-rows:1fr auto;position:relative;padding:12px 16px 8px 4px}.dash-bar-y-axis{grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-right:4px}.dash-bar-y-label{font-size:11px;font-weight:500;color:#9ca3af;line-height:1}.dash-bar-body{grid-column:2;grid-row:1;position:relative;border-bottom:1px solid #E5E7EB;border-left:1px solid #F3F4F6}.dash-bar-gridlines{position:absolute;inset:0;pointer-events:none}.dash-bar-hline{position:absolute;left:0;right:0;height:1px;background:#f3f4f6}.dash-bar-columns{display:flex;align-items:flex-end;height:100%}.dash-bar-col{flex:1;display:flex;align-items:flex-end;justify-content:center;height:100%;position:relative;cursor:pointer}.dash-bar-vline{position:absolute;left:0;top:0;bottom:0;width:1px;background:#f3f4f6}.dash-bar-track{width:60%;max-width:48px;min-width:8px;display:flex;align-items:flex-end;height:100%}.dash-bar-fill{width:100%;border-radius:4px 4px 0 0;transition:height .3s ease,opacity .2s ease;min-height:2px}.dash-bar-x-axis{grid-column:1 / -1;grid-row:2;display:flex;padding:6px 0 4px}.dash-bar-x-spacer{width:32px;flex-shrink:0}.dash-bar-x-label{flex:1;font-size:11px;font-weight:500;color:#9ca3af;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}.dash-bar-tooltip{position:fixed;display:flex;align-items:center;gap:6px;padding:5px 10px;background:#19202c;color:#fff;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:9999;box-shadow:0 4px 12px #0003}.dash-bar-tooltip-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.dash-bar-tooltip-label{color:#ffffffb3}.dash-bar-tooltip-val{font-weight:700}.dash-bar-legend{display:flex;flex-direction:column;width:100%;border-top:1px solid var(--border-light)}.dash-bar-legend-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .1s}.dash-bar-legend-item:last-child{border-bottom:none}.dash-bar-legend-item.hovered{background:var(--bg-hover)}.dash-bar-legend-item--clickable{background:transparent;border:0;border-bottom:1px solid var(--border-light);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}.dash-bar-legend-item--clickable:last-child{border-bottom:none}.dash-bar-legend-item--clickable:hover{background:var(--bg-hover)}.dash-bar-legend-item--clickable.is-focused{background:var(--bg-hover, rgba(37, 99, 235, .08));box-shadow:inset 3px 0 0 var(--accent, #2563EB)}.dash-bar-legend-item--clickable.is-dimmed{opacity:.4}.dash-bar-legend-item--clickable.is-dimmed:hover{opacity:.7}.dash-bar-legend-sq{width:10px;height:10px;border-radius:3px;flex-shrink:0}.dash-bar-legend-label{flex:1;font-size:12px;font-weight:500;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-bar-legend-val{font-size:12px;font-weight:700;color:var(--text-primary)}.dash-widget-body:has(.dash-widget-bar){padding:0;align-items:stretch}.dash-bar-wide{flex-direction:row!important}.dash-bar-wide .dash-bar-chart-area{flex:1;min-width:0}.dash-bar-wide .dash-bar-legend{width:200px;flex-shrink:0;border-top:none;border-left:1px solid var(--border-light);overflow-y:auto;scrollbar-width:thin}.dash-bar-legend--below{flex-direction:row!important;flex-wrap:wrap;gap:0;border-top:1px solid var(--border-light);border-left:none;width:100%;max-height:80px;overflow-y:auto}.dash-bar-legend--below .dash-bar-legend-item{flex:0 1 auto;min-width:120px;border-bottom:none;padding:4px 10px}.dash-widget-donut{display:flex;align-items:center;width:100%;height:100%}.dash-donut-vertical{flex-direction:column;justify-content:center;gap:8px}.dash-donut-vertical .dash-donut-ring-wrap{flex:1;min-height:0;max-height:60%;aspect-ratio:1;width:auto}.dash-donut-vertical .dash-donut-legend{width:100%}.dash-donut-horizontal{flex-direction:row;gap:20px}.dash-donut-horizontal .dash-donut-ring-wrap{flex-shrink:0;height:80%;aspect-ratio:1;max-height:180px}.dash-donut-horizontal .dash-donut-legend{flex:1;min-width:0}.dash-donut-ring-wrap{position:relative;display:flex;align-items:center;justify-content:center}.dash-donut-ring-wrap svg{width:100%;height:100%}.dash-donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-family);text-align:center;color:#374151;display:flex;flex-direction:column;align-items:center;line-height:1;gap:1px}.dash-donut-center-num{font-size:20px;font-weight:700;color:#374151}.dash-donut-center-label{font-size:11px;font-weight:500;color:#6b7280}.dash-donut-legend{display:flex;flex-direction:column;width:100%}.dash-donut-legend-item{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs)}.dash-donut-legend-sq{width:10px;height:10px;border-radius:3px;flex-shrink:0}.dash-donut-legend-label{font-size:12px;font-weight:500;color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-donut-legend-val{font-size:12px;font-weight:700;color:var(--text-primary)}.dash-donut-legend-item{transition:background .1s;padding:8px 6px;border-bottom:1px solid var(--border-light);cursor:pointer}.dash-donut-legend-item:last-child{border-bottom:none}.dash-donut-legend-item.hovered{background:var(--bg-hover)}.dash-donut-tooltip{position:fixed;display:flex;align-items:center;gap:6px;padding:6px 12px;background:#19202c;color:#fff;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:9999;box-shadow:0 4px 12px #0003}.dash-donut-tooltip-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.dash-donut-tooltip-label{color:#ffffffb3}.dash-donut-tooltip-val{font-weight:700}.dash-widget-table{width:100%;align-self:stretch;overflow-x:auto;overflow-y:auto;position:relative}.dash-tbl-export-csv{position:absolute;top:6px;right:8px;z-index:5;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .15s}.dash-widget-table:hover .dash-tbl-export-csv{opacity:1}.dash-tbl-export-csv:hover{background:var(--bg-secondary);color:var(--text-primary)}.dash-tbl-thead{display:grid;align-items:stretch;padding:0 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);gap:8px}.dash-tbl-thead .mlist-th{overflow:visible;min-width:0}.dash-tbl-thead .mlist-th-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.mlist-th-sorted,.mlist-th-sorted .mlist-icon-active{color:var(--accent)}.dash-tbl-tbody{overflow-y:auto;flex:1}.dash-tbl-row{display:grid;align-items:stretch;padding:0 16px;gap:8px;border-bottom:1px solid var(--border-light);transition:background .1s}.dash-tbl-row:last-child{border-bottom:none}.dash-tbl-row:hover{background:var(--bg-hover)}.dash-tbl-td{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;padding:12px 8px}.dash-tbl-td:first-child{padding-left:0}.dash-tbl-td-name{font-weight:700;color:var(--text-primary)}.dash-tbl-progress-wrap{display:flex;align-items:center;gap:8px;width:100%}.dash-tbl-progress-bar{flex:1;height:6px;background:var(--bg-normally-off);border-radius:3px;overflow:hidden}.dash-tbl-progress-fill{height:100%;border-radius:3px;transition:width .3s ease}.dash-tbl-progress-label{font-size:11px;font-weight:600;color:var(--text-secondary);min-width:28px;text-align:right}.dash-tbl-empty{padding:24px 12px;font-size:var(--font-size-sm);color:var(--text-muted);text-align:center}.dash-notes-container{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;position:relative}.dash-notes-editor{flex:1 1 auto;overflow-y:auto;outline:none;font-family:var(--font-family);font-size:13px;color:var(--text-primary);line-height:1.6;padding:12px 16px;cursor:text;white-space:pre-wrap;word-wrap:break-word}.dash-notes-editor:empty:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none}.dash-notes-editor b,.dash-notes-editor strong{font-weight:600}.dash-notes-editor i,.dash-notes-editor em{font-style:italic}.dash-notes-editor s,.dash-notes-editor strike{text-decoration:line-through}.dash-notes-editor a{color:var(--accent);text-decoration:underline;cursor:pointer}.dash-notes-editor ul,.dash-notes-editor ol{margin:4px 0;padding-left:22px}.dash-notes-editor ul{list-style-type:disc}.dash-notes-editor ol{list-style-type:decimal}.dash-notes-editor li{margin:2px 0}.dash-notes-toolbar{flex:0 0 36px;display:flex;align-items:center;gap:2px;padding:0 4px;border-top:1px solid var(--border);background:#fff;-webkit-user-select:none;user-select:none}.dash-notes-toolbar-sep{width:1px;height:18px;margin:0 4px;background:var(--border)}.dash-notes-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:2px;background:transparent;color:var(--text-secondary);font-size:14px;font-family:var(--font-family);cursor:pointer;padding:0;line-height:1}.dash-notes-toolbar-btn:hover{background:var(--bg-hover, #f0f0f0)}.dash-notes-toolbar-btn-active{background:var(--accent, #2563eb);color:#fff}.dash-notes-toolbar-btn-active:hover{background:var(--accent, #2563eb);color:#fff;opacity:.9}.dash-notes-link-overlay{position:fixed;inset:0;background:#00000026;display:flex;align-items:center;justify-content:center;z-index:1000}.dash-notes-link-dialog{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000026;padding:20px;width:280px;display:flex;flex-direction:column;gap:8px}.dash-notes-link-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.dash-notes-link-title{font-size:14px;font-weight:700;color:var(--text-primary)}.dash-notes-link-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:2px;background:none;color:var(--text-secondary);cursor:pointer}.dash-notes-link-close:hover{background:var(--bg-hover)}.dash-notes-link-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.dash-notes-link-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:4px;font-size:13px;font-family:var(--font-family);color:var(--text-primary);outline:none;box-sizing:border-box}.dash-notes-link-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb26}.dash-notes-link-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.dash-notes-link-cancel,.dash-notes-link-save{padding:6px 16px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font-family)}.dash-notes-link-cancel{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary)}.dash-notes-link-cancel:hover{background:var(--bg-hover)}.dash-notes-link-save{border:none;background:var(--accent);color:#fff}.dash-notes-link-save:hover{opacity:.9}.dash-notes-btn-bold{font-weight:700}.dash-notes-btn-italic{font-style:italic}.dash-mslist{width:100%;display:flex;flex-direction:column;align-self:stretch}.dash-mslist-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;color:var(--text-muted);font-size:var(--font-size-sm)}.dash-mslist-header{display:flex;align-items:center;gap:6px;padding:6px 16px;border-bottom:1px solid var(--border-light)}.dash-mslist-count{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary)}.dash-mslist-body{flex:1;overflow-y:auto}.dash-mslist-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-light);transition:background .1s}.dash-mslist-row:last-child{border-bottom:none}.dash-mslist-row:hover{background:var(--bg-hover)}.dash-mslist-row-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.dash-mslist-milestone{font-size:12px;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.dash-mslist-separator{color:var(--text-muted);font-size:12px;flex-shrink:0}.dash-mslist-project{font-size:12px;font-weight:500;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-mslist-row-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dash-mslist-date{font-size:11px;font-weight:500;color:var(--text-secondary)}.dash-mslist-days{font-size:10px;font-weight:600;color:var(--accent);background:var(--accent-light);padding:2px 6px;border-radius:2px}.dash-mslist-days.overdue{color:var(--error);background:var(--error-light)}.dash-widget-body:has(.dash-mslist),.dash-widget-body:has(.dash-docs-widget){padding:0;align-items:stretch}.dash-docs-widget{width:100%;display:flex;flex-direction:column;align-self:stretch;position:relative}.dash-docs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;flex:1;min-height:120px;color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer;border:2px dashed var(--border);border-radius:2px;margin:12px;transition:border-color .15s}.dash-docs-empty:hover{border-color:var(--accent);color:var(--text-secondary)}.dash-docs-empty strong{color:var(--accent);text-decoration:underline}.dash-docs-list{flex:1;display:flex;flex-direction:column}.dash-docs-thead{display:flex;align-items:center;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);gap:8px}.dash-docs-th{flex:1;font-size:10px;font-weight:500;color:#374151}.dash-docs-th-name{flex:2.5}.dash-docs-tbody{flex:1;overflow-y:auto}.dash-docs-row{display:flex;align-items:center;padding:10px 16px;gap:8px;border-bottom:1px solid var(--border-light);position:relative;transition:background .1s}.dash-docs-row:last-child{border-bottom:none}.dash-docs-row:hover{background:var(--bg-hover)}.dash-docs-td{flex:1;font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-docs-td-name{flex:2.5;display:flex;align-items:center;gap:10px}.dash-docs-td-name svg{width:24px;height:24px;flex-shrink:0}.dash-docs-filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-docs-td-clickable{cursor:pointer}.dash-docs-td-clickable:hover .dash-docs-filename{color:var(--accent);text-decoration:underline}.dash-docs-td-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:none;align-items:center;gap:4px;background:var(--bg-primary);padding-left:8px}.dash-docs-row:hover .dash-docs-td-actions{display:flex}.dash-docs-action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:2px;background:none;color:var(--text-secondary);cursor:pointer}.dash-docs-action:hover{background:var(--bg-hover);color:var(--text-primary)}.dash-docs-add-wrap{position:absolute;bottom:8px;right:8px}.dash-docs-add-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.dash-docs-add-btn:hover{background:var(--bg-hover)}.dash-docs-source-menu{position:absolute;bottom:calc(100% + 4px);right:0;min-width:200px;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;box-shadow:0 8px 24px #0000001f;padding:4px;z-index:100}.dash-docs-source-item{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);cursor:pointer;border-radius:2px}.dash-docs-source-item:hover{background:var(--bg-hover)}.dash-docs-source-sep{height:1px;background:var(--border-light);margin:4px 0}.dash-switcher{display:flex;align-items:center;gap:2px;overflow-x:auto;flex:1;min-width:0}.dash-switcher-tab{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid transparent;border-radius:2px;font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s;flex-shrink:0;box-sizing:border-box}.dash-switcher-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.dash-switcher-tab.active{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.dash-switcher-actions{display:flex;gap:2px;margin-left:4px}.dash-switcher-action{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:2px;background:none;color:var(--text-primary);cursor:pointer}.dash-switcher-action:hover{background:var(--bg-hover);color:var(--text-primary)}.dash-switcher-add{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px dashed var(--border);border-radius:2px;background:none;color:var(--text-muted);cursor:pointer;flex-shrink:0;box-sizing:border-box;transition:border-color .15s,color .15s}.dash-switcher-add:hover{border-color:var(--accent);color:var(--accent)}.dash-switcher-edit{display:flex;align-items:center;gap:4px}.dash-switcher-input{width:120px;padding:2px 6px;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);outline:none;background:var(--bg-primary)}.dash-switcher-confirm{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer}.dash-switcher-create-input{padding:4px 8px}.dash-switcher-name{overflow:hidden;text-overflow:ellipsis}.dash-config-panel{width:320px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-primary);display:flex;flex-direction:column;overflow:hidden}.dash-config-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.dash-config-title{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary)}.dash-config-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-secondary);cursor:pointer}.dash-config-close:hover{background:var(--bg-hover)}.dash-config-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.dash-config-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between}.dash-config-input{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.dash-config-input:focus{border-color:var(--accent)}.dash-config-options{display:flex;flex-wrap:wrap;gap:6px}.dash-config-option{padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);font-size:var(--font-size-xs);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.dash-config-option:hover{background:var(--bg-hover);color:var(--text-primary)}.dash-config-option.active{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.dash-config-project-list{display:flex;flex-direction:column;gap:1px;max-height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:2px;padding:4px 6px;scrollbar-width:thin}.dash-config-project-item{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs);color:var(--text-primary);cursor:pointer;padding:4px;border-radius:2px;-webkit-user-select:none;user-select:none}.dash-config-project-item:hover{background:var(--bg-hover)}.dash-config-options--wrap,.aw-custom-options--wrap{flex-wrap:wrap}.aw-config-hint{font-size:var(--font-size-xs);color:var(--text-muted);margin:-4px 0 4px;line-height:1.4}.rb-page{position:fixed;inset:0;z-index:100;background:var(--bg-primary);display:flex;flex-direction:column}.rb-page-inner{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.rb-header{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.rb-back-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:background .12s,color .12s,border-color .12s}.rb-back-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.rb-header-title{flex:1;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.rb-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.rb-templates-wrapper{position:relative}.rb-templates-btn{display:inline-flex;align-items:center;height:30px;padding:0 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s}.rb-templates-btn:hover{background:var(--bg-hover)}.rb-templates-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--bg-primary);border:1px solid var(--border);border-radius:2px;box-shadow:0 4px 12px #0000001a;z-index:200;overflow:hidden}.rb-templates-dropdown-item{display:block;width:100%;padding:8px 12px;text-align:left;background:none;border:none;font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;white-space:nowrap}.rb-templates-dropdown-item:hover{background:var(--bg-hover)}.rb-top-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.rb-top-bar .rb-title-input{flex:1}.rb-top-bar .rb-viz-bar{flex-shrink:0}.rb-body{flex:1;display:flex;flex-direction:row;overflow:hidden}.rb-sidebar{width:260px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:14px;scrollbar-width:thin}.rb-sidebar-search{position:relative;display:flex;align-items:center;margin-bottom:10px}.rb-search-icon{position:absolute;left:8px;color:var(--text-muted);pointer-events:none}.rb-search-input{width:100%;height:30px;padding:0 26px 0 28px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;outline:none}.rb-search-input:focus{border-color:var(--accent)}.rb-search-input::placeholder{color:var(--text-muted)}.rb-search-clear{position:absolute;right:4px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 4px;line-height:1}.rb-search-clear:hover{color:var(--text-primary)}.rb-field-tabs{display:flex;align-items:stretch;border:1px solid #E8EAED;border-radius:2px;overflow:hidden;background:#fff;height:28px;margin:6px 0}.rb-field-tab-btn{display:inline-flex;align-items:center;justify-content:center;flex:1;gap:4px;padding:0 10px;background:#fff;border:none;font-size:11px;font-weight:500;color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:color .1s,background .1s,border-color .1s}.rb-field-tab-btn+.rb-field-tab-btn{border-left:1px solid #E8EAED}.rb-field-tab-btn:hover:not(.rb-field-tab-btn--active){background:#f8fafc}.rb-field-tab-btn--active{color:#0053d4;font-weight:600}.rb-field-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:14px;padding:0 3px;background:var(--border);border-radius:6px;font-size:9px;font-weight:600;color:var(--text-muted)}.rb-field-tab-btn--active .rb-field-tab-count{background:var(--accent, #2563EB);color:#fff}.rb-no-results{padding:16px 4px;font-size:12px;color:var(--text-muted);text-align:center}.rb-sidebar-label{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}.rb-source-select{width:100%;height:32px;padding:0 28px 0 10px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:#19202c;font-size:12px;font-weight:500;margin-bottom:12px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%237F94B4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.rb-source-select:focus{outline:none;border-color:var(--accent)}.rb-source-origin-pill{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.3px;padding:2px 8px;border-radius:10px;margin-top:-8px;margin-bottom:10px}.rb-source-origin-pill--live{background:#dcfce7;color:#166534}.rb-source-origin-pill--mock{background:#fef3c7;color:#92400e}.rb-field-item{display:flex;align-items:center;gap:7px;width:100%;padding:5px 8px;border:none;border-radius:3px;background:none;color:#19202c;font-size:12px;font-weight:500;text-align:left;cursor:grab;transition:background .12s}.rb-field-item:hover{background:var(--bg-hover)}.rb-field-item:active{cursor:grabbing}.rb-field-item--placed{opacity:1}.rb-field-item--dim svg{color:#0053d4;flex-shrink:0}.rb-field-item--measure svg{color:#49bf55;flex-shrink:0}.rb-field-item--placed{opacity:.45}.rb-field-subgroup{display:block;font-size:10px;font-weight:600;color:var(--text-muted);padding:6px 8px 2px;letter-spacing:.02em}.rb-main{flex:1;display:flex;flex-direction:column;padding:20px 24px;overflow-y:auto;gap:16px}.rb-shelves{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.rb-shelf{display:flex;align-items:flex-start;gap:8px}.rb-shelf-label{width:70px;flex-shrink:0;font-size:12px;font-weight:600;color:#19202c;padding-top:6px}.rb-shelf-pills{flex:1;display:flex;flex-wrap:wrap;gap:4px;min-height:32px;padding:4px;border-radius:4px;align-items:center;border:1px dashed var(--border)}.rb-shelf-pills--dragover{border:1.5px dashed var(--accent);background:#eff6ff}.rb-empty-shelf{font-size:11px;color:var(--text-muted);padding:2px 4px}.rb-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;line-height:1.4;white-space:nowrap}.rb-pill--dim{background:#dbeafe;color:#1e40af;cursor:grab}.rb-pill--dim:active{cursor:grabbing}.rb-pill--measure{background:#dcfce7;color:#166534;cursor:grab}.rb-pill--measure:active{cursor:grabbing}.rb-pill--drop-before{box-shadow:-2px 0 0 0 var(--accent)}.rb-pill--drop-after{box-shadow:2px 0 0 0 var(--accent)}.rb-pill--filter{background:#fef3c7;color:#92400e}.rb-pill-remove{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border:none;border-radius:50%;background:none;color:inherit;font-size:13px;line-height:1;cursor:pointer;opacity:.6;transition:opacity .12s,color .12s;padding:0}.rb-pill-remove:hover{opacity:1;color:#dc2626}.rb-pill-agg{font-size:9px;font-weight:600;opacity:.7;margin-right:2px}.rb-filter-chip-wrapper{position:relative;display:inline-flex}.rb-pill--filter-active{background:#fef3c7;border:1px solid #F59E0B;color:#92400e}.rb-pill--filter-open{outline:2px solid var(--accent);outline-offset:1px}.rb-filter-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:240px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000024;overflow:hidden}.rb-filter-popover-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--border)}.rb-filter-popover-title{font-size:12px;font-weight:600;color:var(--text-primary)}.rb-filter-popover-actions{display:flex;gap:4px}.rb-filter-popover-actions button{padding:2px 8px;font-size:11px;border:1px solid var(--border);border-radius:3px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer}.rb-filter-popover-actions button:hover{background:var(--bg-secondary);color:var(--text-primary)}.rb-filter-popover-search{display:flex;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid var(--border);color:var(--text-muted)}.rb-filter-popover-search input{flex:1;border:none;background:none;font-size:12px;color:var(--text-primary);outline:none}.rb-filter-popover-search input::placeholder{color:var(--text-muted)}.rb-filter-popover-list{max-height:200px;overflow-y:auto;padding:6px 4px;scrollbar-width:thin}.rb-filter-popover-item{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:12px;color:var(--text-primary);cursor:pointer;border-radius:4px}.rb-filter-popover-item:hover{background:var(--bg-secondary)}.rb-filter-popover-item input{width:14px;height:14px;flex-shrink:0}.rb-filter-date-range{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.rb-filter-date-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.rb-filter-date-label span{width:32px;flex-shrink:0}.rb-filter-date-input{flex:1;padding:5px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;background:var(--bg-primary);color:var(--text-primary);outline:none}.rb-filter-date-input:focus{border-color:var(--accent)}.rb-filter-date-clear{align-self:flex-end;padding:3px 10px;font-size:11px;color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:4px;cursor:pointer}.rb-filter-date-clear:hover{background:var(--bg-secondary);color:var(--text-primary)}.rb-filter-add-wrapper{position:relative;display:inline-flex}.rb-filter-add-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px dashed var(--border);border-radius:4px;background:none;color:var(--text-muted);cursor:pointer;flex-shrink:0}.rb-filter-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-secondary)}.rb-filter-dropdown{position:absolute;top:100%;left:0;z-index:20;margin-top:4px;min-width:180px;max-height:200px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001f;padding:4px}.rb-filter-dropdown-item{display:block;width:100%;padding:6px 10px;border:none;background:none;text-align:left;font-size:12px;color:var(--text-primary);cursor:pointer;border-radius:4px}.rb-filter-dropdown-item:hover{background:var(--bg-secondary)}.rb-filter-dropdown-empty{display:block;padding:8px 10px;font-size:12px;color:var(--text-muted)}.rb-preview{flex:1;border:1px solid var(--border);border-radius:4px;overflow:hidden;min-height:320px;display:flex;align-items:stretch;padding:16px}.rb-preview>*{flex:1;width:100%}.rb-preview-empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:var(--font-size-sm)}.rb-viz-bar{display:flex;gap:4px;flex-shrink:0}.rb-viz-btn{padding:5px 12px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .12s}.rb-viz-btn:hover{border-color:var(--accent);color:var(--accent)}.rb-viz-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.rb-color-trigger:hover,.rb-color-trigger.active{border-color:var(--accent)}.rb-color-tabs{display:flex;gap:4px;margin-bottom:10px}.rb-color-tab{flex:1;padding:5px 0;border:1px solid var(--border);border-radius:3px;background:var(--bg-primary);font-size:var(--font-size-xs, 11px);font-weight:500;cursor:pointer;color:var(--text-secondary);transition:all .1s}.rb-color-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.rb-color-section-label{display:block;font-size:var(--font-size-xs, 11px);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.rb-color-hue-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.rb-color-hue-btn{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s;flex-shrink:0;padding:0}.rb-color-hue-btn:hover{transform:scale(1.15)}.rb-color-hue-btn.active{border-color:var(--text-primary, #111);transform:scale(1.1)}.rb-color-preview-row{display:flex;gap:4px;flex-wrap:wrap}.rb-color-preview-swatch{display:inline-block;width:16px;height:16px;border-radius:3px;flex-shrink:0}.rb-color-multi{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.rb-color-palettes{display:flex;flex-direction:column;gap:4px;margin-bottom:2px}.rb-color-palette-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);cursor:pointer;transition:border-color .1s,background .1s;text-align:left}.rb-color-palette-btn:hover{border-color:var(--accent);background:var(--bg-hover, #f5f5f5)}.rb-color-palette-btn.active{border-color:var(--accent);background:var(--accent-light, #eff6ff)}.rb-color-palette-label{font-size:var(--font-size-xs, 11px);font-weight:500;color:var(--text-secondary);width:38px;flex-shrink:0}.rb-color-palette-dots{display:flex;gap:3px;flex:1}.rb-color-palette-dot{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0}.rb-color-series-list{display:flex;flex-direction:column;gap:4px}.rb-color-series-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rb-color-multi-label{font-size:var(--font-size-xs, 11px);color:var(--text-secondary);width:52px;flex-shrink:0}.rb-color-series-swatch{width:20px;height:20px;border-radius:4px;border:2px solid transparent;cursor:pointer;flex-shrink:0;padding:0;transition:border-color .1s,transform .1s}.rb-color-series-swatch:hover{transform:scale(1.1);border-color:#00000026}.rb-color-series-swatch.active{border-color:var(--text-primary, #111)}.rb-color-series-picker{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:6px 8px;background:var(--bg-hover, #f5f5f5);border:1px solid var(--border);border-radius:4px;width:100%;margin-top:2px}.rb-color-hex-input{width:64px;padding:2px 4px;font-size:11px;font-family:monospace;border:1px solid var(--border);border-radius:3px;background:var(--bg-primary);color:var(--text-primary);flex-shrink:0}.rb-layout-trigger:hover,.rb-layout-trigger.active{border-color:var(--accent);color:var(--accent)}.rb-layout-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.rb-layout-label{font-size:12px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.rb-layout-btn-group{display:flex;gap:3px}.rb-layout-btn{padding:3px 8px;font-size:12px;font-weight:500;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .1s}.rb-layout-btn:hover{border-color:var(--accent);color:var(--accent)}.rb-layout-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.rb-layout-toggle-row{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.rb-title-input{flex:1;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm)}.rb-title-input:focus{outline:none;border-color:var(--accent)}.rb-settings-panel{width:240px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-primary);padding:14px 14px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:0;scrollbar-width:thin}.rb-settings-panel-heading{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px}.rb-settings-section{display:flex;flex-direction:column;gap:8px}.rb-settings-section-label{display:block;font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.03em;margin-bottom:2px}.rb-settings-divider{height:1px;background:var(--border);margin:14px 0}.dash-add-btn--primary{background:var(--accent)!important;color:#fff!important;border:1px solid var(--accent)!important}.dash-add-btn--primary:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}.dash-config-edit-builder-btn{margin-top:12px;padding:6px 12px;width:100%;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .12s}.dash-config-edit-builder-btn:hover{background:var(--bg-secondary);border-color:var(--accent);color:var(--accent)}.dash-config-color-section{display:flex;flex-direction:column;gap:8px}.dash-config-color-mode{display:flex;gap:4px}.dash-config-hue-row{display:flex;gap:6px;flex-wrap:wrap}.dash-config-hue-btn{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .12s}.dash-config-hue-btn:hover{transform:scale(1.15)}.dash-config-hue-btn.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--text-primary)}.dash-widget-line{width:100%;height:100%;display:flex;flex-direction:column}.dash-line-chart-area{flex:1 1 0;min-height:80px;position:relative;padding:4px 4px 4px 2px;overflow:hidden}.dash-line-svg{width:100%;height:100%;display:block}.dash-line-tooltip{position:fixed;display:flex;align-items:center;gap:6px;padding:5px 10px;background:#19202c;color:#fff;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;z-index:9999;box-shadow:0 4px 12px #0003}.dash-widget-body:has(.dash-widget-line){padding:0;align-items:stretch}.dash-stacked-fill{width:100%;display:flex;flex-direction:column-reverse;border-radius:4px 4px 0 0;overflow:hidden;transition:opacity .15s;min-height:2px}.dash-stacked-seg{width:100%;transition:height .3s ease,opacity .15s;min-height:1px}.dash-widget-hbar{width:100%;height:100%;display:flex;flex-direction:column;padding:12px 12px 8px;gap:0;position:relative;overflow:hidden}.dash-hbar-chart-area{flex:1 1 0;display:flex;flex-direction:column;gap:0;overflow:hidden}.dash-hbar-grid-row{display:flex;align-items:flex-end;height:20px;margin-bottom:4px;flex-shrink:0}.dash-hbar-x-ticks{flex:1;position:relative;height:100%}.dash-hbar-x-tick{position:absolute;top:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.dash-hbar-x-tick:after{content:"";display:block;width:1px;height:4px;background:#e5e7eb;margin-top:2px}.dash-hbar-x-tick-label{font-size:10px;font-weight:500;color:#9ca3af;line-height:1}.dash-hbar-row{display:flex;align-items:center;gap:8px;flex-shrink:0}.dash-hbar-label-col{width:140px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end}.dash-hbar-label{font-size:11px;font-weight:500;color:var(--text-secondary, #4B5563);overflow:hidden;text-overflow:ellipsis;max-width:138px;text-align:right;line-height:1.3}.dash-hbar-label--stacked{display:flex;flex-direction:column;align-items:flex-end;gap:1px;white-space:normal;text-overflow:clip}.dash-hbar-label-primary{font-size:11px;font-weight:500;color:var(--text-secondary, #4B5563);line-height:1.3;max-width:138px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-hbar-label-secondary{font-size:10px;font-weight:400;color:var(--text-tertiary, #9CA3AF);line-height:1.2;max-width:138px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-hbar-track-col{flex:1;display:flex;align-items:center;gap:6px;min-width:0}.dash-hbar-track{flex:1;background:#f3f4f6;border-radius:4px;overflow:hidden;position:relative}.dash-hbar-value{font-size:11px;font-weight:700;color:var(--text-primary);white-space:nowrap;flex-shrink:0}.dash-widget-body:has(.dash-widget-hbar){padding:0;align-items:stretch}.dash-widget-station-funnel{width:100%;height:100%;display:flex;flex-direction:column;padding:14px 16px 12px;gap:10px;overflow:hidden}.dash-widget-body:has(.dash-widget-station-funnel){padding:0;align-items:stretch}.dash-funnel-summary{display:flex;align-items:baseline;gap:10px;flex-shrink:0;flex-wrap:wrap}.dash-funnel-summary-pct{font-size:22px;font-weight:700;color:var(--text-primary, #111827);line-height:1}.dash-funnel-summary-label{font-size:11px;color:var(--text-secondary, #6B7280);font-weight:500}.dash-funnel-legend{margin-left:auto;display:flex;gap:12px;align-items:center}.dash-funnel-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary, #4B5563);font-weight:500}.dash-funnel-legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.dash-funnel-rows{flex:1 1 0;display:flex;flex-direction:column;justify-content:space-around;gap:6px;min-height:0;overflow:hidden}.dash-funnel-row{display:grid;grid-template-columns:110px 1fr 90px;align-items:center;gap:10px;min-height:24px}.dash-funnel-row-label{font-size:11px;font-weight:600;color:var(--text-secondary, #4B5563);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-funnel-row-track-wrap{display:flex;align-items:center;justify-content:center;min-width:0}.dash-funnel-row-track{display:flex;height:22px;border-radius:4px;overflow:hidden;min-width:30px;box-shadow:inset 0 0 0 1px #0000000a;transition:opacity .15s ease}.dash-funnel-row-fill{display:flex;align-items:center;justify-content:center;transition:width .3s ease;min-width:0}.dash-funnel-row-fill-label{font-size:10px;font-weight:700;color:#fff;line-height:1;padding:0 4px;white-space:nowrap}.dash-funnel-row-meta{display:flex;flex-direction:column;gap:1px;align-items:flex-start}.dash-funnel-row-meta-pct{font-size:12px;font-weight:700;color:var(--text-primary, #111827);line-height:1.1}.dash-funnel-row-meta-total{font-size:10px;font-weight:500;color:var(--text-tertiary, #9CA3AF);line-height:1.1}.dash-widget-sqft-day{width:100%;height:100%;display:flex;flex-direction:column;padding:14px 16px 10px;gap:10px;overflow:hidden}.dash-widget-body:has(.dash-widget-sqft-day){padding:0;align-items:stretch}.dash-sqft-summary{display:flex;gap:24px;flex-shrink:0}.dash-sqft-stat{display:flex;flex-direction:column;gap:2px}.dash-sqft-stat-value{font-size:18px;font-weight:700;color:var(--text-primary, #111827);line-height:1.1}.dash-sqft-stat-label{font-size:10px;font-weight:500;color:var(--text-tertiary, #9CA3AF);text-transform:uppercase;letter-spacing:.4px}.dash-sqft-chart{flex:1 1 0;display:flex;align-items:stretch;gap:8px;min-height:0;overflow:hidden}.dash-sqft-y-axis{width:42px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-bottom:20px;flex-shrink:0}.dash-sqft-y-tick-label{font-size:10px;font-weight:500;color:var(--text-tertiary, #9CA3AF);line-height:1}.dash-sqft-plot{flex:1;position:relative;min-width:0;display:flex;flex-direction:column}.dash-sqft-grid{position:absolute;inset:0 0 20px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.dash-sqft-grid-line{height:1px;background:#f3f4f6}.dash-sqft-bars{flex:1;display:flex;align-items:flex-end;gap:2px;position:relative;z-index:1}.dash-sqft-bar-col{flex:1 1 0;height:100%;display:flex;align-items:flex-end;justify-content:center;min-width:0}.dash-sqft-bar{width:80%;max-width:32px;border-radius:2px 2px 0 0;transition:opacity .15s ease}.dash-sqft-x-axis{height:20px;display:flex;gap:2px;flex-shrink:0;align-items:flex-start;padding-top:4px}.dash-sqft-x-tick{flex:1 1 0;text-align:center;min-width:0}.dash-sqft-x-tick-label{font-size:10px;font-weight:500;color:var(--text-tertiary, #9CA3AF);white-space:nowrap}.app.gantt-mode .project-row.expanded{align-items:center;border-bottom-color:#f0f1f4}.project-summary-header-sticky{position:absolute;pointer-events:none;z-index:4;overflow:visible}.project-summary-header{position:sticky;left:8px;display:inline-flex;align-items:center;gap:6px;font-size:11px;line-height:14px;white-space:nowrap;color:var(--text-primary);width:max-content}.project-summary-header-sticky.selected .project-summary-header{color:var(--accent);font-weight:600}.project-summary-header-name{font-weight:600;color:var(--text-primary)}.project-summary-header-range,.project-summary-header-days{font-weight:500;color:var(--text-secondary)}.project-summary-header-sep{color:var(--text-secondary);opacity:.6;font-size:9px}.project-summary-line{position:absolute;background:#49bf558c;border-radius:2px;z-index:3;cursor:grab;transition:opacity .15s ease,height .15s ease,background .15s ease}.project-summary-line.draft{background:#94a3b88c}.project-summary-line:hover{background:#49bf55d9;box-shadow:0 1px 4px #49bf554d}.project-summary-line.draft:hover{background:#94a3b8d9;box-shadow:0 1px 4px #94a3b84d}.project-summary-line:active{cursor:grabbing}.project-summary-line.selected{z-index:5;box-shadow:0 0 0 3px #2563eb2e,0 1px 4px #2563eb38}.lane-bar{position:absolute;border-radius:2px;cursor:pointer;z-index:4;overflow:hidden;isolation:isolate;transition:filter .15s ease,box-shadow .15s ease;box-sizing:border-box;-webkit-user-select:none;user-select:none;transform-origin:center}.lane-bar.fresh{animation:lane-bar-bubble-in .32s ease-out both}@keyframes lane-bar-bubble-in{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.14)}80%{transform:scale(.97)}to{opacity:1;transform:scale(1)}}.lane-bar.exiting{animation:lane-bar-bubble-out .22s cubic-bezier(.55,0,.86,.5) both;pointer-events:none;z-index:6}@keyframes lane-bar-bubble-out{0%{opacity:1;transform:scale(1)}25%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(.3)}}.lane-bar.selected{z-index:7;outline:2px solid var(--accent)!important;outline-offset:0!important;box-shadow:none}.lane-bar.dragging{opacity:.78;z-index:8;box-shadow:0 4px 12px #0000002e,0 0 0 1px #2563eb73;transition:none}.lane-bar:not(.tentative):not(.locked){outline:0;outline-offset:0;box-shadow:none;border:2px solid var(--lane-outline-color, #B7CFF4);box-sizing:content-box}.lane-bar.blue:not(.tentative):not(.locked){--lane-outline-color: #B7CFF4}.lane-bar.purple:not(.tentative):not(.locked){--lane-outline-color: #E6BCFF}.lane-bar.site:not(.tentative):not(.locked){--lane-outline-color: #E6BCFF}.lane-bar.custom:not(.tentative):not(.locked){--lane-outline-color: #DBDFE4}.lane-bar.green:not(.tentative):not(.locked){--lane-outline-color: #B5E7BA}.lane-bar.cyan:not(.tentative):not(.locked){--lane-outline-color: #B0DFD2}.lane-bar.red:not(.tentative):not(.locked){--lane-outline-color: #FFCFAF}.lane-bar-text-sticky{position:absolute;pointer-events:none;z-index:5;overflow:visible}.lane-bar-text-overlay{position:sticky;left:0;display:flex;flex-direction:row;align-items:center;gap:3px;justify-content:flex-start;padding:4px 6px;font-size:11px;font-weight:600;color:#1f2937;white-space:nowrap;line-height:1.15;box-sizing:border-box;height:100%;width:max-content}.lane-bar-text-sticky.stacked .lane-bar-text-overlay{line-height:1.1}.lane-bar-label-crew{font-weight:500;font-size:10.5px;opacity:.8}.lane-bar-crew-dots{display:inline-flex;align-items:center;gap:0;line-height:1}.lane-bar-crew-dot+.lane-bar-crew-dot,.lane-bar-crew-dot+.lane-bar-subtask-diamond,.lane-bar-subtask-diamond+.lane-bar-crew-dot{margin-left:-3px}.lane-bar-crew-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #ffffffbf}.lane-bar-subtask-diamond{display:inline-flex;align-items:center;justify-content:center;width:10px;height:10px;flex-shrink:0;pointer-events:auto}.lane-bar-subtask-diamond .diamond-icon{width:100%;height:100%;fill:#fef3c7;stroke:#f59e0b;stroke-width:1.8;filter:drop-shadow(0 0 1px rgba(245,158,11,.35))}.lane-bar-subtask-diamond.completed .diamond-icon{fill:#dbf2dd;stroke:#49bf55}.lane-bar-text-sticky.selected{z-index:8}.lane-bar-text-sticky.selected .lane-bar-text-overlay{font-weight:700}.lane-bar-text-overlay.blue{color:#1e3a8a}.lane-bar-text-overlay.purple{color:#6b21a8}.lane-bar-text-overlay.site{color:#560f7f}.lane-bar-text-overlay.custom{color:#334055}.lane-bar-text-overlay.green{color:#166534}.lane-bar-text-overlay.cyan{color:#155e63}.lane-bar-text-overlay.red{color:#92400e}.lane-bar-text-overlay.tentative{color:var(--text-secondary)}.lane-bar:hover{box-shadow:0 2px 6px #0f172a1f}.lane-bar:active{cursor:grabbing}.lane-bar.blue{background:#b7cff4}.lane-bar.purple,.lane-bar.site{background:#e6bcff}.lane-bar.custom{background:#dbdfe4}.lane-bar.green{background:#b5e7ba}.lane-bar.cyan{background:#b0dfd2}.lane-bar.red{background:#ffcfaf}.lane-bar.blue{color:#1e3a8a}.lane-bar.purple{color:#6b21a8}.lane-bar.site{color:#560f7f}.lane-bar.custom{color:#334055}.lane-bar.green{color:#166534}.lane-bar.cyan{color:#155e63}.lane-bar.red{color:#92400e}.lane-bar.locked{background:#d1d5db;color:#1f2937;cursor:default;box-shadow:inset 0 0 0 1px #1f29372e}.lane-bar.tentative{background:#dde3eb;outline:0;outline-offset:0;box-shadow:none;border:2px solid #DDE3EB;box-sizing:content-box;color:var(--text-secondary)}.lane-bar.tentative .lane-bar-day-cell{background:#dde3eb!important}.lane-bar-day-cell{position:absolute;top:0;bottom:0;pointer-events:none;z-index:1}.lane-bar-day-cell.blue{background:#b7cff4}.lane-bar-day-cell.purple,.lane-bar-day-cell.site{background:#e6bcff}.lane-bar-day-cell.custom{background:#dbdfe4}.lane-bar-day-cell.green{background:#b5e7ba}.lane-bar-day-cell.cyan{background:#b0dfd2}.lane-bar-day-cell.red{background:#ffcfaf}.lane-bar-label{font-weight:600;white-space:nowrap}.lane-bar-resize-handle{position:absolute;top:2px;bottom:2px;width:8px;cursor:ew-resize;z-index:5;opacity:0;transition:opacity .12s ease;display:flex;align-items:center;justify-content:center;pointer-events:none}.lane-bar-resize-handle.left{left:0}.lane-bar-resize-handle.right{right:0}.lane-bar-resize-handle:before{content:"";width:2px;height:60%;border-radius:1px;background:#1f29378c}.lane-bar:hover .lane-bar-resize-handle{opacity:1;pointer-events:auto}.lane-bar.tentative .lane-bar-resize-handle:before{background:#64748b99}.milestone-nonworking-overlay{display:none}.gantt-mode .milestone-nonworking-overlay,.gantt-mode .gantt-subrow .lane-bar .milestone-nonworking-overlay{position:absolute;display:block;top:0;bottom:0;pointer-events:none;z-index:1;background-color:#fff;background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(148,163,184,.15) 3px,rgba(148,163,184,.15) 6px);background-position:0 -4px}.milestone-overtime-overlay{display:none}.gantt-mode .milestone-overtime-overlay,.gantt-mode .gantt-subrow .lane-bar .milestone-overtime-overlay{position:absolute;display:block;top:0;bottom:0;pointer-events:none;z-index:2;background-color:#fbd29a;background-image:none;border-left:1px solid rgba(180,83,9,.48);border-right:1px solid rgba(180,83,9,.48)}.gantt-mode .conflict-badge{display:none!important}.header-settings-section-divider{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;align-items:center}.header-settings-section-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.header-settings-section-divider+.header-settings-row{margin-top:10px;padding-top:0;border-top:none}.header-settings-row-stack{flex-direction:column;align-items:stretch;gap:10px}.header-settings-segmented{display:inline-flex;align-self:flex-start;padding:2px;background:var(--bg-secondary, var(--border));border:1px solid var(--border);border-radius:8px;gap:2px}.header-settings-segmented-button:hover:not(.active){color:var(--text-primary)}.header-settings-segmented-button.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 2px #0f172a14}.production-pill.complete{background:#10b98126;border-color:#10b98199;color:#065f46}.production-cell.empty{color:#0f172a40;font-weight:500}.lane-bar-text-overlay.has-cells{background:transparent!important;pointer-events:none}.milestone-panel-v2{position:fixed;top:var(--header-height);right:0;bottom:0;width:380px;background:var(--bg-primary);border-left:1px solid var(--border);box-shadow:-12px 0 32px #0f172a14;display:flex;flex-direction:column;z-index:60;overflow:hidden}.milestone-panel-v2-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);gap:8px;min-height:44px}.milestone-panel-v2-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.milestone-panel-v2-project{font-weight:500;color:var(--text-secondary)}.milestone-panel-v2-divider{color:var(--border)}.milestone-panel-v2-name{font-weight:600;color:var(--text-primary)}.milestone-panel-v2-close{appearance:none;border:none;background:transparent;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:background .12s ease}.milestone-panel-v2-close:hover{background:#0f172a0f;color:var(--text-primary)}.milestone-panel-v2-title-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:10px;border-bottom:1px solid var(--border-light)}.block-panel-production-actions{display:inline-flex;align-items:center;gap:4px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.block-panel-production-actions .block-panel-edit-production-btn,.block-panel-production-actions .block-panel-edit-production-btn:hover{color:#111827}.block-panel-production-property:hover .block-panel-edit-production-btn,.block-panel-production-property:focus-within .block-panel-edit-production-btn{opacity:1}.milestone-panel-v2-title{margin:0;font-size:16px;font-weight:600;line-height:1.25;color:var(--text-primary);flex:1;min-width:0}.milestone-panel-v2-classification{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:2px;border:1px solid transparent;flex-shrink:0}.milestone-panel-v2-classification.factory{background:#2563eb1a;color:#1d4ed8;border-color:#2563eb33}.milestone-panel-v2-classification.site{background:#9333ea1a;color:#6b21a8;border-color:#9333ea38}.milestone-panel-v2-classification{appearance:none;cursor:pointer;font-family:inherit;transition:filter .12s ease,opacity .12s ease}.milestone-panel-v2-classification:hover:not(:disabled){filter:brightness(.95)}.milestone-panel-v2-classification:disabled{cursor:default}.milestone-panel-v2-classification-wrap{position:relative;display:inline-flex}.milestone-panel-v2-classification-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:80;min-width:120px;background:var(--bg-primary);border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;box-shadow:0 8px 24px #0f172a24;padding:4px;display:flex;flex-direction:column;gap:2px}.milestone-panel-v2-classification-option{appearance:none;text-align:left;padding:6px 8px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--text-primary);border-radius:2px;cursor:pointer}.milestone-panel-v2-classification-option:hover{background:var(--bg-hover, rgba(0, 0, 0, .05))}.milestone-panel-v2-classification-option.active.factory{color:#1d4ed8}.milestone-panel-v2-classification-option.active.site{color:#6b21a8}.milestone-panel-v2-properties{display:flex;flex-direction:column;padding:8px 0;flex:1;overflow-y:auto}.milestone-panel-v2-property{display:grid;grid-template-columns:110px 1fr;align-items:center;column-gap:12px;padding:6px 16px;position:relative}.milestone-panel-v2-property+.milestone-panel-v2-property{border-top:1px solid var(--border-light)}.milestone-panel-v2-property-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-muted)}.milestone-panel-v2-property-label svg{flex-shrink:0;opacity:.65}.milestone-panel-v2-property-button{appearance:none;border:1px solid var(--border);background:var(--bg-primary);display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;color:var(--text-primary);cursor:pointer;justify-self:start;transition:background .12s ease,border-color .12s ease}.milestone-panel-v2-property-button:hover{border-color:#0f172a33;background:var(--bg-secondary, #F8FAFC)}.milestone-panel-v2-property-meta{font-size:12px;font-weight:500;color:var(--text-muted);margin-left:4px}.milestone-panel-v2-property-empty{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;background:var(--bg-secondary, #F1F5F9);font-size:12px;font-weight:500;color:var(--text-muted)}.milestone-panel-v2-popover{position:absolute;top:calc(100% - 4px);left:122px;right:16px;z-index:70;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #0f172a29;padding:12px;display:flex;flex-direction:column;gap:8px;min-width:220px}.milestone-panel-v2-popover.crew-popover{left:auto;right:16px;min-width:220px;max-height:320px;display:flex;flex-direction:column;overflow:hidden;padding:6px}.milestone-panel-v2-popover-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--text-secondary)}.milestone-panel-v2-popover-row>span{font-weight:500}.milestone-panel-v2-popover-row input[type=date]{flex:1;height:28px;padding:0 6px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-primary);background:var(--bg-primary);outline:none}.milestone-panel-v2-popover-row input[type=date]:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb2e}.milestone-panel-v2-popover-hint{margin:4px 0 0;font-size:11px;color:var(--text-muted);line-height:1.4}.milestone-panel-v2-popover-empty{padding:12px;font-size:12px;color:var(--text-muted);text-align:center}.milestone-panel-v2-stepper{display:inline-flex;align-items:center;gap:4px}.milestone-panel-v2-stepper button{width:22px;height:22px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);font-size:12px;cursor:pointer}.milestone-panel-v2-stepper button:hover{background:#0f172a0f}.milestone-panel-v2-stepper span{min-width:24px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}.milestone-panel-v2-crew-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.milestone-panel-v2-crew-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 8px;background:#2563eb14;color:#1d4ed8;border:1px solid rgba(37,99,235,.2);border-radius:2px;font-size:12px;font-weight:500}.milestone-panel-v2-crew-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;border:none;background:#2563eb33;color:#1d4ed8;cursor:pointer}.milestone-panel-v2-crew-chip-remove:hover{background:#2563eb59}.milestone-panel-v2-crew-menu-wrapper{position:relative}.milestone-panel-v2-crew-add{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px dashed var(--border);border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.milestone-panel-v2-crew-add:hover{border-color:var(--accent);color:var(--accent);border-style:solid}.milestone-panel-v2-crew-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;border:none;background:transparent;font-size:13px;text-align:left;border-radius:4px;cursor:pointer;color:var(--text-primary)}.milestone-panel-v2-crew-option:hover{background:#0f172a0d}.milestone-panel-v2-crew-option.assigned{color:#1d4ed8;font-weight:500}.milestone-panel-v2-crew-check{color:#1d4ed8;font-weight:700}.milestone-panel-v2-lock-button{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-primary);font-size:12px;font-weight:500;color:var(--text-secondary);cursor:pointer;justify-self:start}.milestone-panel-v2-lock-button.on{background:#f59e0b1f;border-color:#f59e0b66;color:#92400e}.milestone-panel-v2-footer{border-top:1px solid var(--border);padding:12px 16px;display:flex;flex-direction:column;gap:8px;background:var(--bg-primary)}.milestone-panel-v2-unschedule{appearance:none;background:transparent;border:1px solid rgba(220,38,38,.3);color:#b91c1c;padding:8px 12px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer}.milestone-panel-v2-unschedule:hover{background:#dc262614}.milestone-panel-v2-footer-hint{font-size:11px;color:var(--text-muted);line-height:1.4}.milestone-panel-v2-property.is-collapsible.expanded{align-items:flex-start;padding-bottom:12px}.milestone-panel-v2-property-detail{grid-column:1 / -1;margin-top:8px;padding:10px 12px;background:var(--bg-secondary, rgba(15, 23, 42, .03));border-radius:6px}.milestone-panel-v2-caret{transition:transform .12s ease}.milestone-panel-v2-caret.open{transform:rotate(180deg)}.milestone-panel-v2-property.is-section{grid-template-columns:1fr;padding:16px 16px 6px}.milestone-panel-v2-section-header{display:flex;align-items:center;gap:6px;padding:0}.milestone-panel-v2-section-toggle{appearance:none;background:transparent;border:none;display:inline-flex;align-items:center;gap:6px;padding:0;font-size:12px;font-weight:500;color:var(--text-muted);cursor:pointer;flex:1}.milestone-panel-v2-section-title{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-muted)}.milestone-panel-v2-section-progress{flex:1;max-width:60px;height:4px;background:#0f172a14;border-radius:2px;overflow:hidden;margin-left:4px}.milestone-panel-v2-section-progress-bar{display:block;height:100%;background:#0f172a59;transition:width .18s ease}.milestone-panel-v2-section-count{font-size:12px;font-weight:500;color:var(--text-muted);font-variant-numeric:tabular-nums}.milestone-panel-v2-subtask-due-input{width:100%;border:1px solid transparent;background:transparent;font:inherit;font-size:11px;color:var(--text-secondary);padding:2px 4px;border-radius:4px;cursor:pointer;font-variant-numeric:tabular-nums}.milestone-panel-v2-subtask-due-input:hover{border-color:var(--border);background:var(--bg-primary)}.milestone-panel-v2-subtask-due-input:focus{outline:none;border-color:var(--accent);background:var(--bg-primary)}.milestone-panel-v2-subtask-due-input:not(.has-value)::-webkit-datetime-edit{color:var(--border)}.milestone-panel-v2-block-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.milestone-panel-v2-block-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);font-size:12px;cursor:grab;transition:border-color .12s ease,background .12s ease}.milestone-panel-v2-block-row:hover{border-color:#0f172a33;background:var(--bg-secondary, #F8FAFC)}.milestone-panel-v2-block-row.is-dragging{opacity:.55;border-color:var(--accent);cursor:grabbing}.milestone-panel-v2-block-date{flex:1;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums}.milestone-panel-v2-block-qty{font-size:11px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.milestone-panel-v2-block-crews{font-size:11px;color:var(--text-muted)}.milestone-panel-v2-block-delete{appearance:none;border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.milestone-panel-v2-block-row:hover .milestone-panel-v2-block-delete{opacity:1}.milestone-panel-v2-block-delete:hover{background:var(--bg-hover, rgba(15, 23, 42, .06));color:var(--text-primary)}.milestone-panel-v2-block-hint{margin:6px 2px 0;font-size:11px;color:var(--text-muted)}.milestone-panel-v2-merge-toast{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 16px 8px;padding:10px 14px;background:#0f172a;color:#fff;border-radius:8px;font-size:12px;box-shadow:0 8px 20px #0f172a2e}.milestone-panel-v2-merge-toast strong{font-weight:600}.milestone-panel-v2-merge-toast button{appearance:none;background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer}.milestone-panel-v2-merge-toast button:hover{background:#ffffff1f}.milestone-panel-v2-section-body{margin-top:6px}.milestone-panel-v2-subtask-table{width:100%;border-collapse:collapse;font-size:12px;color:var(--text-primary)}.milestone-panel-v2-subtask-table thead th{font-size:10px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);text-align:left;padding:4px 6px;border-bottom:1px solid var(--border-light)}.milestone-panel-v2-subtask-table .col-done{width:24px}.milestone-panel-v2-subtask-table .col-due{width:64px;white-space:nowrap}.milestone-panel-v2-subtask-table .col-actions{width:24px}.milestone-panel-v2-subtask-table tbody td{padding:8px 6px;border-bottom:1px solid var(--border-light);vertical-align:middle}.milestone-panel-v2-subtask-row.completed .col-name{color:var(--text-muted);text-decoration:line-through}.milestone-panel-v2-subtask-check{width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;flex-shrink:0}.milestone-panel-v2-subtask-check.on{background:var(--accent, rgb(37, 99, 235));border-color:var(--accent, rgb(37, 99, 235))}.milestone-panel-v2-subtask-check.ghost{border-style:dashed;border-color:var(--border-light);cursor:default;opacity:.6}.milestone-panel-v2-subtask-due{font-variant-numeric:tabular-nums;font-size:11px;color:var(--text-secondary)}.milestone-panel-v2-subtask-due-empty{color:var(--border)}.milestone-panel-v2-subtask-delete{appearance:none;border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;opacity:0;transition:opacity .12s ease,background .12s ease}.milestone-panel-v2-subtask-row:hover .milestone-panel-v2-subtask-delete{opacity:1}.milestone-panel-v2-subtask-delete:hover{background:#dc26261a;color:#b91c1c}.milestone-panel-v2-subtask-addrow{padding:4px 0}button.milestone-panel-v2-subtask-addrow{display:block;width:100%;text-align:left;padding:6px;border:1px dashed transparent;border-radius:4px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}button.milestone-panel-v2-subtask-addrow:hover{border-color:var(--border);color:var(--text-primary)}.milestone-panel-v2-subtask-addrow-tr td{border-bottom:none!important;background:transparent}.milestone-panel-v2-subtask-cell-input{width:100%;height:26px;padding:0 6px;border:1px dashed transparent;border-radius:4px;font-size:12px;color:var(--text-primary);background:transparent;outline:none;transition:border-color .12s ease,background .12s ease}.milestone-panel-v2-subtask-cell-input::placeholder{color:var(--text-muted);font-weight:500}.milestone-panel-v2-subtask-cell-input:hover{border-color:var(--border)}.milestone-panel-v2-subtask-cell-input:focus{border-color:var(--accent);border-style:solid;background:var(--bg-primary)}.working-days-detail{padding:4px 8px}.milestone-panel-v2-production-row{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.milestone-panel-v2-production-cell{height:26px;padding:0 8px;border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;background:var(--bg-primary);font-size:12px;font-weight:500;color:var(--text-primary);outline:none;font-variant-numeric:tabular-nums}.milestone-panel-v2-production-cell:focus{border-color:var(--accent, #2563EB);box-shadow:0 0 0 2px #2563eb29}.milestone-panel-v2-production-cell.num{width:52px;text-align:right}.milestone-panel-v2-production-cell.uom{width:44px;text-align:center;text-transform:uppercase;font-weight:700}.milestone-panel-v2-production-cell.type{flex:1;min-width:90px;font-weight:400}.milestone-panel-v2-production-slash{color:var(--text-muted);font-size:12px;-webkit-user-select:none;user-select:none}.milestone-panel-v2-production-input{width:56px;height:26px;padding:0 6px;border:1px solid var(--border);border-radius:4px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;background:var(--bg-primary);color:var(--text-primary);outline:none}.milestone-panel-v2-production-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb26}.milestone-panel-v2-production-total{font-size:12px;font-weight:500;color:var(--text-muted);font-variant-numeric:tabular-nums}.milestone-panel-v2-production-code{font-size:12px;font-weight:700;color:var(--accent, rgb(37, 99, 235));letter-spacing:.04em}.milestone-panel-v2-production-type{font-size:11px;color:var(--text-muted);margin-left:4px}.milestone-panel-v2-property.is-property-stack{grid-template-columns:1fr;align-items:stretch}.milestone-panel-v2-property-line{display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:center}.milestone-panel-v2-daily-allocation{margin-top:8px;padding:8px 10px;background:#0f172a08;border-radius:6px}.milestone-panel-v2-daily-allocation-label{display:block;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.milestone-panel-v2-daily-allocation-grid{display:flex;flex-direction:column;gap:4px}.milestone-panel-v2-daily-allocation-cell{display:grid;grid-template-columns:1fr 56px 20px;align-items:center;gap:6px}.milestone-panel-v2-daily-allocation-day{font-size:12px;color:var(--text-secondary)}.milestone-panel-v2-daily-allocation-input{height:24px;padding:0 6px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-variant-numeric:tabular-nums;text-align:right;background:var(--bg-primary);color:var(--text-primary);outline:none}.milestone-panel-v2-daily-allocation-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb26}.milestone-panel-v2-daily-allocation-code{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.04em}.milestone-panel-v2-overlay{position:fixed;inset:0;background:transparent;z-index:59}.milestone-panel-v2.create{z-index:61}.milestone-panel-v2-milestone-selector{position:relative;flex:1;min-width:0}.milestone-panel-v2-milestone-selector-button{appearance:none;width:100%;border:1px solid var(--border);background:var(--bg-primary);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:6px;font-size:14px;font-weight:600;color:var(--text-primary);cursor:pointer}.milestone-panel-v2-milestone-selector-button:hover{border-color:#2563eb66}.milestone-panel-v2-milestone-title{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.milestone-panel-v2-milestone-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:65;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #0f172a29;max-height:320px;display:flex;flex-direction:column;overflow:hidden}.milestone-panel-v2-milestone-search{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border-light);color:var(--text-muted)}.milestone-panel-v2-milestone-search input{flex:1;border:none;background:transparent;font-size:13px;color:var(--text-primary);outline:none}.milestone-panel-v2-milestone-list{flex:1;overflow-y:auto;padding:4px}.milestone-panel-v2-milestone-option{appearance:none;width:100%;border:none;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:4px;font-size:13px;color:var(--text-primary);cursor:pointer;text-align:left}.milestone-panel-v2-milestone-option:hover{background:#0f172a0d}.milestone-panel-v2-milestone-option.selected{background:#2563eb14;color:#1d4ed8;font-weight:500}.milestone-panel-v2-milestone-tag{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:#0f172a0f;border-radius:2px;padding:2px 8px}.milestone-panel-v2-milestone-empty{padding:12px;font-size:12px;color:var(--text-muted);text-align:center}.milestone-panel-v2-cancel{appearance:none;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;flex:1}.milestone-panel-v2-cancel:hover{background:#0f172a0a}.milestone-panel-v2-schedule{appearance:none;background:var(--accent, rgb(37, 99, 235));border:1px solid var(--accent, rgb(37, 99, 235));color:#fff;padding:8px 20px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;flex:1}.milestone-panel-v2-schedule:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.milestone-panel-v2-schedule:disabled{opacity:.4;cursor:not-allowed}.milestone-panel-v2.create .milestone-panel-v2-footer{flex-direction:row;gap:8px}.add-to-schedule-trigger{border-color:var(--accent, #2563EB);background:var(--accent, #2563EB);color:#fff}.add-to-schedule-trigger:hover:not(:disabled){filter:brightness(.94);background:var(--accent, #2563EB);border-color:var(--accent, #2563EB);color:#fff}.add-to-schedule-trigger:disabled{opacity:.45;cursor:not-allowed}.add-to-schedule-trigger>span{display:none}.schedule-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;margin:24px 16px;padding:24px 16px;border:1px dashed var(--border);border-radius:8px;background:var(--bg-secondary)}.schedule-empty-title{margin:0;font-size:13px;font-weight:600;color:var(--text-primary)}.schedule-empty-hint{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.4}.schedule-empty-cta{margin-top:4px;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border:none;background:var(--accent, #2563eb);color:#fff;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:filter .12s ease}.schedule-empty-cta:hover{filter:brightness(.96)}.add-to-schedule-overlay{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:100}.add-to-schedule-modal{width:560px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;box-shadow:0 24px 64px #0f172a33;overflow:hidden}.add-to-schedule-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.add-to-schedule-back,.add-to-schedule-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--text-secondary);border-radius:4px;cursor:pointer}.add-to-schedule-back:hover,.add-to-schedule-close:hover{background:var(--bg-hover, rgba(0, 0, 0, .05));color:var(--text-primary)}.add-to-schedule-titles{flex:1;min-width:0}.add-to-schedule-title{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.add-to-schedule-hint{margin:2px 0 0;font-size:12px;color:var(--text-secondary)}.add-to-schedule-toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border)}.add-to-schedule-search{display:inline-flex;align-items:center;gap:6px;flex:1;min-width:0;color:var(--text-secondary)}.add-to-schedule-search input{flex:1;height:28px;padding:0;border:none;background:transparent;font-size:13px;color:var(--text-primary);outline:none}.add-to-schedule-search input::placeholder{color:var(--text-secondary)}.add-to-schedule-type-filter{position:relative;display:inline-flex;align-items:center}.add-to-schedule-type-btn{display:inline-flex;align-items:center;gap:4px;height:28px;min-width:28px;padding:0 8px;border:1px solid var(--border);background:var(--bg-primary);border-radius:2px;color:var(--text-secondary);cursor:pointer;font-size:12px}.add-to-schedule-type-btn.active{border-color:var(--accent, #2563EB);color:var(--accent, #2563EB)}.add-to-schedule-type-btn:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.add-to-schedule-type-label{font-weight:500}.add-to-schedule-type-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;padding:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #0f172a1f;z-index:10;display:flex;flex-direction:column;gap:2px}.add-to-schedule-type-option{text-align:left;padding:6px 8px;border:none;background:transparent;font-size:12px;color:var(--text-primary);border-radius:4px;cursor:pointer}.add-to-schedule-type-option:hover{background:var(--bg-hover, rgba(0, 0, 0, .05))}.add-to-schedule-type-option.active{color:var(--accent, #2563EB);font-weight:500}.add-to-schedule-select-all{display:flex;align-items:center;gap:12px;width:100%;height:30px;padding:0 16px;border:none;border-bottom:1px solid var(--border);background:transparent;font-size:12px;font-weight:500;color:var(--text-secondary);text-align:left;cursor:pointer}.add-to-schedule-select-all:hover{background:var(--bg-hover, rgba(0, 0, 0, .03))}.add-to-schedule-row-type{font-size:11px;font-weight:500;padding:2px 8px;border-radius:2px;background:var(--bg-secondary);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.add-to-schedule-list{flex:1;overflow-y:auto;min-height:400px;max-height:380px;padding:6px}.add-to-schedule-empty{padding:24px 16px;text-align:center;font-size:13px;color:var(--text-secondary)}.add-to-schedule-row{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:6px;text-align:left;cursor:pointer;transition:background .1s ease}.add-to-schedule-row:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.add-to-schedule-row.selected{background:#2563eb14}.add-to-schedule-checkbox{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1.5px solid var(--border);border-radius:3px;background:var(--bg-primary);color:#fff;flex-shrink:0}.add-to-schedule-checkbox.checked{background:var(--accent, #2563eb);border-color:var(--accent, #2563eb)}.add-to-schedule-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.add-to-schedule-row-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-to-schedule-row-meta{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.add-to-schedule-row-status{font-size:11px;font-weight:500;padding:2px 8px;border-radius:2px;background:var(--bg-secondary);color:var(--text-secondary);text-transform:capitalize;white-space:nowrap;flex-shrink:0}.add-to-schedule-template-list .add-to-schedule-template-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border:1px solid var(--border);background:var(--bg-primary);border-radius:6px;text-align:left;cursor:pointer;margin-bottom:6px;transition:border-color .12s ease,background .12s ease}.add-to-schedule-template-list .add-to-schedule-template-row:hover{border-color:var(--accent, #2563eb);background:#2563eb0a}.add-to-schedule-template-name{font-size:13px;font-weight:600;color:var(--text-primary)}.add-to-schedule-template-desc{font-size:12px;color:var(--text-secondary)}.add-to-schedule-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-secondary)}.add-to-schedule-secondary,.add-to-schedule-primary{height:32px;padding:0 14px;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:filter .12s ease,background .12s ease}.add-to-schedule-secondary{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary)}.add-to-schedule-secondary:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.add-to-schedule-primary{border:none;background:var(--accent, #2563eb);color:#fff}.add-to-schedule-primary:hover:not(:disabled){filter:brightness(.96)}.add-to-schedule-primary:disabled{opacity:.45;cursor:not-allowed}.project-search-expanded{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 4px 0 8px;border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:var(--radius-sm);background:var(--bg-primary, #FFFFFF);color:var(--text-secondary);box-shadow:0 0 0 2px #2563eb29}.project-search-input{width:160px;height:22px;border:none;background:transparent;font-size:12px;color:var(--text-primary);outline:none;padding:0}.project-search-input::placeholder{color:var(--text-secondary)}.project-search-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--text-secondary);border-radius:3px;cursor:pointer;transition:background .1s ease}.project-search-clear:hover{background:var(--bg-hover, rgba(0, 0, 0, .06));color:var(--text-primary)}.crew-list-filter-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b7280;margin-bottom:0;padding:0}.crew-list-filter-toggle{position:relative;width:30px;height:18px;flex-shrink:0;padding:0;border:none;border-radius:999px;background:var(--border, rgba(15, 23, 42, .18));cursor:pointer;transition:background .15s ease}.crew-list-filter-toggle.on{background:var(--accent, #2563EB)}.crew-list-filter-toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0000002e;transition:transform .15s ease}.crew-list-filter-toggle.on .crew-list-filter-toggle-thumb{transform:translate(12px)}.milestone-state-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;flex-shrink:0;margin-right:8px}.milestone-state-icon.unscheduled{border:1.5px dashed rgba(100,116,139,.55);background:transparent}.milestone-state-icon.scheduled{border:1.5px solid var(--accent, #2563EB);background:transparent}.milestone-state-icon.scheduled .milestone-state-icon-inner{width:6px;height:6px;border-radius:50%;background:var(--accent, #2563EB)}.milestone-state-icon.done{background:#16a34a;color:#fff}.milestone-crew-avatars{display:inline-flex;align-items:center;flex-shrink:0;margin-left:auto;padding:0 4px}.milestone-crew-avatars.is-readonly{cursor:default}.milestone-crew-avatars.is-empty{padding:0 4px}.milestone-crew-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:#fff;font-size:9px;font-weight:600;letter-spacing:.02em;box-shadow:0 0 0 2px var(--bg-primary, #FFFFFF)}.milestone-crew-avatar+.milestone-crew-avatar{margin-left:-6px}.milestone-crew-avatar.more{background:#0f172a8c;font-size:9px}.milestone-crew-add{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;padding:0;margin-left:auto;background:transparent;border:1.5px dashed rgba(100,116,139,.45);border-radius:50%;color:#64748bb3;cursor:pointer;opacity:0;transition:opacity .12s ease,border-color .12s ease,color .12s ease,background .12s ease}.milestone-subrow:hover .milestone-crew-add{opacity:1}.milestone-crew-add:hover{border-color:var(--accent, #2563EB);color:var(--accent, #2563EB)}.milestone-subrow-production-wrap{position:relative;display:inline-flex;align-items:center;flex-shrink:0;margin-left:6px}.milestone-subrow-production{appearance:none;display:inline-flex;align-items:baseline;gap:4px;padding:1px 6px;border:1px solid rgba(15,23,42,.15)!important;border-radius:2px!important;background:var(--bg-secondary, #F1F5F9)!important;color:var(--text-primary)!important;font-size:11px;font-weight:500;line-height:16px;letter-spacing:0;white-space:nowrap;cursor:default;transition:background .12s ease,border-color .12s ease}.milestone-subrow-production-wrap.editable .milestone-subrow-production{cursor:pointer}.milestone-subrow-production-wrap.editable .milestone-subrow-production:hover{background:var(--bg-hover, rgba(15, 23, 42, .05));border-color:#0f172a47}.milestone-subrow-production-popover{z-index:60;display:flex;flex-direction:column;gap:6px;padding:10px;min-width:220px;background:var(--bg-primary);border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:4px;box-shadow:0 12px 32px #0f172a24}.milestone-subrow-production-popover-row{display:grid;grid-template-columns:50px 1fr;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary);font-weight:500}.milestone-subrow-production-popover-row input{height:26px;padding:0 8px;border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;background:var(--bg-primary);font-size:12px;font-weight:500;color:var(--text-primary);outline:none}.milestone-subrow-production-popover-row input:focus{border-color:var(--accent, #2563EB);box-shadow:0 0 0 2px #2563eb29}.milestone-template-summary-pills{display:inline-flex;align-items:center;gap:4px;justify-self:end;flex-wrap:wrap;justify-content:flex-end}.milestone-template-subtask-pill{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-pill, 999px);padding:2px 8px;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;white-space:nowrap}.milestone-template-expanded{display:flex;flex-direction:column;gap:12px;padding:8px 12px 12px}.milestone-template-field-card{border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:2px;padding:8px 10px;background:var(--bg-primary);display:flex;flex-direction:column;gap:8px}.milestone-template-field-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.milestone-template-add-subtasks-btn{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:6px 10px;border:1px dashed var(--border, rgba(15, 23, 42, .18));border-radius:var(--radius-md, 6px);background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}.milestone-template-add-subtasks-btn:hover{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb);background:#2563eb0d}.milestone-template-row-menu-wrap{position:relative;display:inline-flex}.milestone-template-row-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:30;min-width:160px;background:var(--bg-primary);border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:4px;box-shadow:0 8px 24px #0f172a1f;padding:4px;display:flex;flex-direction:column;gap:2px}.milestone-template-row-menu-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--text-primary);text-align:left;border-radius:2px;cursor:pointer}.milestone-template-row-menu-item:hover{background:var(--bg-hover, rgba(0, 0, 0, .05))}.milestone-template-row-menu-item.danger{color:#b91c1c}.milestone-template-row-menu-item.danger:hover{background:#dc262614}.milestone-template-subtask-text{flex:1;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.milestone-template-subtask-actions{display:inline-flex;align-items:center;gap:4px;opacity:0;transition:opacity .12s ease}.milestone-template-subtask-row:hover .milestone-template-subtask-actions{opacity:1}.milestone-panel-v2-block-crew-avatars{display:inline-flex;align-items:center}.milestone-panel-v2-block-crew-avatar{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;color:#fff;font-size:8px;font-weight:600;letter-spacing:.02em;box-shadow:0 0 0 2px var(--bg-primary, #FFFFFF)}.milestone-panel-v2-block-crew-avatar+.milestone-panel-v2-block-crew-avatar{margin-left:-5px}.milestone-panel-v2-block-crew-avatar.more{background:#0f172a8c}.milestone-panel-v2-block-crew-picker-wrap{position:relative;display:inline-flex;align-items:center}.milestone-panel-v2-block-crew-add{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;padding:0;background:transparent;border:1.5px dashed rgba(100,116,139,.45);border-radius:50%;color:#64748bb3;cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}.milestone-panel-v2-block-crew-add:hover{border-color:var(--accent, #2563EB);color:var(--accent, #2563EB)}.milestone-panel-v2-block-crew-picker-wrap>button.milestone-panel-v2-block-crew-avatars{background:transparent;border:none;padding:0;cursor:pointer}.milestone-panel-v2-block-crew-popover{position:absolute;top:calc(100% + 4px);right:0;z-index:40;width:220px;max-height:280px;display:flex;flex-direction:column;padding:8px;background:var(--bg-primary);border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;box-shadow:0 12px 32px #0f172a29;overflow:hidden}.milestone-template-subtasks{display:flex;flex-direction:column;gap:6px}.milestone-template-subtask-empty{margin:0;font-size:12px;color:var(--text-muted);font-style:italic}.milestone-template-subtask-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.milestone-template-subtask-row{display:flex;align-items:center;gap:6px}.milestone-template-subtask-row input,.milestone-template-subtask-add input{flex:1;height:28px;font-size:12px}.milestone-template-subtask-add{display:flex;align-items:center;gap:6px;margin-top:4px}.milestone-subrow-production.complete{border-color:#16a34a73;background:#16a34a0f;color:var(--green-700, #15803D)}.milestone-subrow-production-uom{color:var(--text-secondary);font-weight:400;margin-left:1px}.milestone-subrow-label.scheduled{color:var(--text-primary)}.milestone-subrow-label.unscheduled{color:var(--text-secondary)}.milestone-subrow-label-input{height:22px;width:100%;max-width:200px;padding:0 6px;border:1px solid var(--accent, #2563EB);border-radius:2px;background:var(--bg-primary, #FFFFFF);font-size:13px;font-weight:500;color:var(--text-primary);outline:none}.milestone-panel-v2-crew-search{height:26px;padding:0 8px;border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;background:var(--bg-primary);font-size:12px;color:var(--text-primary);outline:none}.milestone-panel-v2-crew-search:focus{border-color:var(--accent, #2563EB)}.milestone-panel-v2-crew-list{display:flex;flex-direction:column;margin-top:6px;overflow-y:auto;flex:1;min-height:60px}.project-type-tag{display:inline-flex;align-items:center;padding:2px 8px;border:1px solid var(--border, rgba(15, 23, 42, .12));border-radius:2px;background:var(--bg-primary, #FFFFFF);color:var(--text-secondary);font-size:11px;font-weight:500;letter-spacing:.02em;white-space:nowrap;flex-shrink:0}.milestone-panel-v2-property-button,.milestone-panel-v2-property-empty{font-size:12px;font-weight:500;border-radius:2px!important}.milestone-panel-v2-property-button,.milestone-panel-v2-property-empty{height:26px;padding:0 10px!important}.milestone-panel-v2-subtask-due-input{height:26px;padding:0 10px;border:1px solid var(--border, rgba(15, 23, 42, .14))!important;border-radius:2px!important;background:var(--bg-primary);font-size:12px;font-weight:500;color:var(--text-primary);outline:none;font-family:inherit}.milestone-panel-v2-subtask-due-input:hover{border-color:#0f172a33}.milestone-panel-v2-subtask-due-input:focus{border-color:var(--accent, #2563EB);box-shadow:0 0 0 2px #2563eb29}.milestone-panel-v2-block-row{padding:0 10px!important;height:26px;border-radius:2px!important}.milestone-panel-v2-subtask-row{height:26px}.milestone-panel-v2-subtask-row td{padding:0 4px}.milestone-panel-v2-add-field-row{position:relative;display:flex;align-items:center;padding:4px 16px 12px}.milestone-panel-v2-add-field{display:inline-flex;align-items:center;gap:6px;padding:4px 0;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color .12s ease}.milestone-panel-v2-add-field:hover{color:var(--text-primary)}.milestone-panel-v2-add-field-menu{position:absolute;top:calc(100% - 4px);left:16px;z-index:30;min-width:160px;background:var(--bg-primary);border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:4px;box-shadow:0 8px 24px #0f172a24;padding:4px;display:flex;flex-direction:column;gap:2px}.milestone-panel-v2-add-field-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--text-primary);text-align:left;border-radius:2px;cursor:pointer}.milestone-panel-v2-add-field-option:hover{background:var(--bg-hover, rgba(0, 0, 0, .05))}.milestone-panel-v2-property .milestone-panel-v2-property-label{align-self:start;padding-top:6px}.milestone-panel-v2-property--removable,.milestone-panel-v2-property.is-section{position:relative}.milestone-panel-v2-property-remove{position:absolute;top:6px;right:12px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;background:var(--bg-primary, #FFFFFF);color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.milestone-panel-v2-property--removable:hover .milestone-panel-v2-property-remove,.milestone-panel-v2-property.is-section:hover .milestone-panel-v2-property-remove{opacity:1}.milestone-panel-v2-property-remove:hover{color:var(--text-primary);background:var(--bg-hover, rgba(15, 23, 42, .05))}.milestone-panel-v2-block-qty{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 6px;border:1px solid var(--border, rgba(15, 23, 42, .14));border-radius:2px;background:var(--bg-primary)}.milestone-panel-v2-block-qty-input{width:32px;height:18px;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--text-primary);text-align:right;outline:none;padding:0;-moz-appearance:textfield;font-variant-numeric:tabular-nums}.milestone-panel-v2-block-qty-input::-webkit-outer-spin-button,.milestone-panel-v2-block-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.milestone-panel-v2-block-qty-uom{font-size:11px;font-weight:500;color:var(--text-secondary)}.milestone-panel-v2-popover{border-radius:2px!important}.whats-new-backdrop{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:2100;padding:24px}.whats-new-dialog{position:relative;background:var(--bg-primary, #fff);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:min(560px,100%);max-height:min(720px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden;transform:translateY(10px);opacity:0;transition:transform .24s ease-out,opacity .24s ease-out}.whats-new-dialog.open{transform:translateY(0);opacity:1}.whats-new-close{position:absolute;top:12px;right:12px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:6px;color:var(--text-muted, #64748b);cursor:pointer;transition:background .12s ease,color .12s ease}.whats-new-close:hover{background:#0f172a0f;color:var(--text-primary, #0f172a)}.whats-new-header{display:flex;align-items:flex-start;gap:14px;padding:24px 28px 16px;border-bottom:1px solid var(--border, #e5e7eb)}.whats-new-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#2563eb1f;color:var(--accent, #2563eb);display:flex;align-items:center;justify-content:center}.whats-new-title{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--text-primary, #0f172a)}.whats-new-subtitle{margin:0;font-size:13px;color:var(--text-secondary, #475569);line-height:1.45}.whats-new-body{overflow-y:auto;padding:16px 28px;display:flex;flex-direction:column;gap:18px}.whats-new-section+.whats-new-section{border-top:1px solid var(--border-light, #f1f5f9);padding-top:14px}.whats-new-section-title{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted, #64748b)}.whats-new-list{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:6px}.whats-new-list li{font-size:13px;line-height:1.5;color:var(--text-primary, #0f172a)}.whats-new-footer{padding:14px 28px 20px;display:flex;justify-content:flex-end;border-top:1px solid var(--border, #e5e7eb);background:var(--bg-secondary, #f8fafc)}.whats-new-footer .warning-dialog-btn.primary{min-width:120px}.scheduling-panel--refreshed .scheduling-panel-content{padding:0;background:var(--bg-primary, #FFFFFF)}.scheduling-panel--refreshed .scheduling-panel-content>.scheduling-panel-row,.scheduling-panel--refreshed .scheduling-panel-content>.scheduling-panel-section{padding-left:16px;padding-right:16px}.scheduling-panel--refreshed .scheduling-panel-content>.scheduling-panel-row+.scheduling-panel-row,.scheduling-panel--refreshed .scheduling-panel-content>.scheduling-panel-row+.scheduling-panel-section,.scheduling-panel--refreshed .scheduling-panel-content>.scheduling-panel-section+.scheduling-panel-row,.scheduling-panel--refreshed .scheduling-panel-content>.scheduling-panel-section+.scheduling-panel-section{border-top:1px solid var(--border-light);margin-top:0;padding-top:8px}.scheduling-panel--refreshed .scheduling-panel-section-header{padding:10px 0;color:var(--text-muted)}.scheduling-panel--refreshed .scheduling-panel-section-title{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.scheduling-panel--refreshed .scheduling-panel-section-summary{color:var(--text-secondary);font-weight:500}.scheduling-panel--refreshed .scheduling-panel-content>.scheduling-panel-row:first-child{padding-top:14px;padding-bottom:14px;border-bottom:1px solid var(--border-light)}.scheduling-panel--refreshed .scheduling-panel-dropdown.milestone-title{border:none;padding:0;background:transparent}.scheduling-panel--refreshed .scheduling-panel-dropdown.milestone-title .scheduling-panel-dropdown-label{font-size:16px;font-weight:600;line-height:1.25;color:var(--text-primary)}.scheduling-panel--refreshed .scheduling-panel-mode-badge{margin-left:8px;padding:3px 8px;font-size:10px;font-weight:700;letter-spacing:.06em}.scheduling-panel--refreshed .scheduling-panel-date-box{height:28px;padding:0 8px;border:1px solid var(--border);border-radius:6px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-primary);background:var(--bg-primary);transition:border-color .12s ease,box-shadow .12s ease}.scheduling-panel--refreshed .scheduling-panel-date-box.focused,.scheduling-panel--refreshed .scheduling-panel-date-box:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb2e;outline:none}.scheduling-panel--refreshed .scheduling-panel-date-arrow{color:var(--text-muted);font-size:12px}.scheduling-panel--refreshed .scheduling-panel-row.workdays-row{gap:6px}.scheduling-panel--refreshed .scheduling-panel-workdays-btn{width:22px;height:22px;padding:0;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);font-size:12px;color:var(--text-primary);cursor:pointer;transition:background .12s ease,border-color .12s ease}.scheduling-panel--refreshed .scheduling-panel-workdays-btn:hover:not(:disabled){background:#0f172a0f;border-color:#0f172a33}.scheduling-panel--refreshed .scheduling-panel-workdays-btn:disabled{opacity:.4;cursor:not-allowed}.scheduling-panel--refreshed .scheduling-panel-workdays-value{min-width:84px;text-align:center;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.scheduling-panel--refreshed .scheduling-panel-calendar{margin-top:6px;padding:8px 0 0;border-top:1px solid var(--border-light)}.scheduling-panel--refreshed .scheduling-panel-calendar-header{font-size:12px;font-weight:600;color:var(--text-primary)}.scheduling-panel--refreshed .scheduling-panel-calendar-header button{width:22px;height:22px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-muted);cursor:pointer;transition:background .12s ease}.scheduling-panel--refreshed .scheduling-panel-calendar-header button:hover{background:#0f172a0f}.scheduling-panel--refreshed .scheduling-panel-calendar-weekdays span{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.scheduling-panel--refreshed .scheduling-panel-calendar-day{font-variant-numeric:tabular-nums}.scheduling-panel--refreshed .scheduling-panel-crew-label,.scheduling-panel--refreshed .scheduling-panel-subtask-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);display:inline-flex;align-items:center;gap:8px}.scheduling-panel--refreshed .scheduling-panel-subtask-count,.scheduling-panel--refreshed .scheduling-panel-crew-count{font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-secondary)}.scheduling-panel--refreshed .scheduling-panel-crew-add-btn{padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);font-size:11px;font-weight:500;display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.scheduling-panel--refreshed .scheduling-panel-crew-add-btn:hover{background:#2563eb0f;color:var(--accent);border-color:#2563eb66}.scheduling-panel--refreshed .scheduling-panel-subtask-list{margin-top:6px;display:flex;flex-direction:column}.scheduling-panel--refreshed .scheduling-panel-subtask-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border-light);font-size:12px;color:var(--text-primary)}.scheduling-panel--refreshed .scheduling-panel-subtask-item:first-child{border-top:0}.scheduling-panel--refreshed .scheduling-panel-subtask-item.completed .subtask-label{color:var(--text-muted);text-decoration:line-through}.scheduling-panel--refreshed .scheduling-panel-subtask-item .subtask-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduling-panel--refreshed .subtask-checkbox{width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.scheduling-panel--refreshed .subtask-checkbox.checked{border-color:transparent;background:transparent}.scheduling-panel--refreshed .subtask-delete-btn{width:20px;height:20px;border:none;background:transparent;color:var(--text-muted);border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;transition:opacity .12s ease,background .12s ease}.scheduling-panel--refreshed .scheduling-panel-subtask-item:hover .subtask-delete-btn{opacity:1}.scheduling-panel--refreshed .subtask-delete-btn:hover{background:#0f172a0f;color:var(--text-primary)}.scheduling-panel--refreshed .scheduling-panel-footer{padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-primary, #FFFFFF)}.scheduling-panel--refreshed .scheduling-panel-schedule-btn{font-size:13px;font-weight:600;padding:8px 14px;border-radius:6px}
