:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.6;font-weight:400;--primary-color: #2563eb;--primary-dark: #1d4ed8;--secondary-color: #64748b;--success-color: #059669;--warning-color: #d97706;--danger-color: #dc2626;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--border-color: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius: 8px;--radius-lg: 12px;color-scheme:light;color:var(--text-primary);background-color:var(--bg-secondary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--primary-color);text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-dark)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-secondary);overflow-x:hidden}h1{font-size:1.75rem;font-weight:600;line-height:1.3;color:var(--text-primary);margin-bottom:1rem}h2{font-size:1.125rem;font-weight:500;line-height:1.4;color:var(--text-primary);margin-bottom:.75rem;margin-top:1rem}button{border-radius:4px;border:1px solid var(--border-color);padding:.375rem .75rem;font-size:.875rem;font-weight:400;font-family:inherit;background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.375rem;box-shadow:none;border:1px solid #d1d5db}button:hover{background-color:#f9fafb;border-color:#9ca3af}button:active{background-color:#f3f4f6}button:focus,button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}.btn-success{background-color:var(--success-color);color:#fff;border-color:var(--success-color)}.btn-danger{background-color:var(--danger-color);color:#fff;border-color:var(--danger-color)}input,select,textarea{border-radius:4px;border:1px solid #d1d5db;padding:.375rem .5rem;font-size:.875rem;font-family:inherit;background-color:var(--bg-primary);color:var(--text-primary);transition:all .15s ease;box-shadow:none}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.card{background-color:var(--bg-primary);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--border-color);margin-bottom:1rem}.container{width:100%;padding:2rem 1rem}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.text-sm{font-size:.875rem}.text-muted{color:var(--text-muted)}.project-selector-compact{margin-bottom:.5rem}.project-select-compact{min-width:160px;font-weight:400;font-size:.875rem;padding:.25rem .5rem}.btn-compact{padding:.25rem .5rem;font-size:.75rem;border-radius:4px;border:1px solid #d1d5db;background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .15s ease}.btn-compact:hover{background-color:#f9fafb;border-color:#9ca3af}.btn-compact.btn-primary{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-compact.btn-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}.input-compact{padding:.25rem .5rem;font-size:.75rem;border-radius:4px;border:1px solid #d1d5db}.flex-1{flex:1}@media (max-width: 768px){.container{padding:1rem}h1{font-size:2rem}h2{font-size:1.5rem}.flex,.project-selector form{flex-direction:column}.toolbar{flex-wrap:wrap;gap:.5rem}}._2k9Ys{position:sticky;bottom:0;background:#fff;z-index:1}.task-list-outer{scrollbar-width:none}.task-list-outer::-webkit-scrollbar{display:none}#root{width:100%;margin:0;min-height:100vh;background-color:var(--bg-secondary)}.App{height:100vh;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);display:flex;flex-direction:column}.project-header{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:.75rem 0;flex-shrink:0}.project-content{width:100%;padding:1rem;box-sizing:border-box;max-width:100vw;flex:1;display:flex;flex-direction:column;overflow:hidden}.section{background-color:var(--bg-primary);border-radius:6px;border:1px solid #e5e7eb;margin-bottom:1rem;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}.section.gantt-section{flex:1;display:flex;flex-direction:column;margin-bottom:0}.section-header{background-color:#fafafa;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb}.section-header h2{margin:0;font-size:1rem;font-weight:500;color:var(--text-primary)}.section-content{padding:1rem}.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.75rem 1rem;background-color:#fafafa;border-bottom:1px solid #e5e7eb}.file-input-container{position:relative;overflow:hidden;display:inline-block}.file-input-container input[type=file]{position:absolute;left:-9999px}.file-input-label{padding:.375rem .75rem;background-color:var(--bg-primary);border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:400;transition:all .15s ease;display:inline-flex;align-items:center;gap:.375rem}.file-input-label:hover{background-color:#f9fafb;border-color:#9ca3af}.gantt-container{border-radius:6px;overflow:auto;border:1px solid #e5e7eb;width:100%;max-width:100%;flex:1;min-height:0}.loading{text-align:center;padding:3rem;color:var(--text-secondary);font-size:1.125rem}.error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:1rem;border-radius:var(--radius);margin-bottom:1rem}@media (max-width: 768px){.project-content{padding:0 .5rem}.section-content{padding:1rem}.toolbar{padding:.75rem}}._3_ygE{display:table;border-bottom:#e6e4e4 1px solid;border-top:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}._1nBOt{display:table-row;list-style:none}._2eZzQ{border-right:1px solid rgb(196,196,196);opacity:1;margin-left:-2px}._WuQ0f{display:table-cell;vertical-align:-webkit-baseline-middle;vertical-align:middle}._3ZbQT{display:table;border-bottom:#e6e4e4 1px solid;border-left:#e6e4e4 1px solid}._34SS0{display:table-row;text-overflow:ellipsis}._34SS0:nth-of-type(2n){background-color:#f5f5f5}._3lLk3{display:table-cell;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._nI1Xw{display:flex}._2QjE6{color:#565656;font-size:.6rem;padding:.15rem .2rem 0rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}._2TfEi{font-size:.6rem;padding-left:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}._3T42e{background:#fff;padding:12px;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}._29NTg{font-size:12px;margin-bottom:6px;color:#666}._25P-K{position:absolute;display:flex;flex-shrink:0;pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}._3gVAq{visibility:hidden;position:absolute;display:flex;pointer-events:none}._1eT-t{overflow:hidden auto;width:1rem;flex-shrink:0;scrollbar-width:thin}._1eT-t::-webkit-scrollbar{width:1.1rem;height:1.1rem}._1eT-t::-webkit-scrollbar-corner{background:transparent}._1eT-t::-webkit-scrollbar-thumb{border:6px solid transparent;background:#0003;background:var(--palette-black-alpha-20, rgba(0, 0, 0, .2));border-radius:10px;background-clip:padding-box}._1eT-t::-webkit-scrollbar-thumb:hover{border:4px solid transparent;background:#0000004d;background:var(--palette-black-alpha-30, rgba(0, 0, 0, .3));background-clip:padding-box}._2dZTy{fill:#fff}._2dZTy:nth-child(2n){fill:#f5f5f5}._3rUKi{stroke:#ebeff2}._RuwuK{stroke:#e6e4e4}._9w8d5{text-anchor:middle;fill:#333;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}._1rLuZ{stroke:#e6e4e4}._2q1Kt{text-anchor:middle;fill:#555;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}._35nLX{fill:#fff;stroke:#e0e0e0;stroke-width:1.4}._KxSXS{cursor:pointer;outline:none}._KxSXS:hover ._3w_5u{visibility:visible;opacity:1}._3w_5u{fill:#ddd;cursor:ew-resize;opacity:0;visibility:hidden}._31ERP{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;stroke-width:0}._RRr13{cursor:pointer;outline:none}._2P2B1{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}._1KJ6x{cursor:pointer;outline:none}._2RbVy{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.6}._2pZMF{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}._3zRJQ{fill:#fff;text-anchor:middle;font-weight:lighter;dominant-baseline:central;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}._3KcaM{fill:#555;text-anchor:start;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}._CZjuD{overflow:hidden;font-size:0;margin:0;padding:0}._2B2zv{margin:0;padding:0;overflow:hidden}._3eULf{display:flex;padding:0;margin:0;list-style:none;outline:none;position:relative}._2k9Ys{overflow:auto;max-width:100%;scrollbar-width:thin;height:1.2rem}._2k9Ys::-webkit-scrollbar{width:1.1rem;height:1.1rem}._2k9Ys::-webkit-scrollbar-corner{background:transparent}._2k9Ys::-webkit-scrollbar-thumb{border:6px solid transparent;background:#0003;background:var(--palette-black-alpha-20, rgba(0, 0, 0, .2));border-radius:10px;background-clip:padding-box}._2k9Ys::-webkit-scrollbar-thumb:hover{border:4px solid transparent;background:#0000004d;background:var(--palette-black-alpha-30, rgba(0, 0, 0, .3));background-clip:padding-box}._19jgW{height:1px}.chatbox-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.chatbox{background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;width:min(90vw,600px);height:min(80vh,700px);display:flex;flex-direction:column;overflow:hidden}.chatbox-header{background:#2563eb;color:#fff;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center}.chatbox-header h3{margin:0;font-size:1.1rem;font-weight:600}.chatbox-close{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:background-color .2s}.chatbox-close:hover{background-color:#fff3}.chatbox-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem;background:#f8fafc}.message{display:flex;max-width:85%}.message.user{align-self:flex-end}.message.assistant{align-self:flex-start}.message-content{padding:.75rem 1rem;border-radius:12px;font-size:.95rem;line-height:1.4;word-wrap:break-word}.message.user .message-content{background:#2563eb;color:#fff;border-bottom-right-radius:4px}.message.assistant .message-content{background:#fff;color:#374151;border:1px solid #e5e7eb;border-bottom-left-radius:4px;box-shadow:0 1px 3px #0000001a}.loading-dots{display:flex;gap:.25rem;align-items:center}.loading-dots span{width:6px;height:6px;background:#9ca3af;border-radius:50%;animation:loading-bounce 1.4s infinite ease-in-out}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes loading-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chatbox-input{background:#fff;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;align-items:center}.chatbox-input input{flex:1;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;outline:none;transition:border-color .2s,box-shadow .2s}.chatbox-input input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.chatbox-input input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.chatbox-input button{padding:.75rem 1rem;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background-color .2s,opacity .2s;min-width:44px}.chatbox-input button:hover:not(:disabled){background:#1d4ed8}.chatbox-input button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.chatbox{width:95vw;height:90vh;border-radius:8px}.chatbox-header{padding:.75rem 1rem}.chatbox-messages{padding:.75rem}.chatbox-input{padding:.75rem 1rem}.message{max-width:90%}}
