:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{color-scheme:light;--primary-text: #2d3748;--primary-ui: #5a67d8;--primary-ui-dark: #4c51bf;--accent: #7f9cf5;--background-light: #f0f5ff;--background-light-transparent: rgb( 240 245 255 / 80% );--border: #e2e8f0;--error: #e53e3e;--error-red: #e53e3e;--white: #fff;--status-green: #27ae60;--status-blue: #2980b9;--status-yellow: #f39c12;--status-red: #e74c3c}#root{margin:0 auto;padding:2rem;width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f8f9fa;color:var(--primary-text);min-height:100vh}.content-wrapper{max-width:max(1600px,85%);margin:0 auto}h1{font-weight:700;color:var(--primary-text);margin-bottom:.5rem;text-align:center;padding-bottom:1rem}.controls{margin-bottom:1.5rem;display:flex;flex-flow:column wrap;justify-content:center;align-items:center;gap:1rem}.panel{background:var(--white);padding:1.25rem 1.5rem;border:1px solid var(--border);border-radius:.75rem;box-shadow:0 4px 10px #0000000f;margin:1rem 0}.panel-sidebyside{display:flex;flex-direction:row;gap:1rem;max-width:100%}.panel-title{margin:0 0 1rem;font-weight:600;color:var(--primary-text);font-size:1.125rem}.panel-section{margin-top:1.25rem}.panel-section:first-of-type{margin-top:.75rem}.form-row{display:flex;flex-flow:row wrap;gap:1rem;align-items:center}.form-input{padding:.6rem .8rem;border:1px solid var(--border);border-radius:6px;background:var(--white);flex:1 1 180px;transition:border .2s,box-shadow .2s}.form-input:focus{outline:none;border-color:var(--primary-ui);box-shadow:0 0 0 3px #5a67d84d}.form-error{color:var(--error);font-weight:600}.exclusion-badges{display:flex;flex-wrap:wrap;gap:.5rem}.edge{display:flex;align-items:baseline;white-space:nowrap}.edge-list{list-style:none;margin:0;padding:0}.destination{font-weight:600;color:var(--primary-ui-dark)}.edge.inward .arrow{color:var(--status-green)}.edge.outward .arrow{color:var(--primary-ui-dark)}.excluded-pill{background:var(--background-light);color:var(--primary-text);padding:.3rem .75rem;border-radius:999px;font-size:.875rem;display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border)}.pill-action{background:none;border:none;color:var(--primary-ui);cursor:pointer;font-weight:700;padding:0 .25rem}.pill-action:hover{color:var(--primary-ui-dark)}.db-panel .form-row{margin-top:1rem}.file-upload{background:var(--white);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;gap:.5rem;flex:1 1 180px}.file-upload:hover{border-color:var(--primary-ui);box-shadow:0 0 0 3px #5a67d833}.file-upload-input{display:none}.db-panel .status-message{text-align:left;margin:0;padding:0;font-size:.9rem;opacity:.7}.select-container{position:relative;display:inline-block;padding:1rem}.select-container:after{content:"▼";color:#555;position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none}.select-dropdown{padding:.6em 2.5em .6em 1em;min-width:220px;font-size:12pt;font-weight:500;background-color:var(--primary-ui);cursor:pointer;color:var(--white);border:1px solid var(--border);border-radius:6px;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out}.select-dropdown:hover{border-color:var(--primary-ui-dark)}.controls-panel .select-dropdown{width:100%;background-color:var(--white);padding:.6rem 2.2rem .6rem .8rem;border:1px solid var(--border);border-radius:6px;appearance:none;cursor:pointer;transition:border-color .2s ease-out,box-shadow .2s ease-out}.controls-panel .select-dropdown:hover{border-color:var(--primary-ui)}.controls-panel .select-dropdown:focus{outline:none;border-color:var(--primary-ui);box-shadow:0 0 0 3px #5a67d840}.search-input{width:50%;padding:1em;background-color:var(--white);border:1px solid var(--border);border-radius:6px;transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out}.search-input:focus{outline:none;border-color:var(--border);box-shadow:0 0 0 3px var(--primary-ui-dark)}.button-like{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;font-weight:600;border-radius:.5rem;border:1px solid transparent;-webkit-user-select:none;user-select:none;transition:all .2s ease-in-out;box-shadow:0 2px 6px #0000001a;cursor:pointer}.button-primary{background-color:var(--primary-ui);color:var(--white);border-color:var(--primary-ui)}.button-primary:hover{background-color:var(--primary-ui-dark);transform:translateY(-1px);box-shadow:0 4px 10px #0000001f}.button-primary:active{transform:translateY(0);box-shadow:0 2px 4px #00000014}.button-secondary{background-color:var(--white);color:var(--primary-ui-dark);border-color:var(--primary-ui-dark)}.button-secondary:hover{background-color:var(--background-light);transform:translateY(-1px);box-shadow:0 4px 10px #0000001f}.button-secondary:active{transform:translateY(0);box-shadow:0 2px 4px #00000014}.button-outline{background-color:var(--white);color:var(--primary-ui);border-color:var(--primary-ui)}.button-outline:hover{background-color:var(--primary-ui);color:var(--white);transform:translateY(-1px)}.button-outline:active{transform:translateY(0);box-shadow:0 2px 4px #00000014}.database-loader{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;flex:1 1%;padding:1rem 1.5rem;background-color:var(--primary-ui);color:var(--white);font-weight:600;border-radius:.5rem;border:1px solid #ccc;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 2px 6px #0000001a;transition:all .2s ease-in-out}.database-loader:hover{background-color:var(--primary-ui-dark);transform:translateY(-1px);box-shadow:0 4px 10px #0000001f}.database-loader:active{transform:translateY(0);box-shadow:0 2px 4px #00000014}.database-loader span{pointer-events:none}.database-loader input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.database-loader:before{content:"📁";margin-right:.25rem;pointer-events:none}.metadata{background-color:var(--white);flex:1 1;flex-grow:1;padding:1rem 1.5rem;line-height:1.6;box-shadow:0 2px 4px #0000000a}.metadata strong{color:var(--primary-text)}.status-message{color:var(--primary-text);opacity:.7;text-align:center}.error{color:var(--error);font-weight:600;text-align:center}.table-container{overflow-x:auto;border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;background-color:var(--white);max-width:max(1600px,85%);margin:2rem auto}table{border-collapse:collapse;width:100%}th,td{padding:1rem 1.5rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{font-weight:600;color:var(--primary-text);background-color:#f8f9fa;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none;cursor:pointer;border-bottom-width:2px;transition:background-color .2s}th.sorted{color:var(--accent)}th:hover{background-color:var(--background-light)}tbody tr{transition:background-color .2s}tbody tr:hover{background-color:var(--background-light)}td{color:var(--primary-text);opacity:.9}tbody tr:nth-of-type(2n){background-color:#f8f9fa}tbody tr:nth-of-type(2n):hover{background-color:var(--background-light)}.report-container{background-color:var(--white);padding:1.5rem 2rem;border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 25px #00000012;max-width:max(1600px,85%)}.report-header{text-align:center;margin:0 auto;padding:0;border-bottom:none;line-height:1.4}.project-group{margin-bottom:3rem;border:1px solid var(--border);border-radius:.75rem;background-color:#fdfdfd;box-shadow:0 4px 12px #0000000d;overflow-x:scroll}.project-title{font-weight:700;color:var(--white);background-color:var(--primary-ui);padding:1rem 1.5rem;margin:0}.project-title .button-like{padding:.5rem 1rem}.repo-group{padding:1.5rem}.repo-title{font-weight:600;color:var(--primary-text);margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.ticket-link{color:#007bff;text-decoration:underline;cursor:pointer;font-weight:500}.ticket-link:hover{color:#0056b3;text-decoration:none}.ticket-compact-table{width:100%;border-collapse:collapse}.ticket-compact-table th,.ticket-compact-table td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left;vertical-align:top}.ticket-compact-table th{background-color:var(--background-light);font-weight:600}.ticket-compact-table .cell-linked_tickets{justify-items:left}.ticket-compact-table .cell-key{font-weight:700;color:var(--primary-ui);white-space:nowrap}.ticket-compact-table .cell-summary{white-space:normal;overflow-wrap:break-word}.ticket-compact-table .cell-commits,.label-stack{display:flex;flex-direction:column;gap:.25rem}.commit-sub-table{width:100%;border-collapse:collapse;background-color:var( --background-light )}.commit-sub-table th,.commit-sub-table td{border:1px solid var(--border);padding:.25rem .5rem;text-align:left}.commit-sub-table th{font-weight:600;background-color:#e9ecef}.commit-sub-table .cell-count{text-align:center;font-weight:700}.commit-sub-table .clickable-row{cursor:pointer;transition:background-color .2s}.commit-sub-table .clickable-row:hover{background-color:var(--background-light)}.modal-backdrop{position:fixed;inset:0;background-color:var(--background-light-transparent);display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-panel{background-color:var(--white);border-radius:.75rem;box-shadow:0 10px 25px #0003;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;color:var(--primary-text)}.modal-close-button{background:none;border:none;font-weight:300;line-height:1;color:var(--primary-text);opacity:.5;cursor:pointer;transition:opacity .2s}.modal-close-button:hover{opacity:1}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem;border-top:1px solid #eee}.modal-content{padding:1.5rem;overflow-y:auto}.monospaced-log-text{font-family:monospace}.monospaced-log-text pre{margin:0;background-color:#f8f9fa;border:1px solid var(--border);border-radius:.375rem;padding:1rem;white-space:pre-wrap;overflow-wrap:break-word}.ticket-status,.issue-type,.ticket-label{background-color:var(--accent);color:var(--white);font-weight:600;padding:.25rem .6rem;border-radius:50px;white-space:nowrap;overflow-wrap:break-word}.ticket-status.status-green,.issue-type.issue-type-green,.ticket-label.label-green{background-color:var(--status-green)}.ticket-status.status-yellow,.issue-type.issue-type-yellow,.ticket-label.label-yellow{background-color:var( --status-yellow )}.ticket-status.status-blue{background-color:var(--status-blue)}.ticket-status.status-red,.issue-type.issue-type-red,.ticket-label.label-red{background-color:var(--status-red)}.issue-type.issue-type-blue,.ticket-label.label-blue{background-color:var(--primary-ui)}.issue-type.issue-type-magenta{background-color:#f0f}.print-header{display:none}.ticket-cell-container{display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:8px}.exclude-action-button{background-color:var(--background-light);color:var(--status-red);text-align:center;cursor:pointer;font-weight:700}.exclude-action-button:hover{background-color:var(--status-red);color:var(--white);border-color:var(--status-red)}.button-danger{padding:.5rem 1rem;border:1px solid #d93025;background-color:#d93025;color:#fff;border-radius:5px;cursor:pointer}.button-danger:hover{opacity:.9}.backend-wrapper{display:flex;flex-direction:row;gap:1rem;max-width:100%;background-color:var(--white);border-radius:.75rem;box-shadow:var(--primary-ui-dark)}.form-container{width:100%;display:flex;flex-direction:column;gap:1.5rem;align-items:stretch}.inputs-row{display:flex;flex-wrap:wrap;gap:1rem}.button-row{display:flex;justify-content:flex-start}.log-container{max-height:300px;overflow-y:auto;padding:1rem;margin-top:1rem;border:1px solid var(--border);border-radius:.5rem;background-color:var(--background-light-transparent);font-family:monospace;white-space:normal;overflow-wrap:anywhere}.log-row{display:grid;grid-template-columns:200px 1fr;gap:1rem;align-items:start;white-space:normal}.log-event{font-weight:600;color:var(--primary-ui)}.log-context{white-space:normal;overflow-wrap:anywhere}.download-link-container{display:flex;justify-content:center;margin-top:1rem}@media print{@page{size:letter;margin:0}html{height:100%}.page-nonbreaking{break-before:avoid;break-inside:avoid}.page-breaking{break-before:page;break-inside:avoid;break-after:page}body{display:block;height:auto;flex-direction:column;justify-content:flex-start;font-family:Arial,Helvetica,sans-serif;font-size:10pt;background:#fff!important;color:#000!important}a{text-decoration:none;color:inherit}.content-wrapper,.no-print{display:none!important}.print-header{margin:.5rem;padding:.5rem}.project-group:first-of-type .print-header{display:block!important}.print-header h1,.print-header h2{margin:0;padding:0;line-height:1.2;text-align:left}.print-header h1{font-size:16pt}.print-header h2{font-size:12pt}.table-container,.report-container{display:table!important;width:100%;max-width:100%;margin:0 auto;padding:0;background:#fff!important;border:none!important;box-shadow:none!important}.table-container table{table-layout:fixed;width:100%;border-collapse:collapse;font-size:9pt;border:1px solid #aaa}.table-container th,.table-container td{padding:8px 12px;border:1px solid #ccc;white-space:normal!important;word-break:auto-phrase}.table-container thead{display:table-header-group}.table-container th{background-color:#f0f0f0!important;color:#000!important;font-weight:700;-webkit-print-color-adjust:exact;print-color-adjust:exact}.table-container tr{break-inside:avoid}.project-group{border:1px solid #aaa;border-radius:0;margin:auto;width:100%;box-sizing:border-box;box-shadow:none}.project-group:first-child{break-before:auto}.ticket-row{border:1px solid #ccc;break-inside:avoid;padding:1rem}.ticket-cell.summary{white-space:normal!important;overflow-wrap:break-word}.commit-message{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.commits-row-container{flex-direction:column;align-items:flex-start}.commit-card{width:100%;border:1px solid #ccc;background:#f9f9f9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid}}.ticket-grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.ticket-card{border:1px solid #ccc;border-radius:8px;padding:1rem;cursor:pointer;transition:box-shadow .2s ease-in-out,transform .2s ease-in-out;display:flex;flex-direction:column;justify-content:space-between;background-color:#fff}.ticket-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem;font-size:.9rem}.ticket-key{font-weight:700;font-family:monospace;background-color:#f0f0f0;padding:2px 6px;border-radius:4px}.card-summary{margin:0 0 1rem;flex-grow:1}.card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:#666}.commit-count{font-weight:500}.modal-body{padding:0 1.5rem 1.5rem;max-height:70vh;overflow-y:auto}.modal-body h4{margin-top:1rem;margin-bottom:.5rem}.modal-body p{margin:.25rem 0}.modal-body hr{border:none;border-top:1px solid #eee;margin:1rem 0}.repo-commit-group{margin-bottom:1.5rem}.repo-commit-group:last-child{margin-bottom:0}
