.gantt-view{background:#f8fafc;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.gc-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:40;flex-shrink:0;align-items:center;gap:6px;height:40px;padding:0 10px;display:flex;position:relative;overflow:visible}.gc-toolbar-group{align-items:center;gap:4px;display:flex}.gc-toolbar-sep{background:var(--border);width:1px;height:20px;margin:0 2px}.gc-toolbar-label{color:var(--text-muted);margin-right:2px;font-size:11px}.gc-selection-summary{max-width:300px}.gc-selection-pill{color:#1d4ed8;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;height:22px;padding:0 7px;font-size:11px;font-weight:700;display:inline-flex}.gc-selection-pill.muted{color:var(--text-muted);background:#f8fafc;border-color:#e2e8f0}.gc-tag-tools{max-width:min(520px,42vw)}.gc-tag-input,.gc-tag-select,.gc-tag-color-select{border:1px solid var(--border);height:26px;color:var(--text-secondary);font:inherit;background:#fff;border-radius:5px;font-size:12px}.gc-tag-input{width:130px;padding:0 8px}.gc-tag-select{width:132px;padding:0 6px}.gc-tag-color-select{width:118px;padding:0 6px;font-weight:600}.gc-tag-color-swatch{border:1px solid #0f172a2e;border-radius:5px;flex-shrink:0;width:18px;height:18px;box-shadow:inset 0 0 0 1px #ffffff38}.gc-tag-input:focus,.gc-tag-select:focus,.gc-tag-color-select:focus{border-color:var(--accent);outline:none}.gc-tag-input:disabled,.gc-tag-select:disabled,.gc-tag-color-select:disabled{opacity:.55;cursor:not-allowed}.gc-toolbar-tabs{gap:2px;display:flex}.gc-tab{color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500}.gc-tab:hover{background:var(--bg-hover);color:var(--text-secondary)}.gc-tab.active{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border);font-weight:600}.gc-btn-level{border:1px solid var(--border);color:var(--text-primary);background:var(--bg-surface);text-align:center;border-radius:4px;min-width:52px;padding:3px 10px;font-size:12px;font-weight:600}.gc-btn-level:hover{background:var(--bg-hover)}.gc-level-menu{z-index:40;border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:1px;min-width:140px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0f172a24}.gc-level-item{color:var(--text-secondary);text-align:left;background:0 0;border-radius:5px;padding:6px 12px;font-size:12px}.gc-level-item:hover{background:var(--bg-hover);color:var(--text-primary)}.gc-level-item.active{color:var(--accent);background:#eff6ff;font-weight:700}.gc-btn-filter{border:1px solid var(--border);color:var(--text-secondary);background:var(--bg-surface);border-radius:4px;padding:3px 10px;font-size:12px}.gc-btn-filter:hover{background:var(--bg-hover)}.gc-btn-filter.active{color:var(--accent);background:#eff6ff;border-color:#93c5fd;font-weight:600}.gc-filter-panel{z-index:40;border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;width:280px;max-height:420px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 10px 32px #0f172a29}.gc-filter-panel-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px 6px;display:flex}.gc-filter-select-all{color:var(--text-secondary);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500}.gc-filter-select-all:hover{background:var(--bg-hover)}.gc-filter-clear-all{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:2px 4px;font-size:11px;font-weight:600}.gc-filter-clear-all:hover{text-decoration:underline}.gc-filter-tags{border-bottom:1px solid var(--border);flex-shrink:0;padding:7px 8px}.gc-filter-tags-title{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px 2px;font-size:10px;font-weight:800;display:block}.gc-filter-tag-list{flex-wrap:wrap;gap:5px;max-height:76px;display:flex;overflow-y:auto}.gc-filter-tag{text-overflow:ellipsis;white-space:nowrap;max-width:120px;color:var(--text-secondary);cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;overflow:hidden}.gc-filter-tag:hover{background:#f8fafc}.gc-filter-tag.active{color:#fff;box-shadow:inset 0 0 0 1px #ffffff47}.gc-filter-search-wrap{border-bottom:1px solid var(--border);flex-shrink:0;padding:6px 8px;position:relative}.gc-filter-search-input{box-sizing:border-box;border:1px solid var(--border);width:100%;height:26px;color:var(--text-primary);background:#fff;border-radius:5px;padding:0 28px 0 8px;font-family:inherit;font-size:12px}.gc-filter-search-input:focus{border-color:var(--accent);outline:none}.gc-filter-search-clear{color:#fff;cursor:pointer;background:#cbd5e1;border:none;border-radius:50%;width:16px;height:16px;font-size:12px;line-height:1;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.gc-filter-list{flex:1;overflow-y:auto}.gc-filter-row{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:flex}.gc-filter-row:hover{background:var(--bg-hover)}.gc-filter-row input[type=checkbox]{flex-shrink:0}.gc-filter-row .gc-filter-task-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.gc-filter-task-text strong{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.gc-filter-task-text em{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-style:normal;overflow:hidden}.gc-filter-row small{color:#3730a3;background:#eef2ff;border-radius:4px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:800}.gc-filter-empty,.gc-filter-more{color:var(--text-muted);padding:10px 12px;font-size:12px;font-style:italic}.gc-filter-panel-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;padding:6px 10px;display:flex}.gc-filter-ok{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:4px 16px;font-size:12px;font-weight:600}.gc-filter-ok:hover{background:#1d4ed8}.gc-btn{border:1px solid var(--border);color:var(--text-secondary);background:var(--bg-surface);border-radius:4px;padding:3px 8px;font-size:12px}.gc-btn:hover{background:var(--bg-hover)}.gc-btn:disabled{opacity:.45;cursor:not-allowed}.gc-btn-link-mode.active{color:var(--accent);background:#eff6ff;border-color:#93c5fd;font-weight:700}.gc-zoom-val{color:var(--text-muted);text-align:center;min-width:48px;font-size:11px}.gc-today-btn{color:#fff;background:#f97316;border:none;border-radius:12px;padding:4px 12px;font-size:12px;font-weight:600}.gc-today-btn:hover{background:#ea6c0a}.gc-search{align-items:center;gap:3px;display:flex;position:relative}.gc-search-input{box-sizing:border-box;border:1px solid var(--border);width:220px;height:26px;color:var(--text-primary);background:#fff;border-radius:6px;padding:0 28px 0 8px;font-family:inherit;font-size:12px}.gc-search-clear{color:#fff;cursor:pointer;background:#cbd5e1;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:13px;line-height:1;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.gc-search-clear:hover{background:#94a3b8}.gc-search-count{color:var(--text-muted);text-align:center;flex-shrink:0;min-width:24px;font-size:11px}.gc-search-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2563eb1f}.gc-search-count{min-width:42px;color:var(--text-muted);text-align:center;font-size:11px}.gc-dir-backdrop{z-index:100;background:#0f172a57;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.gc-dir-modal{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;width:min(980px,100vw - 48px);max-height:min(760px,100vh - 48px);display:flex;overflow:hidden;box-shadow:0 24px 70px #0f172a47}.gc-dir-modal>header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.gc-dir-modal h2{color:var(--text-primary);margin:0;font-size:18px}.gc-dir-modal p{color:var(--text-muted);margin:4px 0 0;font-size:12px}.gc-dir-close{border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);background:#fff;border-radius:6px;font-size:18px}.gc-dir-mapping{background:#f0f9ff;border-bottom:1px solid #bae6fd;align-items:center;gap:8px;padding:8px 20px;font-size:12px;display:flex}.gc-dir-mapping-label{color:var(--text-secondary);flex-shrink:0}.gc-dir-mapping-label strong{color:var(--text)}.gc-dir-mapping-select{border:1px solid var(--border);background:var(--bg);border-radius:6px;flex:1;min-width:0;padding:3px 6px;font-size:12px}.gc-dir-body{grid-template-columns:240px 1fr;min-height:0;display:grid}.gc-dir-list{border-right:1px solid var(--border);background:#f8fafc;min-height:0;padding:10px;overflow:auto}.gc-dir-new,.gc-dir-list-item,.gc-dir-detected button{border:1px solid var(--border);text-align:left;background:#fff;border-radius:7px;width:100%}.gc-dir-new{color:var(--accent);margin-bottom:8px;padding:7px 9px;font-size:12px;font-weight:800}.gc-dir-list-item{margin-bottom:5px;padding:8px 9px;display:block}.gc-dir-list-item:hover,.gc-dir-list-item.active,.gc-dir-detected button:hover{background:#eff6ff;border-color:#93c5fd}.gc-dir-list-item strong{color:var(--text-primary);font-size:12px;display:block}.gc-dir-list-item span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;display:block;overflow:hidden}.gc-dir-empty{color:var(--text-muted);padding:10px;font-size:12px;font-style:italic}.gc-dir-detected{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.gc-dir-detected h3{color:var(--text-muted);text-transform:uppercase;margin:0 0 6px;font-size:11px}.gc-dir-detected button{color:var(--text-secondary);margin-bottom:5px;padding:6px 8px;font-size:12px}.gc-dir-editor{min-height:0;padding:14px;overflow:auto}.gc-dir-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.gc-dir-field{flex-direction:column;gap:4px;display:flex}.gc-dir-field.wide{grid-column:1/-1}.gc-dir-field span,.gc-dir-assign h3{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:800}.gc-dir-field input,.gc-dir-field select,.gc-dir-assign select,.gc-dir-contact-row input{border:1px solid var(--border);height:30px;color:var(--text-primary);background:#fff;border-radius:6px;padding:0 8px;font-family:inherit;font-size:12px}.gc-dir-field input:focus,.gc-dir-field select:focus,.gc-dir-assign select:focus,.gc-dir-contact-row input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2563eb1f}.gc-dir-actions{gap:8px;margin-top:12px;display:flex}.gc-dir-primary,.gc-dir-danger{border:0;border-radius:7px;min-height:30px;padding:0 12px;font-size:12px;font-weight:800}.gc-dir-primary{background:var(--accent);color:#fff}.gc-dir-primary:disabled{opacity:.45;cursor:not-allowed}.gc-dir-danger{color:#991b1b;background:#fee2e2}.gc-dir-assign{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.gc-dir-assign h3{margin:0 0 8px}.gc-dir-contacts{margin-top:12px}.gc-dir-contacts h3{color:var(--text-muted);text-transform:uppercase;margin:0 0 7px;font-size:11px;font-weight:800}.gc-dir-contact-row{grid-template-columns:1.1fr .8fr 1.2fr .8fr;gap:6px;margin-bottom:6px;display:grid}.gc-dir-usage-list{max-height:190px;color:var(--text-secondary);margin:0;padding-left:20px;font-size:12px;overflow:auto}.gc-dir-usage-list li{align-items:center;gap:6px;margin:3px 0;display:flex}.gc-dir-warn{color:#92400e;white-space:nowrap;background:#fef3c7;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:700}.gc-dir-jump{color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;padding:1px 4px;font-size:11px;font-weight:700}.gc-dir-jump:hover{background:var(--accent-light,#e0e7ff)}.gc-dir-check-list{border:1px solid var(--border);border-radius:8px;max-height:170px;margin-bottom:10px;overflow:auto}.gc-dir-check-row{color:var(--text-secondary);border-bottom:1px solid #eef2f7;grid-template-columns:auto minmax(80px,.5fr) minmax(0,1fr);align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:grid}.gc-dir-check-row:last-child{border-bottom:0}.gc-dir-check-row small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gc-search-nav{border:1px solid var(--border);background:var(--bg-surface);width:24px;height:24px;color:var(--text-secondary);border-radius:5px;font-size:15px;line-height:1}.gc-search-nav:hover:not(:disabled){background:var(--bg-hover);color:var(--accent)}.gc-search-nav:disabled{opacity:.45;cursor:not-allowed}.gc-search-menu{z-index:30;border:1px solid var(--border);background:#fff;border-radius:8px;width:360px;max-height:390px;padding:5px;position:absolute;top:30px;left:0;overflow:auto;box-shadow:0 12px 28px #0f172a29}.gc-search-option{width:100%;color:var(--text-secondary);text-align:left;border-radius:6px;grid-template-columns:1fr auto;gap:8px;padding:7px 8px;font-size:12px;display:grid}.gc-search-option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gc-search-option small{color:var(--text-muted);text-transform:uppercase;align-self:center;font-size:10px;font-weight:800}.gc-search-option:hover,.gc-search-option.active{color:#1d4ed8;background:#eff6ff}.gc-search-empty,.gc-search-more{color:var(--text-muted);padding:8px;font-size:12px}.gc-main{flex:1;min-width:0;min-height:0;display:flex}.gc-scroller{flex:1;min-width:0;min-height:0;overflow:auto}.gc-inner{flex-direction:column;display:flex;position:relative}.gc-axis-row{z-index:10;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;position:sticky;top:0}.gc-corner{z-index:11;border-right:1px solid var(--border);background:#e8edf3;flex-shrink:0;grid-template-columns:1fr 20px;align-items:center;gap:0;padding:0;display:grid;position:sticky;left:0}.gc-corner.schedule-open{grid-template-columns:280px 92px 92px 54px 20px}.gc-name-column-resizer{z-index:60;cursor:col-resize;pointer-events:auto;width:12px;position:absolute;top:0;bottom:0}.gc-name-column-resizer:after{content:"";opacity:.95;background:#64748b;border-radius:999px;width:2px;position:absolute;top:5px;bottom:5px;left:5px;box-shadow:0 0 0 1px #ffffffb3}.gc-name-column-resizer:hover:after,.gc-resizing-name-column .gc-name-column-resizer:after{opacity:1;background:#2563eb;width:3px}.gc-name-column-resizer:before{content:"";opacity:.45;background:linear-gradient(90deg,#0000 1px,#2563eb73 1px 2px,#0000 2px 4px,#2563eb73 4px 5px,#0000 5px);border-radius:4px;width:8px;height:18px;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.gc-name-column-resizer:hover:before,.gc-resizing-name-column .gc-name-column-resizer:before{opacity:1}.gc-resizing-name-column,.gc-resizing-name-column *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.gc-corner-name-tools{flex:1;align-items:center;gap:4px;min-width:0;padding:0 4px 0 6px;display:flex;overflow:visible}.gc-corner-name-tools .gc-search{flex:1;min-width:0}.gc-corner-name-tools .gc-search-input{border:1px solid var(--border);background:var(--bg-surface);width:100%;height:26px;color:var(--text);border-radius:5px;padding:0 6px;font-size:12px}.gc-corner-name-tools .gc-search-input:focus{border-color:var(--accent);background:#fff;outline:none}.gc-corner-name-tools .gc-search-menu{min-width:unset;z-index:120;top:calc(100% + 2px);left:0;right:0}.gc-corner-name-tools .gc-search-count{padding:0 4px;font-size:11px}.gc-corner-filter{flex-shrink:0;align-items:center;gap:2px;display:flex;position:relative}.gc-corner-filter-btn{border:1px solid var(--border);background:var(--bg-surface);min-width:54px;height:26px;color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:5px;padding:0 8px;font-size:12px}.gc-corner-filter-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.gc-corner-filter-btn.active{color:var(--accent);background:#eff6ff;border-color:#93c5fd;font-weight:600}.gc-corner-filter-clear{color:#dc2626;cursor:pointer;background:#fff7f7;border:1px solid #fecaca;border-radius:5px;width:26px;height:26px;font-size:13px;font-weight:800}.gc-corner-filter-clear:hover{background:#fee2e2;border-color:#fca5a5}.gc-corner-filter-clear:disabled{color:#94a3b8;cursor:default;background:#f1f5f9;border-color:#cbd5e1}.gc-corner-filter-clear:disabled:hover{background:#f1f5f9;border-color:#cbd5e1}.gc-corner-filter .gc-filter-panel{z-index:120;top:calc(100% + 4px);left:0}.gc-corner-date-labels{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700;display:contents}.gc-corner-date-labels span{text-align:center;justify-self:stretch}.gc-schedule-columns-toggle{border:1px solid var(--border);background:var(--bg-surface);width:20px;height:20px;color:var(--text-muted);border-radius:4px;place-self:center;font-size:14px;font-weight:900;line-height:1}.gc-schedule-columns-toggle:hover{background:var(--bg-hover);color:var(--accent)}.gc-content-row{align-items:flex-start;display:flex}.gc-labels{z-index:5;background:var(--bg-surface);border-right:1px solid var(--border);flex-shrink:0;width:280px;position:sticky;left:0}.gc-labels.schedule-open{width:560px}.gc-label-row{border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:minmax(220px,1fr) 22px;align-items:center;gap:6px;padding-right:6px;transition:background 80ms;display:grid;position:relative;overflow:hidden}.gc-label-row.schedule-open{grid-template-columns:minmax(220px,1fr) 92px 92px 54px 22px}.gc-label-row:hover{background:var(--bg-hover)}.gc-label-row.selected{background:#dbeafe}.gc-label-row.focus-pulse{animation:1.1s ease-out gc-focus-pulse;box-shadow:inset 0 0 0 2px #2563eb}@keyframes gc-focus-pulse{0%{box-shadow:inset 0 0 0 2px #2563eb,0 0 #2563eb59}65%{box-shadow:inset 0 0 0 2px #2563eb,0 0 0 5px #2563eb00}to{box-shadow:inset 0 0 0 2px #2563eb,0 0 #2563eb00}}.gc-task-focus-flash{fill:none;stroke:#2563eb;stroke-width:2px;pointer-events:none;animation:1.1s ease-out gc-task-focus-flash}@keyframes gc-task-focus-flash{0%{stroke:#f97316;stroke-width:3px;opacity:1}45%{stroke:#2563eb;stroke-width:2px;opacity:1}to{stroke:#2563eb;stroke-width:2px;opacity:0}}.gc-dep-proxy-overlay{z-index:16;pointer-events:none;position:absolute;inset:0;overflow:hidden}.gc-dep-proxy-card{box-sizing:border-box;color:#10233f;width:228px;height:44px;font:inherit;text-align:left;pointer-events:auto;will-change:transform;background:#fffffff5;border:1px solid #93c5fd;border-left:4px solid #3b82f6;border-radius:6px;grid-template-rows:17px 15px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 6px;padding:5px 8px 5px 9px;display:none;position:absolute;top:0;left:0;transform:translate(-9999px,-9999px);box-shadow:0 8px 22px #0f172a33}.gc-dep-proxy-card.succ{border-color:#fdba74 #fdba74 #fdba74 #f97316}.gc-dep-proxy-card:hover{background:#eff6ff}.gc-dep-proxy-card.succ:hover{background:#fff7ed}.gc-dep-proxy-kind{color:#2563eb;white-space:nowrap;grid-row:1/span 2;font-size:10px;font-weight:900}.gc-dep-proxy-card.succ .gc-dep-proxy-kind{color:#f97316}.gc-dep-proxy-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:800;line-height:15px;overflow:hidden}.gc-dep-proxy-milestone{vertical-align:1px;background:#6d28d9;width:7px;height:7px;margin-right:5px;display:inline-block;transform:rotate(45deg)}.gc-dep-proxy-meta{text-overflow:ellipsis;white-space:nowrap;color:#64748b;min-width:0;font-size:10px;font-weight:700;line-height:14px;overflow:hidden}.gc-label-row.is-summary{background:#f0f4ff}.gc-label-row.is-summary:hover{background:var(--bg-hover)}.gc-label-row.is-summary.selected{background:#dbeafe}.gc-hierarchy-stripes{pointer-events:none;z-index:0;width:36px;position:absolute;inset:0 auto 0 0}.gc-hierarchy-stripes span{opacity:1;border-radius:2px;width:4px;position:absolute;top:3px;bottom:3px;box-shadow:0 0 0 1px #ffffff73}.gc-label-name-cell,.gc-label-date,.gc-label-duration,.gc-row-menu-btn{z-index:1;position:relative}.gc-toggle{width:17px;height:17px;color:var(--text-muted);border:1px solid #0000;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:900;line-height:1;display:inline-flex}.gc-toggle.summary-toggle{background:#ffffffe0;box-shadow:0 0 0 2px #ffffff80}.gc-toggle:hover{background:#fff}.gc-toggle-spacer{flex-shrink:0;width:14px;display:inline-block}.gc-milestone-icon{color:#7c3aed;flex-shrink:0;font-size:11px}.gc-label-name-cell{align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.gc-label-content{flex-direction:column;flex:1;justify-content:center;gap:1px;min-width:0;display:flex;overflow:hidden}.gc-label-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11px;display:block;overflow:hidden}.gc-label-text.summary{color:var(--text-primary);font-weight:700}.gc-label-meta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:10px;line-height:1.15;display:block;overflow:hidden}.gc-label-row.roomy .gc-label-text{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.15;display:-webkit-box}.gc-label-row.has-meta .gc-toggle,.gc-label-row.has-meta .gc-toggle-spacer,.gc-label-row.has-meta .gc-milestone-icon,.gc-label-row.has-meta .gc-row-menu-btn{align-self:center}.gc-label-inline-edit{min-width:0;font-family:inherit;font-size:11px;font-weight:inherit;color:var(--text-primary);background:var(--bg-surface);border:none;border-bottom:2px solid var(--accent);border-radius:0;outline:none;flex:1;padding:0 2px}.gc-label-date,.gc-label-duration{width:100%;min-width:0;height:21px;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:4px;padding:1px 3px;font-family:inherit;font-size:10px}.gc-label-duration{text-align:right}.gc-label-date:hover,.gc-label-duration:hover,.gc-label-date:focus,.gc-label-duration:focus{background:#fff;border-color:#bfdbfe;outline:none}.gc-label-date:disabled,.gc-label-duration:disabled{color:var(--text-muted);opacity:.68}.gc-row-menu-btn{letter-spacing:-1px;color:#0000;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-left:auto;font-size:11px;transition:color .1s,background .1s;display:flex}.gc-label-row:hover .gc-row-menu-btn,.gc-label-row.selected .gc-row-menu-btn{color:var(--text-muted)}.gc-row-menu-btn:hover{color:var(--text-secondary);background:#0000000f}.gc-edit-grid{grid-template-columns:auto 1fr;align-items:center;gap:7px 10px;display:grid}.gc-edit-grid label{color:var(--text-muted);white-space:nowrap;font-size:11px}.gc-edit-grid input{color:var(--text-primary);border:1px solid var(--border);background:var(--bg-surface);box-sizing:border-box;border-radius:4px;width:100%;padding:4px 6px;font-family:inherit;font-size:12px}.gc-edit-grid input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2563eb26}.gc-edit-error{color:var(--danger);margin-top:7px;font-size:11px}.gc-edit-apply{background:var(--accent);color:#fff;cursor:pointer;border-radius:5px;width:100%;margin-top:10px;padding:6px;font-size:12px;font-weight:600}.gc-edit-apply:hover{background:var(--accent-hover)}.gc-edit-convert{width:100%;color:var(--text-muted);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:5px;margin-top:6px;padding:5px;font-size:11px}.gc-edit-convert:hover{background:var(--bg-hover);color:var(--text-secondary)}.gc-prop-box{background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;margin-top:10px;padding:10px}.gc-prop-box h4{color:#9a3412;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:800}.gc-prop-box p{color:#9a3412;margin-bottom:8px;font-size:11px}.gc-prop-actions{flex-direction:column;gap:5px;display:flex}.gc-prop-actions button{text-align:left;border-radius:4px;width:100%;padding:5px 7px;font-size:11px;font-weight:650}.gc-prop-actions button:disabled{opacity:.45;cursor:not-allowed}.gc-prop-primary{color:#fff;background:#f97316}.gc-prop-secondary{color:#9a3412;background:#ffedd5;border:1px solid #fdba74}.gc-prop-cancel{color:var(--text-muted);background:0 0}.gc-prop-preview{color:#9a3412;flex-direction:column;gap:3px;margin-top:8px;padding-left:14px;font-size:11px;display:flex}.gc-edit-computed{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.gc-edit-readonly-note{color:var(--text-muted);margin-top:7px;font-size:11px;font-style:italic}.gc-detail{background:var(--bg-surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:340px;display:flex;overflow:hidden;box-shadow:-4px 0 16px #0f172a14}.gc-ph{border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 12px 8px}.gc-ph-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.gc-ph-spacer{flex:1}.gc-ph-close{width:24px;height:24px;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.gc-ph-close:hover{background:var(--bg-hover);color:var(--text-primary)}.gc-ph-name{box-sizing:border-box;width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:4px;margin:0 -4px;padding:2px 4px;font-family:inherit;font-size:14px;font-weight:700;display:block}.gc-ph-name:hover{background:var(--bg-hover)}.gc-ph-name:focus{background:#eff6ff;outline:none}.gc-type-chip{text-transform:uppercase;letter-spacing:.06em;color:#fff;border-radius:10px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:9px;font-weight:700;display:inline-flex}.gc-type-chip--task{background:#2563eb}.gc-type-chip--milestone{background:#7c3aed}.gc-type-chip--summary{background:#0f766e}.gc-type-chip--phase,.gc-type-chip--lot{background:#0369a1}.gc-tabs{border-bottom:2px solid var(--border);background:var(--bg-surface);flex-shrink:0;display:flex}.gc-tab-btn{color:var(--text-muted);border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:4px;margin-bottom:-2px;padding:8px 4px;font-size:11px;font-weight:500;transition:color .1s;display:flex}.gc-tab-btn:hover{color:var(--text-secondary)}.gc-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}.gc-tab-badge{background:var(--danger);color:#fff;border-radius:7px;justify-content:center;align-items:center;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;display:inline-flex}.gc-tab-count{background:var(--bg-card);min-width:14px;height:14px;color:var(--text-muted);border:1px solid var(--border);border-radius:7px;justify-content:center;align-items:center;padding:0 3px;font-size:9px;font-weight:700;display:inline-flex}.gc-tab-content{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.gc-status-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.gc-status-badge{border-radius:12px;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.gc-status-done{color:#15803d;background:#dcfce7}.gc-status-in_progress{color:#1d4ed8;background:#dbeafe}.gc-status-not_started{color:#64748b;background:#f1f5f9}.gc-status-late{color:#dc2626;background:#fee2e2}.gc-status-at_risk{color:#c2410c;background:#fff7ed}.gc-status-unknown{color:#94a3b8;background:#f1f5f9}.gc-delay-pill{color:#dc2626;background:#fee2e2;border-radius:12px;padding:3px 8px;font-size:10px;font-weight:700}.gc-computed-pill{color:#1d4ed8;background:#eff6ff;border-radius:12px;padding:3px 8px;font-size:10px;font-weight:600}.gc-form-2col{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gc-form-field{flex-direction:column;gap:3px;display:flex}.gc-form-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700}.gc-form-field input,.gc-form-field select{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-primary);border-radius:5px;padding:6px 8px;font-family:inherit;font-size:12px}.gc-form-field input:focus,.gc-form-field select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2563eb1f}.gc-form-field--full{grid-column:1/-1}.gc-progress-shortcuts{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.gc-progress-shortcuts button{border:1px solid var(--border);height:24px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:5px;font-size:11px;font-weight:700}.gc-progress-shortcuts button:after{content:"%";color:var(--text-muted);font-weight:600}.gc-progress-shortcuts button:hover{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.gc-progress-shortcuts button.active{background:var(--accent);border-color:var(--accent);color:#fff}.gc-progress-shortcuts button.active:after{color:#ffffffc7}.gc-form-actions{gap:6px;display:flex}.gc-btn-apply{background:var(--accent);color:#fff;cursor:pointer;border-radius:5px;flex:1;padding:7px;font-size:12px;font-weight:600}.gc-btn-apply:hover{background:var(--accent-hover)}.gc-btn-convert{border:1px solid var(--border);color:var(--text-muted);background:var(--bg-surface);cursor:pointer;border-radius:5px;padding:7px 10px;font-size:11px;font-weight:500}.gc-btn-convert:hover{background:var(--bg-hover);color:var(--text-secondary)}.gc-linked-action-box{border:1px solid var(--border);background:#fff;border-radius:7px;flex-direction:column;gap:8px;padding:10px;display:flex}.gc-linked-note-box{background:#f8fafc}.gc-action-textarea{resize:vertical;box-sizing:border-box;border:1px solid var(--border);width:100%;min-height:62px;color:var(--text-primary);background:var(--bg-surface);border-radius:6px;padding:7px 8px;font-family:inherit;font-size:12px;line-height:1.35}.gc-action-textarea:focus,.gc-action-grid input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2563eb1f}.gc-action-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gc-action-grid label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:3px;font-size:10px;font-weight:700;display:flex}.gc-action-grid input{border:1px solid var(--border);height:28px;color:var(--text-primary);background:var(--bg-surface);border-radius:5px;padding:0 7px;font-family:inherit;font-size:12px}.gc-action-create,.gc-note-create{cursor:pointer;border-radius:5px;align-self:flex-start;padding:7px 10px;font-size:12px;font-weight:700}.gc-action-create{background:var(--accent);color:#fff}.gc-action-create:hover{background:var(--accent-hover)}.gc-note-create{color:var(--text-secondary);border:1px solid var(--border);background:#f1f5f9}.gc-note-create:hover{background:#e2e8f0}.gc-linked-existing{flex-direction:column;gap:6px;display:flex}.gc-task-action-row{grid-template-columns:auto 1fr;align-items:baseline;gap:2px 7px;display:grid}.gc-task-action-row strong{color:var(--text-primary);font-size:12px;line-height:1.3}.gc-task-action-row>span:last-child{color:var(--text-muted);grid-column:2;font-size:11px}.gc-task-action-kind{color:#1d4ed8;background:#dbeafe;border-radius:4px;padding:2px 5px;font-size:10px;font-weight:800}.gc-task-note-row .gc-task-action-kind{color:#6d28d9;background:#f5f3ff}.gc-pilotage-edit{border:1px solid var(--border);background:#fff;border-radius:7px;flex-direction:column;gap:8px;padding:10px;display:flex}.gc-pilotage-edit .gc-form-field>span,.gc-resource-picker>span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700}.gc-resource-picker{flex-direction:column;gap:5px;display:flex}.gc-wp-search{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:6px;padding:4px 8px;font-size:12px}.gc-resource-picker-list{flex-wrap:wrap;gap:5px;max-height:112px;display:flex;overflow:auto}.gc-resource-pick{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;gap:5px;min-height:24px;padding:3px 7px;font-size:11px;font-weight:700;display:inline-flex}.gc-resource-pick input{margin:0}.gc-ro-grid{background:var(--bg-card);border-radius:6px;grid-template-columns:auto 1fr;align-items:baseline;gap:5px 10px;padding:8px 10px;display:grid}.gc-ro-grid span{color:var(--text-muted);font-size:11px}.gc-ro-grid strong{color:var(--text-secondary);overflow-wrap:anywhere;font-size:12px;font-weight:600}.gc-ctx-block{background:var(--bg-card);border-radius:6px;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 8px;padding:8px 10px;display:grid}.gc-ctx-block span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.gc-ctx-block strong{color:var(--text-secondary);overflow-wrap:anywhere;font-size:11px}.gc-ctx-desc{font-style:italic;color:var(--text-muted)!important}.gc-assign-row{align-items:center;gap:6px;min-height:28px;display:flex}.gc-assign-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;width:64px;font-size:10px;font-weight:700}.gc-assign-chips{flex-wrap:wrap;flex:1;align-items:center;gap:4px;display:flex}.gc-assign-chip{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;gap:3px;padding:2px 6px 2px 8px;font-size:11px;font-weight:600;display:inline-flex}.gc-assign-chip button{color:#93c5fd;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;line-height:1}.gc-assign-chip button:hover{color:#1d4ed8}.gc-tag-chip{color:#6d28d9;background:#f5f3ff;border-color:#ddd6fe}.gc-tag-chip button{color:#a78bfa}.gc-tag-chip button:hover{color:#6d28d9}.gc-assign-add{color:#3b82f6;cursor:pointer;appearance:none;background:0 0;border:1px dashed #bfdbfe;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.gc-assign-add:hover{background:#eff6ff}.gc-assign-empty{color:var(--text-muted);font-size:11px;font-style:italic}.gc-tag-detail-row{align-items:flex-start}.gc-tag-detail-input{width:88px;min-height:22px;color:var(--text-secondary);background:#fff;border:1px dashed #ddd6fe;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.gc-tag-detail-input:focus{border-color:#8b5cf6;outline:none}.gc-tag-detail-add{color:#6d28d9;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:999px;min-height:22px;padding:2px 8px;font-size:11px;font-weight:700}.gc-tag-detail-add:disabled{opacity:.45;cursor:not-allowed}.gc-tag-detail-add:not(:disabled):hover{background:#ede9fe}.gc-res-chips{flex-wrap:wrap;gap:5px;display:flex}.gc-res-chip{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:3px 9px;font-size:11px;font-weight:500}.gc-links-section{flex-direction:column;gap:6px;display:flex}.gc-links-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700}.gc-detail h3{color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:800}.gc-detail p{color:var(--text-secondary);font-size:12px}.gc-ref{display:contents}.gc-detail-list,.gc-detail-issues{flex-direction:column;gap:6px;list-style:none;display:flex}.gc-detail-list li{min-width:0;color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.gc-detail-list button{min-width:0;color:var(--accent);text-align:left;overflow-wrap:anywhere}.gc-detail-list button:hover{text-decoration:underline}.gc-detail-list em{color:var(--text-muted);text-transform:uppercase;flex-shrink:0;font-size:10px;font-style:normal}.gc-detail-empty{color:var(--text-muted);font-size:12px}.gc-detail-issues li{border-left:3px solid var(--warning);color:#9a3412;background:#fff7ed;padding:8px;font-size:12px}.gc-issue-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.gc-issue-actions button{cursor:pointer;border-radius:4px;padding:4px 7px;font-size:11px;font-weight:650}.gc-issue-fix{color:#fff;background:#f97316}.gc-issue-break{color:#9a3412;background:#ffedd5;border:1px solid #fdba74}.gantt-view.has-detail .gc-floating-today{right:380px}.gc-floating-today{z-index:20;color:#fff;background:#f97316;border:none;border-radius:20px;padding:6px 16px;font-size:12px;font-weight:600;position:absolute;bottom:16px;right:20px;box-shadow:0 2px 8px #0003}.gc-floating-today:hover{background:#ea6c0a}.gc-empty{color:var(--text-muted);padding:32px}.gc-issues-panel{z-index:15;background:var(--bg-surface);border-left:1px solid var(--border);flex-direction:column;width:340px;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-6px 0 24px #0f172a24}.gc-issues-panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.gc-issues-panel-title{color:var(--text-primary);font-size:13px;font-weight:700}.gc-issues-panel-close{width:24px;height:24px;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;font-size:16px;display:flex}.gc-issues-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.gc-issues-panel-body{flex-direction:column;flex:1;gap:6px;padding:8px;display:flex;overflow-y:auto}.gc-issues-task-group{background:var(--bg-card);border-radius:6px;flex-direction:column;gap:5px;padding:8px 10px;display:flex}.gc-issues-task-name{color:var(--accent);text-align:left;margin-bottom:2px;font-size:12px;font-weight:700}.gc-issues-task-name:hover{text-decoration:underline}.gc-issues-item{border-left:3px solid;border-radius:4px;flex-direction:column;gap:5px;padding:7px 9px;display:flex}.gc-issues-item-header{justify-content:space-between;align-items:center;display:flex}.gc-issues-item-type{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:9px;font-weight:700}.gc-issues-sev-chip{border-radius:8px;padding:1px 6px;font-size:9px;font-weight:700}.gc-issues-sev-block{color:#dc2626;background:#fee2e2}.gc-issues-item-msg{color:var(--text-secondary);font-size:11px;line-height:1.4}.gc-btn-issues{border:1px solid var(--border);color:var(--text-muted);background:var(--bg-surface);border-radius:4px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:flex}.gc-btn-issues:hover{background:var(--bg-hover)}.gc-btn-issues.has-issues{color:#c2410c;background:#fff7ed;border-color:#fdba74}.gc-btn-issues.has-issues:hover{background:#ffedd5}.gc-btn-issues.active{color:#c2410c;background:#fff7ed;border-color:#f97316}.gc-issues-badge{color:#fff;background:#dc2626;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:800;display:inline-flex}.gc-dep-drag-error{color:#c2410c;background:#fff7ed;border:1px solid #fdba74;border-radius:6px;padding:4px 8px;font-size:11px}.gc-dep-port{opacity:0;transition:opacity .1s}svg g:hover>.gc-dep-port,.gc-dep-port:hover{opacity:1}.gc-dep-port--input circle:last-child{stroke:#f97316}.gc-dep-port--output circle:last-child{stroke:#2563eb}.gc-link-popover{z-index:260;background:#fff;border:1px solid #bfdbfe;border-radius:7px;width:190px;padding:9px;position:fixed;box-shadow:0 8px 24px #0f172a29}.gc-link-popover-title{color:var(--text-primary);margin-bottom:7px;font-size:12px;font-weight:850}.gc-link-popover-row{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.gc-link-type{border:1px solid var(--border);color:#475569;background:#f8fafc;border-radius:4px;padding:4px 0;font-size:11px;font-weight:800}.gc-link-type.active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.gc-link-lag{color:var(--text-muted);align-items:center;gap:6px;margin-top:8px;font-size:11px;display:flex}.gc-link-lag input{border:1px solid var(--border);width:54px;height:26px;font:inherit;color:var(--text-primary);border-radius:4px;padding:3px 5px}.gc-link-actions{justify-content:flex-end;gap:6px;margin-top:9px;display:flex}.gc-link-create,.gc-link-cancel{border-radius:4px;padding:4px 8px;font-size:11px;font-weight:800}.gc-link-create{color:#fff;background:#2563eb}.gc-link-create:hover{background:#1d4ed8}.gc-link-cancel{border:1px solid var(--border);color:#475569;background:#fff}.gc-link-cancel:hover{background:var(--bg-hover)}.gc-inline-issues{flex-direction:column;gap:5px;display:flex}.gc-issue-inline{border-left:3px solid;border-radius:5px;align-items:flex-start;gap:8px;padding:7px 9px;font-size:11px;display:flex}.gc-issue-inline--warning{color:#9a3412;background:#fff7ed;border-left-color:#f97316}.gc-issue-inline--blocking{color:#991b1b;background:#fff1f2;border-left-color:#dc2626}.gc-issue-inline-msg{flex:1;line-height:1.4}.gc-issue-inline-fix{color:#fff;white-space:nowrap;cursor:pointer;background:#f97316;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:700}.gc-issue-inline-fix:hover{background:#ea6c0a}.gc-btn-add{color:var(--accent);font-weight:600}.gc-btn-add:hover,.gc-label-row.selected,.gc-label-row.selected.is-summary{background:#dbeafe}.gc-btn-group{color:var(--text-muted);border-color:var(--border)}.gc-btn-group-valid{color:var(--accent);border-color:var(--accent);background:#eff6ff;font-weight:600}.gc-btn-group-valid:hover{background:#dbeafe}.gc-detail-name-input{box-sizing:border-box;width:100%;color:var(--text-primary);background:0 0;border:none;border-bottom:1px dashed #0000;border-radius:0;margin:0;padding:2px 0;font-family:inherit;font-size:16px;font-weight:700;display:block}.gc-detail-name-input:hover{border-bottom-color:var(--border)}.gc-detail-name-input:focus{border-bottom-color:var(--accent);background:#f0f6ff;border-radius:3px;outline:none;padding:2px 4px}.gc-detail-list li.gc-dep-row{border:1px solid var(--border);background:#fff;border-radius:7px;align-items:stretch;gap:6px;padding:7px}.gc-dep-jump{text-align:left;min-width:0;color:var(--text-primary);flex-direction:column;flex:1;gap:5px;display:flex}.gc-detail-list .gc-dep-jump:hover{text-decoration:none}.gc-dep-main{grid-template-columns:auto 1fr;align-items:center;gap:7px;min-width:0;display:grid}.gc-dep-main strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);font-size:12px;font-weight:800;overflow:hidden}.gc-dep-type{color:#3730a3;white-space:nowrap;background:#eef2ff;border-radius:5px;padding:2px 6px;font-size:10px;font-weight:850}.gc-dep-dates{flex-wrap:wrap;gap:4px;display:flex}.gc-dep-dates span{color:var(--text-muted);background:#f1f5f9;border-radius:4px;align-items:center;gap:3px;padding:2px 5px;font-size:10px;font-weight:650;display:inline-flex}.gc-dep-dates strong{color:var(--text-secondary);font-weight:800}.gc-path-target{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;grid-template-columns:auto 1fr;gap:3px 8px;padding:9px 10px;display:grid}.gc-path-target span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:800}.gc-path-target strong{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850;overflow:hidden}.gc-path-target em{color:var(--text-secondary);grid-column:2;font-size:11px;font-style:normal}.gc-path-note{border:1px dashed var(--border);color:var(--text-muted);background:#f8fafc;border-radius:7px;padding:8px 10px;font-size:11px;line-height:1.4}.gc-path-open-view{background:var(--accent);color:#fff;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:800}.gc-path-open-view:hover{background:#1d4ed8}.gc-path-section{flex-direction:column;gap:7px;display:flex}.gc-path-group{flex-direction:column;gap:5px;display:flex}.gc-path-group-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:850}.gc-path-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gc-path-row{margin:0;padding:0}.gc-path-main{border:1px solid var(--border);text-align:left;background:#fff;border-radius:7px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 7px;width:100%;padding:7px;display:grid}.gc-path-main:hover{background:#f8fafc;border-color:#bfdbfe}.gc-path-main strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);font-size:12px;font-weight:850;overflow:hidden}.gc-path-status{white-space:nowrap;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:850}.gc-path-dates,.gc-path-meta{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:10px;overflow:hidden}.gc-path-meta{color:var(--text-secondary)}.gc-dep-edit{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;align-self:flex-start;font-size:12px}.gc-dep-delete{height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;align-self:flex-start;padding:0 6px;font-size:14px;line-height:22px}.gc-dep-delete:hover{color:#dc2626;background:#fee2e2;border-color:#fca5a5}.gc-dep-form{flex-direction:column;gap:6px;margin-top:10px;display:flex}.gc-dep-form h4{text-transform:uppercase;color:var(--text-muted);letter-spacing:.04em;margin:0 0 4px;font-size:11px;font-weight:600}.gc-dep-form select,.gc-dep-form input[type=number]{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);border-radius:4px;padding:4px 6px;font-family:inherit;font-size:12px}.gc-dep-form select{width:100%}.gc-dep-form input[type=number]{width:60px}.gc-dep-form>div{align-items:center;gap:6px;display:flex}.gc-dep-add-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:600}.gc-dep-add-btn:hover{background:#1d4ed8}.gc-ctx-menu{z-index:200;background:var(--bg-surface);border:1px solid var(--border);border-radius:7px;min-width:210px;padding:4px 0;position:fixed;box-shadow:0 6px 20px #00000021}.gc-ctx-menu button{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:7px 14px;font-family:inherit;font-size:13px;display:block}.gc-ctx-menu button:hover{background:var(--bg-hover);color:var(--text-primary)}.gc-ctx-sep{background:var(--border);height:1px;margin:4px 0}.gc-ctx-danger{color:var(--danger)!important}.gc-ctx-danger:hover{background:#fee2e2!important}.gc-dep-edit{height:22px;color:var(--text-muted);border:1px solid #0000;border-radius:3px;flex-shrink:0;padding:0 5px;font-size:12px}.gc-dep-edit:hover{color:var(--accent);background:#eff6ff;border-color:#bfdbfe}.gc-dep-edit-form{flex:1;align-items:center;gap:4px;display:flex}.gc-dep-edit-form select{border:1px solid var(--border);background:var(--bg-surface);border-radius:3px;padding:2px 4px;font-size:11px}.gc-dep-save{background:var(--accent);color:#fff;border-radius:3px;padding:2px 7px;font-size:12px;font-weight:600}.gc-dep-cancel-edit{color:var(--text-muted);border:1px solid var(--border);border-radius:3px;padding:2px 6px;font-size:12px}.gc-btn-recalc{width:100%;color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:#eff6ff;border-radius:5px;padding:6px;font-size:12px;font-weight:600}.gc-btn-recalc:hover{background:#dbeafe}.gc-autosched-box{flex-direction:column;gap:8px;display:flex}.gc-autosched-box h4{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.gc-autosched-summary{color:var(--text-secondary);flex-direction:column;gap:3px;font-size:11px;display:flex}.gc-autosched-warn{color:var(--warning);font-weight:600}.gc-autosched-actions{flex-direction:column;gap:5px;display:flex}.gc-autosched-push{text-align:left;background:var(--accent);color:#fff;cursor:pointer;border-radius:4px;width:100%;padding:5px 8px;font-size:12px;font-weight:600}.gc-autosched-push:disabled{opacity:.45;cursor:not-allowed}.gc-autosched-earliest{text-align:left;border:1px solid var(--accent);width:100%;color:var(--accent);cursor:pointer;background:#eff6ff;border-radius:4px;padding:5px 8px;font-size:12px;font-weight:600}.gc-autosched-earliest:disabled{opacity:.45;cursor:not-allowed}.gc-autosched-cancel{color:var(--text-muted);background:0 0;font-size:11px}.gc-delete-section{background:#fafafa}.gc-delete-btn{width:100%;color:var(--danger);cursor:pointer;background:0 0;border:1px solid #fca5a5;border-radius:5px;padding:6px;font-size:12px}.gc-delete-btn:hover{background:#fee2e2}.gc-delete-confirm-msg{color:var(--text-secondary);margin-bottom:8px;font-size:11px;line-height:1.4}.gc-delete-actions{gap:8px;display:flex}.gc-delete-yes{background:var(--danger);color:#fff;cursor:pointer;border-radius:4px;flex:1;padding:5px 8px;font-size:12px;font-weight:600}.gc-delete-yes:hover{background:#b91c1c}.gc-delete-cancel{border:1px solid var(--border);color:var(--text-secondary);background:var(--bg-surface);cursor:pointer;border-radius:4px;flex:1;padding:5px 8px;font-size:12px}.gc-delete-cancel:hover{background:var(--bg-hover)}.week-view{background:#eef2f7;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.week-toolbar{border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 14px;display:flex}.week-toolbar-title{color:var(--text-primary);margin-right:8px;font-size:13px;font-weight:700}.week-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);border-radius:6px;padding:5px 10px;font-size:12px}.week-btn:hover{background:var(--bg-hover)}.week-btn-today{color:#fff;background:#f97316;border-color:#fb923c;font-weight:700}.week-btn-today:hover{background:#ea580c}.week-range{color:var(--text-muted);margin-left:8px;font-size:12px}.week-layout{flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.week-layout.has-detail{grid-template-columns:minmax(0,1fr) 360px}.week-content{min-width:0;min-height:0;padding:12px;overflow:hidden}.week-columns{grid-template-columns:repeat(3,minmax(240px,1fr));gap:10px;min-width:760px;height:100%;min-height:0;display:grid}.week-column{border:1px solid var(--border);background:var(--bg-surface);border-radius:8px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.week-column.current{border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb1f}.week-column.today-week{border-color:#f97316;box-shadow:0 0 0 1px #f9731638}.week-column.current.today-week{box-shadow:0 0 0 1px #f9731647}.week-column-header{border-bottom:1px solid var(--border);z-index:2;background:#f8fafc;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex;position:sticky;top:0}.week-column-heading{flex-direction:column;gap:1px;min-width:0;display:flex}.week-column-title{color:var(--text-primary);font-size:13px;font-weight:800}.week-column-dates{color:var(--text-muted);white-space:nowrap;font-size:11px}.week-ongoing-toggle{border:1px solid var(--border);color:#475569;white-space:nowrap;background:#fff;border-radius:5px;flex:none;padding:3px 7px;font-size:11px;font-weight:700}.week-ongoing-toggle:hover:not(:disabled){color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.week-ongoing-toggle.active{color:#fff;background:#2563eb;border-color:#2563eb}.week-ongoing-toggle:disabled{opacity:.45;cursor:default}.week-task-list{flex-direction:column;gap:6px;padding:8px;display:flex}.week-column-scroll{flex:1;min-height:0;overflow:auto}.week-group-list{flex-direction:column;gap:8px;padding:8px;display:flex}.week-group-list>.week-empty{padding:4px}.week-n1-group{--week-group-color:#2563eb;--week-group-bg:#eff6ff;--week-subgroup-bg:#f8fafcf5;border-left:4px solid var(--week-group-color);padding-left:7px;overflow:visible}.week-n1-group:nth-child(2n){--week-group-color:#0891b2;--week-group-bg:#ecfeff;--week-subgroup-bg:#ecfeffeb}.week-n1-title{z-index:3;background:var(--week-group-bg);color:var(--week-group-color);text-overflow:ellipsis;white-space:nowrap;border-radius:5px;margin:-1px 0 5px;padding:3px 5px;font-size:11px;font-weight:850;position:sticky;top:0;overflow:hidden}.week-n2-group+.week-n2-group{margin-top:7px}.week-n2-title{z-index:2;background:var(--week-subgroup-bg);color:#475569;text-transform:uppercase;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;margin:0 0 4px;padding:2px 5px;font-size:10px;font-weight:800;position:sticky;top:24px;overflow:hidden}.week-column-ongoing{border-top:1px solid var(--border);background:#fbfdff}.week-column-ongoing-title{color:#475569;text-transform:uppercase;letter-spacing:.04em;padding:7px 10px 0;font-size:11px;font-weight:800}.week-empty{color:var(--text-muted);padding:12px 4px;font-size:12px}.week-card{text-align:left;width:100%;color:var(--text-primary);background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px}.week-card.summary{background:#f8fbff;border-left:3px solid #2563eb}.week-card.milestone{border-left:3px solid #7c3aed}.week-card:hover{background:#f8fbff;border-color:#bfdbfe}.week-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px #2563eb2e}.week-card-title{align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:700;line-height:1.25;display:flex}.week-card-title-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.week-type{color:#475569;flex:none;font-size:10px;line-height:1}.week-card-breadcrumb{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:10px;font-weight:600;overflow:hidden}.week-mini-plan{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-top:7px;display:grid}.week-mini-day{background:#f1f5f9;border-radius:4px;justify-content:center;align-items:center;height:18px;display:flex;position:relative;overflow:hidden}.week-mini-day.weekend{background:#e5e7eb}.week-mini-day.holiday{background:#fee2e2}.week-mini-day.active{background:#dbeafe}.week-mini-day.active:before{content:"";background:#2563eb;position:absolute;inset:5px 0}.week-mini-day.holiday.active{background:#fee2e2}.week-mini-day.holiday.active:before{background:#dc2626}.week-mini-day.holiday .week-mini-label{color:#b91c1c}.week-mini-day.starts:before,.week-mini-day.clipped-start:before{border-top-left-radius:5px;border-bottom-left-radius:5px;left:4px}.week-mini-day.ends:before,.week-mini-day.clipped-end:before{border-top-right-radius:5px;border-bottom-right-radius:5px;right:4px}.week-mini-day.milestone:before{content:"";background:#7c3aed;border-radius:2px;width:9px;height:9px;position:absolute;inset:auto;transform:rotate(45deg)}.week-mini-day.clipped-start:after,.week-mini-day.clipped-end:after{color:#1d4ed8;font-size:9px;font-weight:800;line-height:1;position:absolute;top:3px}.week-mini-day.clipped-start:after{content:"‹";left:1px}.week-mini-day.clipped-end:after{content:"›";right:1px}.week-mini-label{z-index:1;color:#64748b;font-size:9px;font-weight:700;position:relative}.week-mini-day.active .week-mini-label{color:#fff}.week-mini-day.milestone .week-mini-label{color:#0000}.week-card-meta,.week-event-row,.week-card-context,.week-card-tags,.week-card-resources{color:var(--text-muted);flex-wrap:wrap;gap:4px;margin-top:5px;font-size:11px;display:flex}.week-event-row{gap:4px}.week-chip{color:#475569;background:#f1f5f9;border-radius:5px;align-items:center;gap:3px;max-width:100%;padding:2px 5px;display:inline-flex}.week-chip strong{color:#334155;font-weight:700}.week-status{color:#fff;font-weight:700}.week-summary-chip{color:#1d4ed8;background:#dbeafe;font-weight:800}.week-status-done{background:#16a34a}.week-status-in_progress{background:#2563eb}.week-status-not_started{background:#64748b}.week-status-late{background:#dc2626}.week-status-at_risk{background:#f97316}.week-status-unknown{background:#94a3b8}.week-alert{color:#c2410c;background:#fff7ed;font-weight:700}.week-tag-chip{color:#fff;font-weight:800;box-shadow:inset 0 0 0 1px #ffffff38}.week-event-start{color:#047857;background:#ecfdf5;font-weight:800}.week-event-end{color:#b45309;background:#fef3c7;font-weight:800}.week-event-milestone{color:#6d28d9;background:#f3e8ff;font-weight:800}.week-detail-slot{border-left:1px solid var(--border);background:var(--bg-surface);min-width:0;min-height:0}.delay-view{background:#eef2f7;flex:1;min-width:0;min-height:0;display:flex}.delay-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.delay-toolbar{border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;align-items:center;gap:10px;height:44px;padding:0 14px;display:flex}.delay-title{color:var(--text-primary);font-size:13px;font-weight:800}.delay-count{color:#b91c1c;background:#fee2e2;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800}.delay-sub{color:var(--text-muted);font-size:12px}.delay-filter-clear{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;margin-left:auto;padding:4px 8px;font-size:11px;font-weight:850}.delay-filter-clear:hover{background:#e0e7ff}.delay-scroll{min-height:0;padding:12px;overflow:auto}.delay-empty{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);border-radius:8px;padding:18px;font-size:13px}.delay-group-list{flex-direction:column;gap:10px;display:flex}.delay-n1-group{--delay-group-color:#dc2626;--delay-group-bg:#fef2f2;border-left:4px solid var(--delay-group-color);padding-left:8px}.delay-n1-group:nth-child(2n){--delay-group-color:#f97316;--delay-group-bg:#fff7ed}.delay-n1-title{z-index:3;background:var(--delay-group-bg);color:var(--delay-group-color);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:5px 7px;font-size:12px;font-weight:850;display:flex;position:sticky;top:0}.delay-n1-title span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.delay-n1-count,.delay-n2-count{flex:none;font-size:11px;font-weight:800}.delay-n2-group+.delay-n2-group{margin-top:8px}.delay-n2-title{z-index:2;color:#475569;text-transform:uppercase;letter-spacing:.04em;background:#fffffff0;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px;padding:3px 6px;font-size:11px;font-weight:800;display:flex;position:sticky;top:31px}.delay-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.delay-card{text-align:left;width:100%;color:var(--text-primary);background:#fff;border:1px solid #fecaca;border-left:3px solid #dc2626;border-radius:7px;padding:9px}.delay-card:hover{background:snow;border-color:#f87171}.delay-card.selected{border-color:#dc2626;box-shadow:0 0 0 1px #dc262633}.delay-breadcrumb{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:10px;font-weight:600;overflow:hidden}.delay-card-header{align-items:center;gap:6px;min-width:0;display:flex}.delay-signal-badge{letter-spacing:.03em;border:1px solid;border-radius:4px;flex:none;padding:1px 5px;font-size:10px;font-weight:800}.delay-signal-late_finish{color:#dc2626;background:#fee2e2}.delay-signal-late_start{color:#c2410c;background:#ffedd5}.delay-signal-progress_risk{color:#854d0e;background:#fef9c3}.delay-card-title-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:700;overflow:hidden}.delay-outline{color:#64748b;font-weight:500}.delay-issue-count{color:#c2410c;flex:none;font-size:11px}.delay-meta-line{color:#475569;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;margin-top:3px;font-size:11px;display:flex;overflow:hidden}.delay-chips-row{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.delay-wp-chip{color:#5b21b6;cursor:pointer;letter-spacing:.02em;background:#ede9fe;border:0;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.delay-wp-chip:hover{background:#ddd6fe}.delay-res-chip{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600}.delay-tag-chip{color:#fff;background:#475569;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800;box-shadow:inset 0 0 0 1px #ffffff38}.delay-wp-filter{color:#6366f1;cursor:pointer;opacity:.6;background:0 0;border:none;flex:none;padding:0 2px;font-size:11px}.delay-wp-filter:hover{opacity:1}.delay-deps-toggle{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-top:5px;padding:2px 0;font-size:11px;font-weight:500;display:flex}.delay-deps-toggle:hover{color:#334155}.delay-deps-section{border-top:1px solid #f1f5f9;margin-top:4px;padding-top:6px}.delay-deps-label{letter-spacing:.08em;color:#94a3b8;margin-bottom:4px;font-size:9px;font-weight:700}.delay-dep-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:5px;margin-bottom:4px;padding:5px 6px}.delay-dep-header{align-items:center;gap:6px;min-width:0;display:flex}.delay-dep-type{color:#3730a3;white-space:nowrap;background:#e0e7ff;border-radius:4px;flex:none;padding:1px 5px;font-size:10px;font-weight:700}.delay-dep-task{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.delay-dep-outline{color:#64748b;font-weight:400}.delay-dep-resource{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11px;overflow:hidden}.delay-dep-meta{color:#475569;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11px;overflow:hidden}.delay-card-title{align-items:center;gap:6px;font-size:13px;font-weight:800;line-height:1.25;display:flex}.delay-type{color:#475569;flex:none;font-size:10px}.delay-meta,.delay-context,.delay-resources{color:var(--text-muted);flex-wrap:wrap;gap:4px;margin-top:6px;font-size:11px;display:flex}.delay-primary{margin-top:7px;display:flex}.delay-chip{color:#475569;background:#f1f5f9;border-radius:5px;align-items:center;gap:3px;max-width:100%;padding:2px 6px;display:inline-flex}.delay-chip-button{cursor:pointer;border:0}.delay-chip-button:hover{filter:brightness(.97);text-decoration:underline}.delay-primary-chip{font-size:12px;font-weight:900}.delay-chip strong{color:#334155;font-weight:800}.delay-chip-late{color:#b91c1c;background:#fee2e2;font-weight:850}.delay-chip-risk{color:#c2410c;background:#ffedd5;font-weight:850}.delay-chip-alert{color:#c2410c;background:#fff7ed;font-weight:800}.delay-chip-watch{color:#854d0e;background:#fef9c3;font-weight:800}.delay-chip-wp{color:#3730a3;background:#eef2ff;font-weight:800}.delay-card-actions{justify-content:flex-end;margin-top:8px;display:flex}.delay-open-planning{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:800}.delay-open-planning:hover{background:#dbeafe}.delay-create-action{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:800}.delay-create-action:hover{background:#dcfce7}.delay-action-form{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.delay-action-form textarea{resize:vertical;border:1px solid var(--border);width:100%;min-height:58px;font:inherit;color:var(--text-primary);border-radius:6px;padding:7px;font-size:12px}.delay-action-fields{grid-template-columns:minmax(0,1fr) 132px;gap:6px;margin-top:6px;display:grid}.delay-action-fields input{border:1px solid var(--border);width:100%;height:30px;font:inherit;border-radius:6px;padding:4px 7px;font-size:12px}.delay-action-form-actions{justify-content:flex-end;gap:6px;margin-top:7px;display:flex}.delay-action-save,.delay-action-cancel{border-radius:5px;padding:4px 9px;font-size:12px;font-weight:800}.delay-action-save{color:#fff;background:#16a34a}.delay-action-save:hover{background:#15803d}.delay-action-cancel{border:1px solid var(--border);color:#475569;background:#fff}.delay-action-cancel:hover{background:var(--bg-hover)}.delay-detail-slot{border-left:1px solid var(--border);background:var(--bg-surface);width:360px;min-width:360px;min-height:0}.actions-view{background:#eef2f7;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.actions-toolbar{border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;align-items:center;gap:10px;height:44px;padding:0 14px;display:flex}.actions-title{color:var(--text-primary);font-size:13px;font-weight:800}.actions-count{color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800}.actions-note-count{color:#6d28d9;background:#f5f3ff;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800}.actions-sub{color:var(--text-muted);font-size:12px}.actions-scroll{min-height:0;padding:12px;overflow:auto}.actions-create{border:1px solid var(--border);background:#fff;border-left:3px solid #2563eb;border-radius:8px;flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.actions-create-head{align-items:baseline;gap:8px;display:flex}.actions-create-head strong{color:var(--text-primary);font-size:13px}.actions-create-head span{color:var(--text-muted);font-size:12px}.actions-create textarea{resize:vertical;box-sizing:border-box;border:1px solid var(--border);width:100%;min-height:48px;color:var(--text-primary);background:#fff;border-radius:6px;padding:7px 8px;font-family:inherit;font-size:13px;line-height:1.35}.actions-create-grid{grid-template-columns:minmax(150px,220px) minmax(135px,180px) auto;align-items:end;gap:8px;display:grid}.actions-create-grid label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:3px;font-size:10px;font-weight:800;display:flex}.actions-create-grid input{border:1px solid var(--border);height:30px;color:var(--text-primary);background:#fff;border-radius:6px;padding:0 8px;font-family:inherit;font-size:12px}.actions-create textarea:focus,.actions-create-grid input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 2px #2563eb1f}.actions-create-grid button{color:#fff;cursor:pointer;background:#2563eb;border-radius:6px;height:30px;padding:0 12px;font-size:12px;font-weight:800}.actions-create-grid button:hover{background:#1d4ed8}.actions-create-error{color:#dc2626;margin:0;font-size:12px}.actions-empty{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);border-radius:8px;padding:18px;font-size:13px}.actions-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.action-card{border:1px solid var(--border);background:#fff;border-left:3px solid #2563eb;border-radius:8px;padding:10px}.action-card.done{opacity:.78;border-left-color:#16a34a}.action-card.cancelled{opacity:.62;border-left-color:#94a3b8}.action-card.note{background:#fdfcff;border-left-color:#7c3aed}.action-text{color:var(--text-primary);font-size:13px;font-weight:750;line-height:1.3}.action-meta{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.action-chip{color:#475569;background:#f1f5f9;border-radius:5px;align-items:center;gap:3px;padding:2px 6px;font-size:11px;display:inline-flex}.action-chip.overdue{color:#b91c1c;background:#fee2e2;font-weight:800}.action-chip.task{color:#3730a3;background:#eef2ff}.action-chip.tag{color:#fff;background:#475569;font-weight:800;box-shadow:inset 0 0 0 1px #ffffff38}.action-chip.note{color:#6d28d9;background:#f5f3ff;font-weight:800}.action-status-row{align-items:center;gap:6px;margin-top:10px;display:flex}.action-status-row select{border:1px solid var(--border);height:28px;color:var(--text-secondary);background:#fff;border-radius:6px;font-size:12px}.action-status-row button{border:1px solid var(--border);height:28px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:6px;padding:0 8px;font-size:12px}.action-status-row button:hover{color:var(--text-primary);background:#f8fafc}.action-edit-form{flex-direction:column;gap:8px;display:flex}.action-edit-form textarea,.action-edit-form input,.action-note-form input{box-sizing:border-box;border:1px solid var(--border);width:100%;color:var(--text-primary);background:#fff;border-radius:6px;font-family:inherit;font-size:12px}.action-edit-form textarea{resize:vertical;padding:7px 8px;line-height:1.35}.action-edit-form input,.action-note-form input{height:28px;padding:0 8px}.action-edit-form textarea:focus,.action-edit-form input:focus,.action-note-form input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 2px #2563eb1f}.action-edit-grid{grid-template-columns:minmax(0,1fr) 140px;gap:8px;display:grid}.action-edit-grid label,.action-edit-closing{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;gap:3px;font-size:10px;font-weight:800;display:flex}.action-edit-actions{gap:6px;display:flex}.action-edit-actions button,.action-note-form button{border:1px solid var(--border);height:28px;color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:6px;padding:0 9px;font-size:12px;font-weight:650}.action-edit-actions .action-save,.action-note-form button{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.action-closing-comment{color:#166534;background:#f0fdf4;border-radius:6px;margin-top:8px;padding:7px 8px;font-size:12px;line-height:1.35}.action-closing-comment strong{margin-right:4px}.action-notes{border-top:1px solid #eef2f7;flex-direction:column;gap:5px;margin-top:9px;padding-top:8px;display:flex}.action-note{color:var(--text-secondary);grid-template-columns:70px 1fr;align-items:start;gap:7px;font-size:12px;line-height:1.35;display:grid}.action-note time{color:var(--text-muted);font-size:11px;font-weight:700}.action-note-form{grid-template-columns:1fr auto;gap:6px;margin-top:9px;display:grid}.reunion-view{--nav-ink:#132238;--nav-muted:#64748b;--nav-line:#cbd5e1;--nav-blue:#2563eb;--nav-teal:#0f766e;--nav-orange:#f97316;--nav-red:#dc2626;background-color:#dbe3ee;background-image:linear-gradient(90deg,#1e293b14 1px,#0000 1px),linear-gradient(0deg,#1e293b0f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.reunion-command{border-bottom:1px solid var(--border);background:#ffffffeb;flex-shrink:0;grid-template-columns:58px minmax(0,1fr) auto auto;align-items:center;gap:14px;min-height:84px;padding:12px 16px;display:grid}.reunion-prepare-button{color:#c2410c;white-space:nowrap;background:#fff7ed;border:1px solid #fed7aa;border-radius:7px;min-height:34px;padding:0 12px;font-size:12px;font-weight:900}.reunion-prepare-button:hover{background:#ffedd5}.reunion-milestone-board{border:1px solid var(--nav-line);background:#fffffff5;border-radius:8px;flex:none;margin:12px 12px 0;overflow:hidden}.reunion-milestone-board-header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex}.reunion-milestone-board-header h2{color:var(--nav-ink);margin:0;font-size:15px;font-weight:900}.reunion-milestone-legend{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.reunion-milestone-legend span{color:var(--nav-muted);align-items:center;gap:5px;font-size:10px;font-weight:800;display:inline-flex}.reunion-milestone-legend span:before{content:"";border-radius:50%;width:8px;height:8px}.reunion-milestone-legend .done:before{background:#16a34a}.reunion-milestone-legend .late:before{background:#dc2626}.reunion-milestone-legend .soon:before{background:#f97316}.reunion-milestone-legend .later:before{background:#94a3b8}.reunion-timeline{background:#fff;min-width:0;overflow-x:auto}.reunion-timeline-months{border-bottom:1px solid #cbd5e1;grid-template-columns:repeat(10,minmax(92px,1fr));min-width:920px;display:grid}.reunion-timeline-month{color:#fff;text-align:center;text-transform:capitalize;background:#06b6d4;border-right:1px solid #ffffff73;min-height:22px;font-size:11px;font-weight:900;line-height:22px}.reunion-timeline-lane{background:repeating-linear-gradient(90deg,#0000 0 calc(10% - 1px),#e2e8f0 calc(10% - 1px) 10%),linear-gradient(#fff,#f8fafc);grid-template-columns:repeat(10,minmax(92px,1fr));align-items:stretch;min-width:920px;min-height:122px;display:grid}.reunion-timeline-lane.expanded{min-height:190px}.reunion-timeline-month-cell{border-right:1px solid #e2e8f0;min-width:0;padding:7px 5px 5px;overflow:hidden}.reunion-timeline-month-cell.expanded{background:#eff6ffb8;overflow:visible}.reunion-timeline-event{grid-template-columns:10px minmax(0,1fr);align-items:start;gap:5px;min-width:0;padding:2px 0;display:grid;position:relative}.reunion-timeline-event .reunion-milestone-add{width:16px;height:16px;font-size:10px;position:absolute;top:0;right:0}.reunion-timeline-marker{background:#94a3b8;border-radius:2px;width:8px;height:8px;margin-top:5px;transform:rotate(45deg);box-shadow:0 0 0 2px #fff}.reunion-timeline-event.done .reunion-timeline-marker{background:#16a34a}.reunion-timeline-event.late .reunion-timeline-marker{background:#dc2626}.reunion-timeline-event.soon .reunion-timeline-marker{background:#f97316}.reunion-timeline-event.later .reunion-timeline-marker{background:#1e3a8a}.reunion-timeline-label{color:#1e2a5a;text-align:left;background:0 0;border:0;min-width:0;max-width:100%;padding:0;font-size:9.5px;font-weight:760;line-height:1.2}.reunion-timeline-label:disabled{cursor:default}.reunion-timeline-label strong{color:#1d4ed8;white-space:nowrap;font-size:9px;font-weight:900;display:block}.reunion-timeline-label span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.reunion-timeline-event.selected .reunion-timeline-label{color:#c2410c;font-weight:900}.reunion-timeline-selection{min-width:920px;color:var(--nav-muted);border-top:1px solid #e2e8f0;padding:5px 10px;font-size:10px;font-weight:800}.reunion-timeline-collapse{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;margin:6px 10px 8px auto;padding:3px 8px;font-size:10px;font-weight:900;display:block}.reunion-timeline-more{color:#64748b;white-space:nowrap;background:0 0;border:0;margin:2px 0 0 15px;padding:0;font-size:9px;font-weight:850;display:inline-flex}.reunion-timeline-more:hover{color:#1d4ed8;text-decoration:underline}.reunion-dashboard-icon{object-fit:contain;width:48px;height:48px}.reunion-heading{min-width:0}.reunion-kicker{color:var(--nav-teal);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:900}.reunion-heading h1{color:var(--nav-ink);margin:1px 0 2px;font-size:22px;line-height:1.05}.reunion-heading p{color:var(--nav-muted);margin:0;font-size:12px}.reunion-instruments{grid-template-columns:repeat(4,86px);gap:7px;display:grid}.reunion-instruments div{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;min-width:0;padding:7px 8px}.reunion-instruments strong{color:#1d4ed8;font-size:18px;line-height:1;display:block}.reunion-instruments span{color:var(--nav-muted);white-space:nowrap;margin-top:3px;font-size:10px;font-weight:700;display:block}.reunion-layout{flex:1;grid-template-columns:minmax(0,1fr);gap:12px;min-height:0;padding:12px;display:grid}.reunion-layout.preparing{grid-template-columns:minmax(0,1fr) 330px}.reunion-chart{grid-template-columns:minmax(360px,1.08fr) minmax(360px,.92fr);gap:12px;min-width:0;min-height:0;display:grid}.reunion-route-panel{grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;min-height:0;display:grid;position:relative}.reunion-zone,.reunion-agenda{border:1px solid var(--nav-line);background:#fffffff5;border-radius:8px;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.reunion-zone-hot{border-color:#fdba74;box-shadow:inset 4px 0 #f97316}.reunion-zone-done{box-shadow:inset 4px 0 #16a34a}.reunion-zone-next{box-shadow:inset 4px 0 #2563eb}.reunion-zone-milestones{box-shadow:inset 4px 0 #7c3aed}.reunion-zone-header,.reunion-agenda-header{border-bottom:1px solid var(--border);background:#f8fafc;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 12px 10px 14px;display:flex}.reunion-zone-header.compact{padding-left:28px}.reunion-zone-index{color:var(--nav-teal);letter-spacing:.08em;margin-bottom:2px;font-size:10px;font-weight:900;display:inline-block}.reunion-zone-header h2,.reunion-agenda-header h2{color:var(--nav-ink);margin:0;font-size:14px;font-weight:900}.reunion-zone-header p{color:var(--nav-muted);margin:2px 0 0;font-size:11px}.reunion-zone-header>span,.reunion-agenda-header>span{color:#075985;background:#e0f2fe;border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:900}.reunion-items{min-height:0;padding:9px;overflow:auto}.reunion-items.compact{padding-left:26px}.reunion-milestone-strip{grid-auto-columns:minmax(112px,1fr);grid-auto-flow:column;align-items:stretch;gap:6px;min-height:0;padding:10px 10px 10px 28px;display:grid;overflow:auto hidden}.reunion-milestone-strip.dashboard{grid-auto-columns:minmax(118px,1fr);padding:16px 12px 12px;position:relative}.reunion-milestone-strip.dashboard:before{content:"";background:#cbd5e1;height:2px;position:absolute;top:23px;left:22px;right:22px}.reunion-milestone-dot{background:#faf5ff;border:1px solid #ddd6fe;border-top:3px solid #7c3aed;border-radius:8px;grid-template-rows:auto auto auto 1fr auto;gap:3px;min-width:108px;padding:10px 8px 8px;display:grid;position:relative}.reunion-milestone-dot:before{content:"";background:#7c3aed;border:2px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;top:-9px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #c4b5fd}.reunion-milestone-dot.late{background:#fff7ed;border-color:#dc2626 #fecaca #fecaca}.reunion-milestone-dot.late:before{background:#dc2626;box-shadow:0 0 0 1px #fca5a5}.reunion-milestone-dot.done{background:#f0fdf4;border-color:#16a34a #bbf7d0 #bbf7d0}.reunion-milestone-dot.done:before{background:#16a34a;box-shadow:0 0 0 1px #86efac}.reunion-milestone-dot.soon{background:#fff7ed;border-color:#f97316 #fed7aa #fed7aa}.reunion-milestone-dot.soon:before{background:#f97316;box-shadow:0 0 0 1px #fdba74}.reunion-milestone-dot.later{background:#f8fafc;border-color:#94a3b8 #e2e8f0 #e2e8f0}.reunion-milestone-dot.later:before{background:#94a3b8;box-shadow:0 0 0 1px #cbd5e1}.reunion-milestone-dot.selected{box-shadow:inset 0 0 0 1px #2563eb42}.reunion-milestone-add{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:50%;justify-self:center;width:22px;height:22px;font-size:13px;font-weight:900}.reunion-milestone-date{color:#312e81;text-align:center;white-space:nowrap;font-size:11px;font-weight:900}.reunion-milestone-count{color:#5b21b6;white-space:nowrap;background:#ede9fe;border-radius:999px;justify-self:center;padding:2px 6px;font-size:10px;font-weight:850}.reunion-milestone-label{color:var(--text-primary);text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10px;font-weight:780;line-height:1.25;display:-webkit-box;overflow:hidden}.reunion-item{border:1px solid var(--border);background:#fff;border-left:3px solid #94a3b8;border-radius:7px;padding:8px}.reunion-item+.reunion-item{margin-top:6px}.reunion-item.done{border-left-color:#16a34a}.reunion-item.next{border-left-color:#2563eb}.reunion-item.warning{border-left-color:#f97316}.reunion-item.danger{border-left-color:#dc2626}.reunion-item.milestone{border-left-color:#7c3aed}.reunion-item.selected{background:#f8fbff;box-shadow:inset 0 0 0 1px #2563eb38}.reunion-item-main{align-items:flex-start;gap:7px;display:flex}.reunion-agenda-toggle{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:50%;flex:none;width:22px;height:22px;font-size:13px;font-weight:900}.reunion-item-text{min-width:0}.reunion-item-title{color:var(--text-primary);font-size:12px;font-weight:850;line-height:1.25}.reunion-item-subtitle{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10px;overflow:hidden}.reunion-item-badges{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.reunion-chip,.reunion-open-task{border-radius:5px;align-items:center;min-height:20px;padding:2px 6px;font-size:10px;display:inline-flex}.reunion-chip{color:#475569;background:#f1f5f9}.reunion-chip.wp{color:#3730a3;background:#e0e7ff;font-weight:850}.reunion-open-task{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;font-weight:800}.reunion-open-task.compact{justify-content:center;min-height:18px;padding:1px 5px;font-size:9px}.reunion-empty{color:var(--text-muted);margin:0;padding:12px;font-size:12px}.reunion-agenda{border-color:#99f6e4;box-shadow:inset 0 3px #0f766e}.reunion-agenda-list{min-height:0;margin:0;padding:8px 8px 8px 28px;overflow:auto}.reunion-agenda-list li{color:var(--text-primary);padding:8px 0;font-size:12px;font-weight:750}.reunion-agenda-list li+li{border-top:1px solid var(--border)}.reunion-agenda-list button{color:#dc2626;margin-top:4px;font-size:10px;display:block}@media (width<=1280px){.reunion-command{grid-template-columns:48px minmax(0,1fr) auto}.reunion-instruments{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}.reunion-prepare-button{grid-area:1/3}.reunion-layout,.reunion-layout.preparing,.reunion-chart{grid-template-columns:minmax(0,1fr)}.reunion-route-panel{grid-template-rows:none}.reunion-zone{min-height:280px}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.path-view{background:#eef2f7;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.path-toolbar{border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:14px;height:56px;padding:0 16px;display:flex}.path-toolbar h2{color:var(--text-primary);margin:0;font-size:15px;font-weight:900}.path-toolbar p{color:var(--text-muted);margin:2px 0 0;font-size:12px}.path-open-planning{background:var(--accent);color:#fff;border-radius:7px;padding:6px 10px;font-size:12px;font-weight:850}.path-open-planning:hover{background:#1d4ed8}.path-toolbar-actions{align-items:center;gap:8px;display:flex}.path-zoom-state{color:var(--text-muted);text-transform:uppercase;background:#f1f5f9;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:850}.path-impact-toggle{border:1px solid var(--border);color:var(--text-secondary);background:#fff;border-radius:7px;padding:6px 10px;font-size:12px;font-weight:850}.path-impact-toggle.active{color:#334155;background:#e2e8f0;border-color:#94a3b8}.path-empty{border:1px solid var(--border);color:var(--text-muted);background:#fff;border-radius:10px;margin:18px;padding:18px;font-size:13px}.path-body{flex:1;grid-template-columns:300px minmax(0,1fr);gap:12px;min-height:0;padding:12px;display:grid}.path-target-panel{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;flex-direction:column;gap:7px;min-height:0;max-height:100%;padding:12px;display:flex;overflow:auto}.path-panel-label{color:#1d4ed8;text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:900}.path-target-panel strong{color:var(--text-primary);font-size:14px;font-weight:900;line-height:1.25}.path-target-panel em,.path-target-panel>span:not(.path-panel-label){color:var(--text-secondary);font-size:12px;font-style:normal}.path-target-stats{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.path-target-stats span{color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:850}.path-impact-panel{border-top:1px solid #bfdbfe;flex-direction:column;gap:8px;margin-top:8px;padding-top:10px;display:flex}.path-impact-panel>p,.path-impact-list p{color:var(--text-muted);margin:0;font-size:11px;line-height:1.35}.path-margin-panel{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;grid-template-columns:1fr 1fr;gap:5px;padding:8px;display:grid}.path-margin-panel.zero{background:#fef2f2;border-color:#fecaca}.path-margin-panel.tight{background:#fff7ed;border-color:#fed7aa}.path-margin-panel.roomy{background:#f0fdf4;border-color:#bbf7d0}.path-margin-panel span{color:var(--text-muted);flex-direction:column;gap:2px;font-size:10px;font-weight:800;display:flex}.path-margin-panel b{color:var(--text-primary);font-size:13px;font-weight:950}.path-margin-panel p{color:var(--text-secondary);grid-column:1/-1;margin:2px 0 0;font-size:11px;line-height:1.35}.path-impact-list{flex-direction:column;gap:5px;display:flex}.path-impact-list h3{color:var(--text-secondary);margin:4px 0 0;font-size:11px;font-weight:900}.path-impact-row{text-align:left;background:#ffffffc7;border:1px dashed #cbd5e1;border-radius:8px;flex-direction:column;gap:5px;padding:7px;display:flex}.path-impact-row:hover{background:#fff;border-style:solid;border-color:#94a3b8}.path-impact-row-main,.path-impact-row-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.path-impact-row-main b{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:11px;font-weight:900;overflow:hidden}.path-impact-row-main em,.path-impact-row-meta small{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:10px;font-style:normal;overflow:hidden}.path-impact-row-meta small:first-child{color:var(--text-secondary);font-weight:800}.path-flow-shell{border:1px solid var(--border);background:#eef2f7;border-radius:12px;min-width:0;min-height:0;overflow:hidden}.path-flow-shell .react-flow{background:#eef2f7}.path-flow-shell .react-flow__attribution{display:none}.path-link-overlay{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.path-flow-shell .react-flow__nodes{z-index:2}.path-bus-segment{stroke:#64748b;stroke-width:1.4px;stroke-linecap:round;opacity:.48;vector-effect:non-scaling-stroke}.path-bus-segment.selected{stroke:#f97316;stroke-width:3px;opacity:1;filter:drop-shadow(0 0 2px #f97316a6);stroke-dasharray:8 6;animation:1s linear infinite path-bus-flow}.path-bus-arrow{fill:none;stroke:#64748b;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;opacity:.72;vector-effect:non-scaling-stroke}.path-bus-arrow.selected{stroke:#f97316;stroke-width:3px;opacity:1;filter:drop-shadow(0 0 2px #f97316a6)}@keyframes path-bus-flow{to{stroke-dashoffset:-17px}}.path-flow-card{border:1px solid var(--border);background:#fff;border-left:5px solid #94a3b8;border-radius:10px;flex-direction:column;gap:3px;width:220px;min-height:82px;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 5px #0f172a14}.path-flow-card.lod-overview{border-radius:8px;width:120px;min-height:38px}.path-flow-card.lod-summary{min-height:58px}.path-flow-card.lod-detail{min-height:72px}.path-flow-handle{opacity:0;background:#fff;border:2px solid #64748b;width:8px;height:8px}.path-flow-card.target{border-color:#c4b5fd #c4b5fd #c4b5fd #7c3aed;box-shadow:0 0 0 2px #7c3aed1f,0 8px 18px #0f172a1a}.path-flow-card.impact{opacity:.9;background:#f8fafc;border-style:dashed;border-left-color:#94a3b8}.path-flow-card.highlighted{border-color:#fdba74;box-shadow:0 0 0 2px #f9731647,0 8px 18px #0f172a1a}.path-flow-card.impact.highlighted{opacity:1;border-style:solid}.path-flow-card.status-late{border-left-color:#dc2626}.path-flow-card.status-at_risk{border-left-color:#f97316}.path-flow-card.status-in_progress,.path-flow-card.status-done{border-left-color:#16a34a}.path-flow-card.status-not_started{border-left-color:#2563eb}.path-flow-card-head{justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 0;display:flex}.path-flow-card.lod-overview .path-flow-card-head{padding:7px 8px}.path-flow-card.lod-overview .path-flow-status{max-width:78px;padding:1px 5px;font-size:8px}.path-flow-card.lod-overview .path-flow-distance{font-size:9px}.path-flow-status{text-overflow:ellipsis;white-space:nowrap;max-width:130px;color:var(--text-secondary);background:#f1f5f9;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:850;overflow:hidden}.path-flow-card.status-late .path-flow-status{color:#991b1b;background:#fee2e2}.path-flow-card.status-at_risk .path-flow-status{color:#9a3412;background:#ffedd5}.path-flow-card.status-in_progress .path-flow-status,.path-flow-card.status-done .path-flow-status{color:#166534;background:#dcfce7}.path-flow-card.status-not_started .path-flow-status{color:#1d4ed8;background:#dbeafe}.path-flow-card.target .path-flow-status{color:#5b21b6;background:#ede9fe}.path-flow-card.impact .path-flow-status{color:#475569;background:#e2e8f0}.path-flow-distance{color:#64748b;flex-shrink:0;font-size:10px;font-weight:900}.path-flow-card strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);padding:0 8px;font-size:11px;font-weight:900;line-height:1.25;display:block;overflow:hidden}.path-flow-margin{color:#475569;background:#f1f5f9;border-radius:999px;align-self:flex-start;margin-left:8px;padding:1px 6px;font-size:9px;font-weight:900}.path-flow-margin.zero{color:#991b1b;background:#fee2e2}.path-flow-margin.tight{color:#9a3412;background:#ffedd5}.path-flow-margin.roomy{color:#166534;background:#dcfce7}.path-flow-margin.unknown{color:#475569;background:#e2e8f0}.path-flow-context,.path-flow-dates{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);padding:0 8px;font-size:10px;display:block;overflow:hidden}.path-flow-dates{color:var(--text-secondary);font-weight:800}.path-flow-footer{background:#f8fafc;border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:5px 8px;display:flex}.path-flow-footer span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:9px;overflow:hidden}.path-flow-footer button{color:#1d4ed8;background:#dbeafe;border-radius:6px;flex-shrink:0;padding:3px 7px;font-size:10px;font-weight:900}.path-flow-footer button:hover{background:#bfdbfe}.react-flow__edge.path-flow-edge{z-index:0}.react-flow__edge.path-flow-edge path{stroke:#64748b;stroke-width:1.5px;opacity:.9;transition:opacity .12s,stroke-width .12s}.react-flow__edge.path-flow-edge.dimmed path{opacity:.22}.react-flow__edge.path-flow-edge.selected path{stroke:#f97316;stroke-width:4px;opacity:1;filter:drop-shadow(0 0 3px #f97316bf)}.react-flow__edge.path-flow-edge.selected{z-index:20}.react-flow__edge.path-flow-edge.impact path{stroke-dasharray:6 5}.react-flow__edge.path-flow-edge.impact.selected path{stroke-dasharray:none}.react-flow__edge.path-flow-edge.selected .react-flow__edge-text{fill:#9a3412;font-weight:900}.react-flow__edge.path-flow-edge.dimmed .react-flow__edge-text,.react-flow__edge.path-flow-edge.dimmed .react-flow__edge-textbg{opacity:.22}.react-flow__edge-text{fill:#64748b;font-size:10px;font-weight:800}.path-flow-card.lod-overview+.react-flow__handle,.path-flow-card.lod-summary+.react-flow__handle{opacity:0}.react-flow__edge-textbg{fill:#eef2f7;fill-opacity:.88}.react-flow__controls{border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:0 4px 16px #0f172a1f}.react-flow__minimap{border:1px solid var(--border);background:#ffffffeb;border-radius:8px;overflow:hidden}.path-hover-card{z-index:1000;pointer-events:none;background:#fffffffa;border:1px solid #cbd5e1;border-radius:10px;flex-direction:column;gap:6px;width:316px;padding:10px;display:flex;position:fixed;box-shadow:0 14px 34px #0f172a2e}.path-hover-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.path-hover-head span,.path-hover-head strong{color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900}.path-hover-card b{color:var(--text-primary);font-size:13px;line-height:1.25}.path-hover-card em,.path-hover-card span,.path-hover-card small{color:var(--text-muted);font-size:11px;font-style:normal;line-height:1.3}.path-hover-card span{color:var(--text-secondary);font-weight:800}.path-junction-diamond{fill:#fff;stroke:#64748b;stroke-width:1.5px;vector-effect:non-scaling-stroke;transition:fill .12s,stroke .12s}.path-junction:hover .path-junction-diamond{fill:#f1f5f9;stroke:#334155}.path-junction.selected .path-junction-diamond{fill:#fff7ed;stroke:#f97316;stroke-width:2.5px;filter:drop-shadow(0 0 4px #f9731680)}.path-junction.critical .path-junction-diamond{fill:#fef2f2;stroke:#dc2626}.path-junction.critical.selected .path-junction-diamond{stroke:#dc2626;filter:drop-shadow(0 0 4px #dc262680)}.path-junction-label{fill:#64748b;pointer-events:none;font-family:system-ui,-apple-system,sans-serif;font-size:9px;font-weight:900}.path-junction.selected .path-junction-label{fill:#f97316}.path-junction.critical .path-junction-label{fill:#dc2626}.path-junction-feed-list{flex-direction:column;gap:4px;margin-top:4px;display:flex}.path-junction-feed-row{color:var(--text-secondary);background:#ffffffb3;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;font-size:11px;display:flex}.path-junction-feed-row span:first-child{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-app:#f1f5f9;--bg-surface:#fff;--bg-card:#f8fafc;--bg-hover:#f1f5f9;--border:#e2e8f0;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--danger:#dc2626;--success:#16a34a;--warning:#f97316;color:var(--text-primary);font-family:system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}body{background:var(--bg-app);height:100dvh;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.btn-primary{background:var(--accent);color:#fff;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:13px}.btn-ghost:hover{background:var(--bg-hover)}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-header{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.app-title{color:var(--accent);font-size:16px;font-weight:700}.app-logo{flex-shrink:0;width:auto;height:28px;display:block}.app-project-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:220px;color:var(--text-secondary);text-align:left;border-radius:5px;padding:3px 6px;font-size:13px;font-weight:600;overflow:hidden}.app-project-name:hover{background:var(--bg-hover);color:var(--text-primary)}.app-project-name-input{border:1px solid var(--accent);width:220px;height:28px;color:var(--text-primary);font:inherit;background:#fff;border-radius:6px;outline:none;padding:0 8px;font-size:13px;font-weight:600}.app-spacer{flex:1}.header-btn{color:var(--text-secondary);border:1px solid var(--border);background:var(--bg-surface);border-radius:6px;padding:5px 10px;font-size:12px}.header-btn:hover{background:var(--bg-hover)}.header-import-option{color:var(--text-muted);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:flex}.header-import-option input{width:13px;height:13px;accent-color:var(--accent)}.app-tabs{gap:2px;margin-left:16px;display:flex}.app-tab{color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:13px}.app-tab:hover{background:var(--bg-hover)}.app-tab.active{background:var(--accent);color:#fff;font-weight:600}.app-body{flex:1;min-height:0;display:flex;overflow:hidden}.import-warnings-banner{color:#78350f;background:#fef3c7;border-bottom:1px solid #fcd34d;flex-shrink:0;align-items:flex-start;gap:12px;padding:10px 16px;font-size:12px;display:flex}.import-warnings-content{flex:1}.import-warnings-content strong{margin-bottom:4px;font-weight:700;display:block}.import-warnings-content ul{margin:0;padding-left:18px}.import-warnings-content li{margin:2px 0}.import-warnings-close{color:#92400e;cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1}.welcome{background:var(--bg-app);flex:1;justify-content:center;align-items:center;display:flex}.welcome-card{background:var(--bg-surface);border:1px solid var(--border);text-align:center;border-radius:12px;width:100%;max-width:420px;padding:40px 48px;box-shadow:0 4px 24px #0000000f}.welcome-logo{color:var(--accent);margin-bottom:6px;font-size:32px;font-weight:800}.welcome-logo-img{width:auto;height:64px;margin:0 auto 12px;display:block}.welcome-sub{color:var(--text-muted);margin-bottom:28px;font-size:14px}.welcome-btns{flex-direction:column;gap:10px;display:flex}.welcome-btns .btn-primary,.welcome-btns .btn-ghost{padding:10px;font-size:14px}.import-option{border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.import-option input{width:14px;height:14px;accent-color:var(--accent)}.welcome-create-form{flex-direction:column;gap:10px;display:flex}.welcome-create-input{border:2px solid var(--accent);background:var(--bg-surface);width:100%;color:var(--text-primary);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:15px}.welcome-create-input::placeholder{color:var(--text-muted)}.welcome-create-actions{gap:8px;display:flex}.welcome-create-actions .btn-primary,.welcome-create-actions .btn-ghost{flex:1;padding:9px;font-size:14px}.xm-backdrop{z-index:200;background:#0f172a66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.xm-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:min(440px,100vw - 48px);display:flex;overflow:hidden;box-shadow:0 24px 70px #0f172a47}.xm-head{border-bottom:1px solid var(--border);background:var(--bg-card);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.xm-head h3{margin:0;font-size:15px;font-weight:700}.xm-close{color:var(--text-muted);border-radius:4px;padding:2px 6px;font-size:18px}.xm-close:hover{background:var(--bg-hover);color:var(--text-primary)}.xm-sub{color:var(--text-muted);flex-shrink:0;padding:10px 16px 6px;font-size:12px}.xm-toolbar{flex-shrink:0;gap:6px;padding:4px 16px 8px;display:flex}.xm-toolbar button{color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.xm-toolbar button:hover{background:var(--bg-hover)}.xm-list{border-top:1px solid var(--border);flex:1;min-height:0;padding:4px 0;overflow-y:auto}.xm-item{cursor:pointer;align-items:center;gap:10px;padding:8px 16px;display:flex}.xm-item:hover{background:var(--bg-hover)}.xm-item input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.xm-item-name{font-size:13px;font-weight:500}.xm-item-count{color:var(--text-muted);margin-left:auto;font-size:11px}.xm-footer{border-top:1px solid var(--border);background:var(--bg-card);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.xm-panel{width:min(520px,100vw - 48px)}.xm-family{border-bottom:1px solid var(--border)}.xm-family:last-child{border-bottom:none}.xm-toggle{color:var(--text-muted);border:1px solid var(--border);border-radius:3px;flex-shrink:0;margin-left:4px;padding:2px 5px;font-size:9px}.xm-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.xm-ms-list{flex-direction:column;gap:3px;padding:0 0 6px 42px;list-style:none;display:flex}.xm-ms-item{align-items:baseline;gap:7px;font-size:12px;display:flex}.xm-ms-dot{background:var(--accent);border-radius:2px;flex-shrink:0;width:7px;height:7px;margin-bottom:-1px;display:inline-block;transform:rotate(45deg)}.xm-ms-late .xm-ms-dot{background:var(--danger)}.xm-ms-at_risk .xm-ms-dot{background:var(--warning)}.xm-ms-done .xm-ms-dot{background:var(--success)}.xm-ms-name{color:var(--text-primary);font-weight:500}.xm-ms-date{color:var(--text-muted);white-space:nowrap;flex-shrink:0}.xm-ms-ctx{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-style:italic;overflow:hidden}.xm-ms-late .xm-ms-name{color:var(--danger)}.xm-ms-at_risk .xm-ms-name{color:var(--warning)}.xm-tab-section{border-bottom:1px solid var(--border)}.xm-tab-section:last-child{border-bottom:none}.xm-tab-row{padding:10px 16px}.xm-tab-icon{flex-shrink:0;font-size:13px}.xm-has-sub{background:var(--bg-card)}.xm-sub-panel{border-top:1px dashed var(--border);padding:0 0 8px 40px}.xm-sub-toolbar{align-items:center;gap:6px;padding:6px 16px 6px 0;display:flex}.xm-sub-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex:1;font-size:11px;font-weight:700}.xm-sub-toolbar button{color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600}.xm-search{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-primary);border-radius:6px;outline:none;padding:6px 10px;font-family:inherit;font-size:13px}.xm-search:focus{border-color:var(--accent)}.xm-sub-toolbar-actions{padding-top:4px}.xm-ms-flat{padding-left:8px!important}.xm-ms-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.xm-ms-family{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:10px;font-style:italic}.xm-ms-empty{color:var(--text-muted);padding:4px 0;font-size:12px;font-style:italic}.xm-panel{resize:both;min-width:380px;height:min(560px,100vh - 80px);min-height:220px;overflow:hidden}.xm-head{cursor:move;-webkit-user-select:none;user-select:none;flex-shrink:0}.xm-footer{flex-shrink:0}
