#replay-sensor-manager { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--border); }
.sources-comparison { display:flex;align-items:center;gap:12px;width:100%;max-width:620px;border:1px solid var(--border);border-radius:14px;padding:10px;background:var(--bg1); }
.sources-figure { position:relative;width:280px;flex:0 0 280px; }
.sources-figure img { display:block;width:100%;height:auto; }
.sources-leaders { position:absolute;inset:0;width:100%;height:100%;pointer-events:none; }
.sources-leaders polyline { fill:none;stroke:#8d9896;stroke-width:.45;stroke-dasharray:1.4 1.1; }
.sources-leaders [data-state="selected"] { stroke:#9bcc15; }
.sources-tag { position:absolute;transform:translateY(-50%);font:9px/1.15 system-ui;color:var(--text3);max-width:23%;padding:2px;background:var(--bg1);border-radius:3px; }
.sources-tag[data-state="selected"] { color:var(--text1); }
.sources-marker { position:absolute;width:9px;height:9px;border:1px solid #8d9896;border-radius:50%;transform:translate(-50%,-50%);background:#414946; }
.sources-marker[data-state="selected"] { background:#9bcc15;border-color:#d9ff84;box-shadow:0 0 5px #9bcc15,0 0 14px #9bcc15aa; }
.sources-marker[data-state="missing"] { background:transparent;border-style:dashed;opacity:.65; }
.sources-compare-controls { flex:1;min-width:0;display:grid;gap:7px; }
.sources-compare-controls strong { font:600 13px system-ui;color:var(--text1); }
.sources-compare-controls small { display:block;font:11px/1.4 system-ui;color:var(--text3); }
.sources-compare-controls .sources-inferred { color:var(--text1);border-left:2px dashed var(--text3);padding:5px 8px;background:var(--bg2);border-radius:4px; }
.sources-comparison button { min-height:48px;background:var(--bg2);color:var(--text1);border:1px solid var(--border);border-radius:8px;font:700 20px system-ui;cursor:pointer; }
.sources-comparison button[aria-pressed="true"] { border-color:#9bcc15;box-shadow:0 0 10px #9bcc1530;background:#9bcc1518; }
.sources-comparison button:focus-visible { outline:2px solid #9bcc15;outline-offset:2px; }
.sources-comparison button:disabled { opacity:.45;cursor:wait; }
@media(max-width:600px) { .sources-comparison { gap:6px;padding:8px;flex-direction:column; } .sources-figure { width:280px;max-width:100%;flex-basis:auto; } .sources-compare-controls { width:100%; } .sources-presets { gap:4px; } }
#replay-sensor-manager .sources-open { min-height:44px;padding:10px 16px;border:1px solid var(--accent);border-radius:10px;background:var(--bg1);color:var(--text1);font:600 14px system-ui;cursor:pointer; }
.sources-open b { margin-left:10px;color:var(--accent);font-variant-numeric:tabular-nums; }
.sources-receipt { color:var(--text3);font:12px/1.4 system-ui; }
#replay-sensors { position:fixed;inset:auto 16px 16px auto;margin:0;width:min(520px,calc(100vw - 32px));max-height:min(820px,calc(100dvh - 32px));padding:0;background:var(--bg1);color:var(--text1);border:1px solid var(--border);border-radius:20px;box-shadow:0 16px 64px #0005;font:14px/1.45 system-ui;z-index:10000; }
#replay-sensors[open] { display:flex;flex-direction:column; }
#replay-sensors::backdrop { background:#07102060; }
#replay-sensors header { display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid var(--border);gap:16px; }
#replay-sensors h2 { font-size:24px;font-weight:700;letter-spacing:-.03em; }
#replay-sensors header small { color:var(--text3);font-size:10px;letter-spacing:.12em; }
#replay-sensors h3 { font-size:14px;font-weight:650; }
#replay-sensors button { min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:9px;background:var(--bg2);color:var(--text1);font:600 13px system-ui;cursor:pointer; }
#replay-sensors button:focus-visible,#replay-sensor-manager .sources-open:focus-visible { outline:3px solid var(--accent);outline-offset:3px; }
#replay-sensors .sources-close { background:var(--accent);color:white;border-color:var(--accent); }
.sources-scroll { overflow-y:auto;overscroll-behavior:contain;padding:16px 24px;min-height:0; }
#sources-intro { color:var(--text3);margin-bottom:16px; }
.sources-presets { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
#replay-sensors [aria-pressed="true"] { background:var(--accent);color:white;border-color:var(--accent); }
.sources-impact { margin:16px 0;padding:12px 16px;background:var(--bg2);border:1px solid var(--border);border-radius:12px; }
.sources-impact h3 { display:inline;color:var(--accent); }
.sources-impact summary { cursor:pointer;min-height:32px; }
.sources-impact summary span { display:block;color:var(--text3);font-size:11px;margin-top:3px; }
.sources-impact[open] summary { margin-bottom:16px; }
.sources-impact dl { display:grid;grid-template-columns:110px 1fr;gap:10px 12px;font-size:12px; }
.sources-impact dt { color:var(--text1);font-weight:600; }
.sources-impact dd { color:var(--text3);margin:0; }
.sources-inventory section { margin-top:20px; }
.sources-inventory h3 { margin-bottom:8px; }
.sources-row { display:flex;align-items:center;gap:12px;min-height:80px;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer; }
.sources-row input { width:22px;height:22px;flex:0 0 22px;accent-color:var(--accent); }
.sources-row span { min-width:0; }
.sources-row strong { display:block;font-size:14px;font-weight:600; }
.sources-row small { display:block;color:var(--text3);font-size:11px;line-height:1.65;overflow-wrap:anywhere; }
.sources-row .sources-quality[data-warning="true"] { color:#b16b0b; }
.sources-row .sources-place { display:block;margin-top:6px;max-width:100%;min-height:32px;padding:4px 8px;font:inherit;font-size:12px;border:1px solid var(--border);border-radius:6px;background:transparent;color:inherit; }
:root:not([data-theme="light"]) .sources-row .sources-quality[data-warning="true"] { color:#ffd58a; }
.sources-context { margin-top:20px; }
.sources-context summary { cursor:pointer;min-height:44px;align-content:center;font-weight:600; }
.sources-context p,.sources-limits { font-size:12px;color:var(--text3);line-height:1.5; }
.sources-limits { margin-top:12px; }
#replay-sensors footer { border-top:1px solid var(--border);padding:14px 24px;padding-bottom:max(14px,env(safe-area-inset-bottom)); }
.sources-progress { display:block;font-size:12px;font-weight:600; }
#replay-sensors footer small { font-size:11px;color:var(--text3); }
@media(max-width:600px) {
  #replay-sensors { inset:auto 0 0;width:100%;max-height:90dvh;border-radius:20px 20px 0 0; }
  #replay-sensors header,.sources-scroll,#replay-sensors footer { padding-left:20px;padding-right:20px; }
  #replay-sensors .sources-presets button { padding:8px 4px;font-size:12px; }
  #replay-sensor-manager { gap:8px; }
  .sources-receipt { flex-basis:100%; }
}
