*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#0f172a;color:#e2e8f0;min-height:100vh;font-size:14px;line-height:1.5}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#1e293b}::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#64748b}.glass{background:#1e293bcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(71,85,105,.5)}.priority-low{background:#22c55e;color:#fff}.priority-medium{background:#eab308;color:#000}.priority-high{background:#f97316;color:#fff}.priority-critical{background:#ef4444;color:#fff}.status-todo{background:#64748b;color:#fff}.status-in_progress{background:#3b82f6;color:#fff}.status-review{background:#a855f7;color:#fff}.status-done{background:#22c55e;color:#fff}.task-row{transition:background-color .15s ease}.task-row:hover{background-color:#33415580}.gantt-bar{height:24px;border-radius:4px;position:absolute;display:flex;align-items:center;padding:0 8px;font-size:11px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.gantt-bar:hover{transform:scaleY(1.1);box-shadow:0 4px 12px #0000004d;z-index:10}.today-marker{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;z-index:5}.today-marker:before{content:"Today";position:absolute;top:-20px;left:-20px;font-size:10px;color:#ef4444;font-weight:600}.sidebar{width:280px;background:#1e293b;border-right:1px solid #334155;display:flex;flex-direction:column;height:100vh;overflow:hidden}.task-table{flex:1;overflow:auto}.task-table table{width:100%;border-collapse:collapse}.task-table th{background:#1e293b;padding:12px 16px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;border-bottom:1px solid #334155;position:sticky;top:0;z-index:10}.task-table td{padding:8px 16px;border-bottom:1px solid #1e293b;font-size:13px}.btn{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;border:none}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.btn-ghost{background:transparent;color:#94a3b8;border:1px solid #334155}.btn-ghost:hover{background:#334155;color:#fff}input,select,textarea{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:8px 12px;color:#e2e8f0;font-size:13px;outline:none;transition:border-color .15s ease}input:focus,select:focus,textarea:focus{border-color:#3b82f6}.progress-bar{background:#334155;border-radius:4px;height:6px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transition:width .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .2s ease-out}.flex{display:flex}.flex-1{flex:1}.flex-col{flex-direction:column}.flex-shrink-0{flex-shrink:0}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-0\.5>*+*{margin-top:.125rem}.space-y-4>*+*{margin-top:1rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-5{margin-left:1.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.pt-4{padding-top:1rem}.w-full{width:100%}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-10{width:2.5rem}.w-1\/2{width:50%}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-full{height:100%}.h-screen{height:100vh}.max-w-lg{max-width:32rem}.min-h-screen{min-height:100vh}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-width:1px;border-style:solid}.border-b{border-bottom-width:1px;border-bottom-style:solid}.border-r{border-right-width:1px;border-right-style:solid}.border-t{border-top-width:1px;border-top-style:solid}.border-slate-700{border-color:#334155}.border-slate-800{border-color:#1e293b}.bg-slate-700{background-color:#334155}.bg-slate-700\/50{background-color:#33415580}.bg-slate-800{background-color:#1e293b}.bg-slate-800\/30{background-color:#1e293b4d}.bg-slate-900{background-color:#0f172a}.bg-black\/20{background-color:#0003}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-purple-500{--tw-gradient-from: #a855f7;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-purple-700{--tw-gradient-to: #7c3aed}.bg-purple-500\/20{background-color:#a855f733}.bg-red-500\/20{background-color:#ef444433}.text-white{color:#fff}.text-slate-200{color:#e2e8f0}.text-slate-300{color:#cbd5e1}.text-slate-400{color:#94a3b8}.text-slate-500{color:#64748b}.text-slate-600{color:#475569}.text-purple-300{color:#d8b4fe}.text-blue-400{color:#60a5fa}.text-red-400{color:#f87171}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-left{text-align:left}.text-center{text-align:center}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resize-none{resize:none}.cursor-pointer{cursor:pointer}.transition-colors{transition-property:color,background-color,border-color;transition-duration:.15s}.transition-transform{transition-property:transform;transition-duration:.15s}.transition-all{transition-property:all;transition-duration:.15s}.hover\:text-white:hover{color:#fff}.hover\:text-slate-200:hover{color:#e2e8f0}.hover\:text-slate-300:hover{color:#cbd5e1}.hover\:text-blue-300:hover{color:#93c5fd}.hover\:bg-slate-600:hover{background-color:#475569}.hover\:bg-slate-700:hover{background-color:#334155}.hover\:bg-slate-700\/50:hover{background-color:#33415580}.hover\:border-blue-500\/50:hover{border-color:#3b82f680}.sticky{position:sticky}.fixed{position:fixed}.inset-0{top:0;right:0;bottom:0;left:0}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.bottom-0{bottom:0}.z-5{z-index:5}.z-10{z-index:10}.z-50{z-index:50}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-full{grid-column:1 / -1}.backdrop-blur-sm{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.shadow-2xl{box-shadow:0 25px 50px -12px #00000040}.rotate-90{transform:rotate(90deg)}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
