.source-page{ max-width:1180px; margin:0 auto; padding:28px 22px 60px; color:var(--fg); }
.source-intro{ background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px 22px; }
.source-intro h2{ margin:0 0 8px; font-size:20px; }
.source-intro p{ max-width:900px; margin:0; color:var(--fg2); line-height:1.65; }
.source-summary{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.source-summary span{ padding:6px 10px; border-radius:50px; background:var(--bg2); border:1px solid var(--line); font-size:12px; }
.source-summary .warn{ color:var(--red); border-color:var(--red); }
.source-controls{ display:flex; flex-wrap:wrap; gap:12px; margin:18px 0; padding:12px; background:var(--card); border:1px solid var(--line); border-radius:12px; }
.source-controls label{ display:flex; gap:7px; align-items:center; color:var(--fg2); font-size:12px; font-weight:700; }
.source-controls input,.source-controls select{ min-height:36px; padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:var(--bg2); color:var(--fg); font:inherit; }
.source-controls input{ min-width:260px; }
.source-results{ display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:14px; }
.source-card{ min-width:0; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.source-card-head{ display:flex; gap:8px; align-items:flex-start; }
.source-category{ flex:none; border-radius:50px; padding:3px 8px; background:var(--hl2); color:var(--fg2); font-size:10px; font-weight:800; text-transform:uppercase; }
.source-card h3{ margin:0; font-size:16px; line-height:1.3; }
.source-card h3 a{ color:var(--play); }
.source-edition{ margin:9px 0; color:var(--fg2); font-size:13px; line-height:1.5; }
.source-facts{ display:grid; grid-template-columns:max-content 1fr; gap:5px 9px; margin:10px 0; font-size:12px; }
.source-facts dt{ color:var(--fg2); font-weight:700; }
.source-facts dd{ min-width:0; margin:0; overflow-wrap:anywhere; }
.source-unknown{ color:var(--red); font-weight:800; }
.source-excluded{ color:var(--red); font-weight:800; }
.source-note{ padding:8px 10px; border-left:3px solid var(--gold); background:var(--bg2); color:var(--fg2); font-size:12px; line-height:1.45; }
.source-artifacts{ margin-top:12px; border-top:1px solid var(--line); padding-top:9px; }
.source-artifacts summary{ cursor:pointer; color:var(--play); font-size:12px; font-weight:800; }
.artifact-set{ margin-top:10px; padding:9px; border-radius:8px; background:var(--bg2); font-size:11px; }
.artifact-set-name{ font-weight:800; }
.artifact-hash{ margin-top:5px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; overflow-wrap:anywhere; color:var(--fg2); }
.artifact-files{ max-height:230px; overflow:auto; margin-top:6px; padding-top:5px; border-top:1px solid var(--line); }
.artifact-file{ display:grid; grid-template-columns:1fr; gap:2px; padding:5px 0; border-bottom:1px dotted var(--line); }
.artifact-path{ overflow-wrap:anywhere; }
.artifact-file code{ color:var(--fg2); font-size:10px; overflow-wrap:anywhere; }
.source-empty{ padding:40px; text-align:center; color:var(--fg2); }
@media(max-width:650px){
  .source-page{ padding:16px 12px 40px; }
  .source-results{ grid-template-columns:1fr; }
  .source-controls{ display:block; }
  .source-controls label{ display:block; margin:8px 0; }
  .source-controls input,.source-controls select{ width:100%; margin-top:4px; }
}
