@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--bg-primary:#0a0b10;--bg-secondary:#121420;--bg-card:#161929b3;--bg-card-hover:#1e2238d9;--border-color:#ffffff14;--border-glow:#6366f126;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#6366f1;--accent-secondary:#a855f7;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--card-blur:blur(12px);--glass-shadow:0 8px 32px 0 #0000005e;--glow-shadow-indigo:0 0 20px #6366f14d;--glow-shadow-emerald:0 0 20px #10b9814d;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px;--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);background-image:radial-gradient(at 0 0,#6366f126 0,#0000 50%),radial-gradient(at 100% 0,#a855f726 0,#0000 50%),radial-gradient(at 50% 100%,#10b98114 0,#0000 50%);background-attachment:fixed;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.app-container{width:100vw;min-height:100vh;display:flex;overflow:hidden}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:var(--card-blur);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--glass-shadow);transition:all var(--transition-normal)}.glass-panel:hover{border-color:#ffffff26}input,textarea,select{border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:#ffffff0a;outline:none;padding:10px 14px;font-size:.95rem}input:focus,textarea:focus,select:focus{border-color:var(--accent-primary);background:#6366f10d;box-shadow:0 0 10px #6366f140}select option{color:#f8fafc;background-color:#121420}label{color:var(--text-secondary);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;box-shadow:var(--glow-shadow-indigo)}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 0 25px #6366f173}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);background:#ffffff12}.btn-secondary:hover{background:#ffffff1f;border-color:#fff3}.btn-danger{color:var(--accent-rose);background:#f43f5e26;border:1px solid #f43f5e4d}.btn-danger:hover{color:#fff;background:#f43f5e4d}.btn-icon{border-radius:var(--radius-sm);border:1px solid var(--border-color);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;justify-content:center;align-items:center;padding:0;display:flex}.btn-icon:hover{color:var(--text-primary);background:#ffffff1a}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;animation:fadeIn var(--transition-fast) forwards;background:#050508bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:85vh;animation:slideUp var(--transition-normal) cubic-bezier(.16, 1, .3, 1) forwards;padding:30px;position:relative;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-todo{color:var(--text-secondary);background:#94a3b826}.badge-progress{color:var(--accent-amber);background:#f59e0b26}.badge-completed{color:var(--accent-emerald);background:#10b98126}.gantt-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.gantt-header-row{border-bottom:1px solid var(--border-color);z-index:10;background:#12142099;display:flex}.gantt-task-col-header{width:250px;min-width:250px;color:var(--text-secondary);border-right:1px solid var(--border-color);align-items:center;padding:15px;font-weight:700;display:flex}.gantt-timeline-header-scroll{scrollbar-width:none;flex-grow:1;overflow-x:auto}.gantt-timeline-header-scroll::-webkit-scrollbar{display:none}.gantt-timeline-header-days{height:50px;display:flex;position:relative}.gantt-header-cell{border-right:1px solid #ffffff08;flex-direction:column;justify-content:center;align-items:center;height:100%;font-size:.75rem;font-weight:600;display:flex;position:absolute}.gantt-header-cell.weekend{background:#ffffff04}.gantt-header-cell .day-name{color:var(--text-muted)}.gantt-header-cell .day-num{margin-top:2px;font-size:.9rem;font-weight:700}.gantt-rows-container{flex-grow:1;overflow:hidden auto}.gantt-row{height:55px;transition:background var(--transition-fast);border-bottom:1px solid #ffffff08;align-items:center;display:flex}.gantt-row:hover{background:#ffffff03}.gantt-add-task-row{border-radius:0 0 var(--radius-sm) var(--radius-sm);width:100%;min-height:48px;color:var(--accent-primary);cursor:pointer;transition:all var(--transition-fast);background:#6366f10a;border:1px dashed #6366f159;font-size:.85rem;font-weight:700}.gantt-add-task-row:hover{border-color:var(--accent-primary);color:#fff;background:#6366f11f}.member-delete-btn{border-radius:var(--radius-full);width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:.65rem;line-height:1}.member-delete-btn:hover{color:var(--accent-rose);background:#f43f5e26}.gantt-task-info{border-right:1px solid var(--border-color);flex-direction:column;justify-content:center;width:250px;min-width:250px;height:100%;padding:10px 15px;display:flex;overflow:hidden}.gantt-task-title-line{white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);font-size:.85rem;font-weight:600;overflow:hidden}.gantt-task-meta-line{color:var(--text-muted);justify-content:space-between;margin-top:2px;font-size:.75rem;display:flex}.gantt-timeline-track-wrapper{flex-grow:1;height:100%;position:relative;overflow:hidden}.gantt-timeline-track{pointer-events:none;display:flex;position:absolute;top:0;bottom:0;left:0}.gantt-grid-column{border-right:1px solid #ffffff05;position:absolute;top:0;bottom:0}.gantt-grid-column.weekend{background:#ffffff03}.gantt-task-bar{border-radius:var(--radius-sm);color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;pointer-events:auto;height:32px;transition:box-shadow var(--transition-fast), border-color var(--transition-fast);background:#64748b47;border:1px solid #ffffff26;justify-content:space-between;align-items:center;padding:0 8px;font-size:.75rem;font-weight:600;display:flex;position:absolute;top:11px;box-shadow:0 4px 12px #0003}.gantt-task-bar:active{cursor:grabbing;box-shadow:var(--glow-shadow-indigo);border-color:#fff6}.gantt-task-bar-progress{border-radius:var(--radius-sm);z-index:1;pointer-events:none;position:absolute;top:0;bottom:0;left:0}.gantt-task-bar-content{z-index:2;white-space:nowrap;text-overflow:ellipsis;flex-grow:1;padding:0 4px;overflow:hidden}.gantt-resize-handle{cursor:ew-resize;z-index:3;opacity:0;width:6px;transition:opacity var(--transition-fast);background:#fff6;position:absolute;top:0;bottom:0}.gantt-task-bar:hover .gantt-resize-handle{opacity:1}.gantt-resize-handle-left{border-radius:var(--radius-sm) 0 0 var(--radius-sm);left:0}.gantt-resize-handle-right{border-radius:0 var(--radius-sm) var(--radius-sm) 0;right:0}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px;margin-bottom:25px;display:grid}.stat-card{align-items:center;gap:15px;padding:15px;display:flex}.stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;display:flex}.stat-info .num{font-size:1.4rem;font-weight:800}.stat-info .label{color:var(--text-secondary);font-size:.75rem}@media (width<=1024px){.app-container{flex-direction:column}}
