#replay-sensor-manager { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--border); }
#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%; }
}
