/*
 * readonly.css — injected by nginx sub_filter into the console index.html.
 * Hides write affordances in the SPA without forking the console source.
 * Loaded as a same-origin external <link> (CSP: style-src 'self').
 *
 * Defense-in-depth layer 2: the API already returns 403 for POST /api/console/ground-truth.
 * This layer prevents the UI element from being visible / actionable.
 */

/* Record-outcome button (ScreenIntelligence.tsx: data-testid="record-outcome-btn") */
/* Record UCID button    (ScreenUcids.tsx:         data-testid="ucid-record-btn")    */
[data-testid="record-outcome-btn"],
[data-testid="ucid-record-btn"] {
  display: none !important;
}

/* ── Staleness banner — rendered by realtime.js when sync age exceeds threshold ── */
.fm-stale-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  padding: 8px 16px;
  background: #f59e0b;       /* amber-400 — visible without OKLCH dependency */
  color: #1c1917;             /* stone-950 */
  font-size: 13px;
  font-family: system-ui, -apple-system, sans-serif;
  text-align: center;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.fm-stale-banner button {
  margin-left: 12px;
  padding: 2px 10px;
  border: 1px solid #1c1917;
  border-radius: 4px;
  background: transparent;
  color: #1c1917;
  font-size: 12px;
  cursor: pointer;
  vertical-align: middle;
}

.fm-stale-banner button:hover {
  background: rgba(0, 0, 0, 0.1);
}
