/**
 * Ravenore reusable primitives (opt-in). Uses ravenore-tokens.css variables.
 * No element selectors; safe to include on future pages.
 */

.rn-type-page-title {
  font-family: var(--rn-font-sans);
  font-weight: 700;
  letter-spacing: var(--rn-track-tight);
  color: var(--rn-text-primary);
  margin: 0 0 1rem;
  font-size: var(--rn-text-xl);
  line-height: 1.15;
}

/* Page / section title + “i” help — icon stays inline; popover still portals fixed in rn-info-tip.js */
.rn-page-title-with-tip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  margin: 0 0 1rem;
}

.rn-page-title-with-tip .rn-type-page-title {
  margin: 0;
}

.rn-page-title-with-tip__label {
  flex: 1 1 auto;
  min-width: 0;
}

.rn-page-title-with-tip .rn-info-tip {
  flex-shrink: 0;
}

.rn-type-section-title--with-tip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.5rem;
}

.rn-type-section-title--with-tip .rn-type-section-title__label {
  flex: 1 1 auto;
  min-width: 0;
}

.rn-type-section-title--with-tip .rn-info-tip {
  flex-shrink: 0;
}

/* Shared page intro (all routes; tokens only) */
.rn-page-intro {
  font-size: var(--rn-text-sm);
  color: var(--rn-text-muted);
  margin: 0 0 0.75rem;
  max-width: 72ch;
  line-height: 1.45;
}

.rn-page-intro:last-child {
  margin-bottom: 0;
}

.rn-page-intro--fine {
  font-size: var(--rn-text-xs);
  color: var(--rn-text-faint);
  line-height: 1.5;
}

.rn-type-overline {
  font-size: var(--rn-text-xs);
  font-weight: 700;
  letter-spacing: var(--rn-track-caps);
  text-transform: uppercase;
  color: var(--rn-gold-400);
}

.rn-type-muted {
  color: var(--rn-text-muted);
}

/* Section title (h2 under page title) — same font in 1…N column grids; tokens only */
.rn-type-section-title {
  font-family: var(--rn-section-title-font);
  font-weight: var(--rn-section-title-weight);
  font-size: var(--rn-section-title-size);
  letter-spacing: var(--rn-section-title-tracking);
  color: var(--rn-section-title-color);
  margin: 0 0 0.5rem;
  line-height: var(--rn-section-title-line-height);
}

/* Subheading inside panels (e.g. R-Index “Money”) */
.rn-type-subheading {
  font-size: var(--rn-text-sm);
  font-weight: 600;
  color: var(--rn-text-secondary);
  margin: 0.6rem 0 0.25rem;
  line-height: 1.3;
}

.rn-section-header {
  margin: 1.5rem 0 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.rn-section-header .rn-type-section-title {
  margin-bottom: 0;
}

.rn-toolbar-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  line-height: 1.45;
}

.rn-toolbar-inline.rn-toolbar-inline--between {
  justify-content: space-between;
  width: 100%;
}

.rn-toolbar-inline .rn-type-section-title {
  margin-bottom: 0;
}

.rn-stack-bottom {
  margin-bottom: 1rem;
}

.rn-mb-tight {
  margin-bottom: 0.4rem;
}

.rn-text-warning {
  color: var(--rn-warning);
}

/* Glass panel shell — use inside pages that import tokens */
.rn-panel {
  background: var(--rn-glass-bg);
  border: 1px solid var(--rn-border-gold);
  border-radius: var(--rn-radius-md);
  box-shadow: var(--rn-shadow-1), var(--rn-shadow-inset-line);
  backdrop-filter: blur(var(--rn-glass-blur));
  -webkit-backdrop-filter: blur(var(--rn-glass-blur));
}

.rn-panel.rn-panel--pad {
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
}

/* Equal-width column grids — set --rn-grid-cols (default 3) for 1…N columns */
.rn-grid {
  display: grid;
  grid-template-columns: repeat(var(--rn-grid-cols, 3), minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 1rem;
}

/* Column shell: equal grids (.rn-grid) + two-column story row (.rn-loop-outcome-row) */
.rn-grid-col,
.rn-loop-outcome-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}

.rn-grid-col--decision {
  align-self: stretch;
}

.rn-grid--2 {
  --rn-grid-cols: 2;
}

.rn-grid--1 {
  --rn-grid-cols: 1;
}

/* ROI display verdict (decision layer) — five levels; not WMT. Colors align with digest signal tiers. */
.rn-roi-verdict-badge {
  font-weight: 600;
  font-size: var(--rn-text-xs);
  letter-spacing: 0.02em;
}

.rn-roi-verdict-badge--hot_buy {
  background: rgba(46, 125, 50, 0.55);
  color: #e8f5e9;
}

.rn-roi-verdict-badge--buy {
  background: rgba(46, 125, 50, 0.35);
  color: #e8f5e9;
}

.rn-roi-verdict-badge--consider {
  background: rgba(180, 140, 40, 0.42);
  color: #fff8e8;
}

.rn-roi-verdict-badge--pass {
  background: rgba(90, 90, 90, 0.45);
  color: #e8eaed;
}

.rn-roi-verdict-badge--hard_pass {
  background: rgba(180, 60, 60, 0.45);
  color: #ffeaea;
}

/* Decision layer — policy legend (informative; subordinate to verdict badge) */
.rn-watch-decision-panel .rn-decision-policy-footnote {
  display: block;
  margin: 0.35rem 0 0;
  max-width: none;
  font-size: var(--rn-text-xs);
  line-height: 1.45;
  color: var(--rn-text-faint);
  font-weight: 400;
}

/* Decision layer: checkbox left of label text; override .form-row input { width:100% } */
.rn-decision-risk-fieldset {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.rn-decision-risk-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0;
  cursor: pointer;
  font-size: var(--rn-text-sm);
  color: var(--rn-text-secondary);
}

.rn-decision-risk-row input[type="checkbox"] {
  width: auto;
  max-width: none;
  flex-shrink: 0;
  margin-top: 0.12rem;
  accent-color: var(--rn-gold-500);
}

/* Watch detail: Loop case | Outcome memory — two equal columns; stack on narrow */
.rn-loop-outcome-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 1rem;
}

@media (max-width: 52rem) {
  .rn-loop-outcome-row {
    grid-template-columns: 1fr;
  }
}

.rn-loop-outcome-row .rn-loop-outcome-col > .rn-panel.rn-panel--pad {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  margin-bottom: 0;
}

/* Phase 2 — watch outcome memory reads as the canonical operator timeline */
.rn-panel.rn-outcome-memory-canonical {
  border-color: rgba(201, 166, 74, 0.42);
  box-shadow: var(--rn-shadow-1), 0 0 0 1px rgba(201, 166, 74, 0.1) inset;
}

/* Phase 4 — operator peer hints (watch detail) */
.rn-operator-signals {
  margin: 0.5rem 0 0;
  padding-left: 1.15rem;
  color: var(--rn-text-secondary, #c8ced6);
  font-size: 0.88rem;
  line-height: 1.45;
}
.rn-operator-signals li {
  margin-bottom: 0.35rem;
}
.rn-peer-outcomes-table {
  margin-top: 0.5rem;
}
.rn-peer-outcomes-table .rn-page-intro--fine {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.78rem;
}

.rn-grid .rn-grid-col > .rn-panel.rn-panel--pad {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  margin-bottom: 0;
}

/* R-Index: tighter vertical rhythm */
.rn-watch-rindex-panel .rn-type-subheading {
  margin: 0.35rem 0 0.1rem;
}

.rn-watch-rindex-panel .specs-dl {
  gap: 0.12rem 0.75rem;
}

.rn-watch-rindex-panel .specs-dl:first-of-type {
  margin-top: 0.15rem;
}

.rn-watch-rindex-panel .specs-dl + .specs-dl {
  margin-top: 0.35rem;
}

.rn-watch-rindex-panel .rn-mb-tight {
  margin-top: 0;
  margin-bottom: 0.35rem;
}

.rn-watch-rindex-panel .form-stack.rn-form-stack--md {
  gap: 0.5rem;
}

.rn-watch-rindex-panel .form-stack .form-actions {
  margin-top: 0.35rem;
  padding-top: 0.5rem;
}

.rn-watch-rindex-footnote {
  margin-top: 0.35rem;
  margin-bottom: 0;
}

/* Snapshots: controls top, table area scrolls */
.rn-grid .rn-grid-col > .rn-panel.rn-watch-snapshots-panel {
  gap: 0.5rem;
}

.rn-watch-snapshots-head {
  flex-shrink: 0;
}

.rn-watch-snapshots-head .form-stack.rn-form-stack--md {
  max-width: 100%;
}

.rn-watch-snapshots-head .form-stack .form-actions {
  margin-top: 0.35rem;
  padding-top: 0.5rem;
}

.rn-watch-snapshots-scroll {
  flex: 1;
  min-height: 10rem;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

.rn-watch-snapshots-scroll .rn-data-table-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
}

/* Public description: fill column, textarea scrolls */
.rn-watch-public-panel .rn-type-section-title,
.rn-watch-public-panel .rn-page-intro {
  flex-shrink: 0;
}

.rn-watch-public-panel .form-stack {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-width: 100%;
}

.rn-watch-public-panel .form-row {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.rn-watch-public-panel textarea {
  flex: 1;
  min-height: 7rem;
  overflow-y: auto;
  resize: vertical;
}

.rn-watch-public-panel .form-stack .form-actions {
  margin-top: auto;
  flex-shrink: 0;
}

@media (max-width: 900px) {
  .rn-grid {
    grid-template-columns: 1fr;
  }
}

/* Settings top: R-Index + WMT (left) | wider Service Card (right); row height matched, saves pinned */
.rn-settings-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 1.25rem;
  align-items: stretch;
  margin-bottom: 1.5rem;
}

.rn-settings-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  align-self: stretch;
}

.rn-settings-grid .rn-panel.rn-panel--pad {
  margin-bottom: 0;
}

/* Service Card: single panel fills column so bottom aligns with WMT */
.rn-settings-grid > .rn-settings-col > .rn-panel:only-child {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}

.rn-settings-stack > .rn-panel {
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  min-width: 0;
  min-height: 0;
}

/* Extra row height: keep WMT at bottom of left column (aligned with Service Card bottom) */
.rn-settings-stack > .rn-panel:last-child {
  margin-top: auto;
}

.rn-settings-grid .rn-panel > .rn-type-section-title,
.rn-settings-grid .rn-panel > .rn-page-intro {
  flex-shrink: 0;
}

.rn-settings-grid .rn-panel .form-stack {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-width: 100%;
}

.rn-settings-grid .rn-panel .form-stack .form-actions {
  margin-top: auto;
}

.rn-settings-grid > .rn-settings-col > .rn-settings-stack {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
  min-height: 0;
  width: 100%;
}

/* Read-only tables: Global | Brand Multipliers in one row (two equal columns) */
.rn-settings-data {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.rn-settings-data-block {
  min-width: 0;
}

.rn-settings-data-block .rn-type-section-title {
  margin-bottom: 0.5rem;
}

.rn-settings-data-block table input[type="text"],
.rn-settings-data-block table input[type="number"] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.rn-settings-data-block input.rn-settings-field-invalid {
  border-color: var(--rn-danger) !important;
  box-shadow: 0 0 0 1px rgba(224, 122, 122, 0.35);
}

.rn-settings-feedback {
  margin: 0 0 0.5rem;
  max-width: 72ch;
}

.rn-settings-feedback--ok {
  color: var(--rn-success);
}

.rn-settings-feedback--err {
  color: var(--rn-danger);
}

@media (max-width: 1100px) {
  .rn-settings-data {
    grid-template-columns: 1fr;
  }

  .rn-settings-grid {
    grid-template-columns: 1fr;
  }

  .rn-settings-grid > .rn-settings-col > .rn-panel:only-child {
    flex: 0 1 auto;
  }

  .rn-settings-stack {
    flex: 0 1 auto;
  }

  .rn-settings-stack > .rn-panel {
    flex: 0 1 auto;
  }

  .rn-settings-stack > .rn-panel:last-child {
    margin-top: 0;
  }
}

/* Buttons */
.rn-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem;
  font-family: var(--rn-font-sans);
  font-size: var(--rn-text-sm);
  font-weight: 600;
  color: var(--rn-text-primary);
  cursor: pointer;
  border-radius: var(--rn-radius-sm);
  border: 1px solid rgba(201, 166, 74, 0.35);
  background: rgba(32, 38, 46, 0.95);
  transition: background var(--rn-duration) var(--rn-ease-out), border-color var(--rn-duration) var(--rn-ease-out),
    box-shadow var(--rn-duration) var(--rn-ease-out);
}

.rn-btn:hover:not(:disabled) {
  border-color: rgba(201, 166, 74, 0.55);
  background: rgba(42, 48, 58, 0.98);
}

.rn-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.rn-btn--primary {
  border-color: rgba(201, 166, 74, 0.6);
  background: linear-gradient(180deg, rgba(201, 166, 74, 0.28) 0%, rgba(201, 166, 74, 0.08) 100%);
  color: #fff8e8;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.rn-btn--primary:hover:not(:disabled) {
  background: linear-gradient(180deg, rgba(201, 166, 74, 0.38) 0%, rgba(201, 166, 74, 0.12) 100%);
  border-color: rgba(240, 215, 138, 0.75);
}

/* Metric grid (2×2) */
.rn-kv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.4rem 0.75rem;
}

.rn-kv-label {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: var(--rn-track-wide);
  text-transform: uppercase;
  color: var(--rn-text-faint);
}

.rn-kv-value {
  font-size: 0.82rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--rn-text-primary);
}

.rn-kv-value--gold {
  color: var(--rn-gold-400);
}

/* —— Filter strip (form-stack filters above tables) —— */
.rn-filter-form {
  margin-bottom: 1rem;
  max-width: 360px;
}

.rn-filter-form--narrow {
  max-width: 320px;
}

/* —— Data tables (app-wide; not Morning Digest) —— */
.rn-data-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--rn-radius-md);
  border: 1px solid rgba(201, 166, 74, 0.14);
  background: linear-gradient(180deg, rgba(14, 16, 20, 0.95) 0%, rgba(8, 9, 11, 0.98) 100%);
  box-shadow: var(--rn-shadow-1), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.rn-data-table {
  width: 100%;
  min-width: 720px;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
}

.rn-data-table.rn-data-table--wide {
  min-width: 960px;
}

/* Short key/value tables (settings, etc.) */
.rn-data-table.rn-data-table--auto {
  min-width: 0;
}

.rn-data-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 0.5rem 0.6rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(180, 188, 198, 0.88);
  text-align: left;
  vertical-align: bottom;
  background: linear-gradient(180deg, rgba(12, 14, 18, 0.98) 0%, rgba(8, 9, 12, 0.99) 100%);
  border: none;
  border-bottom: 1px solid rgba(201, 166, 74, 0.2);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.45);
  white-space: nowrap;
}

.rn-data-table tbody td {
  padding: 0.48rem 0.6rem;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--rn-text-muted);
  border: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.045);
  vertical-align: middle;
  background: rgba(12, 14, 18, 0.35);
  text-align: left;
}

.rn-data-table tbody tr:nth-child(even) td {
  background: rgba(16, 18, 22, 0.45);
}

.rn-data-table tbody tr:hover td {
  background: rgba(201, 166, 74, 0.07);
  border-bottom-color: rgba(201, 166, 74, 0.1);
}

.rn-data-table tbody tr:hover td:first-child {
  box-shadow: inset 3px 0 0 rgba(201, 166, 74, 0.35);
}

.rn-data-table th.rn-th-actions,
.rn-data-table td.rn-td-actions {
  white-space: nowrap;
  width: 1%;
}

.rn-data-table thead th.rn-num,
.rn-data-table td.rn-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--rn-text-secondary);
}

.rn-data-table thead th.rn-num {
  color: rgba(180, 188, 198, 0.88);
}

.rn-data-table .badge {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--rn-text-secondary);
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.rn-watch-link {
  color: var(--rn-gold-500);
  font-weight: 500;
  text-decoration: none;
}

.rn-watch-link:hover {
  text-decoration: underline;
}

.rn-inline-form {
  display: inline;
  margin: 0;
  vertical-align: middle;
}

.rn-inline-form--flex {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
  margin: 0;
  vertical-align: middle;
}

/* Small / danger affordances on base <button> (opt-in) */
.rn-btn--sm {
  font-size: var(--rn-text-xs);
  padding: 0.15rem 0.45rem;
}

button.rn-btn--danger {
  color: var(--rn-danger);
  border-color: rgba(224, 122, 122, 0.45);
}

/* Expanded edit row inside data tables */
.rn-data-table td.rn-cell-edit {
  vertical-align: top;
  padding: 0.75rem;
}

/* Service log row states (semantic; token-aligned gold) */
.rn-data-table.service-log-table tbody tr.stale td {
  background: rgba(201, 166, 74, 0.08);
}

.rn-data-table.service-log-table tbody tr.stale:nth-child(even) td {
  background: rgba(201, 166, 74, 0.1);
}

.rn-data-table.service-log-table tbody tr.in-service td:first-child {
  box-shadow: inset 3px 0 0 rgba(201, 166, 74, 0.55);
}

.rn-data-table.service-log-table tbody tr.in-service:hover td:first-child {
  box-shadow: inset 3px 0 0 rgba(201, 166, 74, 0.65);
}

/* --- Dark scrollbars (viewport + multiline fields; token-aligned) --- */
html {
  color-scheme: dark;
  scrollbar-width: thin;
  scrollbar-color: var(--rn-scrollbar-thumb) var(--rn-scrollbar-track);
}

textarea,
select[multiple] {
  scrollbar-width: thin;
  scrollbar-color: var(--rn-scrollbar-thumb) var(--rn-scrollbar-track);
}

textarea::-webkit-scrollbar,
select[multiple]::-webkit-scrollbar {
  width: var(--rn-scrollbar-size);
  height: var(--rn-scrollbar-size);
}

textarea::-webkit-scrollbar-track,
select[multiple]::-webkit-scrollbar-track {
  background: var(--rn-scrollbar-track);
  border-radius: 4px;
}

textarea::-webkit-scrollbar-thumb,
select[multiple]::-webkit-scrollbar-thumb {
  background: var(--rn-scrollbar-thumb);
  border-radius: 4px;
}

textarea::-webkit-scrollbar-thumb:hover,
select[multiple]::-webkit-scrollbar-thumb:hover {
  background: var(--rn-scrollbar-thumb-hover);
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: var(--rn-scrollbar-size);
  height: var(--rn-scrollbar-size);
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
  background: var(--rn-scrollbar-track);
  border-radius: 4px;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
  background: var(--rn-scrollbar-thumb);
  border-radius: 4px;
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover {
  background: var(--rn-scrollbar-thumb-hover);
}

/* Portfolio — showcase cards + view toggle (frame tints follow visibility chip tokens) */
.portfolio-page {
  max-width: min(1200px, 100%);
}

body.page-portfolio .portfolio-sticky-controls {
  position: sticky;
  top: 0;
  z-index: 6;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0.35rem 0 1rem;
  padding: 0.55rem 0 0.65rem;
  background: linear-gradient(
    180deg,
    rgba(15, 17, 19, 0.97) 0%,
    rgba(15, 17, 19, 0.92) 55%,
    rgba(15, 17, 19, 0.55) 100%
  );
  border-bottom: 1px solid var(--rn-divider-strong, rgba(255, 255, 255, 0.08));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

body.page-portfolio .portfolio-view-toggle {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}

body.page-portfolio .portfolio-view-toggle__label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rn-text-muted, #7d8792);
}

body.page-portfolio .portfolio-view-toggle__btn {
  margin: 0;
  padding: 0.32rem 0.75rem;
  font-family: var(--rn-font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: var(--rn-radius-sm, 6px);
  border: 1px solid var(--rn-surface-panel-border, rgba(201, 166, 74, 0.26));
  background: rgba(18, 21, 26, 0.92);
  color: var(--rn-text-secondary, #b4bcc6);
  cursor: pointer;
  line-height: 1.2;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

body.page-portfolio .portfolio-view-toggle__btn:hover {
  border-color: rgba(201, 166, 74, 0.42);
  color: var(--rn-text-primary, #eef0f3);
}

body.page-portfolio .portfolio-view-toggle__btn.is-active {
  background: rgba(32, 38, 48, 0.98);
  border-color: rgba(201, 166, 74, 0.48);
  color: var(--rn-text-primary, #eef0f3);
}

body.page-portfolio .portfolio-view-toggle__btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(201, 166, 74, 0.2);
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
}

.portfolio-grid--rows {
  grid-template-columns: minmax(0, 1fr);
  max-width: 46rem;
}

/* Outer shell: 1px gradient frame (hues from ravenore-tokens visibility chips) */
.portfolio-card {
  --portfolio-frame-grad: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.12) 0%,
    rgba(255, 255, 255, 0.04) 42%,
    rgba(201, 166, 74, 0.14) 100%
  );
  display: flex;
  flex-direction: column;
  padding: 1px;
  border-radius: calc(var(--rn-radius-md, 10px) + 1px);
  box-sizing: border-box;
  background: var(--portfolio-frame-grad);
  overflow: hidden;
  transition: box-shadow 0.2s ease, filter 0.2s ease;
}

.portfolio-card--for_sale {
  --portfolio-frame-grad: linear-gradient(
    135deg,
    rgba(95, 180, 125, 0.28) 0%,
    rgba(26, 92, 56, 0.35) 38%,
    rgba(15, 61, 38, 0.22) 100%
  );
}

.portfolio-card--in_service {
  --portfolio-frame-grad: linear-gradient(
    135deg,
    rgba(120, 165, 220, 0.26) 0%,
    rgba(26, 47, 69, 0.4) 45%,
    rgba(15, 28, 42, 0.2) 100%
  );
}

.portfolio-card--portfolio {
  --portfolio-frame-grad: linear-gradient(
    135deg,
    rgba(130, 195, 245, 0.28) 0%,
    rgba(30, 63, 92, 0.42) 42%,
    rgba(18, 42, 61, 0.22) 100%
  );
}

.portfolio-card--sold {
  --portfolio-frame-grad: linear-gradient(
    135deg,
    rgba(201, 166, 74, 0.42) 0%,
    rgba(168, 132, 58, 0.36) 42%,
    rgba(42, 36, 22, 0.28) 100%
  );
}

.portfolio-card:hover {
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}

.portfolio-card__inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  border-radius: var(--rn-radius-md, 10px);
  overflow: hidden;
  background: var(--rn-bg-elevated, #12151a);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.035);
}

.portfolio-card__link {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  color: inherit;
  text-decoration: none;
}

/* Rows: full-width header row, then thumb | meta + snippet (gallery order unchanged) */
.portfolio-grid--rows .portfolio-card__link {
  display: grid;
  grid-template-columns: 6.25rem minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  grid-template-areas:
    "top top"
    "thumb main";
  column-gap: 0.75rem;
  row-gap: 0.5rem;
  align-items: stretch;
}

.portfolio-card__main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.portfolio-grid--rows .portfolio-card__titles-top {
  grid-area: top;
  align-self: stretch;
}

.portfolio-grid--rows .portfolio-card__main {
  grid-area: main;
  min-height: 0;
}

/* Top strip: brand + model; L→R dark→light (state hue); title centered in this strip only */
.portfolio-card__titles-top {
  text-align: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.portfolio-card--for_sale .portfolio-card__titles-top {
  background: linear-gradient(90deg, #0c2216 0%, #164528 42%, #2d6d47 100%);
  border-bottom-color: rgba(95, 180, 125, 0.22);
}

.portfolio-card--in_service .portfolio-card__titles-top {
  background: linear-gradient(90deg, #0c1824 0%, #1a3048 45%, #2d4a68 100%);
  border-bottom-color: rgba(120, 165, 220, 0.2);
}

.portfolio-card--portfolio .portfolio-card__titles-top {
  background: linear-gradient(90deg, #0f2434 0%, #1a4060 45%, #2a5a82 100%);
  border-bottom-color: rgba(130, 195, 245, 0.22);
}

.portfolio-card--sold .portfolio-card__titles-top {
  background: linear-gradient(
    90deg,
    #14120e 0%,
    #2e2614 22%,
    var(--rn-gold-700, #7a6128) 48%,
    var(--rn-gold-600, #a8843a) 72%,
    var(--rn-gold-400, #e4c56e) 100%
  );
  border-bottom-color: var(--rn-border-gold, rgba(201, 166, 74, 0.35));
}

.portfolio-card__head--top {
  padding: 0.48rem 0.75rem 0.5rem;
  border-bottom: none;
}

.portfolio-card__titles-top .portfolio-card__title-row--top,
.portfolio-card__titles-top .portfolio-card__brand,
.portfolio-card__titles-top .portfolio-card__model,
.portfolio-card__titles-top .portfolio-card__sep {
  color: rgba(255, 255, 255, 0.96);
}

.portfolio-card__title-row--top {
  font-family: var(--rn-font-sans);
  font-size: var(--rn-text-sm, 0.85rem);
  font-weight: 600;
  line-height: 1.38;
  text-wrap: balance;
}

/* Below image: same copy hierarchy, smaller white type */
.portfolio-card__under-media {
  padding: 0.42rem 0.75rem 0.35rem;
  text-align: left;
}

.portfolio-card__title-row--below {
  font-family: var(--rn-font-sans);
  font-size: 0.76rem;
  font-weight: 500;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.88);
  text-wrap: balance;
}

.portfolio-card__title-row--below .portfolio-card__brand,
.portfolio-card__title-row--below .portfolio-card__model,
.portfolio-card__title-row--below .portfolio-card__sep {
  color: inherit;
}

.portfolio-card__ref-below {
  margin-top: 0.2rem;
  font-family: var(--rn-font-sans);
  font-size: 0.66rem;
  font-weight: 400;
  line-height: 1.38;
  color: rgba(255, 255, 255, 0.72);
}

.portfolio-card__brand {
  font-weight: 700;
}

.portfolio-card__sep {
  font-weight: 500;
}

.portfolio-card__model {
  font-weight: 500;
}

/* Rows-only: public description snippet (hidden in gallery) */
.portfolio-card__snippet {
  display: none;
  margin: 0;
  font-family: var(--rn-font-sans);
  font-size: 0.72rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--rn-text-muted, #7d8792);
  text-align: left;
}

.portfolio-grid--rows .portfolio-card__snippet {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  flex: 1;
  min-width: 0;
  align-self: center;
  padding: 0.2rem 0.35rem 0.2rem 0;
}

.portfolio-grid--rows .portfolio-card__main {
  flex: 1;
  flex-direction: row;
  align-items: stretch;
  gap: 0.5rem 0.75rem;
  justify-content: flex-start;
  min-width: 0;
}

.portfolio-grid--rows .portfolio-card__main:not(:has(.portfolio-card__snippet)) .portfolio-card__under-media {
  flex: 1;
}

.portfolio-grid--rows .portfolio-card__under-media {
  text-align: left;
  align-self: center;
}

.portfolio-card-thumb {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--rn-bg-deep, #08090b);
  display: block;
}

.portfolio-grid--rows .portfolio-card-thumb {
  grid-area: thumb;
  width: 100%;
  max-width: 6.25rem;
  min-width: 0;
  height: auto;
  justify-self: center;
  align-self: center;
  aspect-ratio: 1;
}

/* Slim state bar — same token families as chips, flatter / integrated */
.portfolio-card__foot {
  flex: 0 0 auto;
  margin: 0;
  padding: 0.26rem 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--rn-font-sans);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.25;
  color: rgba(255, 255, 255, 0.94);
  text-align: left;
}

.portfolio-card--for_sale .portfolio-card__foot {
  background: linear-gradient(90deg, #0c2216 0%, #164528 42%, #2d6d47 100%);
  border-top-color: rgba(95, 180, 125, 0.22);
}

.portfolio-card--in_service .portfolio-card__foot {
  background: linear-gradient(90deg, #0c1824 0%, #1a3048 45%, #2d4a68 100%);
  border-top-color: rgba(120, 165, 220, 0.2);
}

.portfolio-card--portfolio .portfolio-card__foot {
  background: linear-gradient(90deg, #0f2434 0%, #1a4060 45%, #2a5a82 100%);
  border-top-color: rgba(130, 195, 245, 0.22);
}

.portfolio-card--sold .portfolio-card__foot {
  background: linear-gradient(
    90deg,
    #14120e 0%,
    #2e2614 22%,
    var(--rn-gold-700, #7a6128) 48%,
    var(--rn-gold-600, #a8843a) 72%,
    var(--rn-gold-400, #e4c56e) 100%
  );
  border-top-color: var(--rn-border-gold, rgba(201, 166, 74, 0.35));
}

.portfolio-card__state {
  display: block;
}

/* Featured pin — same surface as card; no nested panel (locked) */
.portfolio-card__featured-form {
  flex: 0 0 auto;
  margin: 0;
  padding: 0.3rem 0.75rem 0.45rem;
  border-top: 1px solid var(--rn-border-subtle, rgba(255, 255, 255, 0.08));
  background: rgba(10, 12, 15, 0.35);
  text-align: left;
}

.portfolio-card__featured-label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-family: var(--rn-font-sans);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rn-text-muted, #7d8792);
  cursor: pointer;
  user-select: none;
  line-height: 1.2;
}

.portfolio-card__featured-label input[type="checkbox"] {
  margin: 0;
  width: 0.65rem;
  height: 0.65rem;
  flex-shrink: 0;
  accent-color: var(--rn-gold-500, #c9a64a);
  vertical-align: middle;
}

/* Public visibility chips (portfolio, /w/, landing) → ravenore-visibility-chips.css */

/* Phase 7 — secondary inline meta (Morning Digest banners, Deal Hunter lede, etc.) */
.digest-muted {
  font-size: 0.7rem;
  line-height: 1.42;
  color: var(--rn-text-muted, #7d8792);
}

/* Liquidity Atlas admin list — band column readable at a glance */
.admin-atlas-band-cell {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  font-size: 0.88rem;
  color: var(--rn-text-secondary, #b4bcc6);
}

.admin-atlas-no-band {
  color: var(--rn-text-muted, #7d8792);
  font-size: 0.82rem;
  font-style: italic;
}

/* Watch detail — Truth stack (row-based label/value; numbers never break per-digit) */
.rn-truth-stack {
  color: var(--rn-text-secondary, #b4bcc6);
}

.rn-truth-stack__intro {
  margin: 0 0 1rem 0;
  max-width: 70ch;
}

.rn-truth-stack__intro p {
  margin: 0 0 0.45rem 0;
  font-size: 0.82rem;
  line-height: 1.48;
  color: var(--rn-text-secondary, #b4bcc6);
}

.rn-truth-stack__intro p:last-child {
  margin-bottom: 0;
}

.rn-truth-stack__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(11.5rem, 1fr));
  gap: 1rem 1.15rem;
  align-items: stretch;
}

@media (max-width: 1320px) {
  .rn-truth-stack__grid {
    grid-template-columns: repeat(3, minmax(10.5rem, 1fr));
  }
}

@media (max-width: 780px) {
  .rn-truth-stack__grid {
    grid-template-columns: 1fr;
  }
}

.rn-truth-stack__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.95rem 1rem;
  border-radius: var(--rn-radius-md, 10px);
  border: 1px solid rgba(201, 166, 74, 0.24);
  background: rgba(0, 0, 0, 0.24);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.rn-truth-stack__card--quiet {
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.14);
}

.rn-truth-stack__card-title {
  margin: 0 0 0.65rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rn-gold-300, #e8c96a);
  line-height: 1.45;
}

.rn-truth-stack__card-tag {
  display: inline-block;
  margin-left: 0.3rem;
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--rn-text-muted, #8e97a3);
  vertical-align: middle;
}

.rn-truth-stack__card-lede {
  margin: 0 0 0.65rem 0;
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--rn-text-muted, #8e97a3);
}

.rn-truth-stack__empty {
  margin: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-height: 3.5rem;
  font-size: 0.84rem;
  color: var(--rn-text-muted, #8e97a3);
  line-height: 1.45;
}

.rn-truth-stack__dl {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 0.2rem;
}

.rn-truth-stack__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 0.55rem 0.75rem;
  align-items: start;
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.065);
}

.rn-truth-stack__row:last-child {
  border-bottom: none;
  padding-bottom: 0.15rem;
}

.rn-truth-stack__dl > .rn-truth-stack__row:first-child {
  padding-top: 0.05rem;
}

.rn-truth-stack__row dt {
  margin: 0;
  padding-top: 0.12rem;
  font-size: 0.74rem;
  font-weight: 500;
  line-height: 1.48;
  color: var(--rn-text-muted, #8e97a3);
  min-width: 0;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

.rn-truth-stack__dt-note {
  font-weight: 400;
  color: var(--rn-text-faint, #6d7680);
  font-size: 0.68rem;
}

.rn-truth-stack__row dd {
  margin: 0;
  justify-self: end;
  align-self: start;
  text-align: right;
  font-size: 0.88rem;
  line-height: 1.52;
  color: var(--rn-text-primary, #eef0f3);
  min-width: 0;
  max-width: 100%;
}

.rn-truth-stack__value--num {
  display: block;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

/* Text + badges in value column: wrap cleanly without colliding with label */
.rn-truth-stack__row dd:not(.rn-truth-stack__value--num):not(.rn-truth-stack__value--stack) {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
}

.rn-truth-stack__value--wrap {
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
  font-weight: 500;
  line-height: 1.55;
}

/* Outcome memory “Latest”: stacked lines so timestamp never collides with kind/result */
.rn-truth-stack__row dd.rn-truth-stack__value--stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 0.45rem;
  line-height: 1.52;
}

.rn-truth-stack__stack-line {
  display: block;
  max-width: 100%;
  text-align: right;
  word-break: normal;
  overflow-wrap: break-word;
  line-height: 1.52;
}

.rn-truth-stack__inline-note {
  display: inline;
  font-size: 0.72rem;
  font-weight: 400;
  color: var(--rn-text-muted, #8e97a3);
  line-height: 1.45;
}

/* Watch detail — bench-first regions (collapsible analysis / story) */
.rn-watch-region--primary {
  margin-bottom: 1rem;
}
.rn-watch-region--workspace {
  margin-bottom: 1rem;
}
.rn-watch-region--exit {
  margin-bottom: 1rem;
}
.rn-watch-details {
  margin-bottom: 1rem;
  border: 1px solid var(--rn-border-subtle, rgba(255, 255, 255, 0.08));
  border-radius: 6px;
  background: var(--rn-bg-elevated, #15181c);
}
.rn-watch-details__summary {
  cursor: pointer;
  padding: 0.65rem 1rem;
  list-style: none;
}
.rn-watch-details__summary::-webkit-details-marker {
  display: none;
}
.rn-watch-details__summary .rn-type-section-title {
  display: inline;
  margin: 0;
}
.rn-watch-details__body {
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--rn-border-subtle, rgba(255, 255, 255, 0.08));
}
.rn-loop-outcome-row--in-details {
  flex-wrap: wrap;
}

/* Watch detail — form left (1/3), table right (2/3) */
.rn-watch-form-table {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 1.25rem 1.5rem;
  align-items: start;
  margin-bottom: 1.5rem;
}
.rn-watch-form-table__form {
  min-width: 0;
}
.rn-watch-form-table__table {
  min-width: 0;
}
@media (max-width: 900px) {
  .rn-watch-form-table {
    grid-template-columns: 1fr;
  }
}

/* Inventory (FIX hub) — triage-first layout, expandable secondary row */
.rn-inv-hint {
  margin-bottom: 1rem;
  max-width: 42rem;
}
.rn-inventory-table tbody tr.rn-inv-row {
  cursor: pointer;
}
.rn-inventory-table tbody tr.rn-inv-row:hover td {
  background: rgba(255, 255, 255, 0.03);
}
.rn-inventory-table tbody tr.rn-inv-row--attention td:first-of-type {
  box-shadow: inset 3px 0 0 rgba(201, 166, 74, 0.5);
}
.rn-inventory-table tbody tr.rn-inv-details {
  cursor: default;
}
.rn-inventory-table tbody tr.rn-inv-details td {
  background: rgba(0, 0, 0, 0.22);
  border-top: 1px solid var(--rn-border-subtle, rgba(255, 255, 255, 0.06));
  padding: 0.65rem 0.75rem 0.85rem;
  vertical-align: top;
}
.rn-inv-details-inner {
  max-width: 52rem;
}
.rn-inv-details-heading {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rn-text-muted, rgba(180, 188, 198, 0.75));
  margin-bottom: 0.5rem;
}
.rn-inv-details-dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 1.25rem;
  margin: 0;
  font-size: 0.88rem;
}
.rn-inv-details-dl dt {
  color: var(--rn-text-muted);
  margin: 0;
}
.rn-inv-details-dl dd {
  margin: 0;
  min-width: 0;
  word-break: break-word;
}
.rn-inv-watch-wrap {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  min-width: 0;
}
.rn-inv-expand {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.25rem 0.45rem;
  cursor: pointer;
  font-size: var(--rn-text-xs, 0.75rem);
  font-weight: 600;
  color: var(--rn-gold-500, #c9a64a);
  background: rgba(201, 166, 74, 0.1);
  border: 1px solid rgba(201, 166, 74, 0.4);
  border-radius: 4px;
}
.rn-inv-expand:hover {
  background: rgba(201, 166, 74, 0.16);
  border-color: rgba(201, 166, 74, 0.55);
}
.rn-inv-expand-text {
  white-space: nowrap;
}
.rn-inv-expand-icon {
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  transition: transform 0.15s ease;
  margin-top: -1px;
}
.rn-inv-expand--open .rn-inv-expand-icon {
  transform: rotate(45deg);
}
.rn-inv-watch {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  flex: 1;
}
.rn-inv-watch-line1 {
  font-weight: 600;
  color: var(--rn-text-primary, #e8eaed);
  word-break: break-word;
}
/* Flags draw the eye before status */
.rn-inv-th-flags {
  color: rgba(235, 220, 180, 0.95);
}
.rn-inv-th-status,
.rn-inv-th-actions {
  font-weight: 600;
  color: rgba(150, 158, 170, 0.9);
}
.rn-inv-status-cell {
  vertical-align: middle;
}
.rn-inv-status-badge {
  opacity: 0.88;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  padding: 0.1rem 0.4rem !important;
}
.rn-inv-flags {
  vertical-align: middle;
}
.rn-inv-flags .rn-chip {
  font-size: 0.8rem;
  padding: 0.18rem 0.55rem;
  border-radius: 5px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.rn-inv-flags-empty {
  font-size: 0.85rem;
  color: var(--rn-text-muted);
  opacity: 0.65;
}
.rn-inv-last-activity {
  font-size: 0.88rem;
  color: var(--rn-text-secondary);
  white-space: nowrap;
}
.rn-inv-last-step {
  max-width: 14rem;
  word-break: break-word;
  font-size: 0.88rem;
  color: var(--rn-text-secondary);
}
.rn-inv-own-cell .badge {
  opacity: 0.92;
  font-size: 0.74rem;
}
/* Actions: secondary, compact */
.rn-inv-actions {
  opacity: 0.82;
}
.rn-inv-actions:hover {
  opacity: 1;
}
.rn-inv-actions .rn-inline-form button {
  font-size: 0.72rem;
  padding: 0.12rem 0.4rem;
  opacity: 0.9;
}
.rn-chip {
  display: inline-block;
  margin-right: 0.35rem;
  margin-bottom: 0.15rem;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}
.rn-chip--no-activity {
  color: rgba(240, 180, 120, 0.95);
  background: rgba(201, 140, 74, 0.15);
  border: 1px solid rgba(201, 140, 74, 0.35);
}
.rn-chip--stale {
  color: rgba(180, 190, 210, 0.95);
  background: rgba(120, 140, 180, 0.12);
  border: 1px solid rgba(120, 140, 180, 0.35);
}
.rn-badge--inv-inventory {
  background: rgba(90, 120, 160, 0.2);
  border-color: rgba(120, 160, 200, 0.35);
  color: rgba(200, 220, 245, 0.95);
}
.rn-badge--inv-service {
  background: rgba(201, 166, 74, 0.18);
  border-color: rgba(201, 166, 74, 0.45);
  color: rgba(235, 215, 160, 0.98);
}
.rn-badge--inv-ready {
  background: rgba(100, 180, 130, 0.16);
  border-color: rgba(100, 180, 130, 0.4);
  color: rgba(190, 235, 210, 0.95);
}
.rn-badge--inv-sold {
  background: rgba(120, 120, 130, 0.2);
  border-color: rgba(160, 160, 170, 0.35);
  color: rgba(200, 200, 210, 0.9);
}
.rn-badge--inv-unknown {
  background: rgba(80, 80, 90, 0.25);
  border-color: rgba(120, 120, 130, 0.3);
}
.rn-badge--ownership-owned {
  background: rgba(100, 140, 180, 0.14);
  border-color: rgba(120, 160, 200, 0.3);
}
.rn-badge--ownership-client {
  background: rgba(160, 120, 200, 0.14);
  border-color: rgba(180, 140, 220, 0.35);
}
.rn-badge--ownership-unknown {
  background: rgba(80, 80, 90, 0.2);
  border-color: rgba(120, 120, 130, 0.25);
}

/* Soft pulsing glow for status / verdict indicator dots (set --rn-indicator-glow per theme) */
@keyframes rn-indicator-pulse-glow {
  0%,
  100% {
    box-shadow:
      0 0 7px var(--rn-indicator-glow, rgba(120, 180, 140, 0.38)),
      inset 0 0 5px rgba(255, 255, 255, 0.1);
  }
  50% {
    box-shadow:
      0 0 15px var(--rn-indicator-glow, rgba(120, 180, 140, 0.62)),
      inset 0 0 6px rgba(255, 255, 255, 0.15);
  }
}

.rn-indicator-dot--pulse {
  animation: rn-indicator-pulse-glow 2.4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .rn-indicator-dot--pulse {
    animation: none !important;
  }
}

@media (max-width: 800px) {
  .portfolio-card__title-row--top {
    font-size: 1.2rem;
  }

  .portfolio-card__title-row--below {
    font-size: 1.08rem;
  }

  .portfolio-card__ref-below,
  .portfolio-card__snippet {
    font-size: 1rem;
  }

  .portfolio-card__foot {
    font-size: 0.95rem;
  }
}
