/* RavingDesk — paper-trading desk. Layout rules are scoped to .uwapp-root.uwapp-ravingdesk / .rd-app (the platform
   puts .uwapp-ravingdesk on <body> too). Teal ink + paper + ledger gold. No inline styles (CSP); colours via tokens. */
.uwapp-root.uwapp-ravingdesk { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }

.rd-app {
  --rd-accent: #1f5f5b;
  --rd-accent-2: #174a47;
  --rd-accent-soft: #dcebe8;
  --rd-accent-text: #1a524e;
  --rd-on-accent: #ffffff;
  --rd-gold: #8a5a12;
  --rd-gold-soft: #f7ecd6;
  --rd-bg: #f3f2ec;
  --rd-panel: #ffffff;
  --rd-panel-2: #f8f7f2;
  --rd-ink: #14232a;
  --rd-ink-2: #33444c;
  --rd-muted: #4f5f67;
  --rd-line: #e2e0d6;
  --rd-line-2: #c9c6b8;
  --rd-control: #6b7378;
  --rd-focus: #b45309;
  --rd-pos: #0b6b2e;
  --rd-neg: #b42318;
  --rd-danger-bg: #fdeceb;
  --rd-warn: #8a4b00;
  --rd-warn-bg: #fff4dc;
  --rd-good-bg: #e9f6ee;
  --rd-info-bg: #eaf2f1;
  --rd-chart-bg: #fbfaf6;
  --rd-shadow: 0 1px 2px rgb(20 35 42 / .06), 0 8px 24px rgb(20 35 42 / .07);
  --rd-radius: 12px;
  position: relative; flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
  background: var(--rd-bg); color: var(--rd-ink);
  font: 14px/1.45 system-ui, -apple-system, 'Segoe UI', Roboto, 'Noto Sans', Arial, sans-serif;
}
.rd-app[data-theme='dark'] {
  --rd-accent: #e3b660;
  --rd-accent-2: #f0c97a;
  --rd-accent-soft: #19363a;
  --rd-accent-text: #f0c97a;
  --rd-on-accent: #1a1406;
  --rd-gold: #f0c97a;
  --rd-gold-soft: #33290f;
  --rd-bg: #0c1417;
  --rd-panel: #131f24;
  --rd-panel-2: #0f1a1e;
  --rd-ink: #e6eef0;
  --rd-ink-2: #c3d0d4;
  --rd-muted: #a3b3b9;
  --rd-line: #22343b;
  --rd-line-2: #3a4f56;
  --rd-control: #81959c;
  --rd-focus: #fbbf24;
  --rd-pos: #6ee7a8;
  --rd-neg: #ff9b8f;
  --rd-danger-bg: #3a1714;
  --rd-warn: #fcd34d;
  --rd-warn-bg: #33270c;
  --rd-good-bg: #0f2e1f;
  --rd-info-bg: #13282c;
  --rd-chart-bg: #0f1a1e;
  --rd-shadow: 0 1px 2px rgb(0 0 0 / .4), 0 8px 24px rgb(0 0 0 / .35);
  color-scheme: dark;
}
.rd-app *, .rd-app *::before, .rd-app *::after { box-sizing: border-box; }
.rd-app [hidden] { display: none !important; }
.rd-app :focus-visible { outline: 2px solid var(--rd-focus); outline-offset: 2px; }
/* Platform base styles (full-width phone buttons, paddings, table header colours) must not leak in. */
.rd-app :where(button) { width: auto; margin: 0; font: inherit; line-height: 1.25; letter-spacing: normal; }
.rd-app button { font-size: inherit; font-family: inherit; }
.rd-app :where(table) { margin: 0; }
.rd-app :where(h2, h3, h4, h5, p, ul, ol, dl, dd, figure, fieldset) { margin: 0; }
.rd-app :where(code, pre) { background: var(--rd-panel-2); color: var(--rd-ink); }
.rd-app :where(input, select, textarea) { margin: 0; }
.rd-app a { color: var(--rd-accent-text); text-underline-offset: 2px; }
.rd-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rd-ico { flex: none; }
.rd-grow { flex: 1 1 auto; }
.rd-muted { color: var(--rd-muted); }
.rd-strong { font-weight: 650; }
.rd-hint { color: var(--rd-muted); font-size: 12.5px; }
.rd-pos { color: var(--rd-pos); }
.rd-neg { color: var(--rd-neg); }
.rd-kpi.rd-pos .rd-kpi-label, .rd-kpi.rd-neg .rd-kpi-label, .rd-kpi.rd-pos .rd-kpi-sub, .rd-kpi.rd-neg .rd-kpi-sub { color: var(--rd-muted); }

/* ---------- top bar ---------- */
.rd-top { display: flex; align-items: center; gap: 6px; min-height: 48px; padding: 6px 10px; background: var(--rd-panel); border-bottom: 1px solid var(--rd-line); flex: none; flex-wrap: nowrap; position: relative; z-index: 20; }
.rd-namewrap { flex: 0 1 230px; min-width: 110px; }
.rd-name { inline-size: 100%; border: 1px solid transparent; background: transparent; color: var(--rd-ink); font-family: inherit; font-weight: 650; font-size: 15px; line-height: 1.2; padding: 6px 8px; border-radius: 8px; text-overflow: ellipsis; }
.rd-name:hover { border-color: var(--rd-line-2); }
.rd-name:focus { border-color: var(--rd-control); background: var(--rd-panel-2); }
.rd-menus { display: flex; align-items: center; gap: 2px; flex: none; }
.rd-menuwrap { position: relative; }
.rd-menubtn { display: inline-flex; align-items: center; gap: 4px; border: 0; background: none; color: var(--rd-ink); padding: 7px 10px; border-radius: 8px; cursor: pointer; white-space: nowrap; min-height: 32px; }
.rd-menubtn:hover, .rd-menubtn[aria-expanded='true'] { background: var(--rd-line); }
.rd-menu-all { display: none; }
.rd-top.rd-compact .rd-menu-one { display: none; }
.rd-top.rd-compact .rd-menu-all { display: block; }
.rd-top.rd-compact2 .rd-savestate { display: none; }
.rd-top.rd-compact2 .rd-paper-badge span { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } /* icon only on phones; the label stays for screen readers */
.rd-top-tools { display: flex; gap: 2px; flex: none; }
.rd-menu { position: absolute; z-index: 60; inset-block-start: calc(100% + 4px); inset-inline-start: 0; min-inline-size: 260px; max-block-size: min(70vh, 560px); overflow-y: auto; background: var(--rd-panel); border: 1px solid var(--rd-line-2); border-radius: 12px; box-shadow: var(--rd-shadow); padding: 5px; }
.rd-menu-all .rd-menu { inset-inline-start: auto; inset-inline-end: 0; }
.rd-menu-item { display: flex; align-items: center; gap: 8px; inline-size: 100%; border: 0; background: none; color: var(--rd-ink); text-align: start; padding: 7px 10px; border-radius: 7px; cursor: pointer; min-height: 32px; }
.rd-menu-item:hover:not(:disabled), .rd-menu-item:focus { background: var(--rd-accent-soft); outline-offset: -2px; }
.rd-menu-item:disabled { color: var(--rd-muted); cursor: default; }
.rd-menu-check { inline-size: 16px; display: inline-flex; color: var(--rd-accent-text); }
.rd-menu-label { flex: 1 1 auto; }
.rd-menu-key { font: 12px ui-monospace, monospace; color: var(--rd-muted); background: none; border: 0; }
.rd-menu-sep { height: 1px; background: var(--rd-line); margin: 5px 4px; }
.rd-menu-head { padding: 8px 10px 3px; font-size: 12px; font-weight: 700; color: var(--rd-muted); text-transform: uppercase; letter-spacing: .04em; }
.rd-savestate { color: var(--rd-muted); font-size: 12.5px; white-space: nowrap; }
.rd-savestate.rd-bad { color: var(--rd-neg); white-space: normal; }
.rd-paper-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 99px; background: var(--rd-gold-soft); color: var(--rd-gold); font-size: 12px; font-weight: 700; white-space: nowrap; letter-spacing: .02em; }

/* ---------- buttons & controls ---------- */
.rd-app .rd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; padding: 6px 13px; border-radius: 9px; border: 1px solid var(--rd-line-2); background: var(--rd-panel); color: var(--rd-ink); cursor: pointer; font-weight: 550; white-space: nowrap; }
.rd-app .rd-btn:hover:not(:disabled) { border-color: var(--rd-control); background: var(--rd-panel-2); }
.rd-app .rd-btn:disabled { opacity: .55; cursor: default; }
.rd-app .rd-btn-primary { background: var(--rd-accent); border-color: var(--rd-accent); color: var(--rd-on-accent); }
.rd-app .rd-btn-primary:hover:not(:disabled) { background: var(--rd-accent-2); border-color: var(--rd-accent-2); color: var(--rd-on-accent); }
.rd-app .rd-btn-link { border: 0; background: none; padding: 4px 6px; min-height: 24px; color: var(--rd-accent-text); text-decoration: underline; text-underline-offset: 2px; font-weight: 500; white-space: nowrap; }
.rd-app .rd-btn-link:hover:not(:disabled) { background: var(--rd-accent-soft); }
.rd-ibtn { display: inline-flex; align-items: center; justify-content: center; inline-size: 34px; block-size: 34px; border-radius: 8px; border: 1px solid transparent; background: none; color: var(--rd-ink-2); cursor: pointer; flex: none; }
.rd-ibtn:hover:not(:disabled) { background: var(--rd-line); }
.rd-ibtn:disabled { opacity: .45; cursor: default; }
.rd-input { inline-size: 100%; min-height: 36px; padding: 6px 9px; border: 1px solid var(--rd-control); border-radius: 8px; background: var(--rd-panel); color: var(--rd-ink); font: inherit; }
.rd-input:disabled { background: var(--rd-panel-2); color: var(--rd-muted); border-style: dashed; }
textarea.rd-input { min-height: 96px; resize: vertical; font-family: inherit; }
.rd-num { text-align: end; font-variant-numeric: tabular-nums; }
.rd-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rd-field > label { font-weight: 600; font-size: 13px; color: var(--rd-ink-2); }
.rd-field-wide { grid-column: 1 / -1; }
.rd-label { font-weight: 600; font-size: 13px; color: var(--rd-ink-2); display: block; }
.rd-check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; min-height: 30px; }
.rd-check input { inline-size: 18px; block-size: 18px; accent-color: var(--rd-accent); margin: 0; }
.rd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); gap: 12px 14px; align-items: start; }
.rd-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.rd-actions-start { justify-content: flex-start; }
.rd-form-foot { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-block-start: 12px; }
.rd-form-error { color: var(--rd-neg); background: var(--rd-danger-bg); padding: 6px 10px; border-radius: 8px; font-weight: 550; }
.rd-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.rd-filters .rd-field { min-width: 180px; }
.rd-filters > p { padding-block-end: 8px; }

/* ---------- body: nav + main ---------- */
.rd-body { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 210px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
.rd-nav { background: var(--rd-panel); border-inline-end: 1px solid var(--rd-line); overflow-y: auto; padding: 10px 8px; }
.rd-nav ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
.rd-navbtn { display: flex; align-items: center; gap: 10px; inline-size: 100%; border: 0; background: none; color: var(--rd-ink-2); padding: 8px 10px; border-radius: 9px; cursor: pointer; text-align: start; min-height: 38px; }
.rd-navbtn:hover { background: var(--rd-panel-2); color: var(--rd-ink); }
.rd-navbtn[aria-current='page'] { background: var(--rd-accent-soft); color: var(--rd-ink); font-weight: 650; box-shadow: inset 3px 0 0 var(--rd-accent); }
[dir='rtl'] .rd-navbtn[aria-current='page'] { box-shadow: inset -3px 0 0 var(--rd-accent); }
.rd-navbtn[aria-current='page'] .rd-ico { color: var(--rd-accent-text); }
.rd-navlabel { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.rd-badge { min-inline-size: 22px; padding: 1px 7px; border-radius: 99px; background: var(--rd-line); color: var(--rd-ink-2); font-size: 12px; text-align: center; font-weight: 600; }
.rd-main { overflow: auto; padding: 18px 22px 40px; min-width: 0; }
.rd-main > * + * { margin-block-start: 16px; }
.rd-deskhead { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }
.rd-deskhead-text { flex: 1 1 420px; min-width: 0; }
.rd-main-h { font-size: 22px; line-height: 1.2; letter-spacing: -.01em; }
.rd-main-h:focus, .rd-main-h:focus-visible { outline: none; } /* programmatic focus target after navigation */
.rd-lede { color: var(--rd-muted); margin-block-start: 4px; max-width: 80ch; }

/* ---------- cards, KPIs, callouts ---------- */
.rd-card { background: var(--rd-panel); border: 1px solid var(--rd-line); border-radius: var(--rd-radius); padding: 16px 18px; box-shadow: var(--rd-shadow); min-width: 0; }
.rd-card > * + * { margin-block-start: 12px; }
.rd-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.rd-card-head h3 { font-size: 16px; }
.rd-card h4 { font-size: 14px; color: var(--rd-ink-2); }
.rd-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 175px), 1fr)); gap: 12px; }
.rd-kpis-sm { gap: 8px; }
.rd-kpi { background: var(--rd-panel); border: 1px solid var(--rd-line); border-radius: var(--rd-radius); padding: 12px 14px; box-shadow: var(--rd-shadow); min-width: 0; }
.rd-kpis-sm .rd-kpi { box-shadow: none; background: var(--rd-panel-2); padding: 10px 12px; }
.rd-kpi-label { color: var(--rd-muted); font-size: 12.5px; font-weight: 600; }
.rd-kpi-value { font-size: 21px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; margin-block: 2px; overflow-wrap: anywhere; }
.rd-kpis-sm .rd-kpi-value { font-size: 17px; }
.rd-kpi-sub { color: var(--rd-muted); font-size: 12px; }
.rd-kpi-bad { border-color: var(--rd-neg); background: var(--rd-danger-bg); }
.rd-callout { display: flex; gap: 8px; align-items: flex-start; padding: 9px 12px; border-radius: 9px; background: var(--rd-info-bg); color: var(--rd-ink); }
.rd-callout .rd-ico { margin-block-start: 2px; color: var(--rd-accent-text); }
.rd-tone-warn { background: var(--rd-warn-bg); }
.rd-tone-warn .rd-ico { color: var(--rd-warn); }
.rd-tone-good { background: var(--rd-good-bg); }
.rd-tone-good .rd-ico { color: var(--rd-pos); }
.rd-empty { border: 1px dashed var(--rd-line-2); border-radius: var(--rd-radius); padding: 18px; color: var(--rd-muted); background: var(--rd-panel-2); }
.rd-chip { display: inline-block; padding: 1px 8px; border-radius: 99px; background: var(--rd-panel-2); border: 1px solid var(--rd-line-2); color: var(--rd-ink-2); font-size: 12px; white-space: nowrap; }
.rd-pill { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 6px; padding: 2px 8px; }
.rd-buy { color: var(--rd-pos); background: var(--rd-good-bg); }
.rd-sell { color: var(--rd-neg); background: var(--rd-danger-bg); }
.rd-status-pill { display: inline-block; padding: 1px 8px; border-radius: 99px; font-size: 12px; font-weight: 650; border: 1px solid var(--rd-line-2); color: var(--rd-ink-2); background: var(--rd-panel-2); }
.rd-st-working { background: var(--rd-gold-soft); color: var(--rd-gold); border-color: transparent; }
.rd-st-filled { background: var(--rd-good-bg); color: var(--rd-pos); border-color: transparent; }
.rd-mark { display: inline-flex; flex-direction: column; }
.rd-mark small { font-size: 12px; }
.rd-missing { color: var(--rd-warn); font-weight: 600; }
.rd-tpls { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.rd-tpl { display: flex; flex-direction: column; gap: 6px; text-align: start; padding: 14px; border-radius: 12px; border: 1px solid var(--rd-line-2); background: var(--rd-panel-2); color: var(--rd-ink); cursor: pointer; min-height: 110px; }
.rd-tpl:hover { border-color: var(--rd-accent); background: var(--rd-accent-soft); }
.rd-tpl strong { font-size: 15px; }
.rd-tpl span { color: var(--rd-muted); }
.rd-tpl:hover span { color: var(--rd-ink-2); }
.rd-recent { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.rd-recent li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; padding: 7px 0; border-block-end: 1px solid var(--rd-line); }
.rd-recent-main { display: flex; flex-direction: column; flex: 1 1 200px; min-width: 0; }
.rd-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 14px; }
.rd-facts dt { font-weight: 600; color: var(--rd-ink-2); }
.rd-attrib { color: var(--rd-muted); font-size: 12.5px; }
.rd-shock-out { display: block; font-weight: 600; font-variant-numeric: tabular-nums; }
.rd-app input[type='range'] { inline-size: 100%; accent-color: var(--rd-accent); min-height: 28px; }
.rd-journal { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.rd-entry { border: 1px solid var(--rd-line); border-radius: 10px; padding: 10px 12px; background: var(--rd-panel-2); }
.rd-entry-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.rd-entry-head .rd-btn-link { margin-inline-start: auto; }
.rd-entry-text { margin-block-start: 6px; white-space: pre-wrap; overflow-wrap: anywhere; }
.rd-more > summary { cursor: pointer; font-weight: 600; color: var(--rd-ink-2); padding-block: 4px; min-height: 24px; }
.rd-sample { margin: 0; padding-inline-start: 20px; color: var(--rd-ink-2); }
.rd-import-preview > * + * { margin-block-start: 8px; }
.rd-code { padding: 10px; border-radius: 8px; overflow: auto; max-block-size: 240px; font-size: 12.5px; border: 1px solid var(--rd-line); }

/* ---------- tables ---------- */
.rd-tablewrap { overflow: auto; max-inline-size: 100%; border: 1px solid var(--rd-line); border-radius: 10px; background: var(--rd-panel); }
.rd-table { border-collapse: collapse; inline-size: 100%; font-variant-numeric: tabular-nums; font-size: 14px; }
.rd-table caption { text-align: start; font-weight: 650; padding: 8px 10px; color: var(--rd-ink-2); caption-side: top; }
.rd-table th, .rd-table td { padding: 7px 10px; border-block-end: 1px solid var(--rd-line); text-align: start; vertical-align: middle; }
.rd-table thead th { background: var(--rd-panel-2); color: var(--rd-ink-2); font-size: 12.5px; font-weight: 650; position: sticky; top: 0; z-index: 1; white-space: nowrap; }
.rd-table tbody tr:last-child td { border-block-end: 0; }
.rd-table td { white-space: nowrap; }
.rd-table .rd-num { text-align: end; }
.rd-table td.rd-wrap { white-space: normal; overflow-wrap: anywhere; min-inline-size: 140px; }
.rd-table td.rd-empty-cell { white-space: normal; color: var(--rd-muted); padding: 14px 10px; }
.rd-table td.rd-rowacts { white-space: normal; min-inline-size: 8em; }
.rd-rowacts .rd-btn-link { white-space: nowrap; }
.rd-sharecell { display: flex; align-items: center; gap: 8px; min-inline-size: 160px; }
.rd-bar { flex: 1 1 auto; block-size: 8px; border-radius: 99px; background: var(--rd-line); overflow: hidden; min-inline-size: 80px; }
.rd-bar-fill { display: block; block-size: 100%; background: var(--rd-accent); border-radius: 99px; }
.rd-bar-short { background: var(--rd-gold); }
.rd-pager { display: flex; gap: 10px; align-items: center; justify-content: center; }
.rd-keys kbd { font: 12.5px ui-monospace, monospace; padding: 2px 6px; border: 1px solid var(--rd-line-2); border-radius: 5px; background: var(--rd-panel-2); color: var(--rd-ink); }

/* ---------- chart ---------- */
.rd-chartwrap { margin: 0; }
.rd-chartwrap > * + * { margin-block-start: 6px; }
.rd-chart { display: block; inline-size: 100%; max-inline-size: 860px; block-size: auto; border-radius: 10px; border: 1px solid var(--rd-line); }
.rd-chart .rd-chart-bg { fill: var(--rd-chart-bg); }
.rd-chart .rd-gridline { stroke: var(--rd-line); stroke-width: 1; }
.rd-chart .rd-axis { fill: var(--rd-muted); font-size: 12px; font-family: inherit; }
.rd-chart .rd-line { stroke: var(--rd-accent); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.rd-chart .rd-dot { fill: var(--rd-accent); }

/* ---------- status bar ---------- */
.rd-status { display: flex; align-items: center; gap: 10px; min-height: 30px; padding: 4px 12px; background: var(--rd-panel); border-top: 1px solid var(--rd-line); font-size: 12.5px; color: var(--rd-ink-2); flex: none; }
.rd-live[data-tone='warn'] { color: var(--rd-warn); font-weight: 600; }
.rd-live[data-tone='good'] { color: var(--rd-pos); }
.rd-privacy { color: var(--rd-muted); white-space: nowrap; }

/* ---------- dialogs ---------- */
.rd-dlg { inline-size: min(560px, calc(100vw - 24px)); max-block-size: calc(100dvh - 32px); padding: 0; border: 1px solid var(--rd-line-2); border-radius: 14px; background: var(--rd-panel); color: var(--rd-ink); box-shadow: 0 24px 60px rgb(0 0 0 / .3); overflow: hidden; }
.rd-dlg[open] { display: flex; flex-direction: column; }
.rd-dlg-wide { inline-size: min(900px, calc(100vw - 24px)); }
.rd-dlg::backdrop { background: rgb(8 15 18 / .55); }
.rd-dlg-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px 10px 18px; border-block-end: 1px solid var(--rd-line); }
.rd-dlg-head h2 { font-size: 17px; }
.rd-dlg-body { padding: 14px 18px; overflow: auto; flex: 1 1 auto; min-height: 0; }
.rd-dlg-body > * + * { margin-block-start: 12px; }
.rd-dlg-body h3 { font-size: 15px; }
.rd-dlg-body ul { padding-inline-start: 20px; }
.rd-dlg-foot { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding: 10px 18px 14px; border-block-start: 1px solid var(--rd-line); }
.rd-print { display: none; }

/* ---------- responsive ---------- */
@media (max-width: 860px) {
  .rd-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .rd-nav { border-inline-end: 0; border-block-end: 1px solid var(--rd-line); padding: 6px; overflow-x: auto; overflow-y: hidden; }
  .rd-nav ul { flex-direction: row; gap: 4px; }
  .rd-navbtn { white-space: nowrap; padding: 6px 10px; min-height: 36px; }
  .rd-navbtn[aria-current='page'], [dir='rtl'] .rd-navbtn[aria-current='page'] { box-shadow: inset 0 -3px 0 var(--rd-accent); }
  .rd-navlabel { overflow-wrap: normal; }
  .rd-main { padding: 14px 14px 32px; }
}
@media (max-width: 560px) {
  .rd-namewrap { flex-basis: 140px; }
  .rd-main-h { font-size: 19px; }
  .rd-card { padding: 12px; }
  .rd-kpi-value { font-size: 18px; }
  .rd-privacy { display: none; }
  .rd-btn { white-space: normal; text-align: center; }
  .rd-facts { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .rd-app * { transition: none !important; animation: none !important; } }

/* ---------- print: only the desk report ---------- */
@media print {
  @page { margin: 14mm; }
  body.uwapp-ravingdesk > :not(.rd-print) { display: none !important; }
  .rd-print { display: block !important; color: #111; font: 11pt/1.4 system-ui, sans-serif; }
  .rd-print h2 { font-size: 18pt; margin: 0 0 4pt; }
  .rd-print h3 { font-size: 13pt; margin: 14pt 0 6pt; break-after: avoid; }
  .rd-print .rd-table { border-collapse: collapse; width: 100%; font-size: 10pt; }
  .rd-print .rd-table th, .rd-print .rd-table td { border: 1px solid #bbb; padding: 3pt 5pt; text-align: start; }
  .rd-print .rd-chart { width: 100%; height: auto; border: 1px solid #ccc; }
  .rd-print .rd-chart .rd-chart-bg { fill: #fff; }
  .rd-print .rd-chart .rd-gridline { stroke: #ddd; }
  .rd-print .rd-chart .rd-axis { fill: #333; font-size: 12px; }
  .rd-print .rd-chart .rd-line { stroke: #1f5f5b; stroke-width: 2; fill: none; }
  .rd-print .rd-chart .rd-dot { fill: #1f5f5b; }
  .rd-print .rd-hint { color: #444; }
}
