.gantt-page-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0 1rem 1rem}.gantt-wrap{display:flex;flex-direction:column;flex:1;background:var(--lysis-surface,#fff);border-radius:8px;overflow:hidden;border:1px solid var(--lysis-border,#e0e0e0);min-height:0}.gantt-page-error,.gantt-page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem;color:var(--lysis-text-muted,#888)}.gantt-page-error  .material-symbols-outlined,.gantt-page-loading .material-symbols-outlined{font-size:3rem}.gantt-page-error{color:var(--lysis-danger,#d32f2f)}.gantt-toolbar{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--lysis-border,#e0e0e0);gap:1rem;flex-shrink:0}.gantt-title{margin:0;font-size:1rem;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-toolbar-right{display:flex;align-items:center;gap:.75rem}.gantt-view-toggle{display:flex;border:1px solid var(--lysis-border,#e0e0e0);border-radius:4px;overflow:hidden}.gantt-view-btn{padding:.25rem .75rem;background:transparent;border:none;border-right:1px solid var(--lysis-border,#e0e0e0);cursor:pointer;font-size:.8rem;color:var(--lysis-text,#333);transition:background .15s}.gantt-view-btn:last-child {border-right:none}.gantt-view-btn:hover {background:var(--lysis-surface-hover,#f5f5f5)}.gantt-view-btn.active{background:var(--lysis-accent,#4f7bff);color:#fff}.gantt-nav{display:flex;align-items:center;gap:.25rem}.gantt-nav-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--lysis-border,#e0e0e0);border-radius:4px;background:transparent;cursor:pointer;color:var(--lysis-text,#333);transition:background .15s}.gantt-nav-btn:hover {background:var(--lysis-surface-hover,#f5f5f5)}.gantt-nav-btn .material-symbols-outlined{font-size:1.1rem}.gantt-today-btn{padding:.25rem .75rem;border:1px solid var(--lysis-border,#e0e0e0);border-radius:4px;background:transparent;cursor:pointer;font-size:.8rem;color:var(--lysis-text,#333);transition:background .15s}.gantt-today-btn:hover {background:var(--lysis-surface-hover,#f5f5f5)}.gantt-chart{display:flex;flex-direction:column;flex:1;overflow:auto;min-height:0}.gantt-header-row{display:flex;position:sticky;top:0;z-index:10;background:var(--lysis-surface,#fff);border-bottom:2px solid var(--lysis-border,#e0e0e0);flex-shrink:0}.gantt-header-label{font-weight:600;font-size:.75rem;color:var(--lysis-text-muted,#888);display:flex;align-items:center;padding-left:.75rem;text-transform:uppercase;letter-spacing:.05em}.gantt-header-dates{display:flex;overflow:hidden}.gantt-date-cell{display:flex;align-items:center;justify-content:center;padding:.4rem 0;border-right:1px solid var(--lysis-border,#e0e0e0);min-width:0;font-size:.7rem;color:var(--lysis-text-muted,#888)}.gantt-date-cell:last-child {border-right:none}.gantt-date-cell.today .gantt-date-label{color:var(--lysis-accent,#4f7bff);font-weight:700}.gantt-date-cell.weekend{background:var(--lysis-surface-alt,#fafafa)}.gantt-date-label{white-space:pre-line;text-align:center;line-height:1.2}.gantt-rows-wrap{flex:1;overflow:auto;min-height:0}.gantt-rows{display:flex;flex-direction:column}.gantt-row{display:flex;border-bottom:1px solid var(--lysis-border,#e0e0e0);min-height:2.5rem}.gantt-row:last-child {border-bottom:none}.gantt-row:hover .gantt-row-label {background:var(--lysis-surface-hover,#f5f5f5)}.gantt-row-label{flex:0 0 200px;min-width:200px;max-width:200px;padding:0 .75rem;font-size:.8rem;color:var(--lysis-text,#333);display:flex;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--lysis-border,#e0e0e0);background:var(--lysis-surface,#fff);position:sticky;left:0;z-index:5;transition:background .1s}.gantt-row-bars{flex:1;display:flex;position:relative;overflow:hidden;min-height:2.5rem}.gantt-bg-cell{flex-shrink:0;height:100%;border-right:1px solid var(--lysis-border-subtle,#f0f0f0)}.gantt-bg-cell:last-child {border-right:none}.gantt-bg-cell.weekend{background:var(--lysis-surface-alt,#fafafa)}.gantt-bg-cell.today{background:color-mix(in srgb,var(--lysis-accent,#4f7bff) 8%,transparent)}.gantt-bar{position:absolute;top:25%;height:50%;border-radius:3px;display:flex;align-items:center;overflow:hidden;cursor:pointer;text-decoration:none;color:#fff;min-width:4px;transition:filter .15s,box-shadow .15s;box-shadow:0 1px 3px rgba(0,0,0,0.15)}.gantt-bar:hover {filter:brightness(1.1);box-shadow:0 2px 6px rgba(0,0,0,0.2)}.gantt-bar-progress{position:absolute;left:0;top:0;height:100%;background:rgba(0,0,0,0.2);pointer-events:none}.gantt-bar-text{position:relative;z-index:1;padding:0 .4rem;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.gantt-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:.75rem;color:var(--lysis-text-muted,#999)}.gantt-empty .material-symbols-outlined{font-size:2.5rem}.gantt-empty p{margin:0;font-size:.9rem}