/* Source review uses the existing Editorial Lab semantic tokens. */
.source-review{display:flex;flex-direction:column;height:100%;min-height:0;min-width:0;background:var(--canvas);color:var(--ink)}
.source-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 19px;border-bottom:1px solid var(--border);background:#f9f8f2;flex:none}
.source-heading h2{margin:0 0 7px;font-size:22px;line-height:1.25;letter-spacing:-.4px}
.source-heading p{margin:0;font-size:12px;line-height:1.65;color:var(--muted);max-width:430px}
.source-refresh{min-height:34px;flex:none;font-size:11px}
.source-notice{padding:12px 22px;border-bottom:1px solid #cfdbca;background:var(--moss-soft);color:var(--moss);font-size:12px;line-height:1.6;overflow-wrap:anywhere;flex:none}
.source-notice.error{background:#f8e9e3;color:var(--danger);border-color:#e9cfc7}
.source-layout{display:grid;grid-template-columns:minmax(150px,29%) minmax(0,1fr);flex:1;min-height:0;min-width:0}
.source-navigation{display:flex;flex-direction:column;min-width:0;min-height:0;padding:15px 12px;border-right:1px solid var(--border);background:#f5f4ed}
.source-tabs{display:flex;gap:5px;margin:0 0 13px}
.source-tab{border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:11px;min-height:34px;padding:6px 9px;white-space:nowrap}
.source-tab[aria-pressed=true]{background:var(--moss-soft);color:var(--moss);font-weight:600}
.source-filter{width:100%;min-width:0;min-height:35px;background:var(--surface);border:1px solid #d4d8c9;border-radius:6px;color:var(--ink);padding:7px 9px;font-size:11px;margin-bottom:13px}
.source-list{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;display:flex;flex-direction:column;gap:4px}
.source-list-item{display:block;width:100%;flex:none;min-width:0;text-align:left;border:1px solid transparent;border-radius:6px;background:transparent;padding:10px 9px;color:var(--ink)}
.source-list-item:hover{background:#eaede2}
.source-list-item[aria-current=true]{background:var(--surface);border-color:#cbd6c3}
.source-list-item span{display:block;overflow-wrap:anywhere}
.source-item-title{font-size:12px;line-height:1.5;font-weight:600}
.source-item-subtitle{margin-top:4px;font-size:10px;line-height:1.55;color:var(--muted)}
.source-list-empty{font-size:12px;line-height:1.6;color:var(--muted);padding:6px 9px}
.source-review-content{min-height:0;min-width:0;overflow:auto;padding:22px 24px 28px;scrollbar-width:thin;overscroll-behavior:contain;background:#fcfbf7}
.source-detail{min-width:0}
.source-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}
.source-detail h3{margin:0;font-size:18px;line-height:1.4;letter-spacing:-.25px;overflow-wrap:anywhere}
.source-state{font-size:10px;line-height:1.5;flex:none;padding:4px 8px;border:1px solid var(--border);border-radius:6px;color:var(--muted);background:#f1f1e9;text-transform:capitalize}
.source-state[data-state=applied]{background:var(--moss-soft);border-color:#cbd6c3;color:var(--moss)}
.source-state[data-state=failed],.source-state[data-state=recovery_required]{color:var(--danger);background:#f8e9e3;border-color:#e9cfc7}
.source-metadata{display:grid;gap:10px;margin:17px 0 21px}
.source-meta-row{display:grid;gap:3px;min-width:0}
.source-meta-row dt{font-size:10px;line-height:1.5;color:var(--muted);font-weight:600}
.source-meta-row dd{margin:0;font-size:11px;line-height:1.6;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
.source-scope-note,.source-readonly{font-size:12px;line-height:1.65;color:var(--muted);padding:11px 13px;background:#f3f0e4;border:1px solid #e3ddc8;border-radius:7px;margin:0 0 20px}
.source-change-file{margin:24px 0 0;border-top:1px solid var(--border);padding-top:20px}
.source-change-file h4{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.source-sensitive-tag{font-size:9px;font-weight:500;border:1px solid #ded7c2;color:#71562c;background:#f5ecd9;padding:1px 5px;border-radius:4px}
.source-diff,.source-file-text{display:block;max-width:100%;margin:0;border:1px solid var(--border);border-radius:7px;padding:14px;background:var(--surface);color:var(--ink);font-size:11px;line-height:1.65;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;white-space:pre;overflow:auto;scrollbar-width:thin;tab-size:2;max-height:480px}
.source-full-text{margin-top:13px}
.source-full-text summary{font-size:11px;color:var(--moss);cursor:pointer;padding:7px 0}
.source-full-text pre{margin-top:6px;max-height:420px}
.source-consents{border-top:1px solid var(--border);padding-top:18px;margin-top:24px}
.source-apply-explanation{font-size:12px;line-height:1.75;color:var(--muted);margin:0 0 16px}
.source-recovery-explanation{font-size:12px;line-height:1.75;color:#71562c;margin:0 0 16px;padding:11px 13px;border:1px solid #ded7c2;border-radius:7px;background:#f5ecd9}
.source-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.65;font-weight:400;color:var(--ink);margin:12px 0;cursor:pointer}
.source-consent input{flex:none;appearance:auto;width:17px;height:17px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--moss)}
.source-consent span{min-width:0}
.source-apply,.source-recover{margin-top:10px;min-height:38px;font-size:12px}
.source-busy{font-size:11px;line-height:1.6;color:var(--muted);margin:13px 0 0;min-height:0}
.source-busy:empty{display:none}
.source-record-error{font-size:12px;line-height:1.65;color:var(--danger);padding:13px;background:#f8e9e3;border:1px solid #e9cfc7;border-radius:7px;overflow-wrap:anywhere;margin:15px 0}
.source-record-error p{margin:5px 0 0}
.source-record-error .source-metadata{margin:12px 0 0}
.source-result{font-size:12px;line-height:1.65;color:var(--moss);padding:13px;background:var(--moss-soft);border:1px solid #cbd6c3;border-radius:7px;margin:15px 0 20px}
.source-result p{margin:6px 0 0}
.source-applied-file{font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
.source-empty{padding:26px 0 50px;max-width:380px}
.source-empty h3{font-size:21px;line-height:1.35;margin:0 0 11px;letter-spacing:-.4px}
.source-empty p{font-size:13px;line-height:1.8;color:var(--muted);margin:0}
.source-loading{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 24px}
.source-review :is(button,input,summary,pre):focus-visible{outline:2px solid var(--moss);outline-offset:3px}
.source-review [hidden]{display:none!important}
.source-review button:disabled{cursor:not-allowed;opacity:.5}
@media(max-width:1100px){.source-heading{padding:19px 17px}.source-layout{grid-template-columns:minmax(125px,30%) minmax(0,1fr)}.source-navigation{padding:13px 9px}.source-tabs{gap:2px}.source-tab{font-size:10px;padding:5px 6px}.source-review-content{padding:18px 17px 24px}.source-detail-heading{flex-wrap:wrap}.source-diff,.source-file-text{padding:11px}}
@media(max-width:860px) and (min-width:721px){.source-layout{grid-template-columns:1fr;display:flex;flex-direction:column}.source-navigation{max-height:220px;border-right:0;border-bottom:1px solid var(--border);flex:none}.source-list{max-height:100px;display:grid;grid-template-columns:1fr}.source-review-content{flex:1}.source-heading{padding:17px 15px}}
@media(max-width:720px){.source-heading{padding:19px 18px}.source-heading h2{font-size:21px}.source-layout{grid-template-columns:minmax(120px,28%) minmax(0,1fr)}.source-review-content{padding:20px 16px 28px}.source-meta-row dd{font-size:10px}.source-detail h3{font-size:16px}.source-notice{padding:11px 17px}}
@media(max-width:480px){.source-layout{display:flex;flex-direction:column}.source-navigation{max-height:210px;border-right:0;border-bottom:1px solid var(--border);flex:none;padding:12px 16px}.source-tabs{margin-bottom:9px}.source-tab{font-size:11px}.source-filter{margin-bottom:9px}.source-list{max-height:110px;display:grid;grid-template-columns:1fr}.source-review-content{flex:1;padding:20px 18px 28px}.source-detail-heading{flex-wrap:nowrap}.source-heading{gap:12px}.source-heading p{font-size:11px}.source-diff,.source-file-text{font-size:10px}}
