*{box-sizing:border-box;margin:0;padding:0}:root{--primary-10:#f7f8fa;--primary-20:#f0f1f3;--primary-50:#e5e7eb;--primary-100:#d1d5db;--primary-200:#9ca3af;--primary-300:#6b7280;--primary-400:#4b5563;--primary-500:#374151;--primary-600:#1f2937;--primary-700:#111827;--accent-primary:#3b82f6;--accent-primary-hover:#2563eb;--border-light:#e5e7eb;--border-medium:#d1d5db;--text-primary:#111827;--text-secondary:#6b7280;--text-tertiary:#9ca3af;--bg-primary:#fff;--bg-secondary:#f9fafb;--bg-tertiary:#f3f4f6;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--info:#3b82f6}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9fafb;background:var(--bg-secondary);color:#111827;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{margin:0 auto;max-width:1200px;padding:20px}button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 14px;transition:all .15s ease}button:hover{opacity:.9}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{background:#fff;background:var(--bg-primary);border:1px solid #e5e7eb;border:1px solid var(--border-light);border-radius:6px;color:#111827;color:var(--text-primary);font-size:14px;padding:8px 12px;transition:all .15s ease;width:100%}input:focus,select:focus,textarea:focus{border-color:#3b82f6;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.card{background:#fff;background:var(--bg-primary);border:1px solid #e5e7eb;border:1px solid var(--border-light);border-radius:8px;margin-bottom:16px;padding:20px}.alert{border-radius:6px;font-size:14px;font-weight:400;margin-bottom:12px}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.loading{align-items:center;display:flex;justify-content:center;padding:40px}.spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-top:3px solid #3b82f6;border:3px solid var(--border-light);border-radius:50%;border-top-color:var(--accent-primary);height:32px;width:32px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.project-sidebar{background:linear-gradient(135deg,#1e293b,#0f172a);border-right:1px solid #94a3b81a;bottom:0;display:flex;flex-direction:column;left:0;overflow:hidden;position:fixed;top:60px;transition:width .3s ease;width:280px;z-index:900}.project-sidebar.collapsed{width:60px}.sidebar-header{align-items:center;border-bottom:1px solid #94a3b81a;display:flex;justify-content:space-between;min-height:70px;padding:20px}.sidebar-header h3{color:#fff;font-size:18px;font-weight:600;margin:0}.collapse-button{background:#94a3b81a;border:1px solid #94a3b833;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;padding:6px 10px;transition:all .2s ease}.collapse-button:hover{background:#94a3b833;color:#fff}.project-sidebar.collapsed .sidebar-header h3{display:none}.project-sidebar.collapsed .collapse-button{margin:0 auto}.sidebar-content,.sidebar-content-collapsed{flex:1 1;overflow-y:auto;padding:8px}.sidebar-content-collapsed{align-items:center}.projects-list,.sidebar-content-collapsed{display:flex;flex-direction:column;gap:8px}.project-item{background:#1e293b99;border:1px solid #94a3b81a;border-radius:8px;cursor:pointer;padding:12px;transition:all .2s ease}.project-item:hover{background:#1e293be6;border-color:#94a3b84d;transform:translateX(4px)}.project-item.selected{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f64d}.project-item.selected:hover{transform:translateX(0)}.project-name{color:#fff;font-size:14px;font-weight:600;margin-bottom:4px}.project-repository{color:#94a3b8;font-size:12px;margin-bottom:4px}.project-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#cbd5e1;display:-webkit-box;font-size:11px;line-height:1.4;margin-top:6px;overflow:hidden;text-overflow:ellipsis}.project-item-collapsed{align-items:center;background:#1e293b99;border:1px solid #94a3b81a;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:600;height:44px;justify-content:center;transition:all .2s ease;width:44px}.project-item-collapsed:hover{background:#1e293be6;border-color:#94a3b84d;transform:scale(1.05)}.project-item-collapsed.selected{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f64d}.loading-text,.no-projects-text{color:#94a3b8;font-size:14px;line-height:1.6;padding:20px;text-align:center}.sidebar-content-collapsed::-webkit-scrollbar,.sidebar-content::-webkit-scrollbar{width:6px}.sidebar-content-collapsed::-webkit-scrollbar-track,.sidebar-content::-webkit-scrollbar-track{background:#0000}.sidebar-content-collapsed::-webkit-scrollbar-thumb,.sidebar-content::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:3px}.sidebar-content-collapsed::-webkit-scrollbar-thumb:hover,.sidebar-content::-webkit-scrollbar-thumb:hover{background:#94a3b84d}.mobile-menu-toggle{align-items:center;background:#1e293bf2;border:1px solid #94a3b84d;border-radius:8px;cursor:pointer;display:none;flex-direction:column;gap:4px;height:40px;justify-content:center;left:10px;padding:10px;position:fixed;top:10px;transition:all .2s ease;width:40px;z-index:1001}.mobile-menu-toggle:hover{background:#1e293b;border-color:#94a3b880}.hamburger-line{background:#fff;border-radius:2px;height:2px;transition:all .3s ease;width:20px}.mobile-close-button{background:#94a3b81a;border:1px solid #94a3b833;border-radius:4px;color:#94a3b8;cursor:pointer;display:none;font-size:24px;line-height:1;padding:4px 12px;transition:all .2s ease}.mobile-close-button:hover{background:#94a3b833;color:#fff}.mobile-overlay{background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:899}@media (max-width:1024px){.mobile-menu-toggle{display:flex}.collapse-button{display:none}.mobile-close-button{display:block}.project-sidebar{transform:translateX(-100%);transition:transform .3s ease}.project-sidebar.mobile-open{transform:translateX(0);z-index:1000}.mobile-overlay,.project-sidebar.mobile-open~.mobile-overlay{display:block}.sidebar-header{justify-content:space-between}.project-sidebar.collapsed{width:280px}.project-sidebar.collapsed .sidebar-header h3{display:block}}.modal-overlay{background:#00000080}.modal{background:#fff;border-radius:16px;padding:32px}.modal-large{max-width:1200px}.modal-header{margin-bottom:24px;padding-right:40px}.modal-header h2,.modal-header h3{color:#334155;font-size:24px;margin:0}.modal-close{background:#e2e8f0;border-radius:50%;color:#334155;font-size:24px;height:32px;right:24px;top:24px;transition:background .3s ease;width:32px}.modal-close:hover{background:#cbd5e1}.modal-content{display:flex;flex-direction:column;gap:20px}.modal-actions,.modal-footer{gap:12px;margin-top:24px}.modal-actions{display:flex;justify-content:flex-end}.modal-actions button{flex:1 1}.modal-actions button.secondary{background:#e2e8f0;color:#334155}.modal-actions button.secondary:hover{background:#cbd5e1}.form-group{margin-bottom:20px}.form-group label{color:#334155;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:16px;padding:12px;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#64748b;outline:none}.info-message{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0c4a6e;line-height:1.5;margin-bottom:16px;padding:12px}.error-message{background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33}.error-message,.success-message{font-weight:500;margin-top:16px;padding:12px 16px}.success-message{background:#efe;border:1px solid #cfc;border-radius:8px;color:#3c3}.alert{border-radius:8px;font-weight:500;margin-bottom:16px;padding:12px 16px}.alert-error{background:#fee;border:1px solid #fcc;color:#c33}.alert-success{background:#efe;border:1px solid #cfc;color:#3c3}.alert-info{background:#eef;border:1px solid #ccf;color:#33c}.btn-primary{background:linear-gradient(135deg,#64748b,#475569);border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:all .3s ease}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.btn-primary:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-secondary{background:#e2e8f0;border:none;border-radius:8px;color:#334155;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:all .3s ease}.btn-secondary:hover:not(:disabled){background:#cbd5e1;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.btn-secondary:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-danger{background:#ef4444}.btn-success{background:#64748b}.btn-sm{font-size:14px;padding:8px 16px}.App{min-height:100vh}.page{margin:0 auto;max-width:1400px;padding:24px}.main-content-with-sidebar{margin-left:280px;margin-top:56px;min-height:calc(100vh - 56px);transition:margin-left .3s ease}@media (min-width:1025px){body:has(.project-sidebar.collapsed) .main-content-with-sidebar{margin-left:60px}}.page-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:24px}.page-header h1{color:var(--text-primary);font-size:24px;font-weight:600;margin-bottom:4px}.page-header p{color:var(--text-secondary);font-size:14px}.navbar{background:var(--bg-primary);border-bottom:1px solid var(--border-light);height:56px;justify-content:space-between;left:0;padding:0 20px;position:fixed;right:0;top:0;z-index:1000}.navbar,.navbar-brand{align-items:center;display:flex}.navbar-brand{color:var(--text-primary);font-size:16px;font-weight:600;gap:8px;text-decoration:none}.navbar-nav{align-items:center;display:flex;gap:4px;list-style:none}.navbar-nav a{border-radius:6px;color:var(--text-secondary);font-size:14px;font-weight:500;padding:8px 12px;text-decoration:none;transition:all .15s ease}.navbar-nav a:hover{background:var(--bg-tertiary);color:var(--text-primary)}.navbar-user{align-items:center;display:flex;font-size:14px;gap:12px}.btn-logout,.navbar-user{color:var(--text-primary)}.btn-logout{background:var(--bg-tertiary);font-size:13px;padding:6px 12px}.btn-logout:hover{background:var(--border-light)}.auth-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;max-width:400px;padding:32px;width:100%}.auth-card h2{color:var(--text-primary);font-size:24px;font-weight:600;margin-bottom:6px}.auth-card p{color:var(--text-secondary);font-size:14px;margin-bottom:24px}.form-group{margin-bottom:16px}.form-group label{color:var(--text-primary);display:block;font-size:13px;font-weight:500;margin-bottom:6px}.btn-primary{background:var(--accent-primary);color:#fff;font-weight:500}.btn-primary:hover{background:var(--accent-primary-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background:var(--border-medium)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#dc2626}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.auth-footer{color:var(--text-secondary);font-size:14px;margin-top:20px;text-align:center}.auth-footer a{color:var(--accent-primary);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.job-form{padding:24px}.job-card,.job-form{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px}.job-card{margin-bottom:12px;padding:16px;transition:all .15s ease}.job-card:hover{border-color:var(--border-medium);box-shadow:0 2px 8px #0000000a}.job-header{align-items:start;display:flex;justify-content:space-between;margin-bottom:12px}.status-pending{background:#fffbeb;color:#92400e}.status-running{background:#eff6ff;color:#1e40af}.status-completed{background:#f0fdf4;color:#166534}.status-failed{background:#fef2f2;color:#991b1b}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:24px}.stat-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;padding:20px;text-align:center}.stat-value{color:var(--text-primary);font-size:32px;font-weight:600;margin-bottom:6px}.stat-label{color:var(--text-secondary);font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.repo-list{list-style:none}.repo-item{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:14px}.repo-info h4{color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:4px}.repo-info p{color:var(--text-secondary);font-size:13px}.repo-actions{display:flex;gap:6px}.btn-sm{font-size:13px;padding:6px 12px}.modal-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:90%}.modal-header{margin-bottom:20px}.modal-header h3{color:var(--text-primary);font-size:18px;font-weight:600}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.kanban-board{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(5,minmax(280px,1fr));margin-top:20px;overflow-x:auto;padding-bottom:8px}@media (max-width:1600px){.kanban-board{grid-template-columns:repeat(5,320px)}}.kanban-column{background:#0000;display:flex;flex-direction:column;min-height:600px}.kanban-column-header{align-items:center;background:#0000;display:flex;gap:8px;margin-bottom:8px;padding:12px 16px}.kanban-column-header h3{color:var(--text-primary);flex:1 1;font-size:14px;font-weight:600;margin:0}.ticket-count{background:var(--bg-tertiary);border-radius:10px;color:var(--text-secondary);font-size:12px;font-weight:500;padding:2px 8px}.btn-add-ticket{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;display:flex;font-size:18px;height:24px;justify-content:center;transition:all .15s ease;width:24px}.btn-add-ticket:hover{background:var(--bg-tertiary);color:var(--text-primary)}.kanban-column-content{background:#0000;display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:8px}.ticket-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:6px;cursor:pointer;padding:12px;transition:all .15s ease}.ticket-card:hover{border-color:var(--border-medium);box-shadow:0 2px 8px #0000000a}.ticket-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.ticket-id{color:var(--text-tertiary);font-size:11px;font-weight:500}.ticket-priority,.ticket-title{font-size:14px}.ticket-title{color:var(--text-primary);font-weight:500;line-height:1.4;margin:4px 0}.ticket-description{color:var(--text-secondary);font-size:12px;line-height:1.5;margin:6px 0}.ticket-card-footer{align-items:center;border-top:1px solid var(--border-light);display:flex;justify-content:space-between;margin-top:8px;padding-top:8px}.ticket-assignee{color:var(--text-tertiary);font-size:11px}.ticket-job-status{font-size:14px}.empty-column{padding:32px 16px;text-align:center}.empty-column p{color:var(--text-tertiary);font-size:13px}.ticket-card.dragging{cursor:grabbing;opacity:.4}.kanban-column-content.drag-over{background:var(--bg-tertiary);border:1px dashed var(--accent-primary);border-radius:6px}.modal-large{max-width:1100px;width:95%}.modal-close{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;position:absolute;right:20px;top:20px;transition:all .15s ease;width:28px}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-header{padding-right:36px;position:relative}.ticket-modal-content{display:flex;flex-direction:column;gap:16px}.ticket-detail-section{display:flex;flex-direction:column;gap:6px}.ticket-detail-section label{color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.ticket-detail-section p{color:var(--text-primary);font-size:14px;margin:0}.ticket-detail-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.ticket-status-select{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:13px;padding:6px 10px}.priority-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:3px 10px;text-transform:capitalize}.priority-high{background:#fef2f2;color:#991b1b}.priority-medium{background:#fffbeb;color:#92400e}.priority-low{background:#f0fdf4;color:#166534}.ticket-job-section{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;padding:12px}.job-info-card{display:flex;flex-direction:column;gap:6px}.job-info-header{margin-bottom:6px}.job-status{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:4px 10px;text-transform:capitalize}.ticket-modal-two-column{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:1fr 320px}.ticket-modal-left{display:flex;flex-direction:column;gap:20px}.ticket-modal-right{display:flex;flex-direction:column;gap:16px}.ticket-tabs{border-bottom:2px solid var(--border-light);display:flex;gap:8px;margin-bottom:16px}.ticket-tab{background:#0000;border:none;border-bottom:3px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;margin-bottom:-2px;padding:12px 20px;transition:all .15s ease}.ticket-tab:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.ticket-tab.active{border-bottom-color:var(--accent-primary);color:var(--accent-primary)}.ticket-tab:disabled{cursor:not-allowed;opacity:.5}.ticket-tab-content{margin-top:8px}.plan-display{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:6px;color:var(--text-primary);font-size:14px;line-height:1.6;max-height:600px;overflow-y:auto;padding:16px}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{color:var(--text-primary);font-weight:600;margin-bottom:.5em;margin-top:1em}.markdown-content h1{font-size:1.5em}.markdown-content h1,.markdown-content h2{border-bottom:1px solid var(--border-light);padding-bottom:.3em}.markdown-content h2{font-size:1.3em}.markdown-content h3{font-size:1.1em}.markdown-content h4{font-size:1em}.markdown-content p{margin:.8em 0}.markdown-content ol,.markdown-content ul{margin:.5em 0;padding-left:1.5em}.markdown-content li{margin:.3em 0}.markdown-content code{border-radius:4px;color:var(--accent-primary);font-family:Courier New,Courier,monospace;font-size:.9em;padding:.2em .4em}.markdown-content code,.markdown-content pre{background:#1e1e1e;background:var(--bg-tertiary,#1e1e1e)}.markdown-content pre{border-radius:6px;margin:.8em 0;overflow-x:auto;padding:12px}.markdown-content pre code{background:none;color:var(--text-primary);padding:0}.markdown-content strong{color:var(--text-primary);font-weight:600}.markdown-content em{font-style:italic}.markdown-content hr{border:none;border-top:1px solid var(--border-light);margin:1em 0}.markdown-content blockquote{border-left:3px solid var(--accent-primary);color:var(--text-secondary);margin:.8em 0;padding-left:1em}.ticket-description-textarea{border:1px solid var(--border-light);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:13px;line-height:1.5;min-height:160px;padding:10px 12px;resize:vertical;width:100%}.ticket-description-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.ticket-description-display{border:1px solid var(--border-light);color:var(--text-primary);font-size:13px;line-height:1.5;min-height:100px;padding:12px;white-space:pre-wrap;word-break:break-word}.comments-section,.ticket-description-display{background:var(--bg-secondary);border-radius:6px}.comments-section{border:1px solid var(--border-light);padding:16px}.comments-section h4{align-items:center;color:var(--text-primary);display:flex;font-size:14px;font-weight:600;gap:6px;margin-bottom:12px}.comments-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;max-height:400px;overflow-y:auto;padding-right:4px}.comment-item{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:6px;padding:10px}.comment-item.system-comment{background:#fffbeb;border-color:#fde68a}.comment-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.comment-author{color:var(--text-primary);font-size:12px;font-weight:600}.comment-author.system{color:#92400e}.comment-date{color:var(--text-tertiary);font-size:11px}.comment-content{color:var(--text-secondary);font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.comment-form{display:flex;flex-direction:column;gap:8px}.comment-textarea{border:1px solid var(--border-light);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:13px;min-height:70px;padding:8px 10px;resize:vertical;width:100%}.comment-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.comment-submit{align-self:flex-end;background:var(--accent-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .15s ease}.comment-submit:hover:not(:disabled){background:var(--accent-primary-hover)}.comment-submit:disabled{cursor:not-allowed;opacity:.5}.empty-comments{color:var(--text-tertiary);font-size:13px;padding:24px 12px;text-align:center}@media (max-width:1024px){.main-content-with-sidebar{margin-left:0;margin-top:60px}.kanban-board{grid-template-columns:1fr}.kanban-column{min-height:400px}.ticket-detail-grid,.ticket-modal-two-column{grid-template-columns:1fr}.ticket-modal-right{order:-1}}
/*# sourceMappingURL=main.4aa3816c.css.map*/