/* P1 Syndicate — investor portal.
   Same palette and the same panel as the hub's Investments view, so what an
   investor sees is literally the report Connor reads; the page shell around it
   is new and deliberately quiet. */
:root {
  --bg: #06090f; --panel: #0b1220; --panel-2: #0e1730; --line: #1a2947;
  --cyan: #37e6ff; --cyan-dim: #1a8fa8; --text: #d7e6f5; --text-dim: #6d84a3;
  --good: #3dffa0; --warn: #ffb44d;
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 14px; line-height: 1.45; -webkit-font-smoothing: antialiased;
}
.hidden { display: none !important; }
.topbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 14px 22px; border-bottom: 1px solid var(--line);
}
.brand { font-weight: 800; letter-spacing: .22em; font-size: 13px; color: var(--cyan); }
.who { display: flex; align-items: center; gap: 12px; color: var(--text-dim); font-size: 13px; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 22px; }
.foot { color: var(--text-dim); font-size: 12px; margin: 18px 4px 0; }

/* shared chrome the panel markup uses — mirrors the hub's */
.mini-panel {
  border: 1px solid var(--line); border-radius: 12px; background: rgba(11, 18, 32, .78);
  padding: 16px; display: flex; flex-direction: column; gap: 12px;
}
.panel-title {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--cyan); font-weight: 700;
}
.badge {
  font-size: 10px; letter-spacing: .08em; padding: 3px 8px; border-radius: 999px;
  border: 1px solid var(--line); color: var(--text-dim); text-transform: none;
}
.badge.ok { color: var(--good); border-color: rgba(61, 255, 160, .4); }
.badge.warn { color: var(--warn); border-color: rgba(255, 180, 77, .4); }
.mini-btn {
  display: inline-flex; align-items: center; gap: 5px; background: rgba(14, 23, 48, .85);
  color: var(--text); border: 1px solid var(--line); border-radius: 8px; padding: 6px 13px;
  font: inherit; font-size: 10.5px; font-weight: 600; letter-spacing: .8px; cursor: pointer;
  text-transform: none;
}
.mini-btn:hover { color: var(--cyan); border-color: var(--cyan-dim); }
.mini-btn:disabled { opacity: .5; cursor: default; }
.period-tabs { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.p-tab {
  background: none; border: 1px solid var(--line); color: var(--text-dim); border-radius: 6px;
  padding: 3px 9px; font: inherit; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer;
}
.p-tab.active { color: var(--cyan); border-color: var(--cyan-dim); background: rgba(55, 230, 255, .08); }
.cal-empty { color: var(--text-dim); font-size: 13px; padding: 10px 2px; }

/* sign in */
.signin { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.signin-card {
  width: min(400px, 100%); background: var(--panel); border: 1px solid var(--line);
  border-radius: 14px; padding: 28px 26px; display: flex; flex-direction: column; gap: 14px;
}
.signin-card h1 { margin: 0; font-size: 22px; }
.signin-card .hint { margin: 0; color: var(--text-dim); font-size: 13px; }
.signin-card label {
  display: flex; flex-direction: column; gap: 6px;
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-dim);
}
.signin-card input {
  font: inherit; font-size: 15px; padding: 10px 12px; border-radius: 8px;
  border: 1px solid var(--line); background: var(--panel-2); color: var(--text);
}
.signin-card input:focus { outline: 2px solid var(--cyan-dim); outline-offset: 1px; }
.signin-card button[type=submit] {
  font: inherit; font-weight: 700; padding: 11px; border-radius: 8px; border: 0;
  background: var(--cyan); color: #06090f; cursor: pointer;
}
.signin-card button[type=submit]:disabled { opacity: .6; cursor: default; }
.err { color: #ff6b5a; font-size: 13px; }
:focus-visible { outline: 2px solid var(--cyan-dim); outline-offset: 2px; }

/* Gmail connection strip — the one-time "pull everything Anthony sent me" */
.gmail-bar {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2);
  padding: 10px 14px; font-size: 13.5px; color: var(--syn-2, #cfe0f4);
}
.gmail-bar b { color: #fff; font-weight: 650; }
.gmail-bar .spacer { flex: 1; }
.gmail-bar .connect {
  font: inherit; font-weight: 700; font-size: 13px; padding: 8px 14px; border-radius: 8px; border: 0;
  background: var(--cyan); color: #06090f; cursor: pointer; text-decoration: none; white-space: nowrap;
}
.gmail-bar .connect:hover { filter: brightness(1.08); }
.gmail-bar .err { font-size: 12.5px; }
.gmail-bar small { display: block; margin-top: 4px; font-size: 12px; color: var(--text-dim); }
.gmail-bar small b { color: var(--syn-2, #cfe0f4); }
.gmail-bar .busy::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 7px; border-radius: 50%;
  border: 2px solid var(--cyan-dim); border-top-color: var(--cyan); animation: spin .8s linear infinite; vertical-align: -1px; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- The Investments panel — ported from the hub as-is ---------- */
.syn-body { display: flex; flex-direction: column; gap: 12px; padding: 4px 0 2px; }
.syn-tabs .p-tab { font-size: 9px; letter-spacing: .1em; padding: 3px 8px; }

/* Top band: the headline value boxed, this week's cash boxed beside it */
.syn-top {
  display: grid; grid-template-columns: minmax(268px, .8fr) minmax(300px, 1.2fr); gap: 12px;
}
.syn-hero {
  display: flex; flex-direction: column;
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--panel-2); padding: 13px 15px 15px;
  justify-content: center;
}
.syn-label {
  font-size: 12.5px; letter-spacing: .14em; color: var(--text-dim);
  text-transform: uppercase;
}
.syn-big {
  font-size: 52px; font-weight: 700; letter-spacing: -.035em; line-height: 1;
  color: var(--cyan); font-variant-numeric: tabular-nums; margin: 10px 0 8px;
}
.syn-sub { font-size: 15.5px; color: var(--text-dim); line-height: 1.5; }
.syn-sub b { color: var(--text); font-weight: 650; }

/* Collected-only stat row: four windows, the percentage carrying the panel. */
.syn-matrix {
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--panel-2); padding: 13px 15px 15px;
  display: flex; flex-direction: column; gap: 12px;
}
.syn-mx-title {
  font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-dim);
}
.syn-mx-title b { color: var(--text); font-weight: 650; letter-spacing: .04em; }
.syn-cells { display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: 12px; }
.syn-cell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.syn-cell i {
  font-style: normal; font-size: 12px; letter-spacing: .16em; color: var(--text-dim);
}
.syn-cell b {
  font-size: 40px; font-weight: 700; letter-spacing: -.035em; line-height: 1;
  font-variant-numeric: tabular-nums;
}
.syn-cell b.up { color: var(--good); }
.syn-cell b.val { color: var(--cyan); }
.syn-mx-split { height: 1px; background: var(--line); margin: 2px 0; }
.syn-cell.val b { font-size: 34px; }
.syn-cell b.down { color: #ff6b5a; }
.syn-cell span {
  font-size: 14px; color: var(--text-dim); font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.syn-week {
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--panel-2); padding: 13px 15px 12px;
  display: flex; flex-direction: column;
}
.syn-week-title {
  font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--text-dim); margin-bottom: 15px;
}
.syn-flow {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(124px, 1fr)); gap: 14px 16px;
}
.syn-flow-item { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.syn-flow-item b {
  font-size: 29px; font-weight: 650; color: var(--text);
  font-variant-numeric: tabular-nums; letter-spacing: -.03em; line-height: 1.1;
}
.syn-flow-item span {
  font-size: 12.5px; color: var(--text-dim); letter-spacing: .04em; white-space: nowrap;
}
.syn-flow-item.profit b { color: var(--good); }
.syn-flow-item.redeploy b { color: var(--cyan); }
.syn-week-foot {
  font-size: 13px; line-height: 1.5; color: var(--text-dim); margin-top: auto;
  padding-top: 13px; border-top: 1px solid var(--line);
  min-height: 50px;
}
.syn-week-foot b { color: var(--text); font-weight: 650; }

@media (max-width: 1300px) {
  .syn-top { grid-template-columns: 1fr; }
  .syn-big { font-size: 42px; }
  .syn-cell b { font-size: 32px; }
}

/* ---------- Open deals ---------- */
.od-title {
  font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--text-dim);
  margin: 6px 0 -2px;
}
.od-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); gap: 8px; }
.od-summary > div {
  border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2);
  padding: 10px 12px; display: flex; flex-direction: column; gap: 3px;
}
.od-summary b {
  font-size: 24px; font-weight: 700; color: var(--text);
  font-variant-numeric: tabular-nums; letter-spacing: -.03em; line-height: 1.1;
}
.od-summary span { font-size: 11.5px; color: var(--text-dim); }
.od-summary > div.bad { border-color: rgba(255,107,90,.45); }
.od-summary > div.bad b { color: #ff6b5a; }

.od-wrap { max-height: 420px; overflow-y: auto; border: 1px solid var(--line); border-radius: 8px; }
.od-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.od-table th {
  position: sticky; top: 0; background: var(--panel-2); z-index: 1;
  text-align: left; padding: 9px 12px; font-size: 10.5px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--text-dim); font-weight: 500;
  border-bottom: 1px solid var(--line); white-space: nowrap;
}
.od-table td { padding: 9px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.od-table tbody tr:last-child td { border-bottom: none; }
.od-table tbody tr:hover { background: rgba(55,230,255,.04); }
.od-name { color: var(--text); font-weight: 550; max-width: 230px; overflow: hidden; text-overflow: ellipsis; }
.od-num { text-align: right; font-variant-numeric: tabular-nums; color: var(--text); }
.od-prog { display: flex; align-items: center; gap: 9px; }
.od-bar { display: block; width: 76px; height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; flex: none; }
.od-bar i { display: block; height: 100%; background: var(--cyan); border-radius: 3px; }
.od-pay { font-size: 12px; color: var(--text-dim); font-variant-numeric: tabular-nums; }
.od-st { color: var(--text-dim); font-size: 12.5px; }
.od-flag td { background: rgba(255,107,90,.07); }
.od-chip {
  display: inline-block; padding: 2px 9px; border-radius: 20px; font-size: 11px;
  font-weight: 650; color: #ff6b5a; background: rgba(255,107,90,.14);
}
.od-flag .od-bar i { background: #ff6b5a; }
.od-net { font-weight: 700; }
.od-net.up { color: var(--good); }
.od-net.down { color: #ff6b5a; }

/* ---------- legibility pass (the hub's, kept verbatim) ---------- */
.syn-panel { --syn-2: #cfe0f4; }
.syn-panel .syn-label { font-size: 15px; color: #ffffff; letter-spacing: .16em; font-weight: 600; }
.syn-panel .syn-big { font-size: 54px; margin: 12px 0 10px; white-space: nowrap; }
.syn-panel .syn-sub { font-size: 18px; color: var(--syn-2); line-height: 1.5; }
.syn-panel .syn-sub b { color: #ffffff; font-weight: 700; }
.syn-panel .syn-week { padding: 15px 17px 14px; }
.syn-panel .syn-week-title { font-size: 15px; color: #ffffff; letter-spacing: .16em; font-weight: 600; margin-bottom: 16px; }
.syn-panel .syn-flow { gap: 16px 18px; }
.syn-panel .syn-flow-item b { font-size: 32px; color: #ffffff; }
.syn-panel .syn-flow-item span { font-size: 14.5px; color: var(--syn-2); letter-spacing: .02em; }
.syn-panel .syn-week-foot { font-size: 14.5px; line-height: 1.55; color: var(--syn-2); padding-top: 14px; min-height: 54px; }
.syn-panel .syn-week-foot b { color: #ffffff; font-weight: 700; }
.syn-panel .syn-matrix { padding: 15px 17px 17px; gap: 14px; }
.syn-panel .syn-mx-title { font-size: 14px; color: var(--syn-2); letter-spacing: .1em; font-weight: 500; }
.syn-panel .syn-mx-title b { color: #ffffff; font-weight: 700; }
.syn-panel .syn-cells { gap: 14px; }
.syn-panel .syn-cell i { font-size: 14px; color: #ffffff; letter-spacing: .18em; font-weight: 600; }
.syn-panel .syn-cell b { font-size: 46px; }
.syn-panel .syn-cell.val b { font-size: 40px; }
.syn-panel .syn-cell span { font-size: 17px; color: var(--syn-2); }
.syn-panel .od-title { color: #ffffff; font-size: 15px; letter-spacing: .16em; font-weight: 600; }
.syn-panel .od-summary > div { padding: 12px 14px; }
.syn-panel .od-summary b { font-size: 30px; color: #ffffff; }
.syn-panel .od-summary span { font-size: 14px; color: var(--syn-2); }
.syn-panel .od-table { font-size: 15.5px; }
.syn-panel .od-table th { font-size: 13px; color: #ffffff; letter-spacing: .12em; font-weight: 600; padding: 11px 14px; }
.syn-panel .od-table td { padding: 11px 14px; }
.syn-panel .od-name { color: #ffffff; font-weight: 600; max-width: 280px; }
.syn-panel .od-num { color: #ffffff; font-size: 16px; }
.syn-panel .od-pay { font-size: 14px; color: var(--syn-2); }
.syn-panel .od-st { font-size: 14px; color: var(--syn-2); }
.syn-panel .od-chip { font-size: 13px; padding: 3px 11px; }
.syn-panel .od-bar { width: 92px; height: 8px; }
.syn-panel .od-wrap { max-height: 520px; }
.syn-panel .syn-tabs .p-tab { font-size: 11px; padding: 4px 11px; letter-spacing: .12em; }
@media (max-width: 1300px) {
  .syn-panel .syn-big { font-size: 46px; }
  .syn-panel .syn-cell b { font-size: 36px; }
  .syn-panel .syn-cell.val b { font-size: 32px; }
  .syn-panel .syn-flow-item b { font-size: 26px; }
}
.syn-panel .syn-flow { grid-template-columns: repeat(auto-fit, minmax(152px, 1fr)); }
.syn-panel .syn-flow-item span { white-space: normal; line-height: 1.35; }
.syn-panel .syn-cells { grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); }
.syn-panel .od-summary { grid-template-columns: repeat(auto-fit, minmax(172px, 1fr)); }
.syn-panel .od-summary span { white-space: normal; line-height: 1.35; }

/* The panel scales to the column it actually gets, not the viewport. */
.syn-panel { container-type: inline-size; }
.syn-panel .syn-top { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
@container (max-width: 640px) {
  .syn-panel .syn-big { font-size: 38px; margin: 8px 0 6px; }
  .syn-panel .syn-label { font-size: 12.5px; }
  .syn-panel .syn-sub { font-size: 14.5px; }
  .syn-panel .syn-hero { padding: 11px 13px 12px; }
  .syn-panel .syn-week { padding: 12px 13px 11px; }
  .syn-panel .syn-week-title { font-size: 12.5px; margin-bottom: 11px; }
  .syn-panel .syn-flow { grid-template-columns: 1fr 1fr; gap: 11px 12px; }
  .syn-panel .syn-flow-item b { font-size: 22px; }
  .syn-panel .syn-flow-item span { font-size: 12.5px; }
  .syn-panel .syn-week-foot { font-size: 12.5px; padding-top: 10px; min-height: 0; }
  .syn-panel .syn-matrix { padding: 12px 13px 13px; gap: 10px; }
  .syn-panel .syn-mx-title { font-size: 12px; }
  .syn-panel .syn-cells { grid-template-columns: repeat(2, 1fr); gap: 12px 14px; }
  .syn-panel .syn-cell i { font-size: 12.5px; letter-spacing: .14em; }
  .syn-panel .syn-cell b { font-size: 31px; }
  .syn-panel .syn-cell.val b { font-size: 27px; }
  .syn-panel .syn-cell span { font-size: 13.5px; white-space: nowrap; }
  .syn-panel .od-summary { grid-template-columns: repeat(auto-fit, minmax(126px, 1fr)); }
  .syn-panel .od-summary b { font-size: 22px; }
  .syn-panel .od-summary span { font-size: 12.5px; }
  .syn-panel .od-table { font-size: 13.5px; }
  .syn-panel .od-table th, .syn-panel .od-table td { padding: 9px 11px; }
  .syn-panel .od-num { font-size: 14px; }
  .syn-panel .od-bar { width: 62px; height: 7px; }
  .syn-panel .od-wrap { max-height: 380px; }
}

/* Account-value cells: the rate, what it's worth in dollars, and where it grew from. */
.syn-panel .syn-cell.val .gain { color: #ffffff; font-weight: 700; font-size: 17px; letter-spacing: -.01em; }
.syn-panel .syn-cell.val em { font-style: normal; font-size: 13px; color: var(--syn-2); white-space: nowrap; }
@container (max-width: 640px) {
  .syn-panel .syn-cell.val .gain { font-size: 15px; }
  .syn-panel .syn-cell.val em { font-size: 12px; }
}
@container (max-width: 430px) {
  .syn-panel .syn-big { font-size: 33px; }
  .syn-panel .syn-cell b { font-size: 25px; }
  .syn-panel .syn-cell.val b { font-size: 21px; }
  .syn-panel .syn-cell.val .gain { font-size: 13.5px; }
  .syn-panel .syn-cell.val em { font-size: 11px; }
  .syn-panel .syn-cell span { font-size: 12px; }
  .syn-panel .syn-cell i { font-size: 11.5px; }
  .syn-panel .syn-flow-item b { font-size: 20px; }
  .syn-panel .syn-flow-item span { font-size: 11.5px; }
}

/* ---------- Snapshot: every book in one column ---------- */
.syn-panel .sn-card {
  border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2);
  padding: 14px 16px 15px; display: flex; flex-direction: column; gap: 3px;
}
.syn-panel .sn-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.syn-panel .sn-name { font-size: 15px; font-weight: 700; color: #ffffff; letter-spacing: .1em; text-transform: uppercase; }
.syn-panel .sn-note { font-size: 12.5px; color: var(--syn-2); }
.syn-panel .sn-vlabel { font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--syn-2); }
.syn-panel .sn-value {
  font-size: 40px; font-weight: 700; letter-spacing: -.035em; line-height: 1.05;
  color: var(--cyan); font-variant-numeric: tabular-nums; margin: 2px 0 6px;
}
.syn-panel .sn-grew { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; padding-top: 9px; border-top: 1px solid var(--line); }
.syn-panel .sn-grew b { font-size: 24px; font-weight: 700; color: var(--good); font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
.syn-panel .sn-grew span { font-size: 13.5px; color: var(--syn-2); }
.syn-panel .sn-grew i { font-style: normal; font-size: 15px; font-weight: 650; color: var(--good); margin-left: auto; font-variant-numeric: tabular-nums; }
.syn-panel .sn-total { border-color: var(--cyan-dim); }
.syn-panel .sn-total .sn-value { font-size: 44px; }
.syn-panel .sn-pair { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.syn-panel .sn-side { border-left: 1px solid var(--line); padding-left: 13px; display: flex; flex-direction: column; gap: 2px; }
.syn-panel .sn-svalue { font-size: 25px; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; color: #ffffff; font-variant-numeric: tabular-nums; margin-top: 2px; }
.syn-panel .sn-snote { font-size: 12px; color: var(--syn-2); line-height: 1.35; }
@container (max-width: 430px) {
  .syn-panel .sn-value { font-size: 24px; }
  .syn-panel .sn-total .sn-value { font-size: 35px; }
  .syn-panel .sn-grew b { font-size: 20px; }
  .syn-panel .sn-name { font-size: 13.5px; }
  .syn-panel .sn-pair { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 10px; }
  .syn-panel .sn-side { padding-left: 10px; }
  .syn-panel .sn-svalue { font-size: 18px; }
  .syn-panel .sn-vlabel { font-size: 10.5px; letter-spacing: .08em; }
  .syn-panel .sn-snote { font-size: 11px; }
}

/* tab strip on its own row under the title */
.syn-panel .panel-title { row-gap: 9px; }
.syn-panel .syn-tabs { order: 10; flex-basis: 100%; margin-left: 0; display: flex; gap: 6px; flex-wrap: wrap; }
.syn-panel .syn-tabs .p-tab { flex: 1 1 auto; text-align: center; padding: 5px 10px; font-size: 10.5px; }
.syn-panel .panel-title .mini-btn { padding: 5px 9px; font-size: 10px; margin-left: 0; }
.syn-panel .panel-title .badge { margin-left: auto; }

/* ---------- Review: sheets a mailbox turned up, before they become books ---------- */
.syn-panel .rv-tab.active, .syn-panel .rv-tab { color: var(--warn); border-color: rgba(255,180,77,.45); }
.syn-panel .rv-tab.active { background: rgba(255,180,77,.1); }
.syn-panel .rv-card {
  border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2);
  padding: 14px 16px 14px; display: flex; flex-direction: column; gap: 12px;
}
.syn-panel .rv-head { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.syn-panel .rv-main { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.syn-panel .rv-kicker { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--warn); font-weight: 600; }
.syn-panel .rv-title, .syn-panel .rv-title-ro {
  font: inherit; font-size: 20px; font-weight: 700; color: #fff; letter-spacing: .02em;
  background: transparent; border: 1px solid transparent; border-bottom-color: var(--line); border-radius: 4px; padding: 4px 6px 5px; width: 100%; max-width: 520px;
}
.syn-panel .rv-title:focus { outline: none; border-color: var(--cyan-dim); background: rgba(55,230,255,.05); }
.syn-panel .rv-title:disabled { color: var(--syn-2); }
.syn-panel .rv-note { font-size: 13.5px; color: var(--syn-2); line-height: 1.4; }
.syn-panel .rv-note b { color: #fff; }
.syn-panel .rv-count { text-align: right; display: flex; flex-direction: column; gap: 2px; color: var(--syn-2); font-size: 13.5px; }
.syn-panel .rv-count b { font-size: 34px; color: #fff; line-height: 1; font-variant-numeric: tabular-nums; }
.syn-panel .rv-wrap { max-height: 360px; }
.syn-panel .rv-table td { vertical-align: top; }
.syn-panel .rv-d { display: block; font-style: normal; font-size: 12px; font-weight: 600; margin-top: 2px; }
.syn-panel .rv-d.up { color: var(--good); } .syn-panel .rv-d.down { color: #ff6b5a; } .syn-panel .rv-d.flat { color: var(--text-dim); font-weight: 500; }
.syn-panel .rv-notes { font-size: 13px; color: var(--warn); white-space: normal; max-width: 260px; line-height: 1.35; }
.syn-panel .rv-flag td { background: rgba(255,180,77,.06); }
.syn-panel .rv-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.syn-panel .rv-yes {
  font: inherit; font-weight: 700; font-size: 14px; padding: 10px 16px; border-radius: 8px; border: 0;
  background: var(--good); color: #06090f; cursor: pointer;
}
.syn-panel .rv-yes:disabled, .syn-panel .rv-actions .mini-btn:disabled { opacity: .5; cursor: default; }
.syn-panel .rv-who { font: inherit; font-size: 13px; padding: 7px 10px; border-radius: 8px; border: 1px solid var(--line); background: var(--panel); color: var(--text); }
.syn-panel .rv-err { color: #ff6b5a; font-size: 13px; }
@container (max-width: 640px) {
  .syn-panel .rv-title, .syn-panel .rv-title-ro { font-size: 17px; }
  .syn-panel .rv-count b { font-size: 26px; }
  .syn-panel .rv-notes { max-width: 160px; }
}

/* ---------- Forecast tab ---------- */
.syn-panel .fc-tab { color: var(--good); border-color: rgba(61,255,160,.4); }
.syn-panel .fc-tab.active { background: rgba(61,255,160,.08); }
.syn-panel .fc-controls { border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.syn-panel .fc-row { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; font-size: 13.5px; color: var(--syn-2); }
.syn-panel .fc-row label { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.syn-panel .fc-input { font: inherit; font-size: 14px; padding: 7px 9px; border-radius: 7px; border: 1px solid var(--line); background: var(--panel); color: #fff; min-width: 0; }
.syn-panel .fc-input.money { width: 110px; } .syn-panel .fc-input.short { width: 56px; text-align: center; }
.syn-panel .fc-input:focus { outline: 2px solid var(--cyan-dim); outline-offset: 1px; }
.syn-panel .fc-one { font-weight: 700; color: #fff; letter-spacing: .06em; }
.syn-panel .fc-btn { font: inherit; font-weight: 700; font-size: 13.5px; padding: 8px 16px; border-radius: 7px; border: 0; background: var(--cyan); color: #06090f; cursor: pointer; }
.syn-panel .fc-btn:disabled { opacity: .55; cursor: default; }
.syn-panel .fc-scn { font-size: 13px; color: var(--syn-2); } .syn-panel .fc-scn b { color: #fff; }
.syn-panel .fc-max { color: var(--good); } .syn-panel .fc-warn { color: var(--warn); }
.syn-panel .fc-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); padding: 12px 14px; align-items: end; }
.syn-panel .fc-strip > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.syn-panel .fc-strip i { font-style: normal; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #fff; font-weight: 600; }
.syn-panel .fc-strip b { font-size: 26px; font-weight: 700; color: #fff; letter-spacing: -.03em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.syn-panel .fc-strip span { font-size: 12.5px; color: var(--syn-2); line-height: 1.3; }
.syn-panel .fc-strip em { font-style: normal; font-weight: 650; } .syn-panel .fc-strip em.up { color: var(--good); } .syn-panel .fc-strip em.down { color: #ff6b5a; }
.syn-panel .fc-flow { grid-column: 1 / -1; font-size: 12.5px; font-weight: 600; padding-top: 6px; border-top: 1px solid var(--line); }
.syn-panel .fc-flow.ok { color: var(--good); } .syn-panel .fc-flow.bad { color: #ff6b5a; }
.syn-panel .fc-chart { width: 100%; height: 240px; display: block; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); }
.syn-panel .fc-wrap { max-height: 300px; }
.syn-panel .fc-table td.up { color: var(--good); }
.syn-panel .fc-assume { font-size: 12.5px; color: var(--text-dim); line-height: 1.45; } .syn-panel .fc-assume b { color: var(--syn-2); }
.syn-panel .sn-owner { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--cyan); font-weight: 700; margin: 6px 0 -4px; }

/* chat */
.syn-panel .ch { border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.syn-panel .ch-title { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: #fff; font-weight: 600; }
.syn-panel .ch-title span { display: block; margin-top: 4px; font-size: 12px; letter-spacing: 0; text-transform: none; color: var(--text-dim); font-weight: 400; line-height: 1.4; }
.syn-panel .ch-log { display: flex; flex-direction: column; gap: 10px; max-height: 420px; overflow-y: auto; padding: 2px; }
.syn-panel .ch-msg { display: flex; flex-direction: column; gap: 5px; max-width: 86%; }
.syn-panel .ch-msg.user { align-self: flex-end; align-items: flex-end; } .syn-panel .ch-msg.assistant { align-self: flex-start; }
.syn-panel .ch-bubble { border-radius: 12px; padding: 10px 14px; font-size: 14.5px; line-height: 1.5; color: var(--text); background: rgba(55,230,255,.07); border: 1px solid rgba(55,230,255,.18); }
.syn-panel .ch-msg.user .ch-bubble { background: rgba(255,255,255,.06); border-color: var(--line); }
.syn-panel .ch-bubble p { margin: 0 0 8px; } .syn-panel .ch-bubble p:last-child { margin: 0; } .syn-panel .ch-bubble b { color: #fff; }
.syn-panel .ch-form { display: flex; gap: 8px; } .syn-panel .ch-form .fc-input { flex: 1; }
@container (max-width: 640px) {
  .syn-panel .fc-strip b { font-size: 21px; }
  .syn-panel .fc-chart { height: 190px; }
  .syn-panel .ch-msg { max-width: 96%; }
}
