:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f5f4;--surface:#fff;--surface-muted:#fafaf9;--surface-hover:#f5f5f4;--border:#e7e5e4;--border-strong:#d6d3d1;--text:#1c1917;--text-muted:#78716c;--text-subtle:#a8a29e;--accent:#292524;--accent-hover:#44403c;--accent-soft:#eceae8;--sidebar:#1c1917;--sidebar-text:#e7e5e4;--sidebar-muted:#a8a29e;--danger:#991b1b;--danger-soft:#fef2f2;--success:#166534;--success-soft:#ecfdf3;--warning:#92400e;--warning-soft:#fffbeb;--radius:4px;--control-h:34px;color:var(--text);background:var(--bg);font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.icon{color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon .icon-svg,.icon svg{width:100%;height:100%;display:block}.icon .icon-svg *,.icon svg *{stroke:currentColor}.scrollbar{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.scrollbar::-webkit-scrollbar{width:10px;height:10px}.scrollbar::-webkit-scrollbar-track{background:0 0}.scrollbar::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--surface);border-radius:var(--radius)}.scrollbar::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.icon svg{width:100%;height:100%;display:block}.app-shell{grid-template-columns:240px minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.sidebar{background:var(--sidebar);color:var(--sidebar-text);flex-direction:column;gap:20px;padding:18px 14px;display:flex;overflow:hidden}.brand{align-items:center;gap:10px;padding:0 4px 4px;display:flex}.brand-logo{flex-shrink:0;display:block}.brand-text{flex-direction:column;gap:2px;min-width:0;display:flex}.brand-mark{letter-spacing:.01em;font-size:.95rem;font-weight:600}.brand-sub{color:var(--sidebar-muted);font-size:.78rem}.nav-list{flex-direction:column;gap:4px;display:flex}.nav-link{border-radius:var(--radius);color:var(--sidebar-muted);align-items:center;gap:8px;padding:8px 10px;transition:background .12s,color .12s;display:flex}.nav-link:hover,.nav-link.active{color:#fff;background:#ffffff0f}.sidebar-footer{flex-direction:column;gap:8px;margin-top:auto;display:flex}.user-chip{border-radius:var(--radius);background:#ffffff0a;border:1px solid #ffffff0f;padding:10px;font-size:.84rem}.user-chip strong{color:#fff;font-weight:500;display:block}.user-chip span{color:var(--sidebar-muted);font-size:.75rem}.main-panel{flex-direction:column;min-width:0;min-height:0;padding:18px 20px;display:flex;overflow:hidden}.page-layout{flex-direction:column;gap:14px;height:100%;min-height:0;display:flex}.page-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header h1{margin:0 0 4px;font-size:1.35rem;font-weight:600}.page-header p{color:var(--text-muted);margin:0;font-size:.9rem}.page-header-actions{flex-wrap:wrap;gap:8px;display:flex}.page-toolbar{flex-shrink:0}.page-body{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.grid-stats{flex-shrink:0;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.stat-card span{color:var(--text-muted);font-size:.78rem;display:block}.stat-card strong{margin-top:6px;font-size:1.45rem;font-weight:600;display:block}.sources-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.toolbar-right{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.toggle-group{align-items:center;gap:6px;display:flex}.toggle-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius);height:var(--control-h);cursor:pointer;white-space:nowrap;align-items:center;padding:0 12px;font-size:.82rem;display:inline-flex}.toggle-chip.active{background:var(--accent-soft);border-color:var(--border-strong);color:var(--text)}.toolbar-search{align-items:center;gap:8px;width:280px;min-width:180px;max-width:360px;display:flex}.toolbar-search .input{flex:1;min-width:0}.table-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.table-scroll{flex:1;min-height:0;overflow:auto}.data-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.data-table-fit{min-width:960px}.data-table-sources{table-layout:auto;width:max-content;min-width:100%}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 14px;font-size:.84rem}.data-table th{z-index:2;background:var(--surface-muted);color:var(--text-muted);border-bottom:1px solid var(--border-strong);font-weight:500;position:sticky;top:0}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table .col-level{width:132px;min-width:132px}.data-table .col-name,.data-table th.col-name{white-space:normal;word-break:break-word;width:220px;min-width:220px;max-width:280px}.data-table .col-scroll{min-width:132px;max-width:240px}.data-table .col-wrap{white-space:normal;word-break:break-word}.data-table .col-actions{width:156px;min-width:156px}.sticky-col-left{z-index:2;background:var(--surface);position:sticky}.sticky-col-left.col-level{left:0}.sticky-col-left.col-name{left:132px;box-shadow:8px 0 12px -10px #1c19172e}.data-table-sources-merge .sticky-col-left.col-select{left:0}.data-table-sources-merge .sticky-col-left.col-level{left:44px}.data-table-sources-merge .sticky-col-left.col-name{left:176px}.data-table .col-items,.data-table th.col-items{text-align:right;white-space:nowrap;width:88px;min-width:88px}.tree-row-expandable{cursor:pointer}.tree-row-expandable:hover .tree-name{color:var(--text)}.source-count-cell{flex-direction:column;align-items:flex-end;gap:2px;line-height:1.2;display:inline-flex}.source-count-link{font-variant-numeric:tabular-nums;font-weight:600}.source-count-value{font-variant-numeric:tabular-nums}.source-count-meta{color:var(--text-muted);font-size:.72rem}.data-table-sources-merge .col-select{text-align:center;width:44px;min-width:44px;padding-inline:10px}.row-select-muted{opacity:.72}.merge-clear-btn{min-height:var(--control-h);padding:0 10px;font-size:.82rem}.sticky-col-right{z-index:3;background:var(--surface);position:sticky;right:0;box-shadow:-8px 0 12px -10px #1c191740}.data-table thead .sticky-col-left,.data-table thead .sticky-col-right{z-index:5;background:var(--surface-muted)}.tree-row.tree-organisation .sticky-col-left,.tree-row.tree-organisation .sticky-col-right,.tree-row.tree-publication .sticky-col-left,.tree-row.tree-publication .sticky-col-right,.tree-row.tree-channel .sticky-col-left,.tree-row.tree-channel .sticky-col-right{background:var(--surface)}.data-table tbody tr:hover .sticky-col-left,.data-table tbody tr:hover .sticky-col-right{background:var(--surface-hover)}.sticky-col{z-index:1;background:var(--surface);position:sticky;right:0;box-shadow:-8px 0 12px -10px #1c191740}.data-table thead .sticky-col{z-index:3;background:var(--surface-muted)}.expand-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius);width:var(--control-h);height:var(--control-h);min-width:var(--control-h);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.expand-btn:hover{background:var(--surface-hover);color:var(--text)}.column-picker{position:relative}.column-picker-menu{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);z-index:10;min-width:min(680px,100vw - 320px);padding:12px;display:none;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #1c191714}.column-picker.open .column-picker-menu{display:block}.filter-menu{position:relative}.filter-menu-trigger{height:var(--control-h);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:0 10px 0 8px;display:inline-flex}.filter-menu-trigger:hover{background:var(--surface-hover);border-color:var(--border-strong)}.filter-menu-trigger-label{font-size:.82rem;font-weight:500}.filter-menu-trigger-meta{color:var(--text-muted);font-size:.72rem}.filter-menu-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);z-index:10;min-width:220px;padding:10px 12px;display:none;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #1c191714}.filter-menu-panel-wide{min-width:min(720px,100vw - 320px)}.filter-menu.open .filter-menu-panel{display:block}.filter-menu-section+.filter-menu-section{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.filter-menu-section h4{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:.72rem;font-weight:600}.filter-menu-options{flex-wrap:wrap;gap:6px 14px;display:flex}.filter-menu-options-stack{flex-flow:column;gap:2px}.filter-menu-option{color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:4px 2px;font-size:.82rem;display:inline-flex}.filter-menu-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.filter-menu-column-group h5{border-bottom:1px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;padding-bottom:6px;font-size:.72rem;font-weight:600}.filter-menu-column-group{flex-direction:column;gap:2px;min-width:0;display:flex}.column-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.column-picker-group h4{border-bottom:1px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;padding-bottom:6px;font-size:.72rem;font-weight:600}.column-picker-group{flex-direction:column;gap:2px;min-width:0;display:flex}.column-picker-item{color:var(--text);cursor:pointer;border-radius:var(--radius);align-items:center;gap:8px;padding:5px 2px;font-size:.82rem;display:flex}.column-picker-item:hover{background:var(--surface-hover)}.tree-name{white-space:normal;word-break:break-word;min-width:0;max-width:100%;line-height:1.35;display:block}.data-table .tree-issue .tree-cell,.data-table .tree-item .tree-cell{align-items:flex-start}.data-table .tree-issue .tree-name,.data-table .tree-item .tree-name{overflow:visible}.data-table .tree-item .tree-name-top{max-width:100%;display:block}.tree-name-with-status{align-items:center;gap:8px;min-width:0;display:inline-flex}.tree-name-with-status>span:last-child{min-width:0}.source-status-dot{border-radius:999px;flex-shrink:0;width:8px;height:8px;display:inline-block;box-shadow:inset 0 0 0 1px #00000014}.source-status-dot-active{background:#16a34a}.source-status-dot-registered{background:#d97706}.source-status-dot-inactive{background:#dc2626}.stat-card-link{color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}.stat-card-link:hover{border-color:var(--border-strong);box-shadow:0 2px 8px #1c19170f}.tree-cell{align-items:center;min-width:0;display:inline-flex}.data-table .tree-row.tree-organisation .tree-name{font-weight:600}.data-table .tree-row.tree-publication .tree-name{font-weight:500}.data-table .tree-row.tree-channel .tree-name{font-weight:400}.data-table-sources .tree-row.tree-org-divider>td{border-top:2px solid var(--border-strong)}.data-table .tree-branch{vertical-align:middle;border-bottom:2px solid #d6d3d1;border-left:2px solid #d6d3d1;border-bottom-left-radius:4px;flex-shrink:0;width:14px;height:10px;margin-right:6px;display:inline-block;transform:translateY(-1px)}.data-table .tree-row[data-depth="1"] .tree-branch{margin-left:8px}.data-table .tree-row[data-depth="2"] .tree-branch{margin-left:32px}.tree-row.tree-organisation,.tree-row.tree-publication,.tree-row.tree-channel{background:var(--surface)}.level-badge{border-radius:var(--radius);border:1px solid var(--border);color:var(--text-muted);background:var(--surface-muted);align-items:center;padding:2px 6px;font-size:.72rem;font-weight:500;display:inline-flex}.level-badge.level-organisation{color:#292524;background:#fafaf9}.level-badge.level-publication{color:#44403c;background:#fafaf9}.level-badge.level-channel{color:#57534e;background:#fafaf9}.level-badge.level-issue{color:#1c1917;background:#e7e5e4;border-color:#d6d3d1}.level-badge.level-item{color:#57534e;font-variant-numeric:tabular-nums;background:#fafaf9}.tree-row.tree-issue .tree-name{font-weight:600}.tree-row.tree-issue .sticky-col-left,.tree-row.tree-issue .sticky-col-right{background:var(--surface)}.tree-row.tree-item .sticky-col-left,.tree-row.tree-item .sticky-col-right{background:var(--surface-muted)}.tree-row.tree-item .tree-cell{align-items:flex-start}.tree-row.tree-item .tree-branch{vertical-align:top;margin-top:5px;transform:none}.tree-name-top{padding-top:2px;line-height:1.35}.table-link{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:2px}.table-footer{border-top:1px solid var(--border);color:var(--text-muted);background:var(--surface-muted);flex-shrink:0;padding:8px 12px;font-size:.78rem}.row-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.icon-btn{width:var(--control-h);height:var(--control-h);min-width:var(--control-h);flex-shrink:0;justify-content:center;padding:0}.main-panel .btn-ghost{color:var(--text);border-color:var(--border)}.main-panel .btn-ghost:hover:not(:disabled){background:var(--surface-hover)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field-full{grid-column:1/-1}.label{color:var(--text-muted);font-size:.78rem}.input,.select,.textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:var(--control-h);color:var(--text);background:#fff;padding:0 10px}.input:focus,.select:focus,.textarea:focus{border-color:var(--border-strong);box-shadow:0 0 0 1px var(--border-strong);outline:none}.input:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);border:1px solid var(--border);transition:background-color 99999s ease-out;box-shadow:inset 0 0 0 1000px #fff}.input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);caret-color:var(--text);border:1px solid var(--border);transition:background-color 99999s ease-out;box-shadow:inset 0 0 0 1000px #fff}.input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);border:1px solid var(--border);transition:background-color 99999s ease-out;box-shadow:inset 0 0 0 1000px #fff}.input:-webkit-autofill:active{-webkit-text-fill-color:var(--text);caret-color:var(--text);border:1px solid var(--border);transition:background-color 99999s ease-out;box-shadow:inset 0 0 0 1000px #fff}.textarea{resize:vertical;height:auto;min-height:88px;padding-block:8px}.combobox{position:relative}.combobox-control{align-items:stretch;display:flex;position:relative}.combobox-input{padding-right:34px}.combobox-toggle{border:none;border-left:1px solid var(--border);border-radius:0 var(--radius) var(--radius) 0;background:var(--surface-muted);width:30px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:1px;bottom:1px;right:1px}.combobox-toggle:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.combobox-toggle:disabled{opacity:.55;cursor:not-allowed}.combobox.open .combobox-input{border-color:var(--border-strong);box-shadow:0 0 0 1px var(--border-strong)}.combobox-menu{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);z-index:30;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #1c191714}.combobox-menu-floating{z-index:1200;position:fixed;top:auto;left:auto;right:auto;box-shadow:0 10px 28px #1c19171f}.combobox-option{width:100%;color:var(--text);text-align:left;border-radius:var(--radius);cursor:pointer;font:inherit;background:0 0;border:none;padding:7px 8px;font-size:.84rem}.combobox-option:hover,.combobox-option.highlighted{background:var(--surface-hover)}.combobox-option.selected{background:var(--accent-soft)}.combobox-empty{color:var(--text-muted);padding:8px;font-size:.82rem}.btn{border-radius:var(--radius);min-height:var(--control-h);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:0 12px;font-size:.84rem;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--sidebar-text);background:0 0;border-color:#ffffff1f}.btn-ghost:hover:not(:disabled){background:#ffffff0f}.sidebar .btn-ghost{justify-content:center}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.btn-danger:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.btn-success{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.btn-success:hover:not(:disabled){background:#d1fae5;border-color:#86efac}.badge{border-radius:var(--radius);text-transform:capitalize;border:1px solid #0000;align-items:center;padding:2px 7px;font-size:.72rem;font-weight:500;display:inline-flex}.badge-registered,.badge-pending{background:var(--warning-soft);color:var(--warning);border-color:#fde68a}.badge-awaiting_source,.badge-source-pending{color:#b45309;background:#b453091f}.badge-rejected{color:#b91c1c;background:#b91c1c1f}.status-stack{flex-wrap:wrap;gap:.35rem;display:flex}.approvals-table .approval-action-row td{border-bottom:1px solid var(--border)}.badge-active{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.badge-inactive{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border)}.badge-processing{background:var(--warning-soft);color:var(--warning);border-color:#fde68a}.badge-done,.badge-ingested,.badge-enriched{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.badge-error,.badge-failed,.badge-duplicate,.badge-skipped{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.data-table .col-news-date{width:148px;min-width:148px}.data-table .col-news-title{width:240px;min-width:240px;max-width:320px}.sticky-col-left.col-news-date{left:0}.sticky-col-left.col-news-title{left:148px;box-shadow:8px 0 12px -10px #1c19172e}.news-source-path{color:var(--text-muted);font-size:.82rem;line-height:1.45}.news-source-path-links .news-source-sep{color:var(--text-muted)}.filter-banner{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.filter-banner-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.news-scope-bar{flex-wrap:wrap}.news-scope-bar-inline{min-width:0;max-width:min(560px,100%);height:var(--control-h);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);flex:1;justify-content:space-between;align-items:center;gap:10px;padding:0 10px;font-size:.82rem;display:inline-flex}.news-scope-bar-inline .news-scope-path{flex:1;gap:.5rem;min-width:0}.news-scope-bar-inline .news-scope-links{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.news-scope-bar-inline .filter-banner-actions{gap:8px;font-size:.78rem}.news-scope-bar-inline .btn-sm{min-height:calc(var(--control-h) - 6px);padding:0 8px;font-size:.78rem}.news-scope-path{align-items:center;gap:.65rem;min-width:0;display:flex}.news-scope-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;font-size:.75rem;font-weight:600}.news-scope-links{color:var(--text)}.news-scope-active{color:var(--text);font-weight:600}.news-issue-loading-row{color:var(--text-muted);padding-left:42px;font-size:.82rem;font-style:italic}.review-panel{border:1px solid var(--border);background:var(--surface-2,#ffffff05);border-radius:12px;margin:16px 0;padding:16px 18px}.review-panel-loading{color:var(--muted)}.review-panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.review-panel-header h3,.review-item-section h3{margin:0 0 4px;font-size:1rem}.review-panel-subtitle{color:var(--muted);margin:0;font-size:.875rem}.review-panel-saved{color:var(--muted);white-space:nowrap;font-size:.8rem}.review-count-row{grid-template-columns:minmax(180px,240px) auto;align-items:end;gap:20px;margin-bottom:16px;display:grid}.review-count-actual strong{font-size:1.4rem}.review-field{flex-direction:column;gap:6px;display:flex}.review-field-full{margin-top:14px}.review-field-label{color:var(--muted);font-size:.8rem;font-weight:600}.review-checklist{flex-direction:column;gap:10px;display:flex}.review-checklist-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.review-checklist-row:last-child{border-bottom:0}.review-checklist-label{flex-direction:column;gap:2px;display:flex}.review-checklist-hint{color:var(--muted);font-size:.78rem}.review-checklist-actions{flex-shrink:0;gap:8px;display:flex}.review-chip{min-width:64px}.review-chip-fail.active{color:#ff8a98;background:#dc35452e;border-color:#dc354573}.review-complete-row{align-items:center;gap:8px;margin-top:12px;font-size:.9rem;display:flex}.review-item-flags{flex-wrap:wrap;gap:18px;display:flex}.review-panel-actions{margin-top:14px}.review-item-section{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.review-status-pill{color:var(--muted);background:#ffffff0f;border-radius:999px;align-items:center;padding:2px 8px;font-size:.78rem;display:inline-flex}.review-status-complete{color:#7ddea8;background:#1987542e}.review-status-flagged{color:#ff8a98;background:#dc35452e}.issue-review-modal{flex-direction:column;padding:0;display:flex;overflow:hidden}.issue-review-loading{flex:1;place-items:center;padding:24px;display:grid}.issue-review-header-bar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.issue-review-header-text{flex:1;min-width:0}.issue-review-header-text h2{margin:0 0 4px}.issue-review-lead{color:var(--text-muted);margin:0 0 6px;font-size:.9rem}.issue-review-layout{flex:1;grid-template-columns:280px minmax(420px,1fr) minmax(460px,44%);gap:0;min-height:0;display:grid}.issue-review-col{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.issue-review-col-detail{border-right:1px solid var(--border)}.issue-review-detail-split{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.issue-review-half{flex-direction:column;flex:50%;min-height:0;display:flex;overflow:hidden}.issue-review-half-issue{border-bottom:1px solid var(--border)}.issue-review-half-head{background:var(--surface-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-shrink:0;padding:9px 16px;font-size:.76rem;font-weight:600}.issue-review-half-body{flex:1;min-height:0;overflow:auto}.issue-review-notes{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:auto;padding:10px 16px 12px;display:flex}.issue-review-notes textarea{resize:vertical;min-height:52px}.issue-review-items-scroll,.issue-review-archive-scroll{flex:1;min-height:0;overflow:auto}.issue-review-col-items{border-right:1px solid var(--border)}.issue-review-col-head{flex-shrink:0;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 16px 0;display:flex}.issue-review-col-head h3{margin:0;font-size:.92rem;font-weight:600}.issue-review-col-count,.issue-review-col-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:55%;font-size:.78rem;overflow:hidden}.issue-review-col-help{display:none}.issue-review-item-list{margin:0;padding:0;list-style:none}.issue-review-item-btn{border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.issue-review-item-btn:hover:not(:disabled){background:var(--surface-hover)}.issue-review-item-btn:disabled{opacity:.6;cursor:wait}.issue-review-item-btn.is-selected{box-shadow:inset 3px 0 0 var(--accent,#c4a574);background:#ffffff0f}.issue-review-item-pos{background:var(--surface-muted);width:26px;height:26px;color:var(--text-muted);border-radius:6px;flex-shrink:0;place-items:center;font-size:.78rem;font-weight:600;display:grid}.issue-review-item-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.issue-review-item-title{-webkit-line-clamp:2;word-break:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:.84rem;line-height:1.35;display:-webkit-box;overflow:hidden}.issue-review-item-meta{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:.74rem;display:flex}.issue-review-select-hint{margin:12px 16px}.issue-review-count-one-line{align-items:center;gap:8px;min-width:0;display:inline-flex}.issue-review-count-input{width:64px;min-width:64px;padding-top:4px;padding-bottom:4px}.issue-review-count-sep,.issue-review-count-label{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.issue-review-count-one-line strong{font-size:.95rem}.issue-review-source-inline{font-size:.82rem;display:inline}.issue-review-value-inline{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;display:block;overflow:hidden}.issue-review-body-snippet{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);white-space:pre-wrap;word-break:break-word;max-height:120px;margin:0;padding:8px 10px;font-size:.78rem;line-height:1.4;overflow:auto}.issue-review-empty-value{color:var(--text-muted);font-size:.8rem;font-style:italic}.review-field-row{border-bottom:1px solid var(--border);transition:background-color .15s}.review-field-row.is-ok{background:#22c55e0a}.review-field-row.is-wrong{background:#dc35450d}.review-field-row-line{grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:40px;padding:6px 16px;display:grid}.review-field-row.has-below .review-field-row-line{min-height:36px;padding-bottom:4px}.review-field-row-label{color:var(--text-muted);white-space:nowrap;font-size:.78rem;font-weight:600}.review-field-row-value{min-width:0}.review-field-row-actions{flex-shrink:0;gap:4px;display:flex}.review-field-row-below{padding:2px 16px 8px}.review-toggle{border:1px solid var(--border);background:var(--surface);min-width:52px;color:var(--text-muted);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:.74rem;font-weight:600;transition:background-color .15s,border-color .15s,color .15s,transform .1s}.review-toggle:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.review-toggle:active:not(:disabled){transform:scale(.97)}.review-toggle:disabled{opacity:.5;cursor:not-allowed}.review-toggle-ok.is-active{color:#fff;background:#15803d;border-color:#15803d}.review-toggle-ok.is-active:hover:not(:disabled){color:#fff;background:#166534;border-color:#166534}.review-toggle-wrong.is-active{color:#fff;background:#b91c1c;border-color:#b91c1c}.review-toggle-wrong.is-active:hover:not(:disabled){color:#fff;background:#991b1b;border-color:#991b1b}.archive-preview-compact{flex-direction:column;gap:8px;min-height:100%;padding:0 16px 16px;display:flex}.archive-preview-summary{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.76rem;line-height:1.4;overflow:hidden}.archive-preview-compact .archive-search-bar{margin:0}.archive-view-toggle{gap:4px;padding:0 16px;display:inline-flex}.archive-view-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:.74rem;font-weight:600}.archive-view-btn.is-active{background:var(--surface-muted);border-color:var(--border-strong);color:var(--text)}.archive-html-frame{border:1px solid var(--border);border-radius:var(--radius);background:#fff;flex:1;width:100%;min-height:280px}.archive-preview-content{flex-direction:column;flex:1;min-height:280px;display:flex}.archive-preview-compact .news-archive-content{flex:1;min-height:280px;max-height:none;margin:0}.issue-review-actions{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:12px 20px;display:flex}.issue-review-actions-buttons{flex-shrink:0;gap:10px;display:flex}.issue-review-save-hint{color:var(--text-muted);max-width:520px;margin:0;font-size:.78rem;line-height:1.4}.issue-review-top .error-banner,.modal.issue-review-modal-wide>.error-banner{flex-shrink:0;margin:0 20px 10px}.news-detail-modal{--news-modal-width:min(1200px, calc(100vw - 48px));--news-modal-height:min(88vh, 860px);width:var(--news-modal-width);height:var(--news-modal-height);max-width:var(--news-modal-width);max-height:var(--news-modal-height);min-height:var(--news-modal-height);flex-direction:column;display:flex;overflow:hidden}.modal.news-detail-modal .modal-header{flex-shrink:0;margin-bottom:0}.news-detail-header{border-bottom:1px solid var(--border);align-items:flex-start;gap:16px;padding-bottom:12px}.news-detail-header-actions{min-height:var(--control-h);flex-wrap:nowrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.news-header-action-spacer{display:none}.news-detail-body{flex-direction:column;flex:1;min-height:0;padding-top:12px;display:flex;overflow:hidden}.news-detail-loading-wrap{flex:1;place-items:center;min-height:0;display:grid}.news-detail-header-text{flex:1;min-width:0}.news-detail-header-text h2{word-break:break-word;white-space:normal;line-height:1.35}.news-detail-layout{flex:1;grid-template-columns:minmax(320px,42%) minmax(0,58%);gap:20px;min-height:0;display:grid;overflow:hidden}.news-detail-column-extract{flex-direction:column;gap:0;min-height:0;display:flex;overflow:hidden}.news-detail-column-view{flex-direction:column;min-height:0;display:flex;overflow:hidden}.news-extract-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0;display:grid}.news-field{margin:0}.news-field-full{grid-column:1/-1}.news-field dt{color:var(--text-muted);margin:0;font-size:.72rem}.news-field dd{word-break:break-word;margin:3px 0 0;font-size:.86rem;line-height:1.45}.news-view-header{min-height:calc(var(--control-h) + 2px);flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.news-archive-header{margin-bottom:0}.news-column-title{margin:0;font-size:.92rem;font-weight:600}.news-view-panel-fill{padding-top:10px}.news-detail-section-grow{flex-direction:column;min-height:180px;display:flex}.news-detail-section-grow .news-code-block-stretch{flex:1;min-height:140px}.archive-search-bar{flex-shrink:0;align-items:center;gap:10px;margin:10px 0;display:flex}.archive-search-bar input{flex:1;min-width:0}.archive-search-meta{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.78rem}.archive-search-hit{color:inherit;background:#fef08a;border-radius:2px;padding:0 1px}.news-archive-content{margin-top:0}.news-column-body{flex:1;min-height:0;position:relative;overflow:hidden}.news-column-pane{display:none;position:absolute;inset:0;overflow:hidden}.news-column-pane.is-active{flex-direction:column;display:flex}.news-view-panel{scrollbar-width:thin;flex:1;min-height:0;overflow:auto}.news-view-subheading{margin:14px 0 8px;font-size:.86rem}.news-detail-column{flex-direction:column;min-height:0;display:flex;overflow:hidden}.news-detail-section h3{margin:0 0 10px;font-size:.92rem}.news-detail-panel{flex-direction:column;flex:1;min-height:180px;display:flex}.news-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0;display:grid}.news-detail-grid-compact{margin-bottom:8px}.news-detail-grid dt{color:var(--text-muted);margin:0;font-size:.72rem}.news-detail-grid dd{margin:2px 0 0;font-size:.84rem}.news-detail-truncate{text-overflow:ellipsis;word-break:break-all;overflow:hidden}.news-detail-meta{color:var(--text-muted);margin:0 0 8px;font-size:.78rem}.news-detail-error{margin-top:10px}.news-detail-placeholder{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--text-muted);margin:0;padding:12px;font-size:.82rem}.news-detail-loading{color:var(--text-muted);margin:0}.news-code-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--text);white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;max-height:320px;margin:0;padding:12px;font-size:.78rem;line-height:1.45;overflow:auto}.news-code-block-fill,.news-code-block-stretch{max-height:none}.news-code-block-stretch{min-height:100%;margin:0}.data-table .col-select{text-align:center;width:44px;min-width:44px;padding-inline:10px}.data-table-dedupe .sticky-col-left.col-select{left:0}.data-table-dedupe .sticky-col-left.col-name{left:44px}.data-table tbody tr.row-selected,.data-table tbody tr.row-selected .sticky-col-left{background:var(--accent-soft)}.data-table tbody tr.row-selected:hover .sticky-col-left{background:#e8e4e1}.merge-modal{flex-direction:column;width:min(1120px,100vw - 40px);height:min(92vh,940px);max-height:min(92vh,940px);display:flex;overflow:hidden}.merge-modal-intro{color:var(--text-muted);margin:4px 0 0;font-size:.84rem;line-height:1.45}.merge-modal-body{flex-direction:column;flex:1;gap:0;min-height:0;display:flex;overflow:hidden}.merge-summary-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);z-index:4;flex-shrink:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(240px,280px);margin-bottom:16px;display:grid;position:relative;overflow:visible}.merge-summary-section{min-width:0;padding:14px 16px}.merge-summary-section+.merge-summary-section{border-left:1px solid var(--border)}.merge-summary-section h3,.merge-summary-keep .field>label,.merge-summary-keep>label{letter-spacing:.02em;text-transform:none;color:var(--text-muted);margin:0 0 10px;font-size:.76rem;font-weight:500}.merge-summary-keep{z-index:5;flex-direction:column;gap:8px;display:flex;position:relative;overflow:visible}.merge-summary-keep .combobox.open{z-index:60}.merge-summary-keep .combobox-menu{z-index:70}.merge-summary-keep-control{z-index:6;position:relative}.merge-summary-keep .field{gap:6px}.merge-modal-fields{z-index:1;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.merge-modal-fields h3{flex-shrink:0;margin:0 0 12px;font-size:.92rem}.merge-field-grid{scrollbar-width:thin;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:12px 14px;min-height:0;padding-right:4px;display:grid;overflow:auto}.merge-field-grid .field{min-width:0}.merge-field-grid .combobox.open{z-index:2;position:relative}.merge-modal .modal-actions{flex-shrink:0;margin-top:14px}.merge-modal-review{width:min(1480px,100vw - 32px);height:min(90vh,920px);max-height:min(90vh,920px)}.merge-modal-body-review{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.merge-dry-run{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex}.merge-dry-run-warnings{flex-direction:column;gap:8px;display:flex}.merge-compare-section h4{margin:0 0 10px;font-size:.92rem}.merge-compare-section h5{color:var(--text-muted);margin:0 0 8px;font-size:.8rem;font-weight:500}.merge-compare-note{color:var(--text-muted);margin:0 0 8px;font-size:.8rem}.merge-compare-grid{flex:1;grid-template-columns:1fr 1fr;gap:16px;min-height:0;display:grid}.merge-compare-panel{flex-direction:column;min-width:0;min-height:0;display:flex}.merge-compare-panel h5{color:var(--text-muted);margin:0 0 8px;font-size:.82rem;font-weight:600}.merge-compare-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;min-height:0;overflow:auto}.merge-compare-table.data-table .col-level{width:132px;min-width:132px}.merge-compare-table.data-table .col-name{width:34%;min-width:220px}.merge-compare-table.data-table .col-status{width:88px;min-width:88px}.merge-compare-table .tree-row.merge-row-keep .merge-status-keep{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.merge-compare-table .tree-row.merge-row-remove .merge-status-remove{color:var(--danger);background:var(--danger-soft);border-color:#fecaca}.merge-compare-table .tree-row.merge-row-relink .merge-status-relink{color:#a16207;background:#fffbeb;border-color:#fde68a}.merge-status{border-radius:var(--radius);border:1px solid var(--border);white-space:nowrap;align-items:center;padding:2px 7px;font-size:.72rem;font-weight:600;display:inline-flex}.merge-compare-table .level-badge{white-space:nowrap;padding:2px 7px;font-size:.68rem}.merge-compare-table{border-collapse:collapse;width:100%;font-size:.78rem}.merge-compare-table th,.merge-compare-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;word-break:break-word;padding:8px 10px}.merge-compare-table th{background:var(--surface-muted);color:var(--text-muted);z-index:1;font-weight:500;position:sticky;top:0}.merge-compare-empty{color:var(--text-muted);text-align:center}.merge-selected-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.merge-selected-chip{border:1px solid var(--border);background:var(--surface);max-width:100%;color:var(--text);border-radius:999px;align-items:center;padding:5px 10px;font-size:.8rem;line-height:1.3;display:inline-flex}.merge-impact{flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:.84rem;line-height:1.45;display:flex}.merge-impact-stat{color:var(--text-muted);white-space:nowrap}.merge-impact-stat strong{color:var(--text);margin-right:4px;font-weight:600}.banner{border-radius:var(--radius);flex-shrink:0;padding:10px 12px}.banner-error{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca}.empty-state,.loading-state{text-align:center;color:var(--text-muted);flex-shrink:0;padding:32px 16px}.auth-page{background:var(--bg);place-items:center;height:100vh;padding:24px;display:grid;overflow:auto}.auth-card{width:min(400px,100%);padding:24px}.auth-header{align-items:flex-start;gap:14px;display:flex}.auth-mark{border-radius:var(--radius);background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.auth-intro h1{letter-spacing:-.01em;margin:0 0 4px;font-size:1.35rem;font-weight:600}.auth-intro p{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.45}.auth-form{flex-direction:column;gap:14px;margin-top:22px;display:flex}.auth-form .field{gap:6px}.auth-submit{justify-content:center;width:100%;margin-top:4px;padding-block:9px}.auth-switch{text-align:center;color:var(--text-muted);margin:18px 0 0;font-size:.84rem}.auth-switch button{color:var(--text);font:inherit;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:500}.auth-switch button:hover:not(:disabled){-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}.auth-switch button:disabled{opacity:.55;cursor:not-allowed}.modal-backdrop{z-index:20;background:#1c191766;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;width:min(760px,100%);max-height:90vh;overflow:auto}.modal.news-detail-modal{width:min(1200px,100vw - 48px);height:min(88vh,860px);min-height:min(88vh,860px);max-height:min(88vh,860px);overflow:hidden}.modal.issue-review-modal-wide{flex-direction:column;width:min(1560px,100vw - 20px);height:min(96vh,980px);min-height:min(96vh,980px);max-height:min(96vh,980px);display:flex;overflow:hidden}@media (width<=1180px){.issue-review-layout{grid-template-columns:240px minmax(0,1fr) minmax(340px,40%)}}.modal.merge-modal{width:min(1120px,100vw - 40px);height:min(92vh,940px);max-height:min(92vh,940px);overflow:hidden}.modal.merge-modal.merge-modal-review{width:min(1480px,100vw - 32px);height:min(90vh,920px);max-height:min(90vh,920px)}.modal-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-header h2{margin:0;font-size:1.1rem}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}@media (width<=900px){.app-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.sidebar{padding:12px}.nav-list{flex-direction:row;overflow-x:auto}.main-panel{padding:12px}.sources-toolbar,.toolbar-left,.toolbar-right{flex-wrap:wrap}.toolbar-right{width:100%;margin-left:0}.toolbar-search{width:100%;min-width:0;max-width:100%}.filter-menu-panel-wide,.column-picker-menu{min-width:min(720px,100vw - 48px)}.filter-menu-columns,.column-picker-grid{grid-template-columns:1fr}.news-detail-modal,.modal.news-detail-modal{--news-modal-height:min(88vh, 860px);width:calc(100vw - 24px);max-width:calc(100vw - 24px);height:var(--news-modal-height);min-height:var(--news-modal-height);max-height:var(--news-modal-height);overflow:hidden}.news-detail-layout,.news-extract-grid,.merge-summary-card{grid-template-columns:1fr}.merge-summary-section+.merge-summary-section{border-left:none;border-top:1px solid var(--border)}.merge-compare-grid,.merge-field-grid{grid-template-columns:1fr}}
