:root{--primary-main:#fb8b09;--primary-dark:#ff7400;--primary-light:#ffe7d3;--text-primary:#334155;--text-secondary:#64748b;--text-disable:#a8abb2;--text-placeholder:#c9d0da;--secondary-main:#73b0ff;--secondary-dark:#3c91ff;--secondary-light:#e4e9f8;--button-field:#f1f5f9;--other-button-field:#f5f7fa;--border-default:#e0e5eb;--border-active:#64748b;--error-main:#f3473d;--error-light:#ffcfcf;--warning-main:#ffb94f;--warning-light:#fff6e9;--success-main:#51c594;--success-light:#d9f2e8;--success-dark:#11a667;--color-background:#e9ecf0;--header-bg:#eef1f5;--header-border:#cfd7df;--grid-border:#e0e5eb;--weekend-bg:#f0f0f0;--weekend-text:#999;--holiday-bg:#fff3e0;--holiday-text:#e65100;--today-bg:#fb8b09;--today-text:#fff;--row-hover:#f5f7fa}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{touch-action:manipulation}body{background:var(--color-background);color:var(--text-primary);font-family:Google Sans,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}.timeline-wrapper{display:flex;flex-direction:column;height:100vh;padding:0}.timeline-container{background:#fff;border:1px solid var(--grid-border);border-radius:0;box-shadow:none;display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.top-bar{background:#fff;display:flex;padding:4px 12px}.top-bar-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;width:100%}.top-bar-spacer{flex:1}.search-input{background:#fff;border:1px solid var(--border-default);border-radius:4px;color:var(--text-primary);font-family:Google Sans,sans-serif;font-size:13px;height:24px;outline:none;padding:2px 8px;transition:border-color .2s;width:140px}.search-input:focus{border-color:var(--primary-main)}.group-filter{align-items:center;display:flex;gap:2px}.group-filter-label{margin-right:2px}.group-filter-btn,.group-filter-label{color:var(--text-secondary);font-size:13px;font-weight:500}.group-filter-btn{background:#fff;border:1px solid var(--border-default);border-radius:4px;cursor:pointer;font-family:Google Sans,sans-serif;height:24px;padding:1px 8px;transition:all .15s}.group-filter-btn.active{background:var(--primary-main);border-color:var(--primary-main);color:#fff}.group-filter-btn:hover:not(.active){border-color:var(--border-active);color:var(--text-primary)}.sort-wrapper{align-items:center;display:flex;gap:4px}.sort-label{color:var(--text-secondary);font-size:13px;font-weight:500}.sort-select{background:#fff;border:1px solid var(--border-default);border-radius:4px;color:var(--text-primary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;height:24px;outline:none;padding:1px 6px}.sort-select:focus{border-color:var(--primary-main)}.column-dropdown{position:relative}.column-dropdown-btn{background:#fff;border:1px solid var(--border-default);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;font-weight:500;height:24px;padding:1px 8px;transition:all .15s}.column-dropdown-btn:hover{border-color:var(--border-active);color:var(--text-primary)}.column-dropdown-menu{background:#fff;border:1px solid var(--border-default);border-radius:8px;box-shadow:0 4px 16px #0000001a;display:flex;flex-direction:column;gap:6px;left:0;margin-top:4px;min-width:120px;padding:8px 12px;position:absolute;top:100%;z-index:50}.column-dropdown-menu label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;white-space:nowrap}.column-dropdown-menu input[type=checkbox]{accent-color:var(--primary-main);cursor:pointer}.column-dropdown-btn.active{background:#e3f2fd;border-color:var(--primary-main);color:var(--primary-main)}.status-dropdown-menu{max-height:420px;min-width:320px;overflow-y:auto}.status-group{margin-bottom:6px}.status-group+.status-group{padding-top:4px}.status-group-label{border-bottom:1px solid var(--border-default);font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:4px;padding-bottom:2px;text-transform:uppercase}.status-columns{display:flex;gap:16px}.status-col{display:flex;flex-direction:column;gap:1px;min-width:0}.status-filter-label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:400;gap:5px;padding:2px 0;white-space:nowrap}.status-filter-name{flex:1;min-width:0}.status-filter-badge{align-items:center;border-radius:8px;box-sizing:border-box;color:#fff;display:inline-flex;flex-shrink:0;font-size:9px;font-weight:700;height:16px;justify-content:center;text-align:center;width:24px}.status-filter-badge-phase{border-radius:8px}.status-filter-days{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:3px;color:var(--text-secondary);font-size:12px;font-weight:600;line-height:16px;min-width:16px;padding:0 4px;text-align:center}.status-filter-days-unit{color:var(--text-tertiary);font-size:12px}.group-select{background:none;border:1px solid transparent;border-radius:4px;color:var(--text-primary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:16px;outline:none;padding:2px 0;text-align:center;width:100%}.group-select:hover{border-color:var(--border-default)}.group-select:focus{border-color:var(--primary-main)}.status-legend{align-items:center;color:var(--text-primary);display:flex;font-size:16px;gap:14px}.status-legend .label{color:var(--text-secondary);font-weight:400}.status-badge{align-items:center;border-radius:14px;color:#fff;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:700;height:24px;justify-content:center;letter-spacing:.2px;width:24px}.status-item{font-weight:400;gap:5px}.date-range,.status-item{align-items:center;display:flex}.date-range{color:var(--text-secondary);font-size:16px;gap:8px}.date-input{background:#fff;border:1px solid var(--border-default);border-radius:4px;color:var(--text-primary);font-family:Google Sans,sans-serif;font-size:13px;height:24px;outline:none;padding:2px 6px;transition:border-color .2s}.date-input:focus{border-color:var(--primary-main)}.date-input:hover{border-color:var(--border-active)}.timeline-grid{flex:1;min-height:0;overflow:auto;position:relative}.timeline-grid::-webkit-scrollbar{height:8px}.timeline-grid::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.timeline-grid::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.timeline-grid::-webkit-scrollbar-thumb:hover{background:#aaa}.timeline-table{border-collapse:separate;border-spacing:0;min-width:100%;width:-moz-max-content;width:max-content}.empty-row td{height:28px}.empty-row .col-check,.empty-row .col-date,.empty-row .col-name,.empty-row .col-num,.empty-row td{background:var(--header-bg)}.empty-row .col-check{box-shadow:2px 0 4px -2px #0000001a}.timeline-table td,.timeline-table th{border-bottom:1px solid var(--grid-border);border-right:1px solid var(--grid-border);text-align:center;vertical-align:middle}.timeline-table td:first-child,.timeline-table th:first-child{border-left:1px solid var(--grid-border)}.timeline-table thead tr:first-child th{border-top:1px solid var(--grid-border)}.col-num{left:0;min-width:36px;width:36px}.col-name,.col-num{background:inherit;position:sticky;z-index:8}.col-name{left:36px;min-width:200px;padding-left:16px!important;text-align:left!important;width:200px}.col-date{left:236px;min-width:90px;width:90px}.col-check,.col-date{background:inherit;position:sticky;z-index:8}.col-check{left:326px;min-width:36px;width:36px}.col-check,.influencer-row .col-date,.section-header .col-date{box-shadow:2px 0 4px -2px #0000001a}.timeline-table thead{position:sticky;top:0;z-index:10}.month-header th{color:var(--text-primary);font-size:15px;font-weight:600;letter-spacing:.5px;padding:4px 0}.dayname-header th,.month-header th{background:var(--header-bg);border-color:var(--header-border)!important;text-transform:uppercase}.dayname-header th{color:var(--text-secondary);font-size:13px;font-weight:500;padding:1px 0}.daynum-header th{background:var(--header-bg);border-color:var(--header-border)!important;color:var(--text-primary);font-size:15px;font-weight:500;padding:2px 0}.dayname-header .col-check,.dayname-header .col-date,.dayname-header .col-name,.dayname-header .col-num,.daynum-header .col-check,.daynum-header .col-date,.daynum-header .col-name,.daynum-header .col-num,.month-header .col-check,.month-header .col-date,.month-header .col-name,.month-header .col-num{background:var(--header-bg);z-index:9}.day-col{min-width:32px;width:32px}.today-cell{background:#ffe0b2!important}.today-name,.today-num{background:var(--today-bg)!important;color:var(--today-text)!important;font-weight:600!important}.section-header td{border-color:var(--grid-border);color:var(--text-primary);font-size:14px;font-weight:600;letter-spacing:.3px;padding:7px 12px;text-transform:uppercase}.section-header .col-check,.section-header .col-date,.section-header .col-name,.section-header .col-num,.section-header td{background:var(--header-bg)}td.holiday,td.weekend,th.holiday,th.weekend{background:var(--weekend-bg)!important}th.holiday-header{color:var(--holiday-text)!important;cursor:help;position:relative}th.holiday-header:after{background:#333;border-radius:4px;color:#fff;content:attr(data-holiday);font-size:13px;font-weight:400;left:50%;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;top:100%;transform:translate(-50%);transition:opacity .15s;white-space:nowrap;z-index:100}th.holiday-header:hover:after{opacity:1}.influencer-row td,.milestone-row td{background:#fff;height:28px}.influencer-row td.col-name,.influencer-row td.col-num,.milestone-row td.col-check,.milestone-row td.col-date,.milestone-row td.col-name,.milestone-row td.col-num{padding:7px 4px}.influencer-row td.col-date{padding:4px}.influencer-row td.col-check{padding:0}.influencer-row:hover td,.milestone-row:hover td{background:var(--row-hover)}.influencer-row .col-check,.influencer-row .col-date,.influencer-row .col-name,.influencer-row .col-num,.milestone-row .col-check,.milestone-row .col-date,.milestone-row .col-name,.milestone-row .col-num{background:#fff}.influencer-row:hover .col-check,.influencer-row:hover .col-date,.influencer-row:hover .col-name,.influencer-row:hover .col-num,.milestone-row:hover .col-check,.milestone-row:hover .col-date,.milestone-row:hover .col-name,.milestone-row:hover .col-num{background:var(--row-hover)}.influencer-row td.today-cell,.milestone-row td.today-cell{background:#fff3e0}.row-num{font-size:16px;font-weight:400}.editable-name,.row-num{color:var(--text-primary)}.editable-name{background:none;border:none;font-family:Google Sans,sans-serif;font-size:14px;font-weight:500;outline:none;padding:2px 0;width:100%}.editable-name:focus{border-bottom:2px solid var(--primary-main)}.editable-note{background:none;border:none;color:var(--text-disable);font-family:Google Sans,sans-serif;font-size:16px;outline:none;padding:2px 0;text-align:center;width:100%}.editable-note:focus{border-bottom:2px solid var(--primary-main)}.date-display{color:var(--text-primary)}.date-display,.date-placeholder{align-items:center;cursor:pointer;display:flex;font-size:15px;gap:4px;justify-content:center}.date-placeholder{color:var(--text-placeholder)}.date-cell-input{border:1px solid var(--primary-main);border-radius:6px;color:var(--text-primary);font-family:Google Sans,sans-serif;font-size:14px;outline:none;padding:2px 6px;width:90px}.checkbox,.checkbox-cell{align-items:center;cursor:pointer;display:flex;justify-content:center}.checkbox{border:1.5px solid var(--border-default);border-radius:3px;height:16px;transition:all .15s;width:16px}.checkbox.checked,.checkbox:hover{border-color:var(--primary-main)}.checkbox.checked{background:var(--primary-main)}.checkbox.checked:after{color:#fff;content:"✓";font-size:12px;font-weight:700;line-height:1}.day-cell{cursor:pointer;overflow:visible;padding:0!important;position:relative;transition:background .1s}.cell-badge.badge-merged{height:100%;left:0;position:absolute;top:0;z-index:2}.influencer-sub-row .cell-badge.badge-merged{height:calc(100% - 20px);top:10px}.day-cell:hover{background:var(--primary-light)!important}.parent-expanded .day-cell:hover{background:#d5dae0!important}.drop-target{background:#bbdefb!important;outline:2px dashed #2196f3;outline-offset:-2px}.badge-with-handle{position:relative}.fill-handle{background:#1565c0;border:1px solid #fff;border-radius:1px;bottom:-3px;cursor:crosshair;height:6px;opacity:0;position:absolute;right:-3px;transition:opacity .12s;width:6px;z-index:5}.badge-with-handle:hover .fill-handle{opacity:1}.link-dot{background:var(--secondary-dark);border:1.5px solid #fff;border-radius:50%;cursor:crosshair;height:8px;opacity:0;position:absolute;transition:opacity .12s,transform .12s;width:8px;z-index:6}.badge-with-handle:hover .link-dot{opacity:1}.link-dot:hover{transform:scale(1.4)}.link-dot-top{left:50%;margin-left:-4px;top:-4px}.link-dot-right{margin-top:-4px;right:-4px;top:50%}.link-dot-bottom{bottom:-4px;left:50%;margin-left:-4px}.link-dot-left{left:-4px;margin-top:-4px;top:50%}.badge-link-target{outline:2px solid var(--success-main);outline-offset:1px}.cell-badge.badge-invalid{box-shadow:0 0 0 2px #e53935}.cell-badge.badge-invalid:after{align-items:center;background:#e53935;border:1.5px solid #fff;border-radius:50%;box-shadow:0 1px 2px #00000040;color:#fff;content:"!";display:flex;font-family:Google Sans,sans-serif;font-size:12px;font-weight:800;height:14px;justify-content:center;line-height:1;pointer-events:none;position:absolute;right:-7px;top:-7px;width:14px;z-index:7}.stacked-badge.badge-invalid{box-shadow:inset 0 0 0 2px #e53935}.stacked-badge.badge-invalid:after{align-items:center;background:#e53935;border:1.5px solid #fff;border-radius:50%;box-shadow:0 1px 2px #00000040;color:#fff;content:"!";display:flex;font-family:Google Sans,sans-serif;font-size:10px;font-weight:800;height:11px;justify-content:center;line-height:1;pointer-events:none;position:absolute;right:-5px;top:-5px;width:11px;z-index:7}.fill-cell-target{background:#e8f5e9!important;outline:1px dashed #4caf50;outline-offset:-1px}.cell-badge[draggable=true]:active{cursor:grabbing;opacity:.6}.stacked-badges{align-items:stretch;box-sizing:border-box;cursor:grab;display:flex;flex-direction:column;gap:2px;padding:3px 2px;width:100%}.stacked-badge{align-items:center;border-radius:4px;color:#fff;display:flex;flex:0 0 auto;font-size:13px;font-weight:700;height:24px;justify-content:center;letter-spacing:.2px;overflow:visible;position:relative;width:100%}.stacked-badge-merged{box-sizing:border-box;height:100%;left:0;position:absolute;top:0;z-index:2}.marker{font-size:26px;font-weight:700;line-height:1}.marker.green{color:#2e9e54}.cell-badges{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;overflow:visible;padding:4px 2px;width:100%}.cell-badges>.cell-badge{flex:0 0 auto;height:28px;overflow:visible;width:100%}.cell-badge{align-items:center;border-radius:4px;color:#fff;display:flex;font-size:13px;font-weight:700;height:28px;justify-content:center;letter-spacing:.2px;position:relative;width:100%}.cell-badge[data-tooltip]:hover:after{background:#1f2933;border-radius:4px;bottom:calc(100% + 4px);box-shadow:0 2px 8px #0003;color:#fff;content:attr(data-tooltip);font-size:13px;font-weight:500;padding:4px 8px;white-space:nowrap}.cell-badge[data-tooltip]:hover:after,.cell-badge[data-tooltip]:hover:before{left:50%;pointer-events:none;position:absolute;transform:translate(-50%);z-index:10000}.cell-badge[data-tooltip]:hover:before{border:4px solid transparent;border-top-color:#1f2933;bottom:100%;content:""}.badge-context-backdrop{inset:0;position:fixed;z-index:9999}.badge-context-menu{background:#fff;border:1px solid var(--border-default);border-radius:6px;box-shadow:0 4px 12px #0000001f;min-width:160px;padding:4px;position:absolute}.badge-context-item{background:none;border:none;border-radius:4px;color:var(--text-default,#1f2933);cursor:pointer;display:block;font-family:inherit;font-size:15px;padding:6px 10px;text-align:left;width:100%}.badge-context-item:hover{background:var(--primary-light,#eef2ff)}.add-row td{background:#fff;padding:6px 12px}.add-btn{align-items:center;background:none;border:none;border-radius:6px;color:var(--primary-main);cursor:pointer;display:inline-flex;font-family:Google Sans,sans-serif;font-size:16px;font-weight:400;gap:4px;padding:4px 8px;transition:background .15s}.add-btn:hover{background:var(--primary-light)}.add-btn .plus{font-size:18px;font-weight:600}.add-btn.top-bar-btn{border:1px solid var(--border-default);border-radius:4px;font-size:13px;height:24px;padding:1px 8px}.context-backdrop{background:transparent;inset:0;position:fixed;z-index:10000}.context-menu{background:#fff;border:1px solid var(--border-default);border-radius:8px;box-shadow:0 4px 24px #0000001f;max-height:calc(100vh - 8px);min-width:150px;overflow-y:auto;padding:6px;position:fixed;z-index:10001}.context-menu-item{align-items:center;border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:15px;font-weight:400;gap:8px;line-height:1;padding:4px 12px;transition:background .1s}.context-menu-item:hover{background:var(--button-field)}.context-menu-item .badge-preview{align-items:center;border-radius:14px;color:#fff;display:flex;font-size:11px;font-weight:800;height:24px;justify-content:center;width:24px}.context-menu-split{display:flex;gap:0}.context-menu-split-col+.context-menu-split-col{border-left:1px solid var(--border-default);padding-left:2px}.context-menu-columns{align-items:stretch;display:flex;gap:0}.context-menu-col{display:flex;flex-direction:column;min-width:120px;padding:0 2px}.context-menu-col+.context-menu-col{border-left:1px solid var(--border-default)}.context-menu-col .context-menu-split{flex:1}.context-menu-divider{background:var(--border-default);height:1px;margin:4px 0}.phase-item{gap:6px}.phase-day-input{border:1px solid var(--border-default);border-radius:4px;color:var(--text-primary);font-size:13px;margin-left:auto;padding:1px 2px;text-align:center;width:28px}.phase-day-input::-webkit-inner-spin-button{-webkit-appearance:none}.phase-day-unit{color:var(--text-secondary);font-size:13px}.context-menu-subheader{color:var(--secondary-dark);font-size:12px;font-weight:700;letter-spacing:.3px;padding:4px 12px 2px;text-transform:uppercase}.context-menu-item.workflow{color:var(--secondary-dark);font-size:14px;font-weight:500;gap:4px;padding-left:20px}.context-menu-item.remove{color:var(--error-main)}.expand-cell{gap:2px}.expand-cell,.expand-toggle{align-items:center;display:flex;justify-content:center}.expand-toggle{background:none;border:none;border-radius:3px;cursor:pointer;height:16px;padding:0;transition:background .15s;width:16px}.expand-toggle:hover{background:var(--button-field)}.expand-arrow{color:var(--text-secondary);display:inline-block;font-size:10px;transition:transform .2s}.expand-toggle.expanded .expand-arrow{transform:rotate(90deg)}.parent-expanded td{cursor:default}.parent-expanded .col-check,.parent-expanded .col-date,.parent-expanded .col-name,.parent-expanded .col-num,.parent-expanded td{background:#dfe3e8!important}.parent-expanded .col-num{border-left:3px solid var(--parent-border-color)}.parent-expanded:hover .col-check,.parent-expanded:hover .col-date,.parent-expanded:hover .col-name,.parent-expanded:hover .col-num,.parent-expanded:hover td{background:#d5dae0!important}.parent-expanded td.today-cell{background:#dfe3e8!important}.parent-expanded:hover td.today-cell{background:#d5dae0!important}.parent-expanded-cell{cursor:default!important}.influencer-sub-row td{background:var(--actor-row-bg)!important;min-height:36px}.influencer-sub-row .col-num{border-left:3px solid var(--actor-border-color)}.sub-row-name{padding-left:32px!important}.actor-label{font-size:14px;font-weight:600;letter-spacing:.3px}.actor-label,.band-tag{text-transform:uppercase}.band-tag{border-radius:4px;display:inline-block;font-size:9px;font-weight:700;letter-spacing:.4px;margin-left:8px;padding:1px 5px}.band-tag-plan{background:#eceff1;color:#78909c}.band-tag-actual{background:#e8f5e9;color:#2e7d32}.band-plan td{opacity:.85}.band-group-start td{border-top:2px solid #b0bec5}.parent-expanded td{border-top:2px solid var(--parent-border-color)}.influencer-sub-row-last td{border-bottom:2px solid var(--parent-border-color)}.influencer-sub-row .col-check,.influencer-sub-row .col-date,.influencer-sub-row .col-name,.influencer-sub-row .col-num{background:var(--actor-row-bg)!important}.influencer-sub-row:hover .col-check,.influencer-sub-row:hover .col-date,.influencer-sub-row:hover .col-name,.influencer-sub-row:hover .col-num,.influencer-sub-row:hover td{background:var(--actor-row-hover)!important}.influencer-sub-row td.today-cell{background:#ffe0b2!important}.influencer-sub-row .day-cell{padding:0!important}.influencer-sub-row .cell-badge{border-radius:4px;font-size:13px;font-weight:700;height:28px;letter-spacing:.2px;width:100%}.context-menu-header{border-bottom:1px solid var(--border-default);font-size:13px;font-weight:700;letter-spacing:.5px;margin-bottom:4px;padding:6px 12px 4px;text-transform:uppercase}.view-mode-toggle{background:var(--button-field);border-radius:6px;display:flex;gap:1px;height:24px;padding:2px}.view-mode-btn{background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;font-weight:500;padding:1px 8px;transition:all .15s}.view-mode-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;font-weight:600}.view-mode-btn.active,.view-mode-btn:hover:not(.active){color:var(--text-primary)}.badge-plan{font-weight:800!important}.badge-phase{font-size:11px!important;font-weight:700!important}.cascade-backdrop{align-items:center;background:#0000004d;display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.cascade-dialog{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000029;max-width:400px;padding:24px;width:90%}.cascade-title{color:var(--text-primary);font-size:18px;font-weight:600;margin-bottom:12px}.cascade-body{color:var(--text-secondary);font-size:16px;line-height:1.5;margin-bottom:20px}.cascade-actions{display:flex;gap:8px;justify-content:flex-end}.cascade-btn{border:none;border-radius:8px;cursor:pointer;font-family:Google Sans,sans-serif;font-size:15px;font-weight:500;padding:8px 16px;transition:background .15s}.cascade-btn-secondary{background:var(--button-field);color:var(--text-primary)}.cascade-btn-secondary:hover{background:var(--border-default)}.cascade-btn-primary{background:var(--primary-main);color:#fff}.cascade-btn-primary:hover{background:var(--primary-dark)}.settings-btn{align-items:center;background:#fff;border:1px solid var(--border-default);border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;height:24px;justify-content:center;transition:all .15s;width:24px}.settings-btn:hover:not(:disabled){background:var(--button-field);border-color:var(--border-active);color:var(--text-primary)}.settings-btn:disabled{cursor:default;opacity:.35}.settings-backdrop{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:300}.settings-dialog{background:#fff;border-radius:14px;box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column;max-height:85vh;max-width:720px;overflow:hidden;padding:0;width:95%}.settings-header{align-items:center;border-bottom:1px solid var(--border-default);display:flex;justify-content:space-between;padding:16px 20px}.settings-header h2{color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.seq-skip-weekends{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:15px;gap:6px;margin-left:auto;margin-right:12px}.seq-skip-weekends input[type=checkbox]{accent-color:var(--primary-main);cursor:pointer}.settings-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:22px;height:28px;justify-content:center;width:28px}.settings-close-btn:hover{background:var(--button-field);color:var(--text-primary)}.settings-body{flex:1;overflow-y:auto;padding:16px 20px}.settings-footer{border-top:1px solid var(--border-default);display:flex;gap:10px;justify-content:flex-end;padding:12px 20px}.settings-clear-btn{background:#fff;border:1px solid var(--error-main);border-radius:8px;color:var(--error-main);cursor:pointer;font-size:15px;font-weight:500;margin-right:auto;padding:8px 16px}.settings-clear-btn:hover{background:var(--error-light)}.settings-export-btn{background:#fff;border:1px solid var(--border-default);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:15px;font-weight:500;padding:8px 16px}.settings-export-btn:hover{background:var(--button-field)}.settings-done-btn{background:var(--primary-main);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Google Sans,sans-serif;font-size:15px;font-weight:600;padding:8px 20px;transition:background .15s}.settings-done-btn:hover{background:var(--primary-dark)}.settings-apply-btn{background:#fff;border:1px solid var(--primary-main);border-radius:8px;color:var(--primary-main);cursor:pointer;font-family:Google Sans,sans-serif;font-size:15px;font-weight:500;padding:8px 16px;transition:background .15s}.settings-apply-btn:hover{background:var(--primary-light)}.apply-dialog-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:400}.apply-dialog{background:#fff;border-radius:10px;box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column;max-height:80vh;max-width:92vw;overflow:hidden;width:460px}.apply-dialog-header{align-items:center;border-bottom:1px solid var(--border-default);display:flex;justify-content:space-between;padding:12px 18px}.apply-dialog-header h3{font-family:Google Sans,sans-serif;font-size:17px;font-weight:600;margin:0}.apply-dialog-warning{background:#fff8e1;border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:14px;line-height:1.5;padding:12px 18px}.apply-dialog-empty{color:var(--text-secondary);font-size:15px;padding:24px 18px;text-align:center}.apply-dialog-toolbar{align-items:center;border-bottom:1px solid var(--border-default);display:flex;gap:8px;padding:8px 18px}.apply-dialog-tool{background:#fff;border:1px solid var(--border-default);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;padding:4px 10px}.apply-dialog-tool:hover{background:var(--button-field)}.apply-dialog-count{color:var(--text-secondary);font-size:13px;margin-left:auto}.apply-dialog-list{flex:1;overflow-y:auto;padding:4px 0}.apply-dialog-row{align-items:center;cursor:pointer;display:flex;font-size:15px;gap:10px;padding:8px 18px}.apply-dialog-row:hover{background:var(--button-field)}.apply-dialog-row input[type=checkbox]{margin:0}.apply-dialog-name{color:var(--text-primary);font-weight:500}.apply-dialog-meta{color:var(--text-secondary);font-size:13px;margin-left:auto}.apply-dialog-footer{border-top:1px solid var(--border-default);display:flex;gap:10px;justify-content:flex-end;padding:12px 18px}.apply-dialog-cancel{background:#fff;border:1px solid var(--border-default);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:15px;font-weight:500;padding:8px 16px}.apply-dialog-cancel:hover{background:var(--button-field)}.apply-dialog-confirm{background:var(--primary-main);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Google Sans,sans-serif;font-size:15px;font-weight:600;padding:8px 16px;transition:background .15s}.apply-dialog-confirm:hover:not(:disabled){background:var(--primary-dark)}.apply-dialog-confirm:disabled{cursor:not-allowed;opacity:.5}.apply-dialog-wide{width:580px}.apply-dialog-empty-sub{color:var(--text-secondary);font-size:13px;margin-top:6px}.apply-dialog-warning-danger{background:#ffebee;color:var(--error-main)}.apply-add-group{border-top:1px solid var(--border-default);padding:10px 18px 4px}.apply-add-group:first-child{border-top:none}.apply-add-header{align-items:center;display:flex;flex-wrap:wrap;font-size:14px;gap:6px;margin-bottom:6px}.apply-add-chip{align-items:center;background:var(--primary-main);border-radius:4px;color:#fff;display:inline-flex;font-size:13px;font-weight:700;letter-spacing:.3px;padding:2px 8px}.apply-add-chip-pred{background:var(--text-secondary)}.apply-rm-chip{background:var(--error-main)!important}.apply-rm-note{color:var(--error-main);font-size:13px;font-style:italic}.apply-dialog-count-remove{color:var(--error-main);font-weight:600}.apply-add-title{color:var(--text-primary);font-weight:600}.apply-add-predecessor{align-items:center;color:var(--text-secondary);display:inline-flex;gap:4px}.apply-add-no-pred{color:var(--error-main);font-style:italic}.apply-add-empty{color:var(--text-secondary);font-size:14px;padding:6px 0 10px}.apply-add-subtoolbar{align-items:center;display:flex;gap:8px;padding:4px 0 6px}.apply-dialog-spacer{flex:1}.apply-dialog-rebuild{background:#fff;border:1px solid var(--error-main);border-radius:8px;color:var(--error-main);cursor:pointer;font-family:Google Sans,sans-serif;font-size:14px;font-weight:500;padding:8px 14px}.apply-dialog-rebuild:hover{background:var(--error-light)}.apply-dialog-confirm-danger{background:var(--error-main)}.apply-dialog-confirm-danger:hover:not(:disabled){background:var(--error-dark,#b71c1c)}.tpl-save-row{border-bottom:1px solid var(--border-default);display:flex;gap:8px;padding:12px 18px}.tpl-save-input{border:1px solid var(--border-default);border-radius:6px;flex:1;font-family:Google Sans,sans-serif;font-size:15px;padding:6px 10px}.tpl-save-input:focus{border-color:var(--primary-main);outline:none}.tpl-save-btn{font-size:14px;padding:6px 14px}.tpl-list{padding:4px 0}.tpl-row{align-items:center;border-bottom:1px solid var(--border-default);display:flex;gap:8px;padding:8px 18px}.tpl-row:last-child{border-bottom:none}.tpl-row:hover{background:var(--button-field)}.tpl-name{color:var(--text-primary);cursor:pointer;flex:1;font-size:15px;font-weight:500}.tpl-rename-input{border:1px solid var(--primary-main);border-radius:4px;flex:1;font-family:Google Sans,sans-serif;font-size:15px;padding:3px 8px}.tpl-meta{margin-right:8px}.tpl-action,.tpl-meta{color:var(--text-secondary);font-size:13px}.tpl-action{background:#fff;border:1px solid var(--border-default);border-radius:4px;cursor:pointer;font-family:Google Sans,sans-serif;padding:3px 10px}.tpl-action:hover{background:var(--button-field)}.tpl-action-load{border-color:var(--primary-main);color:var(--primary-main);font-weight:600}.tpl-action-load:hover{background:var(--primary-light)}.tpl-action-delete{border-color:var(--error-main);color:var(--error-main)}.tpl-action-delete:hover{background:var(--error-light)}.tpl-action-rename{font-size:14px;padding:3px 8px}.tpl-confirm{width:440px}.seq-dialog{max-height:80vh;max-width:80vw;width:80vw}.seq-diagram{display:flex;flex-direction:column;gap:0;position:relative}.seq-scroll-area{overflow-x:auto;position:relative}.seq-day-header{align-items:stretch;border-bottom:1px solid var(--border-default);display:flex;min-width:-moz-max-content;min-width:max-content;top:0;z-index:6}.seq-day-header,.seq-day-header-spacer{background:var(--header-bg);position:sticky}.seq-day-header-spacer{border-right:2px solid var(--border-default);flex:0 0 140px;left:0;z-index:5}.seq-day-header-cells{align-items:stretch;display:flex}.seq-day-header-cell{align-items:center;border-right:1px solid var(--grid-border);color:var(--text-secondary);display:flex;font-size:11px;font-weight:600;height:24px;justify-content:center;letter-spacing:.2px;min-width:32px;width:32px}.seq-lane{align-items:stretch;border-bottom:1px solid var(--border-default);display:flex;min-height:48px;min-width:-moz-max-content;min-width:max-content}.seq-lane:last-of-type{border-bottom:none}.seq-lane-header{align-items:center;background:var(--other-button-field);border-right:2px solid var(--lane-color,var(--border-default));display:flex;flex-shrink:0;gap:5px;left:0;min-width:140px;padding:10px 8px;position:sticky;width:140px;z-index:4}.seq-reorder{display:flex;flex-direction:column;gap:1px}.seq-reorder-btn{align-items:center;background:none;border:none;border-radius:3px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:10px;height:12px;justify-content:center;padding:0;width:14px}.seq-reorder-btn:hover{background:var(--border-default);color:var(--text-primary)}.seq-reorder-btn:disabled{cursor:default;opacity:.3}.seq-color-swatch{border-radius:4px;cursor:pointer;flex-shrink:0;height:18px;position:relative;width:18px}.seq-color-swatch input[type=color]{border:none;cursor:pointer;height:100%;inset:0;opacity:0;position:absolute;width:100%}.seq-actor-label{background:transparent;border:none;border-radius:4px;color:var(--text-primary);flex:1;font-family:Google Sans,sans-serif;font-size:14px;font-weight:600;min-width:0;outline:none;padding:2px 4px}.seq-actor-label:focus{background:#fff;box-shadow:0 0 0 2px var(--primary-main)}.seq-actor-delete{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-disable);cursor:pointer;display:flex;font-size:13px;height:20px;justify-content:center;width:20px}.seq-actor-delete:hover{background:var(--error-light);color:var(--error-main)}.seq-actor-delete:disabled{cursor:default;opacity:.3}.seq-lane-blocks{background-image:linear-gradient(to right,var(--grid-border) 1px,transparent 1px);background-position:0 0;background-size:32px 100%;cursor:cell;flex:1;min-height:48px;min-width:-moz-max-content;min-width:max-content;padding:0;position:relative}.seq-lane-blocks:hover{background-color:#00000004}.seq-block{align-items:center;border-radius:4px;box-sizing:border-box;color:#fff;cursor:grab;display:flex;height:32px;justify-content:center;margin-left:4px;padding:0;position:absolute;top:8px;transition:box-shadow .15s;width:24px;z-index:2}.seq-block:hover{box-shadow:0 2px 6px #00000040;z-index:5}.seq-block-active{outline:2px solid var(--primary-main);outline-offset:1px;z-index:5}.seq-block-dragging{box-shadow:0 4px 12px #0000004d;cursor:grabbing;z-index:10}.seq-block-short{font-size:13px;font-weight:700;letter-spacing:.2px;line-height:1}.seq-block-label{display:none}.seq-add-buttons{display:flex;gap:6px;padding-left:8px;position:absolute;top:50%;transform:translateY(-50%)}.seq-add-status{align-items:center;background:none;border:2px dashed var(--border-default);border-radius:6px;color:var(--text-disable);cursor:pointer;display:flex;font-size:18px;font-weight:500;height:28px;justify-content:center;transition:all .15s;width:28px}.seq-add-status:hover{background:var(--primary-light);border-color:var(--primary-main);color:var(--primary-main)}.seq-add-phase-btn{font-size:16px}.seq-arrows{left:0;pointer-events:none;position:absolute;top:0;z-index:3}.seq-arrows .seq-arrow-hit{cursor:pointer;pointer-events:stroke}.seq-arrow-badge{align-items:center;background:#fff;border:1px solid var(--border-default);border-radius:4px;cursor:text;display:flex;gap:1px;height:20px;justify-content:center;padding:1px 3px;transition:border-color .15s}.seq-arrow-badge:focus-within,.seq-arrow-badge:hover{border-color:var(--primary-main)}.seq-arrow-input{-moz-appearance:textfield;background:transparent;border:none;color:var(--text-secondary);font-family:Google Sans,sans-serif;font-size:12px;font-weight:600;outline:none;padding:0;text-align:right;width:20px}.seq-arrow-input::-webkit-inner-spin-button,.seq-arrow-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.seq-arrow-unit{color:var(--text-secondary);font-size:12px;font-weight:600}.seq-add-actor{align-items:center;background:none;border:2px dashed var(--border-default);border-radius:10px;color:var(--primary-main);cursor:pointer;display:flex;font-family:Google Sans,sans-serif;font-size:15px;font-weight:500;gap:4px;justify-content:center;margin-top:12px;padding:10px 14px;transition:all .15s;width:100%}.seq-add-actor:hover{background:var(--primary-light);border-color:var(--primary-main)}.seq-popover{background:#fff;border:1px solid var(--border-default);border-radius:10px;box-shadow:0 4px 16px #00000024;display:flex;flex-direction:column;gap:6px;padding:10px 12px;position:absolute;width:200px;z-index:10}.seq-popover-row{align-items:center;display:flex;gap:6px}.seq-popover-row label{color:var(--text-secondary);font-size:12px;font-weight:600;min-width:34px;text-align:right}.seq-popover-input{background:#fff;border:1px solid var(--border-default);border-radius:5px;color:var(--text-primary);flex:1;font-family:Google Sans,sans-serif;font-size:14px;min-width:0;outline:none;padding:3px 6px}.seq-popover-input:focus{border-color:var(--primary-main)}.seq-popover-input-sm{max-width:50px}.seq-popover-link{color:var(--secondary-dark);font-size:13px;font-weight:600}.seq-popover-unlink{background:none;border:none;border-radius:3px;color:var(--error-main);cursor:pointer;font-size:14px;padding:0 4px}.seq-popover-unlink:hover{background:var(--error-light)}.seq-popover-actions{display:flex;justify-content:space-between;padding-top:2px}.seq-popover-delete{background:none;border:none;border-radius:4px;color:var(--error-main);cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;padding:2px 6px}.seq-popover-delete:hover{background:var(--error-light)}.seq-popover-duplicate{background:none;border:none;border-radius:4px;color:var(--secondary-dark);cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;padding:2px 6px}.seq-popover-duplicate:hover{background:var(--secondary-light)}.seq-popover-close{background:var(--primary-main);border:none;border-radius:5px;color:#fff;cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;font-weight:600;padding:3px 12px}.seq-popover-close:hover{background:var(--primary-dark)}.seq-phase-badge{align-items:center;border:2px dashed;border-radius:8px;cursor:grab;display:flex;flex-direction:column;min-width:56px;padding:6px 10px;position:absolute;top:50%;transform:translateY(-50%);transition:box-shadow .15s;z-index:1}.seq-phase-badge:hover{box-shadow:0 2px 8px #0000001f}.seq-phase-active{outline:3px solid var(--primary-main);outline-offset:2px}.seq-phase-short{font-size:13px;font-weight:700;letter-spacing:.3px}.seq-phase-label{font-size:11px;font-weight:400;opacity:.85;white-space:nowrap}.seq-phase-days{display:none}.seq-dot{background:var(--secondary-dark);border:2px solid #fff;border-radius:50%;cursor:crosshair;height:10px;opacity:0;position:absolute;transition:opacity .15s,transform .15s;width:10px;z-index:10}.seq-block:hover .seq-dot,.seq-phase-badge:hover .seq-dot{opacity:1}.seq-dot:hover{transform:scale(1.4)}.seq-dot-top{left:50%;margin-left:-5px;top:-5px}.seq-dot-right{margin-top:-5px;right:-5px;top:50%}.seq-dot-bottom{bottom:-5px;left:50%;margin-left:-5px}.seq-dot-left{left:-5px;margin-top:-5px;top:50%}.seq-block .seq-dot{border-radius:50%!important;box-sizing:border-box!important;height:10px!important;width:10px!important}.seq-block .fill-handle{background:#1565c0;border:1px solid #fff;border-radius:1px;bottom:-3px;cursor:crosshair;height:6px;opacity:0;position:absolute;right:-3px;transition:opacity .12s;width:6px;z-index:5}.seq-block:hover .fill-handle{opacity:1}.seq-fill-target{background:#e8f5e9;height:100%;outline:1px dashed #4caf50;outline-offset:-1px;pointer-events:none;position:absolute;top:0;width:32px;z-index:1}.status-picker-backdrop{inset:0;position:fixed;z-index:10000}.status-picker{align-items:stretch;background:#fff;border:1px solid var(--border-default);border-radius:8px;box-shadow:0 6px 20px #0000002e;display:flex;gap:8px;max-height:70vh;max-width:90vw;overflow:auto;padding:8px;position:absolute}.status-picker-col{border-right:1px solid var(--border-default);display:flex;flex-direction:column;gap:2px;min-width:160px;padding-right:8px}.status-picker-col:last-of-type{border-right:none}.status-picker-header{font-size:12px;font-weight:700;letter-spacing:.6px;padding:4px 6px;text-transform:uppercase}.status-picker-item{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;font-family:Google Sans,sans-serif;gap:8px;padding:4px 6px;text-align:left}.status-picker-item:hover{background:var(--primary-light)}.status-picker-badge{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:28px;justify-content:center;letter-spacing:.2px;width:28px}.status-picker-label{color:var(--text-primary);flex:1;font-size:14px}.status-picker-days{background:var(--button-field);border-radius:3px;color:var(--text-secondary);font-size:12px;font-weight:600;padding:2px 6px}.status-picker-footer{align-items:flex-end;display:flex;padding-bottom:4px}.status-picker-new{background:var(--primary-light);border:1px dashed var(--primary-main);border-radius:4px;color:var(--primary-main);cursor:pointer;font-size:13px;font-weight:600;padding:6px 10px;white-space:nowrap}.status-picker-new:hover{background:var(--primary-main);color:#fff}.status-lib-dialog{max-width:1000px;width:92vw}.status-lib-grid{align-items:flex-start;display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;padding:16px}.status-lib-col{background:#fff;border:1px solid var(--border-default);border-radius:8px;flex:0 0 220px;padding:8px;width:220px}.status-lib-col-header{align-items:center;border-bottom:1px solid var(--border-default);display:flex;gap:6px;margin-bottom:6px;padding:4px 6px 8px}.status-lib-col-name,.status-lib-col-name-input{color:var(--lane-color);flex:1;font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.status-lib-col-name-input{background:transparent;border:1px solid transparent;border-radius:4px;font-family:Google Sans,sans-serif;min-width:0;outline:none;padding:4px 6px}.status-lib-col-name-input:focus,.status-lib-col-name-input:hover{background:#fff;border-color:var(--border-default)}.status-lib-color-input{background:transparent;border:1px solid var(--border-default);border-radius:4px;cursor:pointer;flex-shrink:0;height:24px;padding:0;width:24px}.status-lib-color-input::-webkit-color-swatch-wrapper{padding:0}.status-lib-color-input::-webkit-color-swatch{border:none;border-radius:3px}.status-lib-color-input::-moz-color-swatch{border:none;border-radius:3px}.status-lib-add{background:transparent;border:1px dashed var(--border-default);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:16px;height:24px;width:24px}.status-lib-add:hover{background:var(--primary-light);border-color:var(--primary-main);color:var(--primary-main)}.status-lib-list{display:flex;flex-direction:column;gap:4px}.status-lib-row{align-items:center;border-radius:4px;display:flex;gap:8px;padding:4px 6px}.status-lib-row:hover{background:var(--button-field)}.status-lib-badge{align-items:center;border-radius:50%;box-sizing:border-box;color:#fff;display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:28px;justify-content:center;letter-spacing:.2px;width:28px}.status-lib-text{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}.status-lib-code{background:transparent;border:1px solid transparent;border-radius:3px;color:var(--text-primary);font-family:Google Sans,sans-serif;font-size:13px;font-weight:700;letter-spacing:.3px;outline:none;padding:0 4px;text-transform:uppercase}.status-lib-code:focus,.status-lib-code:hover{background:#fff;border-color:var(--border-default)}.status-lib-label{background:transparent;border:1px solid transparent;border-radius:3px;color:var(--text-secondary);font-family:Google Sans,sans-serif;font-size:13px;font-weight:400;outline:none;padding:0 4px}.status-lib-label:focus,.status-lib-label:hover{background:#fff;border-color:var(--border-default);color:var(--text-primary)}.status-lib-days{align-items:center;background:var(--button-field);border-radius:4px;display:flex;gap:2px;padding:2px 6px}.status-lib-days-input{-moz-appearance:textfield;background:transparent;border:none;color:var(--text-secondary);font-family:Google Sans,sans-serif;font-size:13px;font-weight:600;outline:none;text-align:center;width:22px}.status-lib-days-input::-webkit-inner-spin-button,.status-lib-days-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.status-lib-days-unit{color:var(--text-secondary);font-size:12px;font-weight:600}.status-lib-delete{background:transparent;border:none;border-radius:3px;color:var(--text-disable);cursor:pointer;font-size:13px;height:20px;width:20px}.status-lib-delete:hover{background:var(--error-light);color:var(--error-main)}.seq-block-link-target{outline:2px solid var(--success-main);outline-offset:2px}.seq-block.seq-block-invalid{box-shadow:0 0 0 2px #e53935}.seq-block.seq-block-invalid:after{align-items:center;background:#e53935;border:1.5px solid #fff;border-radius:50%;box-shadow:0 1px 2px #00000040;color:#fff;content:"!";display:flex;font-family:Google Sans,sans-serif;font-size:12px;font-weight:800;height:14px;justify-content:center;line-height:1;pointer-events:none;position:absolute;right:-7px;top:-7px;width:14px;z-index:7}.seq-dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}.seq-block-linked{font-size:11px;line-height:1;opacity:.7;position:absolute;right:3px;top:2px}.holiday-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000029;padding:20px;width:340px}.holiday-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.holiday-modal-title{color:var(--text-primary);font-size:18px;font-weight:600}.holiday-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:22px;line-height:1;padding:0 4px}.hcal-nav{justify-content:space-between;margin-bottom:10px}.hcal-nav,.hcal-nav-btn{align-items:center;display:flex}.hcal-nav-btn{background:none;border:1px solid var(--border-default);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:18px;height:28px;justify-content:center;transition:all .15s;width:28px}.hcal-nav-btn:hover{border-color:var(--primary-main);color:var(--primary-main)}.hcal-nav-label{color:var(--text-primary);font-size:16px;font-weight:600}.hcal-grid{display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.hcal-head{color:var(--text-secondary);font-size:12px;font-weight:600;padding:4px 0;text-align:center}.hcal-cell{border-radius:6px;cursor:pointer;font-size:15px;padding:6px 0;position:relative;text-align:center;transition:background .1s}.hcal-cell:hover:not(.hcal-empty){background:#f0f0f0}.hcal-empty{cursor:default}.hcal-past .hcal-day{color:#ccc}.hcal-weekend .hcal-day{color:#aaa}.hcal-today{outline:2px solid var(--primary-main);outline-offset:-2px}.hcal-holiday{background:var(--weekend-bg)}.hcal-holiday .hcal-day{color:var(--holiday-text)!important;font-weight:600}.hcal-dot{background:var(--holiday-text);border-radius:50%;bottom:2px;height:4px;left:50%;position:absolute;transform:translate(-50%);width:4px}.hcal-detail{align-items:center;border-top:1px solid var(--border-default);display:flex;gap:8px;margin-top:12px;min-height:32px;padding-top:10px}.hcal-detail-date{color:var(--text-secondary);font-family:monospace;font-size:14px;min-width:80px}.hcal-detail-name{color:var(--text-primary);flex:1;font-size:15px;font-weight:500}.holiday-item-remove{background:none;border:none;border-radius:4px;color:#ccc;cursor:pointer;font-size:18px;line-height:1;padding:0 4px;transition:all .15s}.holiday-item-remove:hover{background:#ffebee;color:#f44336}.holiday-add-name{border:1px solid var(--border-default);border-radius:6px;flex:1;font-family:Google Sans,sans-serif;font-size:14px;outline:none;padding:4px 8px}.holiday-add-name:focus{border-color:var(--primary-main)}.holiday-add-btn{background:var(--primary-main);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Google Sans,sans-serif;font-size:14px;font-weight:500;padding:4px 14px;transition:background .15s}.holiday-add-btn:hover{background:var(--primary-dark)}.custom-badge-dialog{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000029;padding:20px;width:320px}.custom-badge-dialog-title{color:var(--text-primary);font-size:17px;font-weight:600;margin-bottom:14px}.custom-badge-dialog-row{align-items:center;display:flex;gap:8px;margin-bottom:10px}.custom-badge-dialog-row label{color:var(--text-secondary);font-size:14px;font-weight:500;min-width:40px}.custom-badge-dialog-input{border:1px solid var(--border-default);border-radius:6px;color:var(--text-primary);flex:1;font-family:Google Sans,sans-serif;font-size:15px;outline:none;padding:5px 8px}.custom-badge-dialog-input:focus{border-color:var(--primary-main)}.custom-badge-dialog-input-sm{font-weight:600;max-width:64px;text-align:center;text-transform:uppercase}.custom-badge-dialog-swatches{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.custom-badge-dialog-swatch{border:2px solid transparent;border-radius:5px;cursor:pointer;height:22px;transition:border-color .15s;width:22px}.custom-badge-dialog-swatch.active{border-color:var(--text-primary)}.custom-badge-dialog-swatch:hover{border-color:var(--border-active)}.custom-badge-dialog-color-input{background:none;border:1px solid var(--border-default);border-radius:5px;cursor:pointer;height:22px;padding:0;width:22px}.custom-badge-dialog-preview{align-items:center;display:flex;gap:8px;margin-bottom:8px;padding:8px 0}.custom-badge-dialog-preview-badge{align-items:center;border-radius:6px;display:flex;font-size:13px;font-weight:700;height:22px;justify-content:center;width:32px}.custom-badge-dialog-preview-label{color:var(--text-secondary);font-size:15px}.custom-badge-dialog-actions{display:flex;gap:8px;justify-content:flex-end}.deadline-dialog{background:#fff;border-radius:10px;box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column;max-width:92vw;padding:0;width:360px}.deadline-dialog-title{border-bottom:1px solid var(--border-default);color:var(--text-primary);font-size:17px;font-weight:700;padding:14px 18px}.deadline-dialog-body{padding:14px 18px}.deadline-dialog-tabs{display:flex;gap:8px;margin-bottom:12px}.deadline-dialog-tab{background:#fff;border:1px solid var(--border-default);border-radius:6px;color:var(--text-secondary);cursor:pointer;flex:1;font-family:Google Sans,sans-serif;font-size:14px;font-weight:500;padding:6px 10px}.deadline-dialog-tab.active{background:var(--primary-main);border-color:var(--primary-main);color:#fff}.deadline-dialog-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.deadline-dialog-field label{color:var(--text-secondary);font-size:13px;font-weight:600}.deadline-dialog-input{border:1px solid var(--border-default);border-radius:6px;font-family:Google Sans,sans-serif;font-size:15px;outline:none;padding:8px 10px}.deadline-dialog-input:focus{border-color:var(--primary-main)}.deadline-dialog-hint{color:var(--text-secondary);font-size:13px;font-style:italic;line-height:1.4}.deadline-dialog-actions{border-top:1px solid var(--border-default);display:flex;gap:8px;justify-content:flex-end;padding:12px 18px}.deadline-dialog-cancel,.deadline-dialog-confirm{border-radius:6px;cursor:pointer;font-family:Google Sans,sans-serif;font-size:15px;font-weight:500;padding:6px 16px}.deadline-dialog-cancel{background:#fff;border:1px solid var(--border-default);color:var(--text-secondary)}.deadline-dialog-confirm{background:var(--primary-main);border:none;color:#fff}.deadline-dialog-confirm:hover{background:var(--primary-dark)}.timeline-arrows{left:0;pointer-events:none;position:absolute;top:0;z-index:2}.cell-badge.badge-selected,.stacked-badge.badge-selected{box-shadow:0 0 0 4px #ffc10740;outline:2px solid #ffc107;outline-offset:1px}body.is-shift-pressed .cell-badge,body.is-shift-pressed .stacked-badge{cursor:copy!important}body.is-shift-pressed .day-cell{cursor:default!important}.timeline-arrows{z-index:1!important}.timeline-arrows .arrow-hit{cursor:pointer;pointer-events:stroke}body.is-dragging-task .timeline-arrows,body.is-dragging-task .timeline-arrows .arrow-hit{pointer-events:none!important}.custom-badge-dot{border:1px solid #fff;border-radius:50%;height:6px;pointer-events:none;position:absolute;right:2px;top:2px;width:6px;z-index:4}.alert-bell-btn,.alert-dropdown-wrapper{position:relative}.alert-bell-btn.has-alerts{border-color:var(--error-main);color:var(--error-main)}.alert-badge{align-items:center;background:var(--error-main);border-radius:7px;color:#fff;display:flex;font-size:11px;font-weight:700;height:14px;justify-content:center;line-height:1;min-width:14px;padding:0 3px;pointer-events:none;position:absolute;right:-5px;top:-5px}.alert-dropdown-panel{background:#fff;border:1px solid var(--border-default);border-radius:8px;box-shadow:0 6px 24px #0000001f;max-height:400px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 6px);width:360px;z-index:200}.alert-dropdown-header{border-bottom:1px solid var(--border-default);color:var(--text-primary);font-size:15px;font-weight:600;padding:10px 14px}.alert-dropdown-count{color:var(--text-secondary);font-weight:400}.alert-dropdown-empty{color:var(--text-secondary);font-size:15px;padding:20px 14px;text-align:center}.alert-dropdown-list{padding:4px 0}.alert-dropdown-item{align-items:flex-start;border-bottom:1px solid #f5f7fa;color:var(--text-primary);display:flex;font-size:14px;gap:8px;padding:8px 14px}.alert-dropdown-item:last-child{border-bottom:none}.alert-icon{flex-shrink:0;font-size:15px;line-height:1;margin-top:1px}.alert-type-invalid .alert-icon{color:var(--error-main)}.alert-type-milestone .alert-icon{color:var(--warning-main)}.alert-type-deadline .alert-icon{color:var(--secondary-dark)}.alert-message{flex:1;line-height:1.4;word-break:break-word}.wfp-dialog{max-height:85vh;max-width:92vw;width:1300px}.wfp-layout{display:flex;flex:1;min-height:0;overflow:hidden}.wfp-sidebar{border-right:1px solid var(--border-default);display:flex;flex-direction:column;gap:4px;min-width:220px;overflow-y:auto;padding:12px;width:220px}.wfp-sidebar-header{border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:13px;font-weight:700;letter-spacing:.5px;margin-bottom:4px;padding-bottom:6px;text-transform:uppercase}.wfp-sidebar-item{align-items:center;border:1px solid transparent;border-radius:6px;cursor:pointer;display:flex;gap:6px;padding:6px 8px;transition:background .12s}.wfp-sidebar-item:hover{background:var(--button-field)}.wfp-sidebar-item-active{background:var(--primary-light);border-color:var(--primary-main)}.wfp-sidebar-label{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wfp-sidebar-label,.wfp-sidebar-rename-input{color:var(--text-primary);flex:1;font-size:14px;min-width:0}.wfp-sidebar-rename-input{background:#fff;border:1px solid var(--primary-main);border-radius:4px;font-family:Google Sans,sans-serif;outline:none;padding:2px 6px}.wfp-sidebar-icon-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-disable);cursor:pointer;display:flex;flex-shrink:0;height:22px;justify-content:center;opacity:0;transition:all .12s;width:22px}.wfp-sidebar-item:hover .wfp-sidebar-icon-btn{opacity:1}.wfp-sidebar-icon-btn:hover{background:var(--button-field);color:var(--text-primary)}.wfp-sidebar-icon-delete:hover{background:var(--error-light);color:var(--error-main)}.wfp-add-btn{background:none;border:1px dashed var(--border-default);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:14px;margin-top:8px;padding:6px 14px;transition:all .15s;width:100%}.wfp-add-btn:hover{background:var(--button-field);border-color:var(--border-active);color:var(--text-primary)}.wfp-editor{flex:1;min-width:0;overflow-y:auto;padding:12px 16px}.wfp-editor-empty{align-items:center;color:var(--text-disable);display:flex;font-size:16px;height:200px;justify-content:center}.wfp-lane-header-readonly{pointer-events:none}.context-menu-preset-group{border-bottom:1px solid #f0f2f5;margin-bottom:2px;padding-bottom:2px}.swf-picker{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000029;padding:16px 20px;width:340px}.swf-picker-title{color:var(--text-primary);font-size:17px;font-weight:600;margin-bottom:12px}.swf-picker-empty{color:var(--text-secondary);font-size:15px;padding:12px 0;text-align:center}.swf-picker-item{align-items:center;border-bottom:1px solid #f0f2f5;display:flex;gap:8px;padding:8px 0}.swf-picker-item:last-of-type{border-bottom:none}.swf-picker-name{color:var(--text-primary);flex:1;font-size:15px;font-weight:500}.swf-picker-btn{background:#fff;border:1px solid var(--border-default);border-radius:6px;color:var(--secondary-dark);cursor:pointer;font-family:Google Sans,sans-serif;font-size:13px;font-weight:500;padding:4px 10px;transition:all .12s}.swf-picker-btn:hover{background:var(--secondary-light);border-color:var(--secondary-dark)}.swf-picker-footer{border-top:1px solid var(--border-default);display:flex;justify-content:space-between;margin-top:12px;padding-top:10px}.swf-picker-create{background:none;border:1px dashed var(--border-default);border-radius:6px;color:var(--secondary-dark);cursor:pointer;font-family:Google Sans,sans-serif;font-size:14px;font-weight:500;padding:6px 14px;transition:all .12s}.swf-picker-create:hover{background:var(--secondary-light);border-color:var(--secondary-dark)}.swf-picker-cancel{background:#fff;border:1px solid var(--border-default);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-family:Google Sans,sans-serif;font-size:14px;padding:6px 14px}.swf-picker-cancel:hover{background:var(--button-field)}
