.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;min-height:200px}.spinner{width:48px;height:48px;border:4px solid rgba(0,0,0,.1);border-left-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{margin-top:1rem;color:#6b7280;font-size:.875rem;text-align:center}.error-display{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;min-height:200px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:1rem}.error-icon{width:48px;height:48px;color:#dc2626;margin-bottom:1rem}.error-message{color:#991b1b;font-size:.875rem;text-align:center;margin-bottom:1rem;max-width:500px;line-height:1.5}.error-retry-button{padding:.5rem 1rem;background-color:#dc2626;color:#fff;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background-color .2s}.error-retry-button:hover{background-color:#b91c1c}.error-retry-button:active{background-color:#991b1b}.diff-viewer{display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:#fff}.diff-viewer-header{padding:.75rem 1rem;border-bottom:1px solid #e0e0e0;background-color:#f8f9fa}.diff-viewer-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:0rem}.diff-viewer-title-section{display:flex;align-items:center;gap:.5rem}.diff-viewer-header h2{margin:0;font-size:1rem;font-weight:600;color:#333}.diff-viewer-controls{display:flex;align-items:center;gap:.75rem}.view-mode-label{font-size:.875rem;font-weight:500;color:#666}.view-mode-select{padding:.375rem .75rem;font-size:.875rem;border:1px solid #d0d7de;border-radius:6px;background-color:#fff;color:#24292f;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.view-mode-select:hover{border-color:#0969da}.view-mode-select:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.diff-navigation{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;background-color:#f6f8fa;border:1px solid #d0d7de;border-radius:6px}.diff-nav-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background-color:#fff;border:1px solid #d0d7de;border-radius:4px;color:#24292f;cursor:pointer;transition:all .2s ease}.diff-nav-button:hover{background-color:#f6f8fa;border-color:#0969da;color:#0969da}.diff-nav-button:active{background-color:#e9ecef}.diff-nav-button:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.diff-nav-counter{font-size:.75rem;font-weight:500;color:#57606a;min-width:50px;text-align:center;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;background:none;border:none;padding:.25rem .5rem;cursor:pointer;border-radius:3px;transition:all .2s ease}.diff-nav-counter:hover{background-color:#f6f8fa;color:#24292f}.diff-nav-counter:active{background-color:#e9ecef}.diff-nav-counter:focus{outline:none;box-shadow:0 0 0 3px #0969da1a}.diff-viewer-filename{margin:0;font-size:.875rem;color:#666;font-family:monospace}.diff-viewer-content{flex:1;overflow-y:auto;padding:1rem}.diff-viewer-content:has(.diff-content-wrapper){display:flex;flex-direction:column;overflow:hidden;padding:0}.diff-viewer-content:has(.pdf-view-container){overflow:hidden;padding:0}.diff-viewer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666;text-align:center;padding:2rem}.diff-viewer-empty p{margin:.5rem 0;font-size:1rem}.diff-viewer-hint{font-size:.875rem;color:#999}.diff-stats{display:flex;gap:1rem;padding:1rem;background-color:#f8f9fa;border-radius:6px;flex-wrap:wrap;flex-shrink:0}.diff-stat{padding:.375rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500;font-family:monospace}.diff-stat-addition{background-color:#d4edda;color:#155724}.diff-stat-deletion{background-color:#f8d7da;color:#721c24}.diff-stat-replace{background-color:#fff3cd;color:#856404}.diff-stat-unchanged{background-color:#e9ecef;color:#495057}.diff-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;margin-left:.5rem}.diff-badge-significant{background-color:#ffc107;color:#000}.diff-operations{display:flex;flex-direction:column;gap:.5rem}.diff-content-inline{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:.875rem;line-height:1.6}.diff-hunk{margin-bottom:1.5rem;border:1px solid #d0d7de;border-radius:6px;overflow:hidden}.diff-hunk-edit{border-color:#ffc107}.diff-hunk-edit .diff-block-deletion,.diff-hunk-edit .diff-block-addition{background-color:#fff8e1;border-left-color:#ffc107}.diff-hunk-edit .diff-block-deletion .diff-block-prefix,.diff-hunk-edit .diff-block-addition .diff-block-prefix{color:#856404}.diff-block{position:relative;padding:.75rem 1rem;border-left:3px solid transparent}.diff-block-unchanged{background-color:#fff;border-left-color:#d0d7de}.diff-block-addition{background-color:#e6ffec;border-left-color:#2da44e}.diff-block-deletion{background-color:#ffebe9;border-left-color:#cf222e}.diff-block-collapsed{padding:0;background-color:#f6f8fa;border-left-color:#d0d7de}.diff-block-indicator{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.diff-block-prefix{color:#57606a}.diff-block-addition .diff-block-prefix{color:#1a7f37}.diff-block-deletion .diff-block-prefix{color:#a40e26}.diff-block-content{padding:.5rem 0;line-height:1.6;color:#24292f}.diff-block-content p{margin:.5em 0}.diff-block-content p:first-child{margin-top:0}.diff-block-content p:last-child{margin-bottom:0}.diff-block-content h1,.diff-block-content h2,.diff-block-content h3,.diff-block-content h4,.diff-block-content h5,.diff-block-content h6{margin:1em 0 .5em;font-weight:600;line-height:1.25}.diff-block-content h1{font-size:2em;border-bottom:1px solid #d0d7de;padding-bottom:.3em}.diff-block-content h2{font-size:1.5em;border-bottom:1px solid #d0d7de;padding-bottom:.3em}.diff-block-content h3{font-size:1.25em}.diff-block-content h4{font-size:1em}.diff-block-content h5{font-size:.875em}.diff-block-content h6{font-size:.85em;color:#57606a}.diff-block-content ul,.diff-block-content ol{margin:.75em 0;padding-left:2em}.diff-block-content li{margin:.25em 0}.diff-block-content li>p{margin:.25em 0}.diff-block-content code{background-color:#afb8c133;padding:.2em .4em;border-radius:6px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:85%}.diff-block-content pre{background-color:#f6f8fa;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.45}.diff-block-content pre code{background-color:transparent;padding:0;border-radius:0;font-size:100%}.diff-block-content strong{font-weight:600}.diff-block-content em{font-style:italic}.diff-block-content a{color:#0969da;text-decoration:none}.diff-block-content a:hover{text-decoration:underline}.diff-block-content blockquote{margin:.75em 0;padding:0 1em;color:#57606a;border-left:.25em solid #d0d7de}.diff-block-content hr{height:.25em;padding:0;margin:24px 0;background-color:#d0d7de;border:0}.diff-expand-button,.diff-collapse-button,.diff-load-more-button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;background-color:#f6f8fa;border:none;cursor:pointer;font-size:.875rem;color:#0969da;font-weight:500;transition:background-color .2s ease}.diff-expand-button:hover,.diff-collapse-button:hover,.diff-load-more-button:hover{background-color:#eaeef2}.diff-expand-button:focus,.diff-collapse-button:focus,.diff-load-more-button:focus{outline:2px solid #0969da;outline-offset:-2px}.diff-collapse-button{background-color:#fff;border-bottom:1px solid #d0d7de;margin-bottom:.5rem}.diff-load-more-button{background-color:#f6f8fa;border-top:1px solid #d0d7de;margin-top:.5rem}.diff-expand-icon,.diff-collapse-icon{font-size:.75rem;line-height:1}.diff-expand-text,.diff-collapse-text{flex:1;text-align:left}.diff-line{display:flex;align-items:flex-start;padding:.25rem 0;word-wrap:break-word;overflow-wrap:break-word}.diff-line-number{min-width:50px;padding:0 .5rem;text-align:right;color:#6c757d;-webkit-user-select:none;user-select:none;flex-shrink:0}.diff-line-prefix{width:20px;padding:0 .5rem;font-weight:700;flex-shrink:0}.diff-line-content{flex:1;padding:0 .5rem;word-break:break-word;color:#24292f}.diff-line-content p{margin:0;padding:0}.diff-line-content h1,.diff-line-content h2,.diff-line-content h3,.diff-line-content h4,.diff-line-content h5,.diff-line-content h6{margin:.5em 0;font-weight:600}.diff-line-content ul,.diff-line-content ol{margin:.5em 0;padding-left:2em}.diff-line-content li{margin:.25em 0}.diff-line-content code{background-color:#afb8c133;padding:.2em .4em;border-radius:3px;font-family:Courier New,Courier,monospace;font-size:.9em}.diff-line-content pre{background-color:#f6f8fa;padding:.5em;border-radius:3px;overflow-x:auto}.diff-line-content strong{font-weight:600}.diff-line-content em{font-style:italic}.diff-line-content a{color:#0969da;text-decoration:none}.diff-line-content a:hover{text-decoration:underline}.diff-line-addition{background-color:#e6ffed}.diff-line-addition .diff-line-content{color:#24292f}.diff-line-addition .diff-line-prefix{color:#22863a}.diff-line-deletion{background-color:#ffeef0}.diff-line-deletion .diff-line-content{color:#24292f}.diff-line-deletion .diff-line-prefix{color:#cb2431}.diff-line-unchanged{background-color:transparent}.diff-line-unchanged .diff-line-content{color:#24292f}.diff-line-info{font-weight:500;color:#495057}.diff-line strong{font-weight:700}.diff-line em{font-style:italic}.diff-line code{background-color:#0000000d;padding:.125rem .25rem;border-radius:3px;font-family:Courier New,Courier,monospace}.diff-line h1,.diff-line h2,.diff-line h3,.diff-line h4,.diff-line h5,.diff-line h6{margin:.5rem 0;font-weight:600}.diff-line ul,.diff-line ol{margin:.5rem 0;padding-left:1.5rem}.diff-line li{margin:.25rem 0}.diff-line a{color:#007bff;text-decoration:underline}.diff-line a:hover{color:#0056b3}.diff-block-content table{border-collapse:collapse;width:100%;margin:1rem 0;background-color:#fff}.diff-block-content table th,.diff-block-content table td{border:1px solid #d0d7de;padding:.5rem .75rem;text-align:left}.diff-block-content table th{background-color:#f6f8fa;font-weight:600;color:#24292f}.diff-block-content table tr:nth-child(2n){background-color:#f6f8fa}.diff-block-content table tr:hover{background-color:#f0f3f6}.diff-line-content table{border-collapse:collapse;width:100%;margin:1rem 0;background-color:#fff}.diff-line-content table th,.diff-line-content table td{border:1px solid #d0d7de;padding:.5rem .75rem;text-align:left}.diff-line-content table th{background-color:#f6f8fa;font-weight:600;color:#24292f}.diff-line-content table tr:nth-child(2n){background-color:#f6f8fa}.diff-line-content table tr:hover{background-color:#f0f3f6}.diff-content-wrapper{position:relative;display:flex;width:100%;flex:1;min-height:0;overflow:hidden}.diff-content-scroll-container{flex:1;overflow-y:auto;overflow-x:hidden;height:100%;position:relative;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.18) transparent}.diff-content-scroll-container::-webkit-scrollbar{width:6px}.diff-content-scroll-container::-webkit-scrollbar-track{background:transparent}.diff-content-scroll-container::-webkit-scrollbar-thumb{background-color:#0000002e;border-radius:3px}.diff-content-side-by-side{display:flex;gap:1px;background-color:#d0d7de;border:1px solid #d0d7de;border-radius:6px;overflow:hidden;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.8125rem;line-height:1.5;min-height:calc(100% - 2rem);margin:1rem 90px 1rem 1rem}.diff-table{width:calc(100% - 100px);border-collapse:collapse;table-layout:fixed;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.8125rem;line-height:1.5;margin:1rem 90px 1rem 1rem}.diff-table-header{position:sticky;top:0;background-color:#f6f8fa;border-bottom:2px solid #d0d7de;padding:.5rem .75rem;font-weight:600;text-align:left;z-index:2;font-size:.875rem;width:50%}.diff-table-header-content{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.diff-table-header-label{font-weight:600;color:#24292f}.diff-table-header-timestamp{font-size:.75rem;font-weight:400;color:#57606a;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;flex-basis:100%}.diff-table-header-filename{font-size:.75rem;font-weight:400;color:#24292f;background-color:#fff;border:1px solid #d0d7de;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;transition:all .2s ease;margin-left:auto}.diff-table-header-filename:hover{background-color:#f6f8fa;border-color:#0969da;color:#0969da}.diff-table-header-filename:active{background-color:#e9ecef}.diff-table-header-filename:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.diff-table-row:hover .diff-table-cell{background-color:#00000005}.diff-table-cell{vertical-align:top;padding:0;border:none;min-height:24px;width:50%;max-width:50%;overflow:hidden;box-sizing:border-box;position:relative;color:#24292f}.diff-table-cell:has(.diff-placeholder-block){height:36px}.diff-table-cell-unchanged{background-color:#fff}.diff-table-cell-addition{background-color:#e6ffec}.diff-table-cell-deletion{background-color:#ffebe9}.diff-table-cell-replace{background-color:#fff8e1}.diff-table-cell-placeholder{background-color:transparent}.diff-row-current .diff-table-cell{position:relative;box-shadow:inset 0 0 0 2px #0969da;z-index:1}.diff-row-current .diff-table-cell:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background-color:#0969da}.diff-side{flex:1;background-color:#fff;display:flex;flex-direction:column;min-width:0}.diff-side-header{padding:.75rem 1rem;background-color:#f6f8fa;border-bottom:1px solid #d0d7de;font-weight:600;font-size:.875rem;color:#24292f;text-align:center;position:sticky;top:0;z-index:2}.diff-side-content{flex:1}.diff-side-line{display:flex;align-items:flex-start;min-height:24px;transition:background-color .1s ease;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.diff-side-line:hover{background-color:#00000005}.diff-side-line-number{flex-shrink:0;width:50px;padding:.25rem .5rem;text-align:right;color:#8b949e;-webkit-user-select:none;user-select:none;border-right:1px solid #d0d7de;background-color:#00000004;font-size:.75rem}.diff-side-line-content{flex:1;padding:.25rem .75rem;word-break:break-word;overflow-wrap:break-word;min-height:1.5rem;max-width:100%;box-sizing:border-box}.diff-side-line-empty{display:inline-block;color:transparent}.diff-side-line-unchanged{background-color:#fff}.diff-side-line-unchanged .diff-side-line-content{color:#24292f}.diff-side-line-addition{background-color:#e6ffec}.diff-side-line-addition .diff-side-line-number{background-color:#ccf4d6;border-right-color:#2da44e}.diff-side-line-addition .diff-side-line-content{color:#24292f}.diff-side-line-deletion{background-color:#ffebe9}.diff-side-line-deletion .diff-side-line-number{background-color:#ffd7d5;border-right-color:#cf222e}.diff-side-line-deletion .diff-side-line-content{color:#24292f}.diff-side-line-replace{background-color:#fff8e1}.diff-side-line-replace .diff-side-line-number{background-color:#fff3cd;border-right-color:#ffc107}.diff-side-line-replace .diff-side-line-content{color:#24292f}.diff-placeholder-block{position:absolute;inset:4px;display:flex;align-items:center;justify-content:center;border:2px dashed;border-radius:4px;padding:.75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .2s ease;box-sizing:border-box}.diff-placeholder-content{text-align:center;opacity:.7}.diff-placeholder-deleted{background-color:#fff5f5;border-color:#ffd7d5;color:#cf222e}.diff-placeholder-deleted:hover{background-color:#ffebe9;border-color:#cf222e}.diff-placeholder-added{background-color:#f0fff4;border-color:#ccf4d6;color:#2da44e}.diff-placeholder-added:hover{background-color:#e6ffec;border-color:#2da44e}.diff-placeholder-block.diff-side-line-current{border-style:solid;opacity:1}.diff-placeholder-block.diff-side-line-current .diff-placeholder-content{opacity:1}.diff-side-line-current{position:relative;box-shadow:0 0 0 2px #0969da;z-index:1}.diff-side-line-current:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background-color:#0969da}.diff-side-line-content p{margin:0;padding:0}.diff-side-line-content p:first-child{margin-top:0}.diff-side-line-content p:last-child{margin-bottom:0}.diff-side-line-content h1,.diff-side-line-content h2,.diff-side-line-content h3,.diff-side-line-content h4,.diff-side-line-content h5,.diff-side-line-content h6{margin:.25em 0;font-weight:600;line-height:1.25}.diff-side-line-content ul,.diff-side-line-content ol{margin:.25em 0;padding-left:1.5em}.diff-side-line-content li{margin:.125em 0}.diff-side-line-content code{background-color:#afb8c133;padding:.2em .4em;border-radius:3px;font-size:.9em}.diff-side-line-content pre{background-color:#f6f8fa;padding:.5em;border-radius:3px;overflow-x:auto;margin:.25em 0;max-width:100%;box-sizing:border-box}.diff-side-line-content pre code{background-color:transparent;padding:0;border-radius:0;word-break:break-word;overflow-wrap:break-word}.diff-side-line-content strong{font-weight:600}.diff-side-line-content em{font-style:italic}.diff-side-line-content a{color:#0969da;text-decoration:none}.diff-side-line-content a:hover{text-decoration:underline}.diff-side-line-content blockquote{margin:.25em 0;padding:0 .75em;color:#57606a;border-left:.25em solid #d0d7de}.diff-side-line-content table{border-collapse:collapse;width:100%;max-width:100%;margin:.5em 0;font-size:.875em;table-layout:fixed;overflow:hidden}.diff-side-line-content table th,.diff-side-line-content table td{border:1px solid #d0d7de;padding:.375rem .5rem;text-align:left;word-break:break-word;overflow-wrap:break-word}.diff-side-line-content table th{background-color:#f6f8fa;font-weight:600}.diff-segment-add{background-color:#acf2bd;color:#1a7f37;font-weight:500}.diff-segment-delete{background-color:#ffd7d5;color:#d1242f;text-decoration:line-through;font-weight:500}.diff-segment-change{background-color:#fff8c5;color:#bf8700;font-weight:500}@media(max-width:768px){.diff-viewer-header{padding:1rem}.diff-viewer-header-top{flex-direction:column;align-items:flex-start;gap:.75rem}.diff-viewer-header h2{font-size:1.125rem}.diff-viewer-content{padding:.75rem}.diff-line{font-size:.8125rem;padding:.25rem .375rem}.diff-content-side-by-side{flex-direction:column}.diff-side{max-height:400px}.diff-content-side-by-side{margin-right:0}.diff-minimap{display:none}}@media(max-width:480px){.diff-viewer-header{padding:.75rem}.diff-viewer-header h2{font-size:1rem}.diff-viewer-filename{font-size:.75rem}.diff-viewer-content{padding:.5rem}.diff-line{font-size:.75rem;padding:.25rem}.diff-side-line-number{width:40px;font-size:.7rem}.diff-side-line-content{padding:.25rem .5rem}.diff-content-side-by-side{margin-right:0}.diff-minimap{display:none}}.diff-minimap{position:absolute;right:15px;top:1rem;bottom:1rem;height:auto;width:70px;background-color:#f6f8fa;border:2px solid #d0d7de;border-radius:4px;z-index:5;cursor:pointer;box-shadow:-2px 0 4px #0000000d}.diff-minimap-content{position:relative;width:100%;height:100%}.diff-minimap-item{position:absolute;left:5px;right:5px;pointer-events:none;transition:opacity .2s ease;opacity:.9;border-radius:2px}.diff-minimap:hover .diff-minimap-item{opacity:1}.diff-minimap-item-unchanged{background-color:transparent}.diff-minimap-item-addition{background-color:#2da44e;box-shadow:0 0 2px #2da44e80}.diff-minimap-item-deletion{background-color:#cf222e;box-shadow:0 0 2px #cf222e80}.diff-minimap-item-replace{background-color:#ffc107;box-shadow:0 0 2px #ffc10780}.diff-minimap-item-current{opacity:1;box-shadow:0 0 4px #0969dacc}.diff-minimap-viewport{position:absolute;left:2px;right:2px;border:2px solid rgba(0,0,0,.25);background-color:#00000014;pointer-events:all;min-height:2px;border-radius:2px;box-shadow:0 0 0 1px #fffc inset;cursor:grab}.diff-minimap-viewport:hover{background-color:#0000001f;border-color:#00000059;box-shadow:0 0 0 1px #ffffffe6 inset,0 1px 3px #0000001a}.diff-minimap-viewport.dragging{cursor:grabbing;background-color:#00000026;border-color:#0006;transition:none;-webkit-user-select:none;user-select:none}.diff-minimap:hover .diff-minimap-viewport{background-color:#0000001f;border-color:#00000059;box-shadow:0 0 0 1px #ffffffe6 inset,0 1px 3px #0000001a}.pdf-view-container{display:flex;gap:1px;height:100%;min-height:0;width:100%;background-color:#e0e0e0}.pdf-viewer-side{flex:1;display:flex;flex-direction:column;background-color:#fff;overflow:hidden;min-height:0}.pdf-viewer-header{padding:.75rem 1rem 0;background-color:#f8f9fa;border-bottom:1px solid #e0e0e0;font-weight:600;font-size:.875rem;color:#333;flex-shrink:0;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.pdf-viewer-timestamp{font-size:.75rem;font-weight:400;color:#666;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;order:10;flex-basis:calc(100% - 120px);padding-bottom:1rem}.pdf-viewer-filename{font-size:.75rem;font-weight:400;color:#24292f;background-color:#fff;border:1px solid #d0d7de;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;transition:all .2s ease;margin-left:auto}.pdf-viewer-filename:hover{background-color:#f6f8fa;border-color:#0969da;color:#0969da}.pdf-viewer-filename:active{background-color:#e9ecef}.pdf-viewer-filename:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da1a}.pdf-scroll-sync-toggle{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.25rem .5rem;background-color:transparent;border:1px solid #d0d7de;border-radius:4px;color:#57606a;cursor:pointer;transition:all .15s ease;margin-left:auto;order:11;font-size:.75rem;font-weight:400}.pdf-scroll-sync-toggle:hover{background-color:#f6f8fa;border-color:#0969da;color:#0969da}.pdf-scroll-sync-toggle:active{background-color:#e9ecef;transform:scale(.97)}.pdf-scroll-sync-toggle.enabled{background-color:#0969da;border-color:#0969da;color:#fff}.pdf-scroll-sync-toggle.enabled:hover{background-color:#0550ae;border-color:#0550ae;color:#fff}.pdf-scroll-sync-toggle.disabled{background-color:transparent;color:#6e7781}.pdf-scroll-sync-toggle svg{display:block;flex-shrink:0}.pdf-scroll-sync-text{white-space:nowrap}.pdf-viewer-scroll-container{position:relative;flex:1;overflow:auto;min-height:0}.pdf-viewer-custom{width:100%;min-height:100%}.pdf-page-container{position:relative;margin-bottom:1rem;background:#fff;box-shadow:0 2px 4px #0000001a}.pdf-page-canvas{display:block;width:100%;height:auto}.pdf-page-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.pdf-page-overlay>*{pointer-events:all}.pdf-viewer-loading,.pdf-viewer-error{display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#666}.pdf-viewer-error{color:#d32f2f}.pdf-iframe{flex:1;width:100%;height:100%;min-height:0;border:none;background-color:#fff}.pdf-view-error{display:flex;align-items:center;justify-content:center;height:100%;padding:2rem}.copy-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#24292f;color:#fff;padding:.75rem 1.5rem;border-radius:6px;font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:10000;animation:fadeIn .2s ease-out}.copy-toast.fade-out{animation:fadeOut .2s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.pdf-viewer-scroll-container [data-page-number]{position:relative!important}.pdf-diff-box{position:absolute!important;pointer-events:all;border:2px solid;border-radius:3px;transition:opacity .2s ease,transform .2s ease;cursor:pointer;min-width:20px;min-height:16px;will-change:transform;transform:translateZ(0);z-index:10}.pdf-diff-box-addition{background-color:#2da44e26;border-color:#2da44e66}.pdf-diff-box-addition:hover{background-color:#2da44e40;border-color:#2da44e99;transform:scale(1.01)}.pdf-diff-box-deletion{background-color:#cf222e26;border-color:#cf222e66}.pdf-diff-box-deletion:hover{background-color:#cf222e40;border-color:#cf222e99;transform:scale(1.01)}.pdf-diff-box-edit{background-color:#ffc10726;border-color:#ffc10780}.pdf-diff-box-edit:hover{background-color:#ffc10740;border-color:#ffc107b3;transform:scale(1.01)}.summary-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:#fff}.summary-panel-header{padding:1.5rem;border-bottom:1px solid #e0e0e0;background-color:#f8f9fa}.summary-panel-header h3{margin:0;font-size:1.125rem;font-weight:600;color:#333}.summary-collapse-button{position:absolute;top:1.5rem;right:1.5rem;background-color:#f8f9fa;border:1px solid #d0d7de;border-radius:4px;cursor:pointer;font-size:1rem;color:#666;padding:.375rem .5rem;transition:background-color .2s ease,border-color .2s ease;z-index:10}.summary-collapse-button:hover{color:#333;background-color:#e9ecef;border-color:#9ca3af}.summary-panel-collapsed{width:48px;min-width:48px;overflow:visible;background-color:#fff;position:relative}.summary-collapse-button-collapsed{right:auto;left:50%;transform:translate(-50%)}.summary-panel-content{flex:1;overflow-y:auto;padding:1.5rem;line-height:1.6;color:#333}.summary-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666;text-align:center;padding:2rem}.summary-panel-empty h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#333}.summary-panel-empty p{margin:0;font-size:.875rem;color:#999}.summary-panel-content h1,.summary-panel-content h2,.summary-panel-content h3,.summary-panel-content h4,.summary-panel-content h5,.summary-panel-content h6{margin:1rem 0 .5rem;font-weight:600;color:#333}.summary-panel-content h1{font-size:1.5rem}.summary-panel-content h2{font-size:1.25rem}.summary-panel-content h3{font-size:1.125rem}.summary-panel-content h4,.summary-panel-content h5,.summary-panel-content h6{font-size:1rem}.summary-panel-content p{margin:.75rem 0;word-wrap:break-word;overflow-wrap:break-word}.summary-panel-content strong{font-weight:700}.summary-panel-content em{font-style:italic}.summary-panel-content code{background-color:#f5f5f5;padding:.125rem .375rem;border-radius:3px;font-family:Courier New,Courier,monospace;font-size:.875em;color:#d63384}.summary-panel-content pre{background-color:#f5f5f5;padding:1rem;border-radius:4px;overflow-x:auto;margin:1rem 0}.summary-panel-content pre code{background-color:transparent;padding:0;color:inherit}.summary-panel-content ul,.summary-panel-content ol{margin:.75rem 0;padding-left:1.5rem}.summary-panel-content li{margin:.375rem 0}.summary-panel-content a{color:#007bff;text-decoration:underline}.summary-panel-content a:hover{color:#0056b3}.summary-panel-content blockquote{margin:1rem 0;padding-left:1rem;border-left:4px solid #e0e0e0;color:#666;font-style:italic}.summary-panel-content hr{margin:1.5rem 0;border:none;border-top:1px solid #e0e0e0}.summary-panel-content table{border-collapse:collapse;width:100%;margin:1rem 0;background-color:#fff}.summary-panel-content table th,.summary-panel-content table td{border:1px solid #d0d7de;padding:.5rem .75rem;text-align:left}.summary-panel-content table th{background-color:#f6f8fa;font-weight:600;color:#24292f}.summary-panel-content table tr:nth-child(2n){background-color:#f6f8fa}.summary-panel-content table tr:hover{background-color:#f0f3f6}@media(max-width:768px){.summary-panel-header{padding:1rem}.summary-panel-header h3{font-size:1rem}.summary-panel-content{padding:1rem;font-size:.875rem}.summary-panel-content h1{font-size:1.25rem}.summary-panel-content h2{font-size:1.125rem}.summary-panel-content h3{font-size:1rem}}@media(max-width:480px){.summary-panel-header{padding:.75rem}.summary-panel-header h3{font-size:.9375rem}.summary-panel-content{padding:.75rem;font-size:.8125rem}.summary-panel-content h1{font-size:1.125rem}.summary-panel-content h2{font-size:1rem}.summary-panel-content h3{font-size:.9375rem}.summary-panel-content ul,.summary-panel-content ol{padding-left:1.25rem}}.manual-upload{display:flex;flex-direction:column;height:100%;background-color:#f6f8fa;overflow-y:auto}.manual-upload-header{display:flex;align-items:center;gap:12px;padding:14px 20px;background-color:#fff;border-bottom:1px solid #d0d7de;flex-shrink:0}.manual-upload-header h2{margin:0;font-size:18px;font-weight:600;color:#1f2328;flex:1}.manual-upload-body{flex:1;padding:24px;display:flex;flex-direction:column;gap:24px;max-width:1400px;width:100%;margin:0 auto;box-sizing:border-box}.upload-panels-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:700px){.upload-panels-row{grid-template-columns:1fr}}.upload-panel{background:#fff;border:1px solid #d0d7de;border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:16px}.upload-panel-header{display:flex;align-items:center;gap:10px}.upload-panel-header h3{margin:0;font-size:15px;font-weight:600;color:#1f2328;flex:1}.version-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.02em}.version-badge.old{background-color:#ffebe9;color:#cf222e;border:1px solid #ffc1ba}.version-badge.new{background-color:#dafbe1;color:#1a7f37;border:1px solid #aceebb}.drop-zone{border:2px dashed #d0d7de;border-radius:8px;padding:28px 16px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;background-color:#f6f8fa;text-align:center;position:relative}.drop-zone:hover,.drop-zone.drag-over{border-color:#0969da;background-color:#ddf4ff}.drop-zone.has-file{border-color:#1a7f37;border-style:solid;background-color:#dafbe1;cursor:default;padding:14px 16px;align-items:stretch}.drop-zone.has-file.reused{border-color:#54aeff;background-color:#ddf4ff}.drop-zone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.drop-zone.has-file input[type=file]{display:none}.drop-zone-icon{font-size:32px;line-height:1;color:#57606a}.drop-zone-text{font-size:14px;font-weight:500;color:#1f2328}.drop-zone-subtext{font-size:12px;color:#57606a}.file-info{display:flex;flex-direction:column;gap:6px;width:100%;min-width:0}.file-info-top{display:flex;align-items:center;gap:8px;min-width:0}.file-info-icon{font-size:18px;line-height:1;flex-shrink:0}.file-type-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.5px;flex-shrink:0}.file-type-badge--new{background-color:#e8f4fd;color:#1a6fa8;border:1px solid #90caf9}.file-type-badge--reused{background-color:#f0f4ff;color:#4a5fa8;border:1px solid #b0bef9}.file-info-name{flex:1;font-size:13px;font-weight:500;color:#1f2328;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.file-info-bottom{display:flex;align-items:center;gap:8px;padding-left:26px}.file-info-size{font-size:12px;color:#57606a;white-space:nowrap}.file-remove-btn{background:none;border:none;padding:2px 6px;cursor:pointer;color:#57606a;font-size:16px;display:flex;align-items:center;border-radius:4px;transition:background-color .15s,color .15s;flex-shrink:0}.file-remove-btn:hover{background-color:#ffebe9;color:#cf222e}.upload-field-caption{font-size:12px;color:#656d76;margin:-2px 0 4px}.upload-field-error{font-size:12px;color:#cf222e;margin-top:-4px}.upload-field{display:flex;flex-direction:column;gap:6px}.upload-field label{font-size:13px;font-weight:600;color:#1f2328}.upload-field label .required{color:#cf222e;margin-left:2px}.upload-field input[type=date],.upload-field input[type=text],.upload-field input[type=url]{padding:7px 10px;font-size:14px;border:1px solid #d0d7de;border-radius:6px;background-color:#fff;color:#1f2328;transition:border-color .15s ease,box-shadow .15s ease;width:100%;box-sizing:border-box}.upload-field input:focus{outline:none;border-color:#0969da;box-shadow:0 0 0 3px #0969da26}.upload-field input.invalid{border-color:#cf222e}.upload-field input.invalid:focus{box-shadow:0 0 0 3px #cf222e26}.shared-metadata-section{background:#fff;border:1px solid #d0d7de;border-radius:10px;padding:20px}.shared-metadata-section h3{margin:0 0 16px;font-size:15px;font-weight:600;color:#1f2328}.shared-metadata-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:560px){.shared-metadata-grid{grid-template-columns:1fr}}.upload-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-bottom:32px}.btn-submit{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;font-size:14px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease;background-color:#0969da;border:1px solid #0969da;color:#fff}.btn-submit:hover:not(:disabled){background-color:#0550ae;border-color:#0550ae}.btn-submit:active:not(:disabled){background-color:#033d8b;transform:translateY(1px)}.btn-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-cancel{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;font-size:14px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease;background-color:#fff;border:1px solid #d0d7de;color:#1f2328}.btn-cancel:hover{background-color:#f6f8fa;border-color:#9198a1}.btn-cancel:active{background-color:#eaeef2;transform:translateY(1px)}.upload-status-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;font-size:13px;font-weight:500}.upload-status-banner.info{background-color:#ddf4ff;color:#0550ae;border:1px solid #54aeff}.upload-status-banner.success{background-color:#dafbe1;color:#116329;border:1px solid #aceebb}.upload-status-banner.error{background-color:#ffebe9;color:#82071e;border:1px solid #ffc1ba}.upload-status-banner .spinner{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease;background-color:#fff;border:1px solid #d0d7de;color:#1f2328}.btn-back:hover{background-color:#f6f8fa;border-color:#9198a1}.upload-main-grid{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start}.upload-main-grid .upload-panels-row{grid-template-columns:1fr 1fr}@media(max-width:900px){.upload-main-grid{grid-template-columns:1fr}}.upload-right-column{display:flex;flex-direction:column;gap:20px;min-width:0}.file-browser-panel{background:#fff;border:1px solid #d0d7de;border-radius:10px;display:flex;flex-direction:column;max-height:520px;overflow:hidden}.file-browser-header{display:flex;align-items:center;gap:8px;padding:14px;border-bottom:1px solid #d0d7de;flex-shrink:0}.file-browser-header h3{margin:0;font-size:13px;font-weight:600;color:#1f2328;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-count{font-size:12px;font-weight:400;color:#57606a}.btn-refresh{background:none;border:1px solid #d0d7de;border-radius:6px;padding:4px 8px;cursor:pointer;font-size:14px;color:#57606a;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,color .15s,border-color .15s;flex-shrink:0;min-width:28px;min-height:28px}.btn-refresh:hover:not(:disabled){background-color:#f6f8fa;color:#1f2328;border-color:#9198a1}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.btn-refresh .spinner{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.file-browser-search{padding:8px 12px;border-bottom:1px solid #eaeef2;display:flex;align-items:center;gap:6px;flex-shrink:0}.file-browser-search input{flex:1;border:1px solid #d0d7de;border-radius:6px;padding:6px 10px;font-size:12px;color:#1f2328;background:#f6f8fa;outline:none;transition:border-color .15s,background-color .15s}.file-browser-search input:focus{border-color:#0969da;background:#fff;box-shadow:0 0 0 2px #0969da1f}.search-clear-btn{background:none;border:none;cursor:pointer;font-size:13px;color:#57606a;padding:2px 6px;border-radius:4px;line-height:1;transition:background-color .1s,color .1s}.search-clear-btn:hover{background:#eaeef2;color:#1f2328}.file-browser-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:2px 0}.file-browser-empty,.file-browser-error{padding:24px 14px;text-align:center;font-size:12px;color:#57606a;line-height:1.5}.file-browser-error{color:#cf222e}.file-browser-error button{margin-top:8px;background:none;border:1px solid #d0d7de;border-radius:6px;padding:4px 12px;font-size:12px;cursor:pointer;color:#1f2328}.file-browser-error button:hover{background:#f6f8fa}.file-browser-loading{padding:32px 14px;text-align:center;font-size:12px;color:#57606a;display:flex;flex-direction:column;align-items:center;gap:8px}.file-browser-loading .spinner{width:16px;height:16px;border:2px solid #57606a;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.file-group+.file-group{border-top:1px solid #eaeef2}.file-group-header{display:flex;align-items:center;gap:6px;width:100%;padding:10px 14px;background:none;border:none;cursor:pointer;text-align:left;font-size:12px;font-weight:600;color:#1f2328;transition:background-color .1s}.file-group-header:hover{background-color:#f6f8fa}.file-group-header.expanded{background-color:#f6f8fa;border-bottom:1px solid #eaeef2}.file-group-chevron{font-size:10px;color:#656d76;flex-shrink:0;width:12px;text-align:center}.file-group-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.file-group-count{font-size:10px;font-weight:500;color:#656d76;background:#eaeef2;padding:1px 6px;border-radius:8px;flex-shrink:0}.file-group-entries{background:#fafbfc}.file-browser-entry{display:flex;flex-direction:column;gap:3px;padding:8px 14px 8px 32px;cursor:grab;transition:background-color .1s;position:relative;min-width:0;overflow:hidden;border-left:3px solid transparent}.file-browser-entry+.file-browser-entry{border-top:1px solid #f0f2f5}.file-browser-entry:hover{background-color:#f0f2f5;border-left-color:#0969da}.file-browser-entry:focus{outline:none;background-color:#ddf4ff;border-left-color:#0969da}.file-browser-entry:active{cursor:grabbing}.entry-top{display:flex;align-items:center;gap:6px;min-width:0}.entry-role{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:3px;flex-shrink:0;line-height:1.4}.entry-role.old{color:#cf222e;background:#ffebe9}.entry-role.new{color:#1a7f37;background:#dafbe1}.entry-name{font-size:12px;font-weight:500;color:#1f2328;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.4}.file-browser-entry.entry-hidden{opacity:.5;cursor:default}.file-browser-entry.entry-hidden:hover{background-color:transparent;border-left-color:transparent}.entry-role--deleted{color:#9a6700;background:#fff8c5}.entry-meta{font-size:11px;color:#656d76;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:0}.assign-popover{position:absolute;top:calc(100% + 2px);left:10px;right:10px;z-index:10;background:#fff;border:1px solid #d0d7de;border-radius:8px;box-shadow:0 4px 12px #0000001f;padding:4px}.assign-popover button{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 10px;font-size:12px;color:#1f2328;cursor:pointer;border-radius:5px;transition:background-color .1s}.assign-popover button:hover:not(:disabled){background-color:#f6f8fa}.assign-popover button:disabled{color:#8b949e;cursor:not-allowed}.reused-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:#0550ae;background:#0969da14;padding:2px 8px;border-radius:10px;letter-spacing:.02em;text-transform:uppercase}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.filter-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:4px;padding:0;background:none;border:none;cursor:pointer;color:#666;transition:color .2s ease;vertical-align:middle}.filter-icon:hover{color:#333}.filter-icon:focus{outline:2px solid #0066cc;outline-offset:2px;border-radius:2px}.filter-icon--active{color:#06c}.filter-icon--active:hover{color:#0052a3}.filter-icon svg{display:block;width:100%;height:100%}.column-filter-dropdown{position:fixed;z-index:10000;background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 4px 12px #00000026;width:220px}.column-filter-dropdown__content{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.column-filter-dropdown__label{display:flex;flex-direction:column;gap:3px;font-size:.75rem;font-weight:500;color:#374151}.column-filter-dropdown__input,.column-filter-dropdown__select{width:100%;padding:5px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:.8125rem;font-family:inherit;background:#fff;transition:border-color .2s ease;box-sizing:border-box}.column-filter-dropdown__input:focus,.column-filter-dropdown__select:focus{outline:none;border-color:#06c;box-shadow:0 0 0 2px #0066cc1a}.column-filter-dropdown__input::placeholder{color:#999}.column-filter-dropdown__actions{display:flex;gap:6px;margin-top:2px}.column-filter-dropdown__button{flex:1;padding:5px 10px;border:none;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.column-filter-dropdown__button:active{transform:translateY(1px)}.column-filter-dropdown__button:focus{outline:2px solid #0066cc;outline-offset:2px}.column-filter-dropdown__button--primary{background-color:#06c;color:#fff}.column-filter-dropdown__button--primary:hover{background-color:#0052a3}.column-filter-dropdown__button--secondary{background-color:#f0f0f0;color:#333}.column-filter-dropdown__button--secondary:hover{background-color:#e0e0e0}.table-header th{position:sticky;top:0;z-index:1;background-color:#f9fafb;border-bottom:2px solid #e5e7eb;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;color:#374151;text-align:left;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s}.table-header th:hover{background-color:#f3f4f6}.table-header-cell{display:inline-flex;align-items:center;gap:.25rem}.sort-indicator{font-size:.625rem;color:#6b7280}.sort-indicator--active{color:#1d4ed8}.progress-indicator{display:inline-flex;align-items:center;justify-content:center;cursor:help}.progress-ring{display:block}.progress-indicator.in-progress .progress-ring circle:nth-child(2){animation:pulse-opacity 1.5s ease-in-out infinite}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.5}}.table-body tr{border-bottom:1px solid #e5e7eb;transition:background-color .15s}.table-body tr.row-clickable{cursor:pointer}.table-body tr.row-clickable:hover{background-color:#f3f4f6}.table-body tr.row-selected{background-color:#dbeafe}.table-body tr.row-selected:hover{background-color:#bfdbfe}.table-body tr.row-disabled{opacity:.5;cursor:default}.table-body td{padding:.5rem .75rem;font-size:.8125rem;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.status-icon{display:inline-block;width:10px;height:10px;border-radius:50%}.status-icon--error{background-color:#dc3545}.status-icon--ok{background-color:#28a745}.ext-badge{display:inline-block;padding:.125rem .375rem;font-size:.6875rem;font-weight:600;border-radius:4px;color:#fff;text-transform:uppercase}.ext-badge--pdf{background-color:#dc3545}.ext-badge--docx{background-color:#2563eb}.ext-badge--xlsx{background-color:#28a745}.ext-badge--other{background-color:#6b7280}.url-link{color:#2563eb;text-decoration:none}.url-link:hover{text-decoration:underline}.table-body tr.row-deleted{opacity:.6}.table-body tr.row-deleted td{color:#9ca3af}.action-btn{padding:.25rem .5rem;font-size:.75rem;font-weight:500;border:1px solid;border-radius:4px;cursor:pointer;transition:background-color .15s,opacity .15s;white-space:nowrap}.action-btn:disabled{cursor:not-allowed;opacity:.5}.action-btn--delete{color:#dc3545;border-color:#dc3545;background-color:transparent}.action-btn--delete:hover:not(:disabled){background-color:#dc3545;color:#fff}.action-btn--restore{color:#2563eb;border-color:#2563eb;background-color:transparent}.action-btn--restore:hover:not(:disabled){background-color:#2563eb;color:#fff}.action-btn-spinner{display:inline-block;margin-left:.25rem}.virtual-spacer td{padding:0;border:none}.table-actions{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;gap:1rem}.table-actions-left{display:flex;align-items:center;gap:.625rem}.table-actions-upload{background-color:#2563eb;color:#fff;border-color:#2563eb;font-weight:600}.table-actions-upload:hover{background-color:#1d4ed8;border-color:#1d4ed8}.table-actions-filter-label{font-size:.8125rem;font-weight:500;color:#6b7280;white-space:nowrap}.table-actions-filter-select{padding:.25rem .5rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;transition:border-color .2s;width:110px}.table-actions-filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.table-actions-filter-select.filter-active{border-color:#3b82f6;background-color:#eff6ff}.table-actions-filter-badge{font-size:.75rem;font-weight:500;color:#1d4ed8;background-color:#dbeafe;padding:.125rem .5rem;border-radius:9999px;white-space:nowrap}.table-actions-clear-btn{font-size:.75rem;color:#dc2626;background:none;border:none;cursor:pointer;padding:.125rem .25rem;border-radius:4px;transition:background-color .2s;white-space:nowrap}.table-actions-clear-btn:hover{background-color:#fee2e2}.table-actions-clear-btn:focus{outline:2px solid #dc2626;outline-offset:2px}.table-actions-right{display:flex;align-items:center;gap:.75rem}.table-actions-row-count{font-size:.8125rem;color:#6b7280;white-space:nowrap}.table-actions-separator{width:1px;height:1.25rem;background-color:#d1d5db}.table-actions-btn{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;transition:background-color .2s,border-color .2s;display:inline-flex;align-items:center;gap:.375rem}.table-actions-refresh{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.table-actions-refresh:hover:not(:disabled){background-color:#2563eb;border-color:#2563eb}.table-actions-refresh:disabled{opacity:.7;cursor:not-allowed}.table-actions-spinner{display:inline-block;width:.875rem;height:.875rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:table-actions-spin .6s linear infinite}@keyframes table-actions-spin{to{transform:rotate(360deg)}}.pagination{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:#f9fafb;border-top:1px solid #e5e7eb;font-size:.8125rem;color:#374151}.pagination-range{color:#6b7280;min-width:0;white-space:nowrap}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-btn{padding:.375rem .75rem;font-size:.8125rem;font-weight:500;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;cursor:pointer;transition:background-color .2s,border-color .2s}.pagination-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-indicator{font-size:.8125rem;color:#6b7280;white-space:nowrap}.pagination-size{display:flex;align-items:center;gap:.375rem}.pagination-size-label{font-size:.8125rem;color:#6b7280;white-space:nowrap}.pagination-size-select{padding:.25rem .5rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;cursor:pointer;transition:border-color .2s}.pagination-size-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.dtb-container{display:flex;flex-direction:column;height:100%;overflow:hidden;background-color:#fff}.dtb-state{align-items:center;justify-content:center;gap:12px}.dtb-state-text{margin:0;font-size:14px;color:#636c76}.dtb-error-text{color:#cf1322}.dtb-retry-btn{padding:6px 14px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;background-color:#0969da;border:1px solid #0969da;color:#fff}.dtb-retry-btn:hover{background-color:#0550ae}.dtb-loading-spinner{width:32px;height:32px;border:3px solid #e1e4e8;border-top-color:#0969da;border-radius:50%;animation:dtb-spin .8s linear infinite}@keyframes dtb-spin{to{transform:rotate(360deg)}}.dtb-table-wrapper{flex:1;overflow:auto;position:relative}.dtb-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}.dtb-empty-text{text-align:center;padding:32px 16px;color:#636c76;font-size:14px}.dtb-clear-link{background:none;border:none;color:#0969da;cursor:pointer;font-size:14px;text-decoration:underline;padding:0}.dtb-clear-link:hover{color:#0550ae}.detail-view{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.detail-view-nav{display:flex;align-items:center;gap:12px;padding:8px 16px;background-color:#fff;border-bottom:1px solid #d0d7de;flex-shrink:0;min-height:40px}.detail-view-back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;background-color:#f6f8fa;border:1px solid #d0d7de;color:#1f2328;transition:background-color .15s ease,border-color .15s ease;flex-shrink:0}.detail-view-back-btn:hover{background-color:#eaeef2;border-color:#afb8c1}.detail-view-back-btn:focus-visible{outline:2px solid #0969da;outline-offset:2px}.detail-view-context{font-size:13px;color:#636c76;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-view-error-banner{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#fff8c5;border-bottom:1px solid #d4a72c;color:#6a5300;font-size:13px;flex-shrink:0}.detail-view-error-banner-icon{flex-shrink:0}.detail-view-error-only{display:flex;align-items:center;justify-content:center;flex:1;padding:32px}.detail-view-content{display:grid;flex:1;min-height:0;overflow:hidden;position:relative}.detail-view-content.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.detail-view-content.resizing *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.detail-view-content.summary-collapsed{grid-template-columns:1fr 48px}.detail-view-diff-panel{overflow-y:auto;overflow-x:auto;word-wrap:break-word;overflow-wrap:break-word;position:relative;min-width:0}.detail-view-summary-panel{overflow-y:auto;overflow-x:hidden;word-wrap:break-word;overflow-wrap:break-word;min-width:0;position:relative}.detail-view-resize-handle{position:absolute;top:0;bottom:0;right:var(--detail-summary-width, 400px);width:1px;background-color:#d0d7de;cursor:col-resize;z-index:50;transition:all .2s ease;pointer-events:auto}.detail-view-resize-handle:hover{width:4px;background-color:#0969da;right:calc(var(--detail-summary-width, 400px) - 1.5px)}.detail-view-resize-handle:active{background-color:#0550ae}.detail-view-loading,.detail-view-error{display:flex;align-items:center;justify-content:center;flex:1;min-height:0}@media(max-width:768px){.detail-view-content{grid-template-columns:1fr!important;grid-template-rows:1fr auto}.detail-view-resize-handle{display:none}.detail-view-summary-panel{border-top:1px solid #d0d7de;min-height:200px}}.notification-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none}.notification{display:flex;align-items:flex-start;gap:12px;padding:16px;border-radius:8px;box-shadow:0 4px 12px #00000026;background:#fff;border-left:4px solid;pointer-events:auto;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-success{border-left-color:#10b981}.notification-error{border-left-color:#ef4444}.notification-warning{border-left-color:#f59e0b}.notification-info{border-left-color:#3b82f6}.notification-content{display:flex;align-items:flex-start;gap:12px;flex:1}.notification-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:16px;font-weight:700;flex-shrink:0}.notification-success .notification-icon{background:#d1fae5;color:#10b981}.notification-error .notification-icon{background:#fee2e2;color:#ef4444}.notification-warning .notification-icon{background:#fef3c7;color:#f59e0b}.notification-info .notification-icon{background:#dbeafe;color:#3b82f6}.notification-text{flex:1;min-width:0}.notification-message{font-size:14px;font-weight:500;color:#1f2937;margin-bottom:4px}.notification-details{font-size:13px;color:#6b7280;word-break:break-word}.notification-dismiss{background:none;border:none;font-size:24px;line-height:1;color:#9ca3af;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s}.notification-dismiss:hover{color:#4b5563}.notification-dismiss:focus{outline:2px solid #3b82f6;outline-offset:2px;border-radius:4px}
