@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg-primary:#f5f6fa;--bg-secondary:#fff;--bg-tertiary:#f0f1f5;--bg-elevated:#fff;--text-primary:#1a1d2e;--text-secondary:#5c6078;--text-tertiary:#9499b3;--border-color:#0000000f;--border-strong:#0000001a;--primary:#2d4a65;--primary-hover:#1f3a54;--primary-light:#edf2f7;--primary-dark:#1b2d3d;--accent:#cc7730;--accent-light:#fdf5ee;--success:#22a352;--success-light:#ecfdf3;--warning:#e5960a;--warning-light:#fef9ec;--danger:#e5483d;--danger-light:#fef2f1;--font-heading:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f, 0 1px 3px #0000000a;--shadow-lg:0 12px 40px #00000014, 0 4px 12px #0000000a;--shadow-glass:0 8px 32px #0000000a;--radius-sm:.5rem;--radius-md:.625rem;--radius-lg:.875rem;--radius-xl:1.25rem;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}:root.dark{--bg-primary:#0c0e18;--bg-secondary:#14172a;--bg-tertiary:#1c2038;--bg-elevated:#1e2240;--text-primary:#eef0f6;--text-secondary:#b0b5cc;--text-tertiary:#6b7194;--border-color:#ffffff0f;--border-strong:#ffffff1a;--primary:#5d8bb5;--primary-hover:#6e9cc6;--primary-light:#1a2640;--primary-dark:#8bb8e0;--accent:#e69148;--accent-light:#2a1e0e;--success:#34d669;--success-light:#0d2618;--warning:#f0a820;--warning-light:#2a1e06;--danger:#f06b62;--danger-light:#2a1210;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 12px 40px #0006;--shadow-glass:0 8px 32px #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-normal), color var(--transition-normal);height:100vh;font-size:14px;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.01em;font-weight:600}.app-container{grid-template-columns:260px 1fr;width:100vw;height:100vh;display:grid}.sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border-color);flex-direction:column;justify-content:space-between;gap:1rem;padding:2rem 1.25rem;display:flex}.brand-section{align-items:center;gap:.75rem;margin-bottom:2.5rem;padding:0 .75rem;display:flex}.brand-logo{background:linear-gradient(135deg, var(--primary), var(--accent));border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:34px;height:34px;font-weight:700;display:flex}.brand-title{letter-spacing:-.02em;background:linear-gradient(135deg, var(--primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.3rem;font-weight:800}.nav-list{flex-direction:column;gap:.35rem;list-style:none;display:flex}.nav-item{color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;border-left:3px solid #0000;align-items:center;gap:.85rem;padding:.7rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.nav-item.active{background-color:var(--primary-light);color:var(--primary);border-left:3px solid var(--accent);font-weight:600}.dark .nav-item.active{background-color:var(--primary-light);color:var(--primary);border-left:3px solid var(--accent)}.main-content{flex-direction:column;height:100vh;display:flex;overflow-y:auto}.header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 2.5rem;display:flex}.page-title-section{flex-direction:column;display:flex}.page-subtitle{color:var(--text-tertiary);margin-top:.1rem;font-size:.85rem}.header-actions{align-items:center;gap:1rem;display:flex}.content-pane{flex:1;padding:2.5rem}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal), transform var(--transition-normal);padding:1.75rem;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.card-title{color:var(--text-primary);font-size:1.05rem;font-weight:600}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);letter-spacing:.01em;border:none;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 1px 3px #2d4a654d}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 2px 6px #2d4a6559}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-strong)}.btn-secondary:hover{background-color:var(--border-color);border-color:var(--border-strong)}.btn-accent{background-color:var(--accent);color:#fff;box-shadow:0 1px 3px #cc77304d}.btn-accent:hover{opacity:.9;transform:translateY(-1px)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-icon{border-radius:var(--radius-sm);padding:.45rem}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn-ghost{color:var(--text-secondary);border-radius:var(--radius-md);background:0 0;border:none;padding:.4rem .85rem;font-weight:500}.btn-ghost:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);letter-spacing:.01em;margin-bottom:.4rem;font-size:.82rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{border-radius:var(--radius-md);border:1px solid var(--border-strong);background-color:var(--bg-secondary);width:100%;color:var(--text-primary);font-family:var(--font-body);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:.65rem 1rem;font-size:.875rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2d4a651a}.form-textarea{resize:vertical;min-height:80px}.grid-cols-12{grid-template-columns:repeat(12,1fr);gap:1.5rem;display:grid}.col-span-12{grid-column:span 12}.col-span-8{grid-column:span 8}.col-span-6{grid-column:span 6}.col-span-4{grid-column:span 4}.col-span-3{grid-column:span 3}.flex-row{align-items:center;gap:1rem;display:flex}.badge{border-radius:var(--radius-sm);text-transform:capitalize;letter-spacing:.02em;align-items:center;padding:.2rem .6rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-primary{background-color:var(--primary-light);color:var(--primary)}.badge-success{background-color:var(--success-light);color:var(--success)}.badge-warning{background-color:var(--warning-light);color:var(--warning)}.badge-danger{background-color:var(--danger-light);color:var(--danger)}.badge-secondary{background-color:var(--bg-tertiary);color:var(--text-secondary)}.task-tree{flex-direction:column;display:flex}.task-node-wrapper{background-color:var(--bg-secondary);transition:border-color var(--transition-fast);flex-direction:column;display:flex}.task-node-wrapper:hover{border-color:var(--primary)}.task-node-row{transition:background-color var(--transition-fast);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.task-node-row:hover{background-color:var(--bg-tertiary)!important}.task-node-row.task-parent-row{border-left:3px solid var(--primary);background-color:var(--primary-light)!important}:root.dark .task-node-row.task-parent-row{background-color:#5d8bb514!important}.task-node-left{flex:1;align-items:center;gap:.5rem;display:flex}.task-node-indent{border-left:2px dashed var(--border-color);width:24px;height:24px;margin-left:12px}.task-node-toggle{cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast);justify-content:center;align-items:center;padding:2px;display:flex}.task-node-toggle:hover{color:var(--primary);background-color:var(--primary-light)}.task-node-title{font-size:.925rem;font-weight:500}.task-node-meta{color:var(--text-secondary);align-items:center;gap:1.25rem;font-size:.825rem;display:flex}.task-node-actions{opacity:0;transition:opacity var(--transition-fast);align-items:center;gap:.2rem;display:flex}.task-node-row:hover .task-node-actions{opacity:1}.task-node-editable{transition:background-color var(--transition-fast), border-left var(--transition-fast);cursor:pointer;border-left:3px solid #0000}.task-node-editable:hover{background-color:var(--accent-light)!important;border-left:3px solid var(--accent)!important}.gantt-container{border:1px solid var(--border-color);border-radius:var(--radius-xl);background-color:var(--bg-secondary);padding:1.25rem;overflow-x:auto}.gantt-grid-header{border-bottom:2px solid var(--border-color);padding-bottom:.5rem;display:flex}.gantt-grid-cell{text-align:center;color:var(--text-secondary);padding:.25rem;font-size:.75rem;font-weight:600}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background-color:#0a0c1480;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-container{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:580px;max-height:85vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.35s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem 1.75rem 1.25rem;display:flex}.modal-body{flex:1;padding:1.75rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-color);background-color:var(--bg-tertiary);border-radius:0 0 var(--radius-xl) var(--radius-xl);justify-content:flex-end;gap:.75rem;padding:1.25rem 1.75rem;display:flex}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.kpi-card{align-items:center;gap:1.25rem;display:flex}.kpi-icon-wrapper{border-radius:var(--radius-lg);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.kpi-details{flex-direction:column;display:flex}.kpi-value{font-size:1.4rem;font-weight:700;font-family:var(--font-heading);letter-spacing:-.02em}.kpi-label{color:var(--text-tertiary);font-size:.8rem;font-weight:500}.toast-container{z-index:1000;flex-direction:column;gap:.75rem;display:flex;position:fixed;bottom:2rem;right:2rem}.toast{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-left:4px solid var(--primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);align-items:flex-start;gap:.75rem;max-width:400px;padding:1rem 1.25rem;animation:.3s cubic-bezier(.16,1,.3,1) slideInRight;display:flex}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--accent)}.toast-close{cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-fast);margin-left:auto}.toast-close:hover{color:var(--text-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.gantt-svg{background-color:var(--bg-secondary)}.gantt-row-bg:nth-child(2n){fill:var(--bg-tertiary);opacity:.5}.gantt-grid-line{stroke:var(--border-color);stroke-dasharray:2 2}.gantt-bar{rx:6px;ry:6px;cursor:pointer;transition:opacity var(--transition-fast)}.gantt-bar:hover{opacity:.85}.gantt-bar-parent{fill:var(--text-secondary)}.gantt-dep-line{stroke:var(--accent);stroke-width:1.5px;fill:none;stroke-dasharray:3 3}.gantt-dep-arrow{fill:var(--accent)}
