:root{--rmg-white:#fff;--rmg-black:#000;--rmg-gray-50:#f9fafb;--rmg-gray-100:#f3f4f6;--rmg-gray-200:#e5e7eb;--rmg-gray-300:#d1d5db;--rmg-gray-400:#9ca3af;--rmg-gray-500:#6b7280;--rmg-gray-600:#4b5563;--rmg-gray-700:#374151;--rmg-gray-800:#1f2937;--rmg-gray-900:#111827;--rmg-blue-50:#eff6ff;--rmg-blue-100:#dbeafe;--rmg-blue-500:#3b82f6;--rmg-blue-600:#2563eb;--rmg-blue-700:#1d4ed8;--rmg-red-500:#ef4444;--rmg-indigo-500:#6366f1;--rmg-indigo-600:#4f46e5;--rmg-bg-color:var(--rmg-white);--rmg-text-color:var(--rmg-gray-800);--rmg-border-color:var(--rmg-gray-200);--rmg-highlight-color:var(--rmg-blue-50);--rmg-marker-color:var(--rmg-red-500);--rmg-task-color:var(--rmg-blue-500);--rmg-task-text-color:var(--rmg-white);--rmg-tooltip-bg:var(--rmg-white);--rmg-tooltip-text:var(--rmg-gray-800);--rmg-tooltip-border:var(--rmg-gray-200);--rmg-resize-handle-bg:#ffffff4d;--rmg-progress-bg:#0003;--rmg-progress-fill:var(--rmg-white);--rmg-shadow-color:#0000001a;--rmg-shadow-hover:#0003;--rmg-shadow-drag:#0000004d;--rmg-scrollbar-track:#e5e7eb4d;--rmg-scrollbar-thumb:#9ca3af80;--rmg-scrollbar-thumb-hover:#6b7280b3;--rmg-scrollbar-size:8px;--rmg-animation-speed:.25;--rmg-transition-fast:.15s ease;--rmg-transition-normal:.25s ease;--rmg-row-height:40px;--rmg-header-height:40px;--rmg-task-height:32px;--rmg-border-radius:8px;--rmg-task-border-radius:4px}.rmg-dark{--rmg-bg-color:var(--rmg-gray-800);--rmg-text-color:var(--rmg-gray-100);--rmg-border-color:var(--rmg-gray-700);--rmg-highlight-color:var(--rmg-gray-700);--rmg-task-color:var(--rmg-indigo-600);--rmg-tooltip-bg:var(--rmg-gray-800);--rmg-tooltip-text:var(--rmg-gray-100);--rmg-tooltip-border:var(--rmg-gray-700);--rmg-resize-handle-bg:#fff6;--rmg-progress-bg:#ffffff4d;--rmg-progress-fill:var(--rmg-gray-200);--rmg-shadow-color:#0000004d;--rmg-shadow-hover:#0006;--rmg-shadow-drag:#00000080;--rmg-scrollbar-track:#3741514d;--rmg-scrollbar-thumb:#4b556380;--rmg-scrollbar-thumb-hover:#6b7280b3}.rmg-gantt-chart{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--rmg-bg-color);border:1px solid var(--rmg-border-color);border-radius:var(--rmg-border-radius);box-shadow:0 1px 3px 0 var(--rmg-shadow-color),0 1px 2px 0 var(--rmg-shadow-color);color:var(--rmg-text-color);width:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;overflow:hidden}.rmg-container{display:flex;position:relative}.rmg-header{background-color:var(--rmg-bg-color);border-bottom:1px solid var(--rmg-border-color);padding:16px 24px}.rmg-header-content{justify-content:space-between;align-items:center;display:flex}.rmg-title{color:var(--rmg-text-color);margin:0;font-size:1.5rem;font-weight:700}.rmg-view-mode-wrapper{align-items:center;display:flex}.rmg-task-list{background-color:var(--rmg-bg-color);border-right:1px solid var(--rmg-border-color);z-index:10;flex-shrink:0;width:160px;overflow-y:auto}.rmg-task-list-header{border-bottom:1px solid var(--rmg-border-color);box-sizing:border-box;height:var(--rmg-header-height);height:calc(var(--rmg-header-height) + 1px);align-items:center;padding:8px;font-weight:600;transition:height .2s;display:flex}.rmg-gantt-chart[data-view-mode=day] .rmg-task-list-header,.rmg-gantt-chart[data-view-mode=hour] .rmg-task-list-header,.rmg-gantt-chart[data-view-mode=minute] .rmg-task-list-header,.rmg-gantt-chart[data-view-mode=week] .rmg-task-list-header{height:calc(var(--rmg-header-height)*2 + 2px)}.rmg-task-group{background-color:var(--rmg-bg-color);border-bottom:1px solid var(--rmg-border-color);cursor:pointer;padding:8px;transition:background-color .15s}.rmg-task-group:hover{background-color:#0000000d}.rmg-dark .rmg-task-group:hover{background-color:#ffffff0d}.rmg-task-group-name{font-weight:500}.rmg-task-group-description,.rmg-task-group-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rmg-task-group-description{color:var(--rmg-gray-500);margin-top:4px;font-size:.75rem}.rmg-dark .rmg-task-group-description{color:var(--rmg-gray-400)}.rmg-timeline-container{background-color:var(--rmg-bg-color);flex-grow:1;position:relative;overflow-x:auto}.rmg-timeline,.rmg-timeline-content{min-width:max-content}.rmg-timeline-content{position:relative}.rmg-timeline-header,.rmg-timeline-header-higher{background-color:var(--rmg-bg-color);border-bottom:1px solid var(--rmg-border-color);min-height:var(--rmg-header-height);display:flex}.rmg-timeline-unit{border-right:1px solid var(--rmg-border-color);box-sizing:border-box;height:var(--rmg-header-height);text-align:center;flex-shrink:0;justify-content:center;align-items:center;padding:8px 4px;font-weight:600;display:flex}.rmg-timeline-unit:last-child{border-right:none}.rmg-timeline-unit-current{background-color:var(--rmg-highlight-color)}.rmg-timeline-grid{min-width:max-content;position:relative}.rmg-timeline-grid[data-view-mode=hour],.rmg-timeline-grid[data-view-mode=minute]{background-image:repeating-linear-gradient(to right,transparent,transparent calc(var(--gantt-unit-width) - 1px),var(--rmg-border-color)calc(var(--gantt-unit-width) - 1px),var(--rmg-border-color)var(--gantt-unit-width))}.rmg-task-row{background-color:var(--rmg-bg-color);border-bottom:1px solid var(--rmg-border-color);box-sizing:border-box;min-height:var(--rmg-row-height);min-width:100%;position:relative}.rmg-timeline[data-view-mode=hour] .rmg-timeline-unit,.rmg-timeline[data-view-mode=minute] .rmg-timeline-unit{border-right:1px dotted var(--rmg-border-color);padding:4px 2px;font-size:.7rem}.rmg-timeline[data-view-mode=hour] .rmg-timeline-header-higher .rmg-timeline-unit,.rmg-timeline[data-view-mode=minute] .rmg-timeline-header-higher .rmg-timeline-unit{background-color:#00000005;font-weight:600}.rmg-dark .rmg-timeline[data-view-mode=hour] .rmg-timeline-header-higher .rmg-timeline-unit,.rmg-dark .rmg-timeline[data-view-mode=minute] .rmg-timeline-header-higher .rmg-timeline-unit{background-color:#ffffff05}.rmg-timeline[data-view-mode=hour] .rmg-timeline-unit-current,.rmg-timeline[data-view-mode=minute] .rmg-timeline-unit-current{background-color:var(--rmg-highlight-color);font-weight:700}.rmg-timeline-grid[data-view-mode=hour] .rmg-task-item,.rmg-timeline-grid[data-view-mode=minute] .rmg-task-item{height:28px;font-size:.75rem}.rmg-task-item{backface-visibility:hidden;background-color:var(--rmg-task-color);border-radius:var(--rmg-task-border-radius);box-shadow:0 1px 2px var(--rmg-shadow-color);box-sizing:border-box;color:var(--rmg-task-text-color);cursor:pointer;height:var(--rmg-task-height);will-change:transform,box-shadow;z-index:1;align-items:center;min-width:20px;padding:0 8px;font-size:.875rem;font-weight:500;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;overflow:hidden}.rmg-task-item:hover{box-shadow:0 3px 6px var(--rmg-shadow-hover);z-index:20;transform:translateY(-1px)}.rmg-task-item-dragging{box-shadow:0 5px 10px var(--rmg-shadow-drag);cursor:grabbing;opacity:.95;z-index:100}.rmg-task-item-name{pointer-events:none;text-overflow:ellipsis;user-select:none;white-space:nowrap;line-height:1.2;overflow:hidden}.rmg-resize-handle{background-color:var(--rmg-resize-handle-bg);cursor:ew-resize;opacity:0;z-index:2;width:8px;transition:opacity .15s;position:absolute;top:0;bottom:0}.rmg-resize-handle-left{border-bottom-left-radius:var(--rmg-task-border-radius);border-top-left-radius:var(--rmg-task-border-radius);left:0}.rmg-resize-handle-right{border-bottom-right-radius:var(--rmg-task-border-radius);border-top-right-radius:var(--rmg-task-border-radius);right:0}.rmg-task-item:hover .rmg-resize-handle{opacity:1}.rmg-progress-bar{background-color:var(--rmg-progress-bg);cursor:pointer;z-index:5;border-radius:2px;height:4px;position:absolute;bottom:4px;left:4px;right:4px;overflow:visible}.rmg-progress-fill{background-color:var(--rmg-progress-fill);border-radius:2px;height:100%;transition:width .3s ease-out;position:relative}.rmg-progress-handle{border:2px solid var(--rmg-task-color);box-shadow:0 2px 4px var(--rmg-shadow-color);cursor:ew-resize;opacity:0;pointer-events:auto;z-index:1001;background-color:#fff;border-radius:50%;width:14px;height:14px;transition:opacity .2s,transform .15s,box-shadow .15s;position:absolute;top:50%;right:-6px;transform:translateY(-50%)}.rmg-task-item:hover .rmg-progress-handle{opacity:1}.rmg-progress-handle:hover{box-shadow:0 3px 6px var(--rmg-shadow-hover);border-width:3px;transform:translateY(-50%)scale(1.25)}.rmg-progress-handle-dragging{background-color:var(--rmg-task-color);box-shadow:0 4px 8px var(--rmg-shadow-drag);border-width:3px;border-color:#fff;transform:translateY(-50%)scale(1.3);opacity:1!important}.rmg-progress-tooltip{background-color:var(--rmg-tooltip-bg);border:1px solid var(--rmg-tooltip-border);box-shadow:0 2px 8px var(--rmg-shadow-color);color:var(--rmg-tooltip-text);pointer-events:none;white-space:nowrap;z-index:1002;border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:600;animation:.15s fadeIn;position:absolute;top:-32px;right:-6px;transform:translate(50%)}.rmg-progress-tooltip:after{border:4px solid #0000;border-top:4px solid var(--rmg-tooltip-border);content:"";position:absolute;top:100%;left:50%;transform:translate(-50%)}@keyframes fadeIn{0%{opacity:0;transform:translate(50%)translateY(-5px)}to{opacity:1;transform:translate(50%)translateY(0)}}.rmg-today-marker{box-shadow:0 0 4px var(--rmg-marker-color);z-index:10;width:1px;top:0;bottom:0}.rmg-today-marker,.rmg-today-marker-label{background-color:var(--rmg-marker-color);position:absolute}.rmg-today-marker-label{box-shadow:0 1px 3px var(--rmg-shadow-color);color:#fff;white-space:nowrap;border-radius:2px;padding:2px 4px;font-size:.625rem;font-weight:600;top:-16px;left:0;transform:translate(-50%)}.rmg-tooltip{background-color:var(--rmg-tooltip-bg);border:1px solid var(--rmg-tooltip-border);box-shadow:0 2px 8px var(--rmg-shadow-color);color:var(--rmg-tooltip-text);opacity:0;pointer-events:none;z-index:1000;border-radius:4px;min-width:12rem;padding:8px;font-size:.75rem;transition:opacity .2s,transform .2s;position:absolute;transform:translateY(5px)}.rmg-tooltip-visible{opacity:1;transform:translateY(0)}.rmg-tooltip-title{margin-bottom:4px;font-weight:700}.rmg-tooltip-action{color:var(--rmg-blue-500);margin-bottom:4px;font-size:.7rem;font-style:italic}.rmg-tooltip-content{grid-template-columns:auto 1fr;gap:4px 8px;display:grid}.rmg-tooltip-row{display:contents}.rmg-tooltip-label{color:var(--rmg-gray-500);font-weight:600}.rmg-dark .rmg-tooltip-label{color:var(--rmg-gray-400)}.rmg-view-mode-selector{border:1px solid var(--rmg-border-color);background-color:#0000000d;border-radius:9999px;padding:2px;display:inline-flex;overflow:hidden}.rmg-dark .rmg-view-mode-selector{background-color:#ffffff0d}.rmg-view-mode-button{color:var(--rmg-text-color);cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:4px 12px;font-size:.75rem;font-weight:500;transition:all .15s}.rmg-view-mode-button-active{background-color:var(--rmg-blue-500);color:#fff;font-weight:600}.rmg-timeline-container{scroll-behavior:smooth;scrollbar-color:var(--rmg-scrollbar-thumb)var(--rmg-scrollbar-track);scrollbar-width:thin}.rmg-timeline-container::-webkit-scrollbar{height:var(--rmg-scrollbar-size);width:var(--rmg-scrollbar-size)}.rmg-timeline-container::-webkit-scrollbar-track{background:var(--rmg-scrollbar-track);border-radius:12px;margin:0 6px}.rmg-timeline-container::-webkit-scrollbar-thumb{background-clip:content-box;background-color:var(--rmg-scrollbar-thumb);border:2px solid #0000;border-radius:12px;min-height:40px;transition:background-color .2s}.rmg-timeline-container::-webkit-scrollbar-thumb:hover{background-color:var(--rmg-scrollbar-thumb-hover)}.rmg-timeline-container::-webkit-scrollbar-corner{background-color:#0000}.rmg-auto-scrolling{scroll-behavior:auto!important}.rmg-timeline-container.rmg-scrollable-x:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#00000008);width:24px;transition:opacity .2s;position:absolute;top:0;bottom:0;right:0}.rmg-timeline-container.rmg-scrollable-x:hover:after{opacity:1}.rmg-dark .rmg-timeline-container.rmg-scrollable-x:after{background:linear-gradient(90deg,#0000,#ffffff08)}@media (width<=640px){.rmg-task-list{width:120px}.rmg-header{padding:12px}.rmg-title{font-size:1.25rem}}.bg-blue-500{background-color:#3b82f6}.bg-indigo-500{background-color:#6366f1}.bg-purple-500{background-color:#a855f7}.bg-green-500{background-color:#22c55e}.bg-emerald-500{background-color:#10b981}.bg-amber-500{background-color:#f59e0b}.bg-orange-500{background-color:#f97316}.bg-red-500{background-color:#ef4444}.bg-teal-500{background-color:#14b8a6}.bg-yellow-400{background-color:#facc15}.bg-blue-600{background-color:#2563eb}.bg-indigo-600{background-color:#4f46e5}.bg-green-600{background-color:#16a34a}.bg-emerald-600{background-color:#059669}.bg-amber-600{background-color:#d97706}.bg-orange-600{background-color:#ea580c}.bg-red-600{background-color:#dc2626}.bg-teal-600{background-color:#0d9488}.text-white{color:#fff}.text-gray-900{color:#111827}.border-blue-700{border-color:#1d4ed8}.border-emerald-800{border-color:#065f46}.border-yellow-600{border-color:#ca8a04}.border{border-style:solid;border-width:1px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}