*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{color:#ddd;background-color:#16161a;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#root{width:100%;height:100%}.gantt-wrapper{width:100vw;height:100vh;display:flex;overflow:hidden}.gantt-sidebar{background:#12121a;border-right:1px solid #333;flex-direction:column;flex-shrink:0;width:200px;display:flex}.sidebar-logo{border-bottom:1px solid #333;align-items:center;gap:12px;padding:16px;display:flex}.logo-icon{color:#fff;background:linear-gradient(135deg,#4299e1,#9f7aea);border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;font-weight:700;display:flex}.logo-text{color:#fff;font-size:16px;font-weight:600}.sidebar-menu{flex-direction:column;gap:4px;padding:12px 8px;display:flex}.sidebar-item{color:#888;cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.sidebar-item:hover{color:#ccc;background:#1a1a2e}.sidebar-item.active{color:#fff;background:#252540}.sidebar-icon{text-align:center;width:20px;font-size:16px}.sidebar-spacer{flex:1}.sidebar-user{color:#888;border-top:1px solid #333;align-items:center;gap:12px;padding:16px;font-size:14px;display:flex}.user-avatar{color:#ccc;background:#252540;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.gantt-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.gantt-toolbar{background:#1a1a2e;border-bottom:1px solid #333;flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex}.toolbar-btn{color:#ccc;cursor:pointer;background:#252540;border:1px solid #333;border-radius:4px;padding:6px 12px;font-size:12px}.toolbar-btn:hover{color:#fff;background:#303050}.toolbar-divider{background:#333;width:1px;height:24px;margin:0 4px}.gantt-container{flex:1;grid-template-rows:auto 1fr;grid-template-columns:340px 1fr;display:grid;position:relative;overflow:auto}.gantt-corner{z-index:3;background:#1a1a2e;border-bottom:1px solid #333;border-right:1px solid #333;flex-direction:column;min-width:340px;display:flex;position:sticky;top:0;left:0}.gantt-corner-row{color:#888;border-bottom:1px solid #333;align-items:center;height:30px;font-size:12px;display:flex}.gantt-corner-row:last-child{border-bottom:none}.gantt-corner-row.header{color:#ccc;background:#202035;font-weight:500}.corner-col{padding:0 8px}.corner-col.name{flex-shrink:0;width:120px}.corner-col.date{text-align:center;flex-shrink:0;width:100px}.gantt-header{z-index:2;background:#1a1a2e;border-bottom:1px solid #333;flex-direction:column;display:flex;position:sticky;top:0}.gantt-header-row{height:30px;display:flex}.gantt-header-row-virtual{position:relative}.gantt-header-cell{color:#ccc;box-sizing:border-box;border-bottom:1px solid #333;border-right:1px solid #333;flex-shrink:0;justify-content:center;align-items:center;height:30px;font-size:12px;display:flex}.gantt-header-row:last-child .gantt-header-cell{border-bottom:none}.gantt-header-cell.month{background:#252540;font-weight:600}.gantt-header-cell.week{background:#202035}.gantt-header-cell.day{background:#1a1a2e;width:30px}.gantt-header-cell.weekend{background:#2a2a3a}.gantt-task-list{z-index:2;background:#1a1a2e;border-right:1px solid #333;min-width:340px;position:sticky;left:0}.gantt-task-item{color:#ddd;border-bottom:1px solid #2a2a3a;align-items:center;height:30px;font-size:13px;display:flex}.gantt-task-item:hover{background:#252540}.task-col{white-space:nowrap;text-overflow:ellipsis;padding:0 8px;overflow:hidden}.task-col.name{flex-shrink:0;width:120px}.task-col.date{color:#999;text-align:center;flex-shrink:0;width:100px;font-size:12px}.gantt-timeline{background:#16161a;position:relative}.gantt-timeline-row{border-bottom:1px solid #2a2a3a;height:30px;position:relative}.gantt-timeline-cell{box-sizing:border-box;border-right:1px solid #222;width:30px;height:30px}.gantt-timeline-cell.weekend{background:#ffffff05}.gantt-task-bar{color:#fff;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;border-radius:4px;justify-content:center;align-items:center;height:20px;padding:0 4px;font-size:11px;display:flex;position:absolute;top:5px;overflow:hidden;box-shadow:0 1px 3px #0000004d}
