/* Money re-skin (10/01): every Money section reads like the new Dashboard.
   Owner, verbatim: every Money section must look like the new Dashboard; the
   old Tailwind cards, boxes inside boxes and stacked banners go.

   Two halves.
   1. THE ROOT. Every Money page wraps its body (below PageHeader) in
      .yw-money-page, and its PageHeader carries the section menu, which marks
      the header data-title-menu. Under that root the old primitives the Money
      pages still use (Panel, StatCard, SectionLabel, TabBar / Segmented,
      tables, BadgeChip / CountChip, the dashed setup boxes, buttons and
      inputs, MovesCard, the notices) are dressed in the dashboard's look, so
      a page not yet rebuilt already reads in it. The grey and accent ramps are
      re-pointed at the dashboard palette here, so every zinc, violet, rose,
      emerald and amber utility under the root takes the warm values, light
      and dark, without a class changing.
   2. THE GET PAID PAGE (money/page.tsx, money/agent): the hero, the grid, the
      rows, the open balances list. Its own classes, yw-money-*. Refunds,
      Cancellations, Channels and Finances (wave 2) are built from the same
      classes plus the few their own content needs (bar rows, flag words,
      cancellation rows, the channel donut, Waiting on you rows).

   The shared pieces come from overview.css (.yw-card, .yw-card-head,
   .yw-card-title, .yw-card-sub, .yw-text-link, .yw-hero-*, .yw-track,
   .yw-row-stat, .yw-more): the dashboard's rules, lifted to shared classes
   with the dashboard's own selectors kept, so the dashboard does not move.
   Dark: [data-theme-root].dark twins on the warm #2a2a30 palette at the foot,
   never the navy one. Motion (card stagger, button press, the halo glow off)
   is in motion.css. Values are always ink; only words, arrows and pills take
   colour. */

/* ------------------------------------------------------------ the root -- */
.yw-money-page {
  font-family: var(--font-geist-sans), Geist, system-ui, sans-serif;
  font-size: 14px;
  letter-spacing: -.25px;
  /* The dashboard's warm greys (skin/base.css, overview.css): hairline
     #eae8ec, card border #e2e1e4, captions #929097, labels #87818c, row value
     #343039, ink #202024. */
  --color-zinc-50: #f8f7f9;
  --color-zinc-100: #eeedf0;
  --color-zinc-200: #e2e1e4;
  --color-zinc-300: #d6d2da;
  --color-zinc-400: #a09aa4;
  --color-zinc-500: #8a8490;
  --color-zinc-600: #6f6975;
  --color-zinc-700: #59535f;
  --color-zinc-800: #343039;
  --color-zinc-900: #202024;
  --color-zinc-950: #18171a;
  /* The accent and its tints. */
  --color-violet-50: #f6f1fb;
  --color-violet-100: #eee5fd;
  --color-violet-200: #e3d6f6;
  --color-violet-300: #cdb5ee;
  --color-violet-400: #a883ee;
  --color-violet-500: #8553c2;
  --color-violet-600: #7c3aed;
  --color-violet-700: #7433d4;
  --color-violet-800: #5d2bb0;
  /* Good, bad and amber words (never values). */
  --color-emerald-50: #eef7f3;
  --color-emerald-200: #cfe7dd;
  --color-emerald-300: #b5dccb;
  --color-emerald-500: #397965;
  --color-emerald-600: #279876;
  --color-emerald-700: #2f8a6d;
  --color-emerald-800: #397965;
  --color-rose-50: #fbf0f4;
  --color-rose-200: #f0d2dd;
  --color-rose-300: #e7b9cb;
  --color-rose-400: #d98aa9;
  --color-rose-500: #c85f84;
  --color-rose-600: #c85f84;
  --color-rose-700: #a96883;
  --color-rose-800: #9f6586;
  --color-amber-50: #fbf6ee;
  --color-amber-100: #f6ecdc;
  --color-amber-200: #ecdcc0;
  --color-amber-300: #e0c79c;
  --color-amber-600: #9a805f;
  --color-amber-700: #9a805f;
  --color-amber-800: #86704f;
  --color-amber-900: #6f5c40;
}
.yw-money-page :is(button, input, select, textarea, table) { font-family: inherit; }
.yw-money-page :is(.num, .tabular-nums) { font-variant-numeric: tabular-nums lining-nums; font-feature-settings: "tnum" 1, "lnum" 1; }
.yw-money-page :is(.font-bold, .font-semibold) { font-weight: 500; }
.yw-money-page :is(.text-2xl, .text-3xl, .text-4xl) { font-weight: 500; letter-spacing: -.04em; }

/* --------------------------------------------- the header (Row 1, Money) -- */
/* The title is the section menu (money/money-section-menu.tsx); it wears the
   Dashboard title's classes (header.css), these are the Money extras. */
.yw-page-title-group { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
.yw-money-section-options { width: 270px; max-height: min(560px, calc(100dvh - 32px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #d9cbe5 transparent; }
.yw-money-section-options[data-placement="end"] { left: auto; right: 0; transform-origin: top right; }
.yw-money-section-options .yw-dashboard-tab-option { padding: 10px 12px; }
.yw-money-section-options .yw-dashboard-tab-option + .yw-dashboard-tab-option { margin-top: 2px; }
/* The Row-1 controls take the Dashboard's look (header.css scopes it to
   header[data-page="dashboard"]): the period is the white control, Export the
   grey one, the inner view tabs the quiet segmented control. */
header[data-title-menu] > div:first-child { gap: 10px 18px; }
header[data-title-menu] > div:first-child > span:last-child { gap: 8px; }
header[data-title-menu] .yw-scope-trigger-compact {
  display: inline-flex; align-items: center; gap: 7px; min-height: 39px; padding: 0 11px;
  border: 1px solid #e8e6e9; border-radius: 10px; background: #fff; box-shadow: 0 2px 6px #00000009;
  color: #202024; font-size: 12px; font-weight: 400; line-height: 1.45; letter-spacing: -.25px;
  white-space: nowrap; cursor: pointer; transition: background .2s, box-shadow .2s, transform .2s;
}
header[data-title-menu] .yw-scope-trigger-compact:hover { background: #faf8fc; }
header[data-title-menu] .yw-scope-trigger-compact:focus-visible { outline: 3px solid #b993ff; outline-offset: 3px; }
header[data-title-menu] .yw-scope-trigger-compact svg { width: 15px; height: 15px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
header[data-title-menu] .yw-scope-trigger-compact .yw-scope-calendar,
header[data-title-menu] .yw-scope-trigger-compact .yw-scope-chevron { display: inline-flex; }
header[data-title-menu] .yw-scope-trigger-compact .yw-scope-chevron { color: #8d8595; }
header[data-title-menu] .yw-scope-trigger-compact .yw-scope-chevron svg { width: 12px; height: 12px; }
header[data-title-menu] .yw-scope-trigger-compact .yw-scope-caret { display: none; }
header[data-title-menu] .yw-header-export-menu { margin-top: 10px; border-color: #e5ddea; border-radius: 17px; background: #fdfcfe; box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; }
header[data-title-menu] a.yw-header-control { text-decoration: none; }

/* -------------------------------------------- the old primitives, dressed -- */
/* Every card: Panel, StatCard, MovesCard, the notices, and any Tailwind card
   (rounded-2xl + border) a page still draws by hand. These generic rules sit
   at the root's own weight (:where), so their ORDER decides between them and
   any rule naming a component (the aging strip, the bulk bar, the open
   balances list) wins over them. Unlayered, they still beat the Tailwind
   utilities on the same elements. */
.yw-money-page :where(
  :is(section, div, article, form, p, ul, ol)[class~="rounded-2xl"][class~="border"],
  section[data-panel], [data-ui="stat-card"], [data-ui="moves-card"], [data-ui="connect-prompt"], [data-ui="notice"]
) {
  border-color: #e2e1e4; border-radius: 24px; background-color: #fbfbfb; box-shadow: 0 2px 3px rgba(0, 0, 0, .008);
}
.yw-money-page :where(:is(section, div, article, form, p)[class~="rounded-2xl"][class~="p-4"], [data-ui="notice"], [data-ui="preparing"]) { padding: 23px; }
/* One level of container: a box inside a card is a quiet tinted panel, not a
   second card. */
.yw-money-page :where(
  :is([class~="rounded-2xl"][class~="border"], section[data-panel], .yw-card)
  :is([class~="rounded-2xl"], [class~="rounded-xl"])[class~="border"]:not([data-ui="segmented"], [data-ui="tab-bar"])
) {
  border-color: transparent; border-radius: 14px; background-color: #f6f5f7; box-shadow: none;
}
/* The dashed setup and empty boxes. */
.yw-money-page :where([class~="border-dashed"]) { border-color: #ddd3e6; border-radius: 24px; background-color: #fbfbfb; }

/* Panel: the card head is the dashboard's (title 19px, no band). */
.yw-money-page section[data-panel] > div:first-child { padding: 19px 23px 10px; background: transparent; }
.yw-money-page section[data-panel] > div:first-child > h2 { color: #202024; font-size: 19px; font-weight: 500; line-height: 1.3; letter-spacing: -.55px; }
.yw-money-page section[data-panel] > div:first-child > span.num { padding: 0; border-radius: 0; background: transparent; color: #99909e; font-size: 12px; font-weight: 400; }
.yw-money-page section[data-panel] > div:last-child { padding: 14px 23px 23px; border-top-color: #eae8ec; }

/* SectionLabel: a card title. */
.yw-money-page [data-ui="section-label"] { color: #202024; font-size: 19px; font-weight: 500; line-height: 1.3; letter-spacing: -.55px; }

/* StatCard: label, ink value, caption. */
.yw-money-page [data-ui="stat-card"] > div:first-child > div:first-child { color: #87818c; font-size: 12px; letter-spacing: 0; text-transform: none; }
.yw-money-page [data-ui="stat-card"] > .num { margin-top: 6px; color: #202024; font-size: 27px; font-weight: 500; line-height: 1.15; letter-spacing: -.05em; }
.yw-money-page [data-ui="stat-card"] > div:last-child:not(.num) { margin-top: 4px; color: #929097; font-size: 12px; }

/* TabBar and Segmented: the quiet segmented control. */
:is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) {
  display: inline-flex; width: auto; max-width: 100%; gap: 2px; padding: 3px; border: 0; border-radius: 12px; background-color: #eeeded;
}
:is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) > :is(a, button, span) {
  padding: 7px 12px; border-radius: 9px; background: transparent; color: #6f6975; font-size: 12px; font-weight: 500; box-shadow: none;
}
:is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) > :is(a, button):hover { background-color: rgba(255, 255, 255, .6); color: #202024; }
:is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) > [class~="bg-violet-600"] {
  background-color: #fff; background-image: none; color: #202024; box-shadow: 0 2px 6px rgba(0, 0, 0, .06);
}
:is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) > [class~="bg-violet-600"] > span[aria-label] { background-color: #7c3aed; }

/* Tables: the Monthly detail skin, one step denser. */
.yw-money-page table { font-variant-numeric: tabular-nums; }
.yw-money-page thead :is(th, tr) { color: #766d7c; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.yw-money-page tbody tr { border-color: #eae8ec; }
.yw-money-page tbody tr:hover { background-color: #faf8fc; }
.yw-money-page tfoot tr { background-color: #f8f4fb; }

/* BadgeChip: a status word in a pill. */
.yw-money-page [data-ui="badge"] { padding: 4px 9px; border-radius: 20px; background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .024); color: #59535f; font-size: 10px; font-weight: 500; letter-spacing: .03em; }
.yw-money-page [data-ui="badge"][data-tone="push"] { color: #2f8a6d; }
.yw-money-page [data-ui="badge"]:is([data-tone="rescue"], [data-tone="gold"]) { color: #a96883; }
.yw-money-page [data-ui="badge"][data-tone="violet"] { color: #7433d4; }
.yw-money-page [data-ui="badge"][data-tone="blue"] { color: #5f6aa3; }
/* CountChip: a pill; on = the selected tint. */
.yw-money-page [data-ui="count-chip"] { border-radius: 20px; background-color: #fff; color: #59535f; font-weight: 500; box-shadow: 0 2px 8px rgba(0, 0, 0, .024); --tw-ring-color: transparent; }
.yw-money-page [data-ui="count-chip"][data-on] { background-color: #eee5fd; color: #7433d4; }

/* Buttons and inputs: the dashboard's 10px corners and the one violet. */
.yw-money-page :is(button, a, span)[class~="rounded-lg"] { border-radius: 10px; }
.yw-money-page :is(button, a)[class~="bg-violet-600"] { background-color: #7c3aed; background-image: none; }
.yw-money-page :is(button, a)[class~="bg-violet-600"]:hover { background-color: #7130df; }
.yw-money-page :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) { border-color: #e2e1e4; border-radius: 10px; }
.yw-money-page :is(input, select, textarea):focus { border-color: #b993ff; }
.yw-money-page a[class~="text-violet-600"] { color: #8553c2; }

/* The notices: ConnectPrompt, UnavailableNotice, PreparingState. */
.yw-money-page [data-ui="connect-prompt"] { padding: 23px; }
.yw-money-page [data-ui="connect-prompt"] > div:first-child { color: #8553c2; font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.yw-money-page [data-ui="connect-prompt"] > h3 { color: #202024; font-size: 19px; font-weight: 500; letter-spacing: -.55px; }
.yw-money-page :is([data-ui="notice"], [data-ui="preparing"]) > :first-child { color: #202024; font-size: 15px; font-weight: 500; }
.yw-money-page :is([data-ui="notice"], [data-ui="preparing"], [data-ui="connect-prompt"]) p { color: #777; font-size: 13px; }

/* MovesCard: the dashboard card head, hairline rows. */
.yw-money-page [data-ui="moves-card"] > header { padding: 20px 23px 14px; border-color: #eae8ec; }
.yw-money-page [data-ui="moves-card"] > ol > li { border-color: #eae8ec; }
.yw-money-page [data-ui="moves-card"] > div:last-child:not(:first-child) { padding: 12px 23px; border-color: #eae8ec; color: #929097; font-size: 12px; }

/* The sticky bulk bar: a quiet toolbar line until something is ticked. */
.yw-money-page [data-ui="bulk-bar"] { border-color: #e5ddea; border-radius: 14px; background-color: rgba(253, 252, 254, .92); box-shadow: 0 8px 22px rgba(48, 32, 64, .06); padding: 10px 14px; }
.yw-money-page [data-ui="bulk-bar"][data-state="idle"] { position: static; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.yw-money-page [data-ui="bulk-bar"][data-state="idle"] > div:first-child { color: #929097; font-size: 12px; }
.yw-money-page [data-ui="bulk-bar"] .text-violet-800 { color: #202024; }

/* --------------------------------------------------- Get Paid: the grid -- */
.yw-money-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 1.06fr) minmax(0, 1fr); gap: 16px; align-items: stretch; margin-top: 18px; }
.yw-money-grid > * { min-width: 0; margin: 0; }
.yw-money-grid--after { align-items: start; }
.yw-money-grid--after > .yw-money-closed { grid-column: span 2; }
.yw-money-grid--after:not(:has(> :nth-child(2))) > .yw-money-closed { grid-column: 1 / -1; }
.yw-money-page > .yw-card, .yw-money-page > .yw-money-grid + .yw-card { margin-top: 16px; }
.yw-money-stack { display: flex; flex-direction: column; gap: 16px; margin-top: 18px; }
.yw-money-stack > * { margin-top: 0; }
.yw-money-card-body { margin-top: 14px; }
.yw-money-card .yw-card-head + .yw-row-stats, .yw-money-card-body > .yw-row-stats:first-child { margin-top: 10px; }

/* ---------------------------------------------------- Get Paid: the hero -- */
.yw-money-hero { display: flex; flex-direction: column; }
.yw-money-verdict { position: relative; }
.yw-money-lead { margin: 19px 0 6px; color: #202024; font-size: 19px; font-weight: 500; line-height: 1.35; letter-spacing: -.45px; }
.yw-money-hero .yw-hero-summary { margin: 14px 0 0; }
.yw-money-hero .yw-hero-pill[data-pace="ahead"] { color: #2f8a6d; }
.yw-money-refresh { position: absolute; top: 0; right: 0; }
.yw-money-verdict:has(> .yw-money-refresh) > .yw-money-lead { padding-right: 64px; }
.yw-money-refresh .yw-text-link { padding: 0; border: 0; background: none; cursor: pointer; }
.yw-money-note { margin: 12px 0 0; color: #929097; font-size: 12px; line-height: 1.5; }
.yw-money-note[data-tone="bad"] { color: #a96883; }
.yw-money-rows { margin-top: auto; padding-top: 18px; }
.yw-row-stats > a.yw-row-stat, .yw-row-stats > details > summary.yw-row-stat { color: #87818c; text-decoration: none; transition: color .16s; }
.yw-row-stats > a.yw-row-stat:hover > span:first-child { color: #7c3aed; }
.yw-row-stat-value { color: #343039; font-size: 14px; font-weight: 500; white-space: nowrap; }
.yw-row-stats > :first-child.yw-row-stat, .yw-row-stats > details:first-child > summary.yw-row-stat { border-top: 0; }
.yw-money-card-body > .yw-row-stats > :first-child.yw-row-stat { border-top: 1px solid #eae8ec; }
/* The aging strip, as the hero's track: no box, hatched violet bars. */
.yw-money-aging { margin-top: 22px; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] > p:first-child { color: #87818c; font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] > div { gap: 14px; margin-top: 10px; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] > div > div > div:first-child { flex-direction: column; align-items: flex-start; gap: 2px; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] > div > div > div:first-child > div:first-child { color: #929097; font-size: 10px; font-weight: 400; white-space: nowrap; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] > div > div > div:first-child > div:last-child { color: #202024; font-size: 13px; font-weight: 500; letter-spacing: -.3px; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] > div > div > div:last-child { height: 11px; margin-top: 7px; border-radius: 4px; background-color: #f0edf2; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] [class~="bg-violet-500"] { border-radius: 4px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: left; animation: yw-scale-in 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] > p:last-child:not(:first-child) { margin-top: 9px; color: #929097; font-size: 11px; }

/* ------------------------------------------- Get Paid: the supporting cards -- */
.yw-money-drill > summary { display: flex; cursor: pointer; list-style: none; }
.yw-money-drill > summary::-webkit-details-marker { display: none; }
.yw-money-drill > summary:focus-visible { outline: 2px solid #b993ff; outline-offset: 2px; border-radius: 6px; }
.yw-money-drill-count { margin-left: 8px; color: #8553c2; font-size: 11px; font-weight: 500; }
.yw-money-drill[open] .yw-money-drill-count { color: #7c3aed; }
.yw-money-drill > .yw-money-table { margin: 0 0 10px; }
.yw-money-agent .yw-card-sub { color: #59535f; }

/* ------------------------------------------- Get Paid: the open balances -- */
.yw-money-owed .yw-card-head { margin-bottom: 14px; }
.yw-money-owed [data-ui="moves-card"] { margin-top: 10px; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.yw-money-owed [data-ui="moves-card"] > ol { border-top: 1px solid #eae8ec; }
.yw-money-owed [data-ui="moves-card"] > ol > li { border-color: #eae8ec; }
/* The group header: a quiet line, count and dollars on the right. */
.yw-money-group { display: flex; align-items: baseline; gap: 12px; padding: 16px 2px 8px; color: #202024; font-size: 13px; font-weight: 500; }
.yw-money-group-name { min-width: 0; flex: 1 1 auto; }
.yw-money-group-note { margin-top: 2px; color: #929097; font-size: 11px; font-weight: 400; }
.yw-money-group-count { flex-shrink: 0; color: #929097; font-size: 11px; font-weight: 400; white-space: nowrap; }
.yw-money-group-amount { flex-shrink: 0; color: #202024; font-size: 14px; font-weight: 500; white-space: nowrap; }
.yw-money-group[data-owed-focus] { margin: 6px 0 0; padding: 12px; border-radius: 12px; background: #f6f1fb; }
.yw-money-group[data-owed-focus-missing] { display: block; color: #7433d4; font-weight: 400; }
/* A bill: one row, the dashboard's row type. */
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child { padding: 12px 2px; column-gap: 14px; transition: background-color .16s, padding .2s; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child:hover { background-color: #faf8fc; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > div:first-child { width: auto; min-width: 116px; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > div:first-child > [class~="w-5"] { display: none; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > div:first-child > .num { color: #929097; font-size: 11px; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > .min-w-0 > div:first-child { color: #202024; font-size: 13px; font-weight: 500; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > .min-w-0 > div:nth-child(2) { margin-top: 2px; color: #a09aa4; font-size: 11px; line-height: 1.45; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > .text-right > .num { color: #202024; font-size: 14px; font-weight: 500; letter-spacing: -.3px; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > .text-right > div:last-child:not(.num) { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-top: 6px; }
.yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > .text-right > div:last-child:not(.num) > :is(a, button, span) { width: auto; margin: 0; min-height: 28px; padding: 4px 11px; border-radius: 9px; font-size: 11px; font-weight: 500; }
.yw-money-row-extra { padding: 0 2px 10px; }
@media (min-width: 768px) { .yw-money-owed .yw-money-row-extra { padding-left: 130px; } }
.yw-money-why .hw-info-label { color: #8553c2; font-size: 11px; font-weight: 500; }
.yw-money-empty { padding: 14px 2px; color: #929097; font-size: 13px; list-style: none; }

/* ------------------------------------------------ Get Paid: Closed + rows -- */
.yw-money-lane-total { margin: 14px 0 4px; color: #202024; font-size: 17px; font-weight: 500; letter-spacing: -.5px; }
.yw-money-scroll { max-height: min(40vh, 20rem); margin-top: 10px; overflow: auto; scrollbar-width: thin; scrollbar-color: #ddd2e7 transparent; }
.yw-money-lines { margin: 0; padding: 0; list-style: none; }
.yw-money-lines > li { display: flex; align-items: baseline; gap: 12px; padding: 11px 0; border-top: 1px solid #eae8ec; color: #343039; font-size: 13px; }
.yw-money-lines > li > strong { margin-left: auto; color: #202024; font-weight: 500; white-space: nowrap; }
.yw-money-muted { color: #929097; }
.yw-money-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.yw-money-table th { padding: 8px; color: #766d7c; font-size: 12px; font-weight: 500; text-align: left; white-space: nowrap; }
.yw-money-table th.text-right { text-align: right; }
.yw-money-table td { padding: 10px 8px; border-top: 1px solid #eae8ec; color: #49434e; vertical-align: top; }
.yw-money-table td:first-child, .yw-money-table th:first-child { padding-left: 0; }
.yw-money-table td:last-child, .yw-money-table th:last-child { padding-right: 0; }
.yw-money-closed [data-ui="segmented"] { margin-top: 2px; }

/* --------------------------------------------------- the Collections agent -- */
.yw-money-controls { margin-top: 10px; }
.yw-money-control-row { margin: 0; padding: 13px 0; border-top: 1px solid #eae8ec; }
.yw-money-control-row .hw-info-label { color: #202024; font-size: 13px; font-weight: 500; }
.yw-money-email { padding: 14px 0; border-top: 1px solid #eae8ec; }
.yw-money-email:first-child { border-top: 0; }
.yw-money-email pre { margin-top: 6px; padding: 12px 14px; border-radius: 12px; background: #f6f5f7; color: #59535f; }
.yw-money-drill-body { border-color: transparent; border-radius: 12px; background-color: #f6f5f7; }
.yw-money-request { padding: 14px 0 4px; border-top: 1px solid #eae8ec; }
.yw-money-request:first-child { border-top: 0; padding-top: 0; }

/* ---------------------------- wave 2: Refunds, Cancellations, Channels, Finances -- */
/* The same hero, grid, rows and table as Get Paid; these are the pieces those
   four pages add: a card that spans two columns, the striped chart box, the
   hatched bar rows, the flag words, the cancellation rows, the channel donut
   and the Waiting on you rows. Values stay ink; only flag words and pills
   take a tone. */
.yw-money-span-2 { grid-column: span 2; }
.yw-money-grid--start { align-items: start; }
.yw-money-grid + .yw-money-stack { margin-top: 16px; }
.yw-money-page .yw-hero-pill[data-pace="behind"] { color: #a96883; }
.yw-row-stat .yw-hero-pill { margin-left: 7px; padding: 3px 8px; font-size: 10px; }
.yw-row-stat-label { min-width: 0; }
.yw-money-chart { position: relative; height: 230px; margin-top: 16px; }
.yw-money-overflow { margin-top: 12px; overflow-x: auto; }
.yw-money-table--wide { min-width: 560px; }
.yw-money-scroll--tall { max-height: 32rem; }
.yw-money-scroll > .yw-money-table thead th, .yw-money-overflow > .yw-money-table thead th { position: sticky; top: 0; z-index: 1; background: #fbfbfb; }
.yw-money-table td strong { color: #202024; font-weight: 500; }
.yw-money-table td.yw-money-muted { color: #929097; }
.yw-money-flag { color: #87818c; font-size: 10px; font-weight: 500; letter-spacing: .02em; white-space: nowrap; }
.yw-money-flag[data-tone="bad"] { color: #a96883; }
.yw-money-flag[data-tone="good"] { color: #2f8a6d; }
.yw-money-flag[data-tone="accent"] { color: #7433d4; }
/* Hatched bar rows (refund causes): label, the violet share bar, the value. */
.yw-money-bars { margin-top: 12px; }
.yw-money-bar-row { display: grid; grid-template-columns: minmax(0, 8.5rem) minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid #eae8ec; color: #87818c; font-size: 12px; }
.yw-money-bar-row:first-child { border-top: 0; }
.yw-money-bar-row > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yw-money-bar-track { height: 8px; overflow: hidden; border-radius: 2px; background: #f0edf2; }
.yw-money-bar-track > i { display: block; height: 100%; border-radius: 2px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: left; animation: yw-scale-in 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-money-bar-row > strong { color: #343039; font-size: 13px; font-weight: 500; white-space: nowrap; }
.yw-money-bar-row > strong > span { color: #929097; font-weight: 400; }

/* Cancellations: the worklist and the log as hairline rows in one card. */
/* ---- Cancellations (10/10, owner: "this isnt our new design ... take a look
   at our dashboard and other tab we have redesigned"). The desk and the log
   are ranked tables in the Room Types catalog's shape: 14px cells, a hatched
   share bar for what we hold, the sort on the column head, the reason word
   carrying the policy sentence as a frosted hover. The filters are quiet
   menus in the header's look. The hero carries the aging columns, the second
   card the reason bars, the third is the action scene (kit.css .yw-insight). ---- */
.yw-cancel { margin-top: 14px; }
.yw-cancel-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.yw-cancel-menus, .yw-cancel-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yw-cancel-menu { position: relative; }
.yw-cancel-menu-btn { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 13px; font-weight: 500; letter-spacing: -.1px; transition: border-color .16s, background .16s; }
.yw-cancel-menu-btn:hover, .yw-cancel-menu-btn[aria-expanded="true"] { border-color: #c9b1ff; background: #fdfcfe; }
.yw-cancel-menu-field { color: #87818c; font-weight: 400; }
.yw-cancel-menu-btn svg { width: 12px; height: 12px; color: #a09aa4; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.yw-cancel-menu-list { position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; min-width: 230px; margin: 0; padding: 7px; border: 1px solid #e5ddea; border-radius: 15px; background: rgba(253, 252, 254, .9); -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; list-style: none; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-4px) scale(.98); transform-origin: top left; transition: opacity .18s, transform .23s cubic-bezier(.16, 1, .3, 1), visibility 0s .2s; }
.yw-cancel-menu-list[data-open] { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: opacity .18s, transform .23s cubic-bezier(.16, 1, .3, 1), visibility 0s; }
.yw-cancel-menu-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 10px 11px; border-radius: 10px; color: #202024; font-size: 13px; text-align: left; transition: background .16s, transform .2s; }
.yw-cancel-menu-option:hover, .yw-cancel-menu-option:focus-visible { background: #f0e9fb; outline: none; transform: translateX(2px); }
.yw-cancel-menu-option[aria-selected="true"] { background: #eee5fd; color: #7433d4; }
.yw-cancel-menu-count { color: #a09aa4; font-size: 12px; }
.yw-cancel-menu-option[aria-selected="true"] .yw-cancel-menu-count { color: #9d7ad8; }
/* The pick-and-copy line lives in the toolbar: one quiet sentence and the
   violet button, or the picked total and its copy buttons. */
.yw-money-page .yw-cancel-toolbar [data-ui="bulk-bar"] { position: static; flex: 1 1 auto; justify-content: flex-end; gap: 10px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; font-size: 13px; }
.yw-money-page .yw-cancel-toolbar [data-ui="bulk-bar"] :is(.text-sm, .text-xs) { font-size: 13px; }
.yw-money-page .yw-cancel-toolbar [data-ui="bulk-bar"] > div:first-child { color: #87818c; }
.yw-money-page .yw-cancel-toolbar [data-ui="bulk-bar"][data-state="picked"] > div:first-child { color: #202024; font-weight: 500; }
.yw-money-page .yw-cancel-toolbar [data-ui="bulk-bar"] button { height: 34px; padding: 0 13px; border-radius: 10px; font-size: 13px; font-weight: 500; }
.yw-money-page .yw-cancel-tools button { height: 34px; padding: 0 13px; border-radius: 10px; font-size: 13px; font-weight: 500; }
.yw-cancel-blurb { margin: 12px 0 0; color: #87818c; font-size: 13px; line-height: 1.5; }
/* The table. */
.yw-cancel-table { margin-top: 14px; font-size: 14px; }
.yw-cancel-table thead th { padding: 0 8px 10px; color: #87818c; font-size: 12.5px; font-weight: 400; box-shadow: inset 0 -1px 0 #eae8ec; }
.yw-cancel-table tbody td { padding: 13px 8px; vertical-align: middle; color: #202024; font-size: 14px; transition: background-color .16s; }
.yw-cancel-table .yw-cancel-th-pick, .yw-cancel-table .yw-cancel-td-pick { width: 26px; padding-right: 2px; }
.yw-cancel-pick { display: block; width: 16px; height: 16px; margin: 0; accent-color: #7c3aed; cursor: pointer; }
.yw-cancel-tr:hover > td { background-color: #faf8fc; }
.yw-cancel-tr[data-picked] > td { background-color: #f6f1fb; }
.yw-cancel-tr:has(.yw-cancel-why:is(:hover, :focus-visible)) { position: relative; z-index: 5; }
.yw-cancel-name { color: #202024; font-size: 14px; font-weight: 500; letter-spacing: -.2px; }
.yw-cancel-meta { margin-top: 2px; color: #87818c; font-size: 12.5px; }
.yw-cancel-table .yw-money-flag { font-size: 13px; letter-spacing: 0; }
.yw-cancel-muted { color: #b9b3be; }
.yw-cancel-td-held { white-space: nowrap; }
.yw-cancel-share { display: inline-block; width: 92px; height: 8px; margin-right: 10px; overflow: hidden; border-radius: 4px; background: #eeedf1; vertical-align: middle; }
.yw-cancel-share > i { display: block; height: 100%; border-radius: inherit; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: left; animation: yw-scale-in 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-cancel-back { font-size: 15px; font-weight: 500; letter-spacing: -.3px; white-space: nowrap; }
.yw-cancel-back[data-muted], .yw-cancel-keep [data-muted] { color: #b9b3be; font-weight: 400; }
.yw-cancel-keep { white-space: nowrap; }
.yw-cancel-sort { color: inherit; font: inherit; white-space: nowrap; }
.yw-cancel-sort:hover { color: #202024; }
.yw-cancel-sort[aria-current="page"] { color: #7c3aed; font-weight: 500; }
.yw-cancel-table .yw-money-table-group > td { padding-top: 20px; padding-bottom: 8px; font-size: 13px; }
.yw-cancel-open { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #59535f; font-size: 13px; font-weight: 500; white-space: nowrap; text-decoration: none; transition: border-color .16s, color .16s; }
.yw-cancel-open:hover { border-color: #c9b1ff; color: #7433d4; }
.yw-cancel-amt { color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; white-space: nowrap; }
.yw-cancel-amt[data-muted] { color: #b9b3be; font-weight: 400; }
.yw-cancel-amt-sub { margin-top: 1px; color: #87818c; font-size: 12px; white-space: nowrap; }
/* The reason word's hover: the policy sentence on the frosted menu surface. */
.yw-cancel-why { position: relative; cursor: default; outline: none; }
.yw-cancel-why::after {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 9; width: max-content; max-width: 340px;
  padding: 8px 12px; border: 1px solid rgba(229, 221, 234, .9); border-radius: 12px; background: rgba(253, 252, 254, .88);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  box-shadow: 0 12px 30px #3a214424, 0 2px 6px #3a21440d; color: #59535f; content: attr(data-tip);
  font-size: 13px; font-weight: 400; letter-spacing: 0; line-height: 1.45; text-align: left; white-space: normal;
  opacity: 0; pointer-events: none; transform: translateY(-4px); transition: opacity .16s ease, transform .24s cubic-bezier(.2, .8, .2, 1);
}
.yw-cancel-why:is(:hover, :focus-visible)::after { opacity: 1; transform: translateY(0); }
/* The hero's aging columns: what we hold, by how long it has waited. */
.yw-cancel-age { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 24px; }
.yw-cancel-age-col { display: flex; flex-direction: column; align-items: center; gap: 7px; min-width: 0; }
.yw-cancel-age-amt { color: #202024; font-size: 12.5px; font-weight: 500; letter-spacing: -.2px; white-space: nowrap; }
.yw-cancel-age-col[data-empty] .yw-cancel-age-amt { color: #c3bdc8; font-weight: 400; }
.yw-cancel-age-track { display: flex; align-items: flex-end; width: 100%; height: 66px; overflow: hidden; border-radius: 6px; background: #f0edf2; }
.yw-cancel-age-track > i { display: block; width: 100%; border-radius: 6px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: bottom; animation: yw-cancel-rise 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-cancel-age-label { color: #87818c; font-size: 12px; white-space: nowrap; }
@keyframes yw-cancel-rise { from { transform: scaleY(0); } }
.yw-money-hero .yw-hero-muted[data-tone="bad"] { color: #a96883; }
/* The reason bars. */
.yw-cancel-bars { margin-top: 14px; }
.yw-cancel-bars .yw-money-bar-row { padding: 13px 0; font-size: 13.5px; }
.yw-cancel-bars .yw-money-bar-row > strong { font-size: 14px; }
/* The action scene: the dashboard's insight card, its height the row's. */
.yw-insight.yw-cancel-scene { height: auto; min-height: 0; }
.yw-cancel-scene-art { position: absolute; right: 0; bottom: 0; left: 0; z-index: -2; height: 64%; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 45%); mask-image: linear-gradient(180deg, transparent 0, #000 45%); }
.yw-cancel-scene-art > canvas { display: block; width: 100%; height: 100%; mix-blend-mode: multiply; }
.yw-cancel-scene .yw-insight-top { font-size: 12px; }
.yw-cancel-scene .yw-insight-tag .hw-info-label { color: inherit; font-size: 12px; font-weight: 400; }
.yw-cancel-scene .yw-insight-count { padding: 5px 9px; border-radius: 20px; background: rgba(255, 255, 255, .55); color: #5e4380; font-size: 12px; font-weight: 500; }
.yw-cancel-scene .yw-insight-value { margin-top: 22px; }
.yw-cancel-scene h3 { max-width: 300px; font-size: 21px; }
.yw-cancel-scene .yw-insight-detail { font-size: 13px; }
.yw-cancel-scene .yw-insight-bottom { margin-top: 28px; }
.yw-cancel-scene .yw-insight-link { font-size: 13px; }

/* Channels: the distribution donut in the dashboard's violet ramp (ranked by
   revenue, the Performance tab's channel bar), and the share bars. */
.yw-channel-mix-body { display: grid; grid-template-columns: minmax(150px, 200px) minmax(0, 1fr); align-items: center; gap: 30px; margin-top: 16px; }
.yw-channel-donut { position: relative; width: 100%; max-width: 200px; aspect-ratio: 1; }
.yw-channel-donut svg { display: block; width: 100%; height: 100%; }
.yw-channel-donut-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; }
.yw-channel-donut-center strong { color: #202024; font-size: 18px; font-weight: 500; letter-spacing: -.5px; }
.yw-channel-donut-center span { margin-top: 2px; color: #929097; font-size: 10px; }
.yw-channel-legend { margin: 0; padding: 0; list-style: none; }
.yw-channel-legend > li { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto minmax(5.5em, auto); align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid #eae8ec; color: #59535f; font-size: 12px; }
.yw-channel-legend > li:first-child { border-top: 0; }
.yw-channel-legend > li > i { width: 8px; height: 8px; border-radius: 2px; }
.yw-channel-legend > li > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yw-channel-legend > li > strong { color: #202024; font-weight: 500; }
.yw-channel-legend > li > span:last-child { color: #929097; text-align: right; }
.yw-channel-swatch { display: inline-block; width: 8px; height: 8px; margin-right: 9px; border-radius: 2px; vertical-align: 1px; }
.yw-channel-ink-0 { fill: #7533df; background-color: #7533df; }
.yw-channel-ink-1 { fill: #9b63ec; background-color: #9b63ec; }
.yw-channel-ink-2 { fill: #bb91f1; background-color: #bb91f1; }
.yw-channel-ink-3 { fill: #d3b9f2; background-color: #d3b9f2; }
.yw-channel-ink-4 { fill: #8d78a8; background-color: #8d78a8; }
.yw-channel-ink-5 { fill: #a99ab9; background-color: #a99ab9; }
.yw-channel-ink-6 { fill: #c2b8cb; background-color: #c2b8cb; }
.yw-channel-ink-7 { fill: #ded7e3; background-color: #ded7e3; }
.yw-channel-share { display: inline-flex; align-items: center; gap: 8px; }
.yw-channel-share-track { width: 72px; height: 8px; overflow: hidden; border-radius: 2px; background: #f0edf2; }
.yw-channel-share-track > i { display: block; height: 100%; border-radius: 2px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); }
.yw-channel-share > span:last-child { min-width: 3.2em; color: #87818c; font-size: 12px; text-align: right; }

/* Finances: the Waiting on you rows (the dashboard's Needs you row). */
.yw-money-needs { margin: 0; padding: 0; list-style: none; }
.yw-card-head + .yw-money-needs { margin-top: 10px; }
.yw-money-need > :is(a, div) { display: flex; align-items: center; gap: 13px; padding: 11px 2px; border-top: 1px solid #eae8ec; color: inherit; text-decoration: none; }
.yw-card-head + .yw-money-needs > .yw-money-need:first-child > :is(a, div) { border-top: 0; }
.yw-money-need-mark { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 50%; background: #f6f1fb; color: #8a66bc; }
.yw-money-need-mark svg { width: 17px; height: 17px; }
.yw-money-need-title { flex: 1 1 auto; min-width: 0; color: #202024; font-size: 12px; font-weight: 500; line-height: 1.4; }
.yw-money-need-chevron { width: 14px; height: 14px; flex: 0 0 14px; stroke: #aaa4ad; stroke-width: 1.4; transition: transform .2s ease, stroke .2s ease; }
.yw-money-need > a:hover .yw-money-need-chevron, .yw-money-need > a:focus-visible .yw-money-need-chevron { transform: translateX(3px); stroke: #8151b7; }
.yw-money-need > a:focus-visible { border-radius: 10px; outline: 2px solid #b993ff; outline-offset: -2px; }
.yw-money-head-link { flex-shrink: 0; }
/* Finances keeps its own header (no section menu); its Row-1 controls take
   the same look as a Money header's. */
.yw-money-header .yw-scope-trigger-compact { display: inline-flex; align-items: center; gap: 7px; min-height: 39px; padding: 0 11px; border: 1px solid #e8e6e9; border-radius: 10px; background: #fff; box-shadow: 0 2px 6px #00000009; color: #202024; font-size: 12px; font-weight: 400; letter-spacing: -.25px; white-space: nowrap; }
.yw-money-header .yw-scope-trigger-compact:hover { background: #faf8fc; }
.yw-money-header .yw-scope-trigger-compact svg { width: 15px; height: 15px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.yw-money-header .yw-scope-trigger-compact .yw-scope-calendar, .yw-money-header .yw-scope-trigger-compact .yw-scope-chevron { display: inline-flex; }
.yw-money-header .yw-scope-trigger-compact .yw-scope-chevron { color: #8d8595; }
.yw-money-header .yw-scope-trigger-compact .yw-scope-chevron svg { width: 12px; height: 12px; }
.yw-money-header .yw-scope-trigger-compact .yw-scope-caret { display: none; }
.yw-money-header .yw-header-export-menu { margin-top: 10px; border-color: #e5ddea; border-radius: 17px; background: #fdfcfe; box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; }

/* Wave 2, narrower: a hero beside a two-column card takes its own row. */
@media (max-width: 1100px) {
  .yw-money-span-2, .yw-money-grid:has(> .yw-money-span-2) > .yw-money-hero { grid-column: 1 / -1; grid-row: auto; }
}
@media (max-width: 800px) {
  .yw-channel-mix-body { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .yw-channel-legend { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .yw-money-bar-track > i { animation: none; }
  .yw-cancel-why::after, .yw-money-need-chevron { transition: none; }
  .yw-cancel-share > i, .yw-cancel-age-track > i { animation: none; }
}

/* ---------------------------------- Labor > Schedule (10/6, cleanup PR B) -- */
/* floor/labor/builder.tsx under .yw-money-page.yw-schedule: the hero's target
   bar, and the Cleaning by day chart, which reuses the Dashboard's Last 14
   nights markup (yw-night-rail / -chart / -bar / -bar-fill / -days / -caption)
   with two series per day: needed hatched, scheduled solid. The Dashboard's
   own rules for those classes stay scoped to .yw-dashboard-overview. */
.yw-schedule .yw-schedule-hero-bar { margin: 18px 0 2px; }
.yw-schedule .yw-day-rail { margin-top: 22px; }
.yw-schedule .yw-day-chart { height: 149px; gap: 10px; }
.yw-schedule .yw-day-bar { gap: 3px; }
.yw-schedule .yw-day-bar > .yw-night-bar-fill { width: min(42%, 22px); border-radius: 4px 4px 2px 2px; transform-origin: bottom; animation: yw-bar-in 1s both; }
.yw-schedule .yw-night-bar-fill[data-series="needed"], .yw-day-swatch[data-series="needed"] { background: repeating-linear-gradient(125deg, #ae89e9 0 1.8px, #ece4fc 1.8px 4px); }
.yw-schedule .yw-night-bar-fill[data-series="scheduled"], .yw-day-swatch[data-series="scheduled"] { background: linear-gradient(#9b51f4, #7c38de); }
.yw-day-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.yw-schedule .yw-day-days { gap: 10px; margin-top: 6px; }
.yw-schedule .yw-day-days > span { color: #a09aa4; font-size: 10px; font-weight: 400; }
.yw-schedule .yw-day-days > span[data-today] { color: #7c3aed; font-weight: 500; }
.yw-schedule .yw-night-caption { margin-top: 9px; color: #929097; font-size: 10px; }
/* The header's More menu floats over the hero: give it an edge. */
.yw-schedule [data-surface="floor.labor.schedule.actions"] details > div { min-width: 16rem; border: 1px solid #e2e1e4; border-radius: 14px; background: #fff; box-shadow: 0 12px 28px rgba(48, 32, 64, .12); }
[data-theme-root].dark .yw-schedule [data-surface="floor.labor.schedule.actions"] details > div { border-color: #1c2843; background: #0d1527; box-shadow: 0 12px 28px rgba(0, 0, 0, .35); }
@media (max-width: 520px) { .yw-schedule .yw-day-chart, .yw-schedule .yw-day-days { gap: 5px; } .yw-schedule .yw-day-chart { height: 120px; } }
@media (prefers-reduced-motion: reduce) { .yw-schedule .yw-day-bar > .yw-night-bar-fill { animation: none; } }

/* ---------------------------------------------------------- narrower -- */
@media (max-width: 1100px) {
  .yw-money-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .yw-money-grid > .yw-money-hero { grid-row: span 2; }
  .yw-money-grid--after > .yw-money-closed { grid-column: 1 / -1; }
  .yw-money-grid--after > .yw-money-hero { grid-row: auto; }
}
@media (max-width: 800px) {
  .yw-money-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .yw-money-grid > .yw-money-hero { grid-row: auto; }
  .yw-money-grid--after > .yw-money-closed { grid-column: auto; }
}
@media (max-width: 520px) {
  .yw-money-page .yw-card { padding: 18px; border-radius: 20px; }
  .yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child > div:first-child { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .yw-money-aging:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-surface="money.aging"] [class~="bg-violet-500"] { animation: none; }
  .yw-row-stats > a.yw-row-stat, .yw-money-owed:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) [data-ui="moves-card"] > ol > li > div:first-child { transition: none; }
}

/* --------------------------------------------------------------- dark -- */
/* The warm dark palette: canvas #202024, card #2a2a30 / border #414148,
   raised #35353c, selected #3f2d5c / #c9b1ff, text #f3eef8 / #c3b9cc /
   #a297ab, links #c5a8ff. Never the navy of globals.css's .dark remap: the
   ramps are re-pointed under the root, and the remap's hard-coded rules
   (.dark .bg-white, .dark input, the text tints) are answered one by one. */
[data-theme-root].dark .yw-money-page {
  color: #f3eef8;
  --color-zinc-50: #101a2f;
  --color-zinc-100: #142036;
  --color-zinc-200: #1c2843;
  --color-zinc-300: #273656;
  --color-zinc-400: #8f8996;
  --color-zinc-500: #a297ab;
  --color-zinc-600: #c3b9cc;
  --color-zinc-700: #d9d2e3;
  --color-zinc-800: #ece6f2;
  --color-zinc-900: #f3eef8;
  --color-zinc-950: #faf8fc;
  --color-violet-50: #2f2638;
  --color-violet-100: #3f2d5c;
  --color-violet-200: #4a3a63;
  --color-violet-300: #5c4a78;
  --color-violet-500: #c5a8ff;
  --color-violet-700: #c9b1ff;
  --color-violet-800: #d9c8f0;
  --color-emerald-50: #26332e;
  --color-emerald-200: #345a4c;
  --color-emerald-300: #3f6b5a;
  --color-rose-50: #3a2a31;
  --color-rose-200: #5a3a4b;
  --color-rose-300: #6b4659;
  --color-amber-50: #3d3122;
  --color-amber-100: #45382a;
  --color-amber-200: #594a35;
  --color-amber-300: #6b5a40;
}
/* The generic dark rules keep the light ones' trick: one weight
   ([data-theme-root].dark .yw-money-page, which already outranks globals.css's
   .dark .bg-white), order decides, a named component wins. */
[data-theme-root].dark .yw-money-page :where(
  .bg-white, :is(section, div, article, form, p, ul, ol)[class~="rounded-2xl"][class~="border"],
  section[data-panel], [data-ui="stat-card"], [data-ui="moves-card"], [data-ui="connect-prompt"], [data-ui="notice"],
  .yw-card, [class~="border-dashed"]
) { border-color: #1c2843; background-color: #0d1527; background-image: none; box-shadow: none; }
[data-theme-root].dark .yw-money-page :where(
  :is([class~="rounded-2xl"][class~="border"], section[data-panel], .yw-card)
  :is([class~="rounded-2xl"], [class~="rounded-xl"])[class~="border"]:not([data-ui="segmented"], [data-ui="tab-bar"]),
  .yw-money-drill-body, .yw-money-email pre
) { border-color: transparent; background-color: #142036; }
[data-theme-root].dark .yw-money-page .yw-money-aging [data-surface="money.aging"],
[data-theme-root].dark .yw-money-page .yw-money-owed [data-ui="moves-card"] { border-color: transparent; background-color: transparent; }
[data-theme-root].dark .yw-money-page :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { border-color: #1c2843; background-color: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is([class*="text-rose-6"], [class*="text-rose-7"], [class*="text-rose-8"]) { color: #e69ac4; }
[data-theme-root].dark .yw-money-page :is([class*="text-emerald-6"], [class*="text-emerald-7"], [class*="text-emerald-8"]) { color: #7fd3b4; }
[data-theme-root].dark .yw-money-page :is([class*="text-amber-6"], [class*="text-amber-7"], [class*="text-amber-8"], [class*="text-amber-9"]) { color: #e6bd7f; }
[data-theme-root].dark .yw-money-page :is(button, a)[class~="bg-violet-600"] { background-color: #7c3aed; background-image: none; box-shadow: none; }
[data-theme-root].dark .yw-money-page :is(button, a)[class~="bg-violet-600"]:hover { background-color: #8b4dfb; }
[data-theme-root].dark .yw-money-page a[class~="text-violet-600"] { color: #c5a8ff; }
[data-theme-root].dark .yw-money-page :is([data-ui="section-label"], section[data-panel] > div:first-child > h2, [data-ui="connect-prompt"] > h3, [data-ui="notice"] > :first-child, [data-ui="preparing"] > :first-child) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page [data-ui="stat-card"] > .num { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is([data-ui="stat-card"] > div:first-child > div:first-child, [data-ui="stat-card"] > div:last-child:not(.num), section[data-panel] > div:first-child > span.num) { color: #a297ab; }
[data-theme-root].dark .yw-money-page :is([data-ui="notice"], [data-ui="preparing"], [data-ui="connect-prompt"]) p { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page section[data-panel] > div:last-child,
[data-theme-root].dark .yw-money-page [data-ui="moves-card"] > :is(header, ol > li, div:last-child),
[data-theme-root].dark .yw-money-page tbody tr { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page tbody tr:hover { background-color: #111b30; }
[data-theme-root].dark .yw-money-page thead :is(th, tr) { color: #a297ab; }
[data-theme-root].dark :is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) { background-color: #142036; }
[data-theme-root].dark :is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) > :is(a, button, span) { color: #c3b9cc; }
[data-theme-root].dark :is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) > :is(a, button):hover { background-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark :is(.yw-money-page, header[data-title-menu]) :is([data-ui="tab-bar"], [data-ui="segmented"]) > [class~="bg-violet-600"] { background-color: #3f2d5c; color: #c9b1ff; box-shadow: none; }
[data-theme-root].dark .yw-money-page [data-ui="badge"] { background: #142036; box-shadow: none; color: #c3b9cc; }
[data-theme-root].dark .yw-money-page [data-ui="badge"][data-tone="push"] { color: #7fd3b4; }
[data-theme-root].dark .yw-money-page [data-ui="badge"]:is([data-tone="rescue"], [data-tone="gold"]) { color: #e69ac4; }
[data-theme-root].dark .yw-money-page [data-ui="badge"][data-tone="violet"] { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page [data-ui="badge"][data-tone="blue"] { color: #a9b4e6; }
[data-theme-root].dark .yw-money-page [data-ui="count-chip"] { background-color: #142036; color: #c3b9cc; box-shadow: none; }
[data-theme-root].dark .yw-money-page [data-ui="count-chip"][data-on] { background-color: #3f2d5c; color: #c9b1ff; }
[data-theme-root].dark .yw-money-page [data-ui="bulk-bar"] { border-color: #1c2843; background-color: rgba(13, 21, 39, .94); box-shadow: 0 8px 22px rgba(0, 0, 0, .25); }
[data-theme-root].dark .yw-money-page [data-ui="bulk-bar"][data-state="idle"] { background: transparent; box-shadow: none; }
[data-theme-root].dark .yw-money-page [data-ui="bulk-bar"][data-state="picked"] .text-violet-800 { color: #f3eef8; }
[data-theme-root].dark .yw-money-page [data-ui="bulk-bar"][data-state="idle"] > div:first-child { color: #a297ab; }
/* The shared dashboard pieces, warm under the Money root (overview.css's own
   dark twins are the dashboard's). */
[data-theme-root].dark .yw-money-page :is(.yw-card-title, .yw-hero-value, .yw-money-lead, .yw-row-stat-value, .yw-row-stat dd, .yw-money-group, .yw-money-group-amount, .yw-money-lane-total, .yw-money-lines > li > strong) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-card-sub, .yw-hero-muted, .yw-row-stat, .yw-money-note, .yw-money-group-note, .yw-money-group-count, .yw-money-muted, .yw-money-empty) { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-money-note[data-tone="bad"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-hero-summary, [data-theme-root].dark .yw-money-page .yw-money-lines > li, [data-theme-root].dark .yw-money-page .yw-money-table td { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page :is(.yw-text-link, .yw-money-drill-count, .yw-money-why .hw-info-label) { color: #c5a8ff; }
[data-theme-root].dark .yw-money-page :is(.yw-row-stat, .yw-money-lines > li, .yw-money-table td, .yw-money-control-row, .yw-money-email, .yw-money-request, .yw-money-owed [data-ui="moves-card"] > ol, .yw-money-owed [data-ui="moves-card"] > ol > li) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-hero-pill { background: #142036; box-shadow: none; color: #d9cfe3; }
[data-theme-root].dark .yw-money-page .yw-hero-pill[data-pace="ahead"] { color: #7fd3b4; }
[data-theme-root].dark .yw-money-page :is(a.yw-more, .yw-more button) { border-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-more button::after { color: #f3eef8; }
[data-theme-root].dark .yw-schedule .yw-night-bar-fill[data-series="needed"], [data-theme-root].dark .yw-schedule .yw-day-swatch[data-series="needed"] { background: repeating-linear-gradient(125deg, #a883ee 0 1.8px, #3f3352 1.8px 4px); }
[data-theme-root].dark .yw-schedule .yw-night-bar-fill[data-series="scheduled"], [data-theme-root].dark .yw-schedule .yw-day-swatch[data-series="scheduled"] { background: linear-gradient(#a56cff, #7c3aed); }
[data-theme-root].dark .yw-schedule :is(.yw-day-days > span, .yw-night-caption, .yw-hero-note) { color: #a297ab; }
[data-theme-root].dark .yw-schedule .yw-day-days > span[data-today] { color: #c5a8ff; }
/* The Labor buttons and pills carry dark:text-zinc-300, which the warm ramp
   above re-points at a border grey (#4d4d55); read them as body text. */
[data-theme-root].dark .yw-schedule :is(a, button, summary)[class~="dark:text-zinc-300"], [data-theme-root].dark .yw-schedule summary[aria-label] { color: #d9d2e3; }
[data-theme-root].dark .yw-money-page :is(a.yw-more:hover, .yw-more button:hover, .yw-more button[aria-expanded="true"]) { background: #142036; }
[data-theme-root].dark .yw-money-page .yw-money-group[data-owed-focus] { background: #2f2638; }
[data-theme-root].dark .yw-money-page .yw-money-owed [data-ui="moves-card"] > ol > li > div:first-child:hover { background-color: #111b30; }
[data-theme-root].dark .yw-money-page .yw-money-owed [data-ui="moves-card"] > ol > li > div:first-child > .min-w-0 > div:first-child,
[data-theme-root].dark .yw-money-page .yw-money-owed [data-ui="moves-card"] > ol > li > div:first-child > .text-right > .num { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-money-aging [data-surface="money.aging"] > div > div > div:first-child > div:last-child { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-money-aging [data-surface="money.aging"] > div > div > div:last-child { background-color: #142036; }
[data-theme-root].dark .yw-money-page .yw-money-aging [data-surface="money.aging"] [class~="bg-violet-500"] { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark .yw-money-page .yw-money-control-row .hw-info-label { color: #f3eef8; }
/* The header, warm. */
[data-theme-root].dark header[data-title-menu] .yw-scope-trigger-compact { border-color: #1c2843; background: #0d1527; box-shadow: none; color: #f3eef8; }
[data-theme-root].dark header[data-title-menu] .yw-scope-trigger-compact:hover { background: #142036; }
[data-theme-root].dark header[data-title-menu] .yw-scope-trigger-compact .yw-scope-chevron { color: #a297ab; }
[data-theme-root].dark header[data-title-menu] .yw-header-export-menu { border-color: #1c2843; background: #0d1527; box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; color: #f3eef8; }
[data-theme-root].dark header[data-title-menu] .yw-header-control { background: #142036; color: #f3eef8; }
[data-theme-root].dark header[data-title-menu] .yw-header-control:hover { background: #1c2843; }
[data-theme-root].dark .yw-money-section-options { border-color: #1c2843; background: #0d1527; color: #f3eef8; box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; scrollbar-color: #5a4a6d transparent; }
[data-theme-root].dark .yw-money-section-options .yw-dashboard-tab-option:hover, [data-theme-root].dark .yw-money-section-options .yw-dashboard-tab-option:focus-visible { background: #142036; }
/* Wave 2 (Refunds, Cancellations, Channels, Finances), dark. */
[data-theme-root].dark .yw-money-page .yw-hero-pill[data-pace="behind"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-name, .yw-cancel-amount > div:first-child, .yw-money-bar-row > strong, .yw-money-table td strong, .yw-channel-legend > li > strong, .yw-channel-donut-center strong, .yw-money-need-title) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-meta, .yw-cancel-amount > div + div, .yw-cancel-blurb, .yw-money-bar-row, .yw-money-bar-row > strong > span, .yw-channel-legend > li > span:last-child, .yw-channel-donut-center span, .yw-channel-share > span:last-child) { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-cancel-amount > div:first-child[data-muted] { color: #6f6975; }
[data-theme-root].dark .yw-money-page .yw-money-table td.yw-money-muted { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-channel-legend > li { color: #c3b9cc; }
/* The flag on its own line (10/10): inside the :is() above, :last-child lifted the
   list to (0,5,2) and every dark tone rule below it, at (0,5,0), lost. */
[data-theme-root].dark .yw-money-page .yw-money-flag { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-money-flag[data-tone="bad"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-money-flag[data-tone="good"] { color: #7fd3b4; }
[data-theme-root].dark .yw-money-page .yw-money-flag[data-tone="accent"] { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page :is(.yw-money-bar-row, .yw-channel-legend > li, .yw-money-need > a, .yw-money-need > div) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-cancel-menu-btn { border-color: #1c2843; background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-cancel-menu-btn:hover, [data-theme-root].dark .yw-money-page .yw-cancel-menu-btn[aria-expanded="true"] { border-color: #5a4a6d; background: #1c2843; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-menu-field, .yw-cancel-menu-btn svg, .yw-cancel-menu-count) { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-cancel-menu-list { border-color: #1c2843; background: rgba(13, 21, 39, .9); box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; }
[data-theme-root].dark .yw-money-page .yw-cancel-menu-option { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-cancel-menu-option:hover, [data-theme-root].dark .yw-money-page .yw-cancel-menu-option:focus-visible { background: #142036; }
[data-theme-root].dark .yw-money-page .yw-cancel-menu-option[aria-selected="true"] { background: #3f2d5c; color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-cancel-menu-option[aria-selected="true"] .yw-cancel-menu-count { color: #a68fd6; }
[data-theme-root].dark .yw-money-page .yw-cancel-toolbar [data-ui="bulk-bar"] > div:first-child { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-cancel-toolbar [data-ui="bulk-bar"][data-state="picked"] > div:first-child { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-cancel-table thead th { color: #a297ab; box-shadow: inset 0 -1px 0 #1c2843; }
[data-theme-root].dark .yw-money-page .yw-cancel-table tbody td { border-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-cancel-tr:hover > td { background-color: #111b30; }
[data-theme-root].dark .yw-money-page .yw-cancel-tr[data-picked] > td { background-color: #2f2638; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-meta, .yw-cancel-amt-sub, .yw-cancel-age-label, .yw-cancel-sort) { color: #a297ab; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-muted, .yw-cancel-back[data-muted], .yw-cancel-keep [data-muted], .yw-cancel-amt[data-muted], .yw-cancel-age-col[data-empty] .yw-cancel-age-amt) { color: #6f6975; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-amt, .yw-cancel-age-amt, .yw-cancel-sort:hover) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-cancel-sort[aria-current="page"] { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-share, .yw-cancel-age-track) { background: #142036; }
[data-theme-root].dark .yw-money-page :is(.yw-cancel-share > i, .yw-cancel-age-track > i) { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark .yw-money-page .yw-money-hero .yw-hero-muted[data-tone="bad"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-cancel-open { border-color: #1c2843; background: #142036; color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-cancel-open:hover { border-color: #5a4a6d; color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-cancel-why::after { border-color: rgba(28, 40, 67, .9); background: rgba(13, 21, 39, .86); color: #c3b9cc; box-shadow: 0 12px 30px #00000066; }
[data-theme-root].dark .yw-cancel-scene-art > canvas { filter: invert(1) hue-rotate(180deg); mix-blend-mode: screen; opacity: .55; }
[data-theme-root].dark .yw-cancel-scene .yw-insight-count { background: rgba(255, 255, 255, .1); color: #d9c8f0; }
[data-theme-root].dark .yw-money-page :is(.yw-money-bar-track, .yw-channel-share-track) { background: #142036; }
[data-theme-root].dark .yw-money-page :is(.yw-money-bar-track > i, .yw-channel-share-track > i) { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark .yw-money-page :is(.yw-money-scroll, .yw-money-overflow) > .yw-money-table thead th { background: #0d1527; }
[data-theme-root].dark .yw-money-page .yw-money-need-mark { background: #3f2d5c; color: #c9b1ff; }
[data-theme-root].dark .yw-channel-ink-0 { fill: #9c6cf0; background-color: #9c6cf0; }
[data-theme-root].dark .yw-channel-ink-1 { fill: #b48cf5; background-color: #b48cf5; }
[data-theme-root].dark .yw-channel-ink-2 { fill: #cdb2f8; background-color: #cdb2f8; }
[data-theme-root].dark .yw-channel-ink-3 { fill: #e3d4fb; background-color: #e3d4fb; }
[data-theme-root].dark .yw-money-header .yw-scope-trigger-compact { border-color: #1c2843; background: #0d1527; box-shadow: none; color: #f3eef8; }
[data-theme-root].dark .yw-money-header .yw-scope-trigger-compact:hover { background: #142036; }
[data-theme-root].dark .yw-money-header .yw-header-control { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-header .yw-header-control:hover { background: #1c2843; }
[data-theme-root].dark .yw-money-header .yw-header-export-menu { border-color: #1c2843; background: #0d1527; box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; color: #f3eef8; }
/* The card hover lift is motion.css's; its dark edge is here (motion.css owns no colour). */
@media (hover: hover) {
  [data-theme-root].dark .yw-money-page .yw-card:hover { border-color: #55505d; box-shadow: 0 8px 22px rgba(0, 0, 0, .18); }
}

/* The "Compare to" control in a Money header (period-controls.tsx
   ComparePeriodSelect). It sits in the header, outside .yw-money-page, and its
   Tailwind classes have no dark background, so in dark mode the value read
   dark on dark. Money headers carry data-title-menu. */
header[data-title-menu] .yw-compare-trigger { height: 39px; border-color: #e8e6e9; border-radius: 10px; background: #fff; color: #202024; font-weight: 400; box-shadow: 0 2px 6px #00000009; }
header[data-title-menu] .yw-compare-trigger > span:first-child { color: #87818c; font-weight: 400; }
header[data-title-menu] .yw-compare-menu { border-color: #e5ddea; border-radius: 17px; background: #fdfcfe; box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; }
[data-theme-root].dark header[data-title-menu] .yw-compare-trigger { border-color: #1c2843; background: #142036; color: #f3eef8; box-shadow: none; }
[data-theme-root].dark header[data-title-menu] .yw-compare-trigger:hover { background: #1c2843; }
[data-theme-root].dark header[data-title-menu] .yw-compare-trigger > span:first-child { color: #a297ab; }
[data-theme-root].dark header[data-title-menu] .yw-compare-menu { border-color: #1c2843; background: #0d1527; box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; }

/* ---- wave 3: Commissions ---- */
/* Commissions (commissions/*), 10/11 (owner: "this tab also needs a complete
   re design ... the new design style we have in the dashboard"). The Get
   Paid shape as Cancellations has it: the hero (the measured dollar, the
   four kinds as hatched share bars, Recovered as a row), what each channel
   keeps (a row per channel, the measured rate as a hatched track on a 0 to
   25% scale with the configured rate as a tick), the bills as the insight
   card with one upload button; then the findings table, the bills on file
   table and Recovered. 14px cells, nothing under 12px. Values stay ink (an
   estimate a quieter ink); only the kind dot, the "expires" word and a
   statement's status word take a tone. */
.yw-money-page > .yw-commission-off { margin-top: 18px; }
.yw-commission-off .yw-commission-cta { margin-top: 16px; }

/* The kind dot: identity at pinpoint size, beside its word. An estimate is
   the one hollow dot, so it never reads as measured. */
.yw-commission-dot { background-color: #d6d2da; }
.yw-commission-dot:is([data-kind="cards"], [data-kind="vcc-uncharged"]) { background-color: #c85f84; }
.yw-commission-dot:is([data-kind="kept"], [data-kind="money-kept"]) { background-color: #5f6aa3; }
.yw-commission-dot:is([data-kind="rate"], [data-kind="over-rate"]) { background-color: #7c3aed; }
.yw-commission-dot:is([data-kind="tocheck"], [data-kind="cancelled"], [data-kind="no-show"], [data-kind="modified-down"]) { background-color: #c4a46f; }
.yw-commission-dot[data-kind="unchecked"] { border: 1.5px solid #c4a46f; background-color: transparent; }

/* The hero's bars: each kind a share of every dollar in the list, the
   value a link to exactly the rows it counted. The estimate's bar is the
   quieter hatch. */
.yw-commission-bars { margin-top: 22px; }
.yw-commission-bar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(72px, 112px) auto; align-items: center; gap: 4px 16px; padding: 12px 0; border-top: 1px solid #eae8ec; }
.yw-commission-bar-label { display: block; min-width: 0; color: #59535f; font-size: 13.5px; }
.yw-commission-tile-sub { display: block; margin-top: 2px; color: #a09aa4; font-size: 12px; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.yw-commission-bar-track { display: block; height: 8px; overflow: hidden; border-radius: 4px; background: #f0edf2; }
.yw-commission-bar-track > i { display: block; height: 100%; border-radius: 4px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: left; animation: yw-scale-in 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-commission-bar-track > i[data-estimated] { background: repeating-linear-gradient(125deg, #cdbfe6 0 2px, #ece6f6 2px 4px); }
.yw-commission-bar-value { color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; white-space: nowrap; }
.yw-commission-bar[data-quiet] .yw-commission-bar-value { color: #a09aa4; font-size: 13px; font-weight: 400; letter-spacing: 0; }
.yw-commission-recovered-row { margin-top: 0; }
.yw-row-stat[data-quiet] > .yw-row-stat-value { color: #a09aa4; }
.yw-commission-tile-link { display: inline-flex; align-items: baseline; gap: 5px; text-decoration: none; }
.yw-commission-chevron { color: #8553c2; font-size: 13px; transition: transform .2s ease, color .2s ease; }
.yw-commission-tile-link:hover .yw-commission-chevron, .yw-commission-tile-link:focus-visible .yw-commission-chevron { color: #7c3aed; transform: translateX(2px); }
.yw-commission-tile-link:focus-visible { border-radius: 6px; outline: 2px solid #b993ff; outline-offset: 2px; }
/* The breakdown of the lead figure, inside the hero's "···". */
.yw-commission-breakdown { display: block; }
.yw-commission-breakdown-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid rgba(127, 110, 140, .16); }
.yw-commission-breakdown-row:first-child { border-top: 0; }
.yw-commission-breakdown-row > span:nth-child(2) { flex: 1 1 auto; min-width: 0; }
.yw-commission-breakdown-row > strong { color: #202024; font-weight: 500; white-space: nowrap; }
.yw-commission-estimated { color: #9a805f; font-size: 12px; font-weight: 500; }

/* What each channel keeps: a row per channel, the rate as a track. */
.yw-commission-channels { margin-top: 14px; }
.yw-commission-channel-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(80px, 120px) auto; align-items: center; gap: 4px 16px; padding: 13px 0; border-top: 1px solid #eae8ec; }
.yw-commission-channel-row:first-child { border-top: 0; }
.yw-commission-channel-label { display: block; min-width: 0; color: #202024; font-size: 14px; font-weight: 500; }
.yw-commission-channel-label .hw-info-label { color: inherit; }
.yw-commission-rate { position: relative; display: block; height: 8px; overflow: visible; border-radius: 4px; background: #f0edf2; }
.yw-commission-rate > i { display: block; height: 100%; border-radius: 4px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: left; animation: yw-scale-in 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-commission-rate > i[data-configured] { background: repeating-linear-gradient(125deg, #cdbfe6 0 2px, #ece6f6 2px 4px); }
.yw-commission-rate > b { position: absolute; top: -3px; width: 2px; height: 14px; margin-left: -1px; border-radius: 1px; background: #202024; }
.yw-commission-channel-value { color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; white-space: nowrap; }
.yw-commission-channel-row[data-quiet] .yw-commission-channel-value { color: #a09aa4; font-size: 13px; font-weight: 400; letter-spacing: 0; }
.yw-commission-months { width: 100%; margin-top: 8px; border-collapse: collapse; font-size: 12px; }
.yw-commission-months td { padding: 4px 0; border-top: 1px solid rgba(127, 110, 140, .16); white-space: nowrap; }
.yw-commission-months td + td { padding-left: 12px; text-align: right; }
.yw-commission-months td:first-child { color: #87818c; }

/* Your OTA bills: the insight card as the action. */
.yw-insight.yw-commission-bills { height: auto; min-height: 0; }
.yw-commission-bills-art { position: absolute; right: 0; bottom: 0; left: 0; z-index: -2; height: 64%; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 45%); mask-image: linear-gradient(180deg, transparent 0, #000 45%); }
.yw-commission-bills-art > canvas { display: block; width: 100%; height: 100%; mix-blend-mode: multiply; }
.yw-commission-bills .yw-insight-top { font-size: 12px; }
.yw-commission-bills .yw-insight-tag .hw-info-label { color: inherit; font-size: 12px; font-weight: 400; }
.yw-commission-bills .yw-insight-count { padding: 5px 9px; border-radius: 20px; background: rgba(255, 255, 255, .55); color: #5e4380; font-size: 12px; font-weight: 500; }
.yw-commission-bills .yw-insight-value { margin-top: 22px; }
.yw-commission-bills h3 { max-width: 300px; font-size: 21px; }
.yw-commission-bills .yw-insight-detail { font-size: 13px; }
.yw-commission-bills .yw-insight-bottom { margin-top: 26px; }
.yw-commission-upload { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.yw-commission-choose { position: relative; cursor: pointer; font-size: 13px; font-weight: 500; }
.yw-commission-choose[data-state="dragging"] { background: #fff; outline: 2px solid #8e4af0; outline-offset: 2px; }
.yw-commission-choose[data-state="busy"] { cursor: progress; opacity: .75; }
.yw-commission-choose-hint { color: #725289; font-size: 12px; }
.yw-commission-upload-error { flex-basis: 100%; margin: 0; color: #8f3a5e; font-size: 12px; }
.yw-commission-bills .yw-commission-job { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin: 12px 0 0; color: #5e4380; font-size: 12.5px; }
.yw-commission-bills .yw-commission-job[data-tone="bad"] { color: #8f3a5e; }
.yw-commission-dismiss { flex-shrink: 0; padding: 0 4px; border: 0; background: transparent; color: inherit; font-size: 15px; line-height: 1.1; opacity: .7; cursor: pointer; }
.yw-commission-dismiss:hover { opacity: 1; }

/* The findings worklist: the Kind menu in the head, the shared table at
   the Room Types scale, the actions as quiet pills. */
.yw-commission-filter { display: flex; flex-shrink: 0; align-items: center; gap: 8px; }
.yw-money-page .yw-commission-filter [data-ui="filter-select"] { height: 34px; padding: 0 12px; font-size: 13px; font-weight: 500; }
.yw-commission-findings .yw-money-overflow { margin-top: 14px; }
/* No scroller around these tables (10/11): the amount's and the status word's hovers hang below the row, and an overflow:auto wrapper would clip them and grow a scrollbar for the invisible one on the last row. The page is desktop only; the wrapper class stays for the gate. */
.yw-commission-findings .yw-money-overflow, .yw-money-overflow.yw-commission-flat { overflow: visible; }
.yw-commission-table { min-width: 720px; font-size: 14px; }
.yw-commission-table thead th { padding: 0 8px 10px; color: #87818c; font-size: 12.5px; font-weight: 400; box-shadow: inset 0 -1px 0 #eae8ec; }
.yw-commission-table tbody td { padding: 13px 8px; vertical-align: middle; color: #202024; font-size: 14px; }
.yw-commission-table th a.yw-commission-sort { color: inherit; text-decoration: none; }
.yw-commission-table th a.yw-commission-sort:hover { color: #202024; }
.yw-commission-table th[data-sorted] a.yw-commission-sort { color: #7c3aed; font-weight: 500; }
.yw-commission-kind { display: inline-flex; align-items: center; gap: 8px; color: #202024; font-weight: 500; white-space: nowrap; }
.yw-commission-channel { color: #202024; white-space: nowrap; }
.yw-commission-res { margin-top: 2px; color: #87818c; font-size: 12.5px; }
.yw-commission-stay { color: #59535f; }
.yw-commission-amount { position: relative; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; white-space: nowrap; cursor: default; outline: none; }
.yw-commission-amount[data-grade="estimated"] { color: #6f6975; }
.yw-commission-amount[data-grade="none"] { color: #a09aa4; font-size: 13px; font-weight: 400; letter-spacing: 0; }
.yw-commission-amount::after {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 9; width: max-content; max-width: 300px;
  padding: 8px 12px; border: 1px solid rgba(229, 221, 234, .9); border-radius: 12px; background: rgba(253, 252, 254, .88);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  box-shadow: 0 12px 30px #3a214424, 0 2px 6px #3a21440d; color: #59535f; content: attr(data-tip);
  font-size: 13px; font-weight: 400; letter-spacing: 0; line-height: 1.45; text-align: left; white-space: normal;
  opacity: 0; pointer-events: none; transform: translateY(-4px); transition: opacity .16s ease, transform .24s cubic-bezier(.2, .8, .2, 1);
}
.yw-commission-amount:is(:hover, :focus-visible)::after { opacity: 1; transform: translateY(0); }
.yw-commission-row:has(.yw-commission-amount:is(:hover, :focus-visible)) { position: relative; z-index: 5; }
.yw-commission-grade { margin-top: 1px; color: #a09aa4; font-size: 12px; }
.yw-commission-what { color: #59535f; font-size: 13px; line-height: 1.4; }
.yw-commission-what[data-urgent] { color: #a96883; font-weight: 500; }
.yw-commission-also { margin-top: 2px; color: #a09aa4; font-size: 12px; line-height: 1.4; }
.yw-commission-acts { display: inline-flex; align-items: center; gap: 6px; }
.yw-commission-act { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #59535f; font-size: 13px; font-weight: 500; text-decoration: none; white-space: nowrap; cursor: pointer; transition: border-color .16s, color .16s; }
.yw-commission-act:hover { border-color: #c9b1ff; color: #7433d4; }
.yw-commission-act[data-quiet] { border-color: transparent; background: transparent; color: #87818c; }
.yw-commission-act[data-quiet]:hover { border-color: #e2e1e4; color: #202024; }
.yw-commission-act[data-case] { color: #7433d4; }
.yw-commission-act[aria-expanded="true"] { border-color: #c9b1ff; background: #eee5fd; color: #7433d4; }
.yw-commission-act:focus-visible { outline: 2px solid #b993ff; outline-offset: 1px; }
.yw-money-page .yw-commission-row[data-open] > td { background-color: #faf8fc; }
.yw-money-table .yw-commission-detail-row > td { padding: 0 0 14px; border-top: 0; }
.yw-money-page tbody tr.yw-commission-detail-row:hover { background-color: transparent; }
.yw-commission-detail { display: block; padding: 14px 16px; border-radius: 14px; background: #f6f5f7; color: #59535f; font-size: 13px; line-height: 1.55; }
.yw-commission-detail > * + * { margin-top: 8px; }
.yw-commission-detail pre { padding: 12px 14px; border-radius: 12px; background: #fff; color: #59535f; font-size: 12px; line-height: 1.6; }
.yw-commission-steps { margin: 0; padding-left: 18px; list-style: decimal; }
.yw-commission-steps > li + li { margin-top: 4px; }
.yw-commission-recover-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yw-commission-recover-input { width: 180px; height: 34px; padding: 0 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 13px; outline: none; }
.yw-commission-recover-input:focus { border-color: #c9b1ff; }
.yw-commission-recover-submit { height: 34px; padding: 0 13px; border-radius: 10px; background: #7c3aed; color: #fff; font-size: 13px; font-weight: 500; }
.yw-commission-recover-submit:hover { background: #6d2fd6; }

/* Bills on file: one table, the unmatched lines under it. */
.yw-commission-files { font-size: 14px; }
.yw-commission-files thead th { padding: 0 8px 10px; color: #87818c; font-size: 12.5px; font-weight: 400; box-shadow: inset 0 -1px 0 #eae8ec; }
.yw-commission-files tbody td { padding: 12px 8px; vertical-align: middle; color: #202024; font-size: 14px; }
.yw-commission-files .yw-money-flag { font-size: 13px; letter-spacing: 0; }
.yw-commission-file > a { color: #202024; font-weight: 500; text-decoration: none; }
.yw-commission-file > a:hover { color: #7c3aed; text-decoration: underline; text-underline-offset: 2px; }
.yw-commission-file-why { position: relative; cursor: default; outline: none; }
.yw-commission-file-why::after {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 9; width: max-content; max-width: 320px;
  padding: 8px 12px; border: 1px solid rgba(229, 221, 234, .9); border-radius: 12px; background: rgba(253, 252, 254, .88);
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  box-shadow: 0 12px 30px #3a214424, 0 2px 6px #3a21440d; color: #59535f; content: attr(data-tip);
  font-size: 13px; font-weight: 400; letter-spacing: 0; line-height: 1.45; text-align: left; white-space: normal;
  opacity: 0; pointer-events: none; transform: translateY(-4px); transition: opacity .16s ease, transform .24s cubic-bezier(.2, .8, .2, 1);
}
.yw-commission-file-why:is(:hover, :focus-visible)::after { opacity: 1; transform: translateY(0); }
.yw-commission-files .yw-money-flag[data-tone="amber"] { color: #9a805f; }
.yw-commission-unmatched { margin-top: 6px; }
.yw-commission-unmatched .yw-money-group { font-size: 13.5px; }
.yw-commission-unmatched .yw-money-lines > li { font-size: 13.5px; }
.yw-commission-unmatched .yw-money-lines > li > span:first-child { flex: 1 1 auto; min-width: 0; }
/* The download guide, inside the bills tag's hover. */
.yw-commission-guide { display: block; }
.yw-commission-guide-head { display: block; margin-top: 12px; color: #202024; font-weight: 500; }
.yw-commission-guide-head:first-child { margin-top: 0; }
.yw-commission-guide ol { margin: 4px 0 0; padding-left: 18px; list-style: decimal; }
.yw-commission-guide li + li { margin-top: 3px; }
.yw-commission-guide-link { color: #7c3aed; font-weight: 500; }
.yw-commission-guide-link:hover { text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 800px) {
  .yw-commission-findings > .yw-card-head { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .yw-commission-chevron, .yw-commission-amount::after, .yw-commission-file-why::after { transition: none; }
  .yw-commission-bar-track > i, .yw-commission-rate > i { animation: none; }
}

/* Wave 3 (Commissions), dark. */
[data-theme-root].dark .yw-commission-dot { background-color: #273656; }
[data-theme-root].dark .yw-commission-dot:is([data-kind="cards"], [data-kind="vcc-uncharged"]) { background-color: #e69ac4; }
[data-theme-root].dark .yw-commission-dot:is([data-kind="kept"], [data-kind="money-kept"]) { background-color: #a9b4e6; }
[data-theme-root].dark .yw-commission-dot:is([data-kind="rate"], [data-kind="over-rate"]) { background-color: #c5a8ff; }
[data-theme-root].dark .yw-commission-dot:is([data-kind="tocheck"], [data-kind="cancelled"], [data-kind="no-show"], [data-kind="modified-down"]) { background-color: #e6bd7f; }
[data-theme-root].dark .yw-commission-dot[data-kind="unchecked"] { border-color: #e6bd7f; background-color: transparent; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-bar, .yw-commission-channel-row) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-bar-label, .yw-commission-stay, .yw-commission-what) { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-tile-sub, .yw-commission-grade, .yw-commission-also, .yw-commission-res, .yw-commission-months td:first-child) { color: #a297ab; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-bar[data-quiet] .yw-commission-bar-value, .yw-commission-channel-row[data-quiet] .yw-commission-channel-value, .yw-row-stat[data-quiet] > .yw-row-stat-value, .yw-commission-amount[data-grade="none"]) { color: #8f8996; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-bar-value, .yw-commission-channel-label, .yw-commission-channel-value, .yw-commission-kind, .yw-commission-channel, .yw-commission-amount, .yw-commission-file > a) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-commission-amount[data-grade="estimated"] { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-commission-what[data-urgent] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-bar-track, .yw-commission-rate) { background: #142036; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-bar-track > i, .yw-commission-rate > i) { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark .yw-money-page :is(.yw-commission-bar-track > i[data-estimated], .yw-commission-rate > i[data-configured]) { background: repeating-linear-gradient(125deg, #5a4a7a 0 2px, #2a2440 2px 4px); }
[data-theme-root].dark .yw-money-page .yw-commission-rate > b { background: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-commission-months td { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-commission-chevron { color: #c5a8ff; }
[data-theme-root].dark .yw-money-page .yw-commission-table th a.yw-commission-sort:hover { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-commission-table th[data-sorted] a.yw-commission-sort { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-table, .yw-commission-files) thead th { color: #a297ab; box-shadow: inset 0 -1px 0 #1c2843; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-table, .yw-commission-files) tbody td { border-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-commission-amount::after, .yw-commission-file-why::after) { border-color: rgba(28, 40, 67, .9); background: rgba(13, 21, 39, .86); color: #c3b9cc; box-shadow: 0 12px 30px #00000066; }
[data-theme-root].dark .yw-money-page .yw-commission-act { border-color: #1c2843; background: #142036; color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-commission-act:hover { border-color: #5a4a6d; color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-commission-act[data-quiet] { border-color: transparent; background: transparent; color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-commission-act[data-quiet]:hover { border-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-commission-act[data-case] { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-commission-act[aria-expanded="true"] { border-color: #5a4a6d; background: #3f2d5c; color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-commission-row[data-open] > td { background-color: #111b30; }
[data-theme-root].dark .yw-money-page .yw-commission-detail { background: #142036; color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-commission-detail pre { background: #0d1527; color: #d9d2e3; }
[data-theme-root].dark .yw-money-page .yw-commission-recover-input { border-color: #1c2843; background: #0d1527; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-commission-file > a:hover { color: #c5a8ff; }
[data-theme-root].dark .yw-money-page .yw-commission-files .yw-money-flag[data-tone="amber"] { color: #e6bd7f; }
[data-theme-root].dark .yw-commission-bills-art > canvas { filter: invert(1) hue-rotate(180deg); mix-blend-mode: screen; opacity: .55; }
[data-theme-root].dark .yw-commission-bills .yw-insight-count { background: rgba(255, 255, 255, .1); color: #d9c8f0; }
[data-theme-root].dark .yw-commission-choose[data-state="dragging"] { background: rgba(255, 255, 255, .22); }
[data-theme-root].dark :is(.yw-commission-choose-hint, .yw-commission-bills .yw-commission-job) { color: #b9a9cf; }
[data-theme-root].dark :is(.yw-commission-upload-error, .yw-commission-bills .yw-commission-job[data-tone="bad"]) { color: #e69ac4; }
[data-theme-root].dark :is(.yw-commission-breakdown-row > strong, .yw-commission-guide-head) { color: #f4f1f7; }
[data-theme-root].dark .yw-commission-estimated { color: #e6bd7f; }
[data-theme-root].dark .yw-commission-guide-link { color: #a78bfa; }

/* FilterSelect's trigger (filter-select.tsx) inside a Money page: the header
   control look. Its Tailwind classes have no dark background, so in dark mode
   the chosen value read dark on dark (Commissions' Kind filter). */
.yw-money-page [data-ui="filter-select"] { height: 32px; border-color: #e8e6e9; border-radius: 10px; background: #fff; color: #202024; font-weight: 400; box-shadow: 0 2px 6px #00000009; }
[data-theme-root].dark .yw-money-page [data-ui="filter-select"] { border-color: #1c2843; background: #142036; color: #f3eef8; box-shadow: none; }
[data-theme-root].dark .yw-money-page [data-ui="filter-select"]:hover { background: #1c2843; }

/* ---- wave 4: Revenue ---- */
/* Revenue (src/app/(app)/revenue/**), 10/01. The same hero, grid, rows,
   table skin and notes as Get Paid and wave 2; these are the pieces the
   Revenue views add: the page's one notice line, a quiet hero or row value
   when there is nothing to measure ("n/a", "No sales yet"), the rooms
   against everything else track, the department and report form rows, the
   untagged deposits list, the Square filters, the price list drill rows,
   the booking-source rows, the lodging tax KPI, and the deposits dialog on
   the menu surface. Values stay ink; flags, pills and notes carry the tone.
   Every class is prefixed yw-rev- or extends a Money class in place. */
.yw-money-page > .yw-rev-notice { margin: 16px 0 0; }
.yw-money-page .yw-hero-value[data-muted], .yw-money-page .yw-row-stat-value[data-muted] { color: #a09aa4; }
.yw-money-page .yw-row-stat-value[data-muted] { font-weight: 400; }
.yw-money-page .yw-hero-pill[data-pace="watch"] { color: #9a805f; }
.yw-money-flag[data-tone="watch"] { color: #9a805f; }
.yw-money-note[data-tone="good"] { color: #2f8a6d; }
.yw-row-stat-label > .yw-money-flag { margin-left: 7px; }
.yw-rev-row-detail { color: #a09aa4; font-weight: 400; }
.yw-rev-row-caption { display: block; margin-top: 2px; color: #a09aa4; font-size: 11px; font-weight: 400; line-height: 1.4; }
/* Overview: rooms against everything else, and the prompts under Money in. */
.yw-rev-split { margin-top: 20px; }
.yw-rev-split .yw-track-labels { margin: 7px 0 0; }
.yw-rev-prompts { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 12px 0 0; }
/* Forms in a card: the quiet input and button, the row shapes. */
.yw-money-page .yw-rev-input { min-height: 32px; padding: 0 10px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 12px; outline: none; }
.yw-money-page .yw-rev-input:focus { border-color: #b993ff; }
.yw-money-page .yw-rev-btn { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #343039; font-size: 12px; font-weight: 500; text-decoration: none; white-space: nowrap; cursor: pointer; }
.yw-money-page .yw-rev-btn:hover { border-color: #d9d2e0; background: #faf8fc; }
.yw-rev-link-btn { padding: 0; border: 0; background: none; cursor: pointer; }
.yw-rev-link-btn[data-quiet] { color: #929097; }
.yw-rev-head-actions { display: flex; flex-shrink: 0; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.yw-rev-card-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; color: #929097; font-size: 12px; }
.yw-rev-field { display: flex; flex-direction: column; gap: 4px; color: #87818c; font-size: 11px; }
.yw-rev-rows { margin-top: 10px; }
.yw-rev-dept-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid #eae8ec; }
.yw-rev-dept-name { display: inline-flex; align-items: center; gap: 9px; color: #343039; font-size: 13px; font-weight: 500; }
.yw-rev-report-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; padding: 14px 0; border-top: 1px solid #eae8ec; }
.yw-rev-report-line { width: 100%; margin: 0; color: #59535f; font-size: 12px; line-height: 1.5; }
/* Transactions: the deposits to tag. */
.yw-rev-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; padding: 8px 10px; border-radius: 12px; background: #f6f1fb; color: #343039; font-size: 12px; }
.yw-rev-untagged { margin: 12px 0 0; padding: 0; list-style: none; }
.yw-rev-untagged > li { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 11px 2px; border-top: 1px solid #eae8ec; transition: background-color .16s; }
.yw-rev-untagged > li:hover { background-color: #faf8fc; }
.yw-rev-untagged-name { color: #202024; font-size: 13px; font-weight: 500; }
.yw-rev-untagged-meta { margin-top: 2px; color: #a09aa4; font-size: 11px; }
.yw-rev-untagged-amount { color: #202024; font-size: 14px; font-weight: 500; white-space: nowrap; }
/* Square: the sync link, the filters, the price list drill rows. */
.yw-rev-sync { flex-shrink: 0; }
.yw-rev-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.yw-rev-search { width: min(100%, 16rem); }
.yw-rev-form-table td { vertical-align: middle; }
.yw-rev-scroll--list { max-height: 28rem; }
.yw-rev-drill-table th:nth-child(2) { width: 5rem; }
.yw-rev-drill-table th:nth-child(3) { width: 10rem; }
.yw-rev-drill > summary { display: grid; grid-template-columns: minmax(0, 1fr) 5rem 10rem; align-items: baseline; gap: 16px; cursor: pointer; list-style: none; }
.yw-rev-drill > summary::-webkit-details-marker { display: none; }
.yw-rev-drill > summary > span:not(:first-child) { text-align: right; }
.yw-rev-drill > summary:focus-visible { border-radius: 6px; outline: 2px solid #b993ff; outline-offset: 2px; }
.yw-rev-drill-name { display: inline-flex; align-items: baseline; gap: 8px; min-width: 0; }
.yw-rev-drill-mark { color: #a09aa4; font-size: 10px; transition: transform .2s; }
.yw-rev-drill[open] .yw-rev-drill-mark { transform: rotate(180deg); }
.yw-money-table.yw-rev-subtable { margin: 8px 0 4px; font-size: 12px; }
.yw-money-table.yw-rev-subtable td { padding: 7px 8px; }
.yw-money-table.yw-rev-subtable thead th { position: static; background: transparent; }
/* Lodging tax: the confirm line, the side KPI, the setup card, a focused row. */
/* A hero with nothing beside it (no POS tax, no past months; a Square tab with
   no catalog) takes two columns rather than leaving a third of a row. */
.yw-rev-grid > .yw-money-hero:only-child { grid-column: span 2; }
.yw-rev-confirm { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }
.yw-rev-confirm > .yw-money-note { margin: 0; }
.yw-rev-kpi { margin: 16px 0 4px; color: #202024; font-size: 27px; font-weight: 500; line-height: 1.15; letter-spacing: -.05em; }
.yw-rev-kpi-unit { color: #929097; font-size: 13px; font-weight: 400; letter-spacing: -.25px; }
.yw-rev-setup-card { text-align: center; }
.yw-rev-setup-card .yw-hero-value { margin: 10px 0 8px; }
.yw-money-table tr[data-focused] { background-color: #f5f0fa; }
/* Tax by booking source: hairline rows, the who-remits form a quiet panel. */
.yw-rev-sources { margin: 10px 0 0; padding: 0; list-style: none; }
.yw-rev-sources > li { border-top: 1px solid #eae8ec; }
.yw-rev-sources > li[data-focused] { background-color: #f6f1fb; }
.yw-rev-source-row { display: grid; grid-template-columns: 1.6rem auto minmax(0, 1fr) auto; align-items: baseline; gap: 10px; padding: 11px 2px; }
.yw-rev-source-name { color: #202024; font-size: 13px; font-weight: 500; }
.yw-rev-source-why { margin-top: 2px; color: #a09aa4; font-size: 11px; }
.yw-rev-source-row > strong { color: #202024; font-size: 13px; font-weight: 500; white-space: nowrap; }
.yw-rev-remit { padding: 0 2px 12px calc(1.6rem + 12px); }
.yw-rev-remit > summary { display: inline-flex; cursor: pointer; list-style: none; }
.yw-rev-remit > summary::-webkit-details-marker { display: none; }
.yw-rev-remit-form { display: grid; gap: 10px; max-width: 32rem; margin-top: 10px; padding: 12px 14px; border-radius: 12px; background: #f6f5f7; }
.yw-rev-remit-form .yw-rev-input { width: 100%; }
/* The deposits behind a number: the menu surface, rows inside. */
.yw-rev-scrim { background: rgba(32, 32, 36, .32); }
.yw-money-page .yw-rev-dialog { border: 1px solid #e5ddea; border-radius: 17px; background: #fdfcfe; box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; }
.yw-rev-dialog-head { display: flex; align-items: flex-start; gap: 12px; padding: 20px 23px 14px; border-bottom: 1px solid #eae8ec; }
.yw-rev-dialog-total { margin: 8px 0 0; color: #202024; font-size: 19px; font-weight: 500; letter-spacing: -.5px; }
.yw-rev-dialog-total > span { color: #929097; font-size: 12px; font-weight: 400; letter-spacing: -.25px; }
.yw-rev-dialog-body { padding: 6px 23px 18px; }
.yw-rev-dialog-rows { margin: 0; padding: 0; list-style: none; }
.yw-rev-dialog-rows > li { padding: 12px 0; border-top: 1px solid #eae8ec; }
.yw-rev-dialog-rows > li:first-child { border-top: 0; }
.yw-rev-dialog-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; color: #343039; font-size: 13px; }
.yw-rev-dialog-row > strong { color: #202024; font-weight: 500; }
.yw-rev-dialog-tag { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
@media (max-width: 800px) {
  .yw-rev-grid > .yw-money-hero:only-child { grid-column: auto; }
  .yw-rev-untagged > li { grid-template-columns: 16px minmax(0, 1fr) auto; }
  .yw-rev-untagged > li > select { grid-column: 2 / -1; justify-self: start; }
  .yw-rev-dept-row { grid-template-columns: minmax(0, 1fr) auto; }
  .yw-rev-dept-row > button { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .yw-rev-untagged > li, .yw-rev-drill-mark { transition: none; }
}
/* -- Wave 4 rebuilt (10/11, owner: "we need to rework these tabs with the
   same design style we used on the last tabs"). Transactions takes the Get
   Paid row (money in with hatched bars per kind, by account, the untagged
   scene); Square's best sellers are share bars; Lodging tax's charged rate
   is a track with the configured tick. Every table at the Room Types scale
   (14px cells, 12.5px captions, nothing under 12px); every control a 34px
   field or pill with 10px corners; every badge a plain toned word. */
.yw-rev-table { font-size: 14px; }
.yw-rev-table thead th { padding: 0 8px 10px; color: #87818c; font-size: 12.5px; font-weight: 400; box-shadow: inset 0 -1px 0 #eae8ec; }
.yw-money-scroll > .yw-rev-table thead th, .yw-money-overflow > .yw-rev-table thead th { padding-top: 0; }
.yw-rev-table tbody td { padding: 13px 8px; vertical-align: middle; color: #202024; font-size: 14px; }
.yw-rev-table td strong { color: #202024; font-weight: 500; }
.yw-rev-table .yw-money-muted { color: #87818c; }
.yw-rev-table .yw-money-flag { font-size: 13px; letter-spacing: 0; }
.yw-rev-table tbody tr[title] { cursor: default; }
.yw-rev-amount { font-size: 15px; letter-spacing: -.3px; white-space: nowrap; }
.yw-rev-amount > strong { font-size: 15px; }
.yw-rev-row-caption { font-size: 12.5px; }
.yw-rev-row-detail { font-size: 13px; }
.yw-rev-row-name { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Fields, pills, filters. */
.yw-money-page .yw-rev-input { min-height: 34px; font-size: 13px; }
.yw-money-page .yw-rev-btn { min-height: 34px; padding: 0 13px; font-size: 13px; }
.yw-money-page .yw-rev-btn[data-quiet] { border-color: transparent; color: #87818c; }
.yw-money-page .yw-rev-btn[data-quiet]:hover { border-color: #e2e1e4; color: #202024; }
.yw-rev-pill { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border: 1px solid #7c3aed; border-radius: 10px; background: #7c3aed; color: #fff; font-size: 13px; font-weight: 500; white-space: nowrap; text-decoration: none; cursor: pointer; transition: background .16s; }
.yw-rev-pill:hover { background: #6d2fd6; }
.yw-rev-pill--big { height: 40px; padding: 0 20px; font-size: 14px; }
.yw-money-page :is(.yw-rev-head-actions, .yw-rev-filters) [data-ui="filter-select"] { height: 34px; padding: 0 12px; font-size: 13px; font-weight: 500; }
.yw-rev-filters { gap: 8px; }
.yw-rev-card-foot { font-size: 13px; }
.yw-money-page .yw-rev-card-foot button { height: 34px; padding: 0 14px; border-radius: 10px; font-size: 13px; font-weight: 500; }
.yw-rev-field { font-size: 12.5px; }
/* The bars (money in by kind, by account, best sellers). */
.yw-rev-bars { margin-top: 20px; }
.yw-money-hero > .yw-rev-bars { margin-top: 22px; }
.yw-rev-bars .yw-money-bar-row { padding: 12px 0; font-size: 13.5px; }
.yw-rev-bars .yw-money-bar-row > :first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yw-rev-bars .yw-money-bar-row > a:first-child { color: #202024; text-decoration: none; transition: color .16s; }
.yw-rev-bars .yw-money-bar-row > a:first-child:hover { color: #7c3aed; }
.yw-rev-bars .yw-money-bar-row > strong { font-size: 14px; }
/* Account names are long: the label takes the room, the track what is left. */
.yw-rev-bars--wide .yw-money-bar-row { grid-template-columns: minmax(0, 1fr) minmax(56px, 6.5rem) auto; }
.yw-rev-bars .yw-money-bar-track > i[data-estimated] { background: repeating-linear-gradient(125deg, #cdbfe6 0 2px, #ece6f6 2px 4px); }
/* The untagged deposits to tag. */
.yw-rev-untagged-name { font-size: 14px; }
.yw-rev-untagged-meta { font-size: 12.5px; }
.yw-rev-untagged-amount { font-size: 15px; letter-spacing: -.3px; }
.yw-rev-bulk { font-size: 13px; }
/* The scene: the insight card with a dot scene. */
.yw-insight.yw-rev-scene { height: auto; min-height: 0; }
.yw-rev-scene-art { position: absolute; right: 0; bottom: 0; left: 0; z-index: -2; height: 64%; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 45%); mask-image: linear-gradient(180deg, transparent 0, #000 45%); }
.yw-rev-scene-art > canvas { display: block; width: 100%; height: 100%; mix-blend-mode: multiply; }
.yw-rev-scene .yw-insight-top { font-size: 12px; }
.yw-rev-scene .yw-insight-tag .hw-info-label { color: inherit; font-size: 12px; font-weight: 400; }
.yw-rev-scene .yw-insight-count { padding: 5px 9px; border-radius: 20px; background: rgba(255, 255, 255, .55); color: #5e4380; font-size: 12px; font-weight: 500; }
.yw-rev-scene .yw-insight-value { margin-top: 22px; }
.yw-rev-scene h3 { max-width: 300px; font-size: 21px; }
.yw-rev-scene .yw-insight-detail { font-size: 13px; }
.yw-rev-scene .yw-insight-bottom { margin-top: 26px; }
.yw-rev-scene .yw-insight-link { font-size: 13px; }
/* Square: the row cards and the products table. */
.yw-rev-grid .yw-money-lines > li { font-size: 14px; }
.yw-rev-grid .yw-money-lines > li > strong { font-size: 14px; }
/* Lodging tax: the rate track and the source rows. */
.yw-rev-rate-wrap { margin-top: 18px; }
.yw-rev-rate { position: relative; display: block; height: 8px; border-radius: 4px; background: #f0edf2; }
.yw-rev-rate > i { display: block; height: 100%; border-radius: 4px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: left; animation: yw-scale-in 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-rev-rate > b { position: absolute; top: -3px; width: 2px; height: 14px; margin-left: -1px; border-radius: 1px; background: #202024; }
.yw-rev-rate-labels { display: flex; justify-content: space-between; margin-top: 7px; color: #a59fab; font-size: 12px; }
.yw-rev-kpi-unit { font-size: 13px; }
.yw-rev-source-name { font-size: 14px; }
.yw-rev-source-why { font-size: 12.5px; }
.yw-rev-source-row > strong { font-size: 14px; }
.yw-rev-source-row > .yw-money-flag { font-size: 12.5px; letter-spacing: 0; }
.yw-rev-source-row > span:first-child { font-size: 13px; }
.yw-rev-remit > summary { font-size: 13px; }
.yw-rev-remit-form { font-size: 13px; }
.yw-rev-dialog-row { font-size: 14px; }
.yw-rev-dialog-total > span { font-size: 13px; }

/* Wave 4, dark: the warm palette. */
[data-theme-root].dark .yw-money-page .yw-hero-value[data-muted], [data-theme-root].dark .yw-money-page .yw-row-stat-value[data-muted] { color: #8f8996; }
[data-theme-root].dark .yw-money-page .yw-hero-pill[data-pace="watch"], [data-theme-root].dark .yw-money-page .yw-money-flag[data-tone="watch"] { color: #e6bd7f; }
[data-theme-root].dark .yw-money-page .yw-money-note[data-tone="good"] { color: #7fd3b4; }
[data-theme-root].dark .yw-money-page :is(.yw-rev-row-detail, .yw-rev-row-caption, .yw-rev-untagged-meta, .yw-rev-source-why, .yw-rev-drill-mark, .yw-rev-field, .yw-rev-card-foot, .yw-rev-link-btn[data-quiet], .yw-rev-dialog-total > span) { color: #a297ab; }
[data-theme-root].dark .yw-money-page :is(.yw-rev-dept-name, .yw-rev-untagged-name, .yw-rev-untagged-amount, .yw-rev-kpi, .yw-rev-source-name, .yw-rev-source-row > strong, .yw-rev-dialog-total, .yw-rev-dialog-row > strong, .yw-rev-bulk) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-rev-report-line, .yw-rev-dialog-row) { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page :is(.yw-rev-dept-row, .yw-rev-report-row, .yw-rev-untagged > li, .yw-rev-sources > li, .yw-rev-dialog-head, .yw-rev-dialog-rows > li) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-rev-untagged > li:hover { background-color: #111b30; }
[data-theme-root].dark .yw-money-page :is(.yw-rev-bulk, .yw-rev-sources > li[data-focused], .yw-money-table tr[data-focused]) { background-color: #2f2638; }
[data-theme-root].dark .yw-money-page .yw-rev-remit-form { background: #142036; }
[data-theme-root].dark .yw-money-page .yw-rev-input { border-color: #1c2843; background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-btn { border-color: #1c2843; background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-btn:hover { background: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-track { background: #142036; }
[data-theme-root].dark .yw-money-page .yw-track-labels { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-rev-dialog { border-color: #1c2843; background: #0d1527; box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; }
[data-theme-root].dark .yw-money-page .yw-rev-scrim { background: rgba(0, 0, 0, .45); }
/* Wave 4 rebuilt (10/11), dark. */
[data-theme-root].dark .yw-money-page .yw-rev-table thead th { color: #a297ab; box-shadow: inset 0 -1px 0 #1c2843; }
[data-theme-root].dark .yw-money-page .yw-rev-table tbody td { border-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-table td strong { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-table .yw-money-muted { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-rev-card-foot button:not(.yw-rev-pill) { border-color: #1c2843; background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-btn[data-quiet] { border-color: transparent; color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-rev-btn[data-quiet]:hover { border-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-bars .yw-money-bar-row > a:first-child { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-bars .yw-money-bar-row > a:first-child:hover { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-rev-bars .yw-money-bar-track > i[data-estimated] { background: repeating-linear-gradient(125deg, #5a4a7a 0 2px, #2a2440 2px 4px); }
[data-theme-root].dark .yw-money-page .yw-rev-rate { background: #142036; }
[data-theme-root].dark .yw-money-page .yw-rev-rate > i { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark .yw-money-page .yw-rev-rate > b { background: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-rev-rate-labels { color: #a297ab; }
[data-theme-root].dark .yw-rev-scene-art > canvas { filter: invert(1) hue-rotate(180deg); mix-blend-mode: screen; opacity: .55; }
[data-theme-root].dark .yw-rev-scene .yw-insight-count { background: rgba(255, 255, 255, .1); color: #d9c8f0; }

/* ---- wave 6: Expenses ---- */
/* Expenses (overview, transactions, recurring, log, capture, statement) on
   the same hero, grid, rows and table as Get Paid and wave 2. These are the
   pieces Expenses adds, all yw-exp-*. Values stay ink; only the notice's
   words, flag sentences and pills take a tone. Two halves, kept apart so
   either can be reverted alone: 6a (overview, transactions, the dialogs) and
   6b (recurring, log and capture, statement, the benchmarks). Each half ends
   with its dark twins on the warm palette. */

/* -- 6a: the one notice line (notice-line.tsx). One line, no box: a dot in
   the state's tone, the sentence, its one action, "N more" opening the rest. */
.yw-exp-notice { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 14px; color: #59535f; font-size: 13px; line-height: 1.45; }
.yw-exp-notice-mark { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #a5a0ab; }
.yw-exp-notice[data-tone="bad"] .yw-exp-notice-mark { background: #c85f84; }
.yw-exp-notice[data-tone="good"] .yw-exp-notice-mark { background: #279876; }
.yw-exp-notice[data-tone="bad"] .yw-exp-notice-text { color: #a96883; }
.yw-exp-notice[data-tone="good"] .yw-exp-notice-text { color: #2f8a6d; }
.yw-exp-notice-text { min-width: 0; }
.yw-exp-notice-quiet { color: #929097; }
.yw-exp-notice-action { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yw-exp-notice-more .hw-info-label { color: #8553c2; font-size: 11px; font-weight: 500; }

/* -- 6a: rows, notes and drills shared across the tabs. */
.yw-exp-row-note { display: block; margin-top: 2px; color: #a09aa4; font-size: 11px; font-weight: 400; line-height: 1.45; }
.yw-exp-row-note[data-tone="bad"] { color: #a96883; }
.yw-row-stat-label > .yw-exp-row-note { max-width: 22rem; }
.yw-exp-drill { color: inherit; text-decoration: none; transition: color .16s; }
.yw-exp-drill:hover, .yw-exp-drill:focus-visible { color: #7c3aed; text-decoration: underline; text-underline-offset: 2px; }
.yw-money-table td .yw-exp-drill { color: #202024; font-weight: 500; }
.yw-money-table td .yw-exp-drill:hover { color: #7c3aed; }
.yw-exp-spark { color: #b9a6dc; }

/* -- 6a: the operating mix ring (Channels' donut and legend, a bit tighter). */
/* The ring sits above its legend: the card is one third of the grid, and beside
   a 150px ring the legend names had no width left and truncated to one letter. */
.yw-exp-mix { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 16px; margin-top: 16px; }
.yw-exp-mix > .yw-channel-legend { justify-self: stretch; }
.yw-exp-mix .yw-channel-donut { max-width: 150px; }
.yw-exp-mix .yw-channel-donut-center strong { font-size: 16px; }
.yw-exp-mix .yw-channel-donut-center span { max-width: 70px; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.yw-exp-mix .yw-channel-legend > li { padding: 8px 0; }

/* -- 6a: the transactions desk (tx-desk-box.tsx): one card, the head with
   the period chip or From / To on the right, the segmented tabs, the table. */
.yw-exp-desk { margin-top: 18px; }
.yw-exp-desk-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.yw-exp-desk-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.yw-exp-desk-find { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yw-exp-desk-notes > .yw-money-note, .yw-exp-desk-ledger > .yw-money-note { margin-top: 10px; }
.yw-exp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.yw-exp-chips > button { padding: 5px 10px; font-size: 11px; cursor: pointer; }
.yw-exp-desk-body { margin-top: 12px; }
.yw-exp-quiet-btn { min-height: 30px; padding: 0 11px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #343039; font-size: 11px; font-weight: 500; white-space: nowrap; cursor: pointer; }
.yw-exp-quiet-btn:hover { background: #faf8fc; }
.yw-exp-range { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.yw-exp-range > label { display: flex; flex-direction: column; gap: 3px; color: #87818c; font-size: 11px; }
.yw-exp-range input { min-height: 30px; padding: 0 8px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 12px; }
/* The charge table: the Monthly detail skin; the sticky head on the card. */
.yw-exp-tx-table thead th { position: sticky; top: 0; background: #fbfbfb; color: #766d7c; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; white-space: nowrap; box-shadow: inset 0 -1px 0 #eae8ec; }
.yw-exp-tx-table tbody td { color: #49434e; font-size: 12px; }
.yw-exp-tx-table tbody tr > td { border-top: 1px solid #eae8ec; }
.yw-exp-tx-table tbody tr:hover { background-color: #faf8fc; }
.yw-exp-tx-table td .font-medium { color: #202024; font-weight: 500; }
.yw-exp-amount { color: #202024; font-size: 13px; font-weight: 500; white-space: nowrap; }
/* Confirm by vendor and the older-charges line: sections of the desk card. */
.yw-exp-confirm { margin-top: 16px; padding-top: 14px; border-top: 1px solid #eae8ec; }
.yw-exp-subhead { margin: 0; color: #202024; font-size: 13px; font-weight: 500; letter-spacing: -.2px; }
.yw-exp-confirm .yw-money-overflow { margin-top: 6px; }
.yw-exp-confirm .yw-money-table td { vertical-align: middle; }
.yw-exp-older { margin-top: 12px; }

/* -- 6a: hairline lists (Expense Rules, the Log, Investigate, the dialogs). */
.yw-exp-lines { margin: 12px 0 0; padding: 0; list-style: none; }
.yw-exp-line { padding: 11px 0; border-top: 1px solid #eae8ec; }
.yw-exp-line:first-child { border-top: 0; }
.yw-exp-line-main { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; color: #343039; font-size: 13px; }
.yw-exp-line-main > strong { margin-left: auto; color: #202024; font-weight: 500; white-space: nowrap; }
.yw-exp-line-date { flex-shrink: 0; color: #929097; font-size: 11px; }
.yw-exp-line-name { min-width: 0; flex: 1 1 8rem; overflow: hidden; color: #202024; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.yw-exp-line-meta { color: #87818c; font-size: 12px; }
.yw-exp-line-end { margin-left: auto; }
.yw-exp-line-sub { margin: 3px 0 0; color: #929097; font-size: 11px; line-height: 1.45; }
.yw-exp-scroll { max-height: 18rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #ddd2e7 transparent; }
.yw-exp-quiet-link { padding: 0; border: 0; background: none; color: #929097; font-size: 11px; font-weight: 500; cursor: pointer; }
.yw-exp-quiet-link:hover { color: #a96883; }
.yw-exp-cell > .yw-card { height: 100%; }

/* -- 6a: the dialogs (TxDetailModal, recategorize, balance sheet, closed
   month, P&L upload, filing recommendations): the frosted menu surface,
   radius 17, hairlines inside, one card level. Unscoped on purpose: a
   <dialog> sits in the top layer and these open from any page. */
dialog.yw-exp-dialog { border: 1px solid #e5ddea; border-radius: 17px; background: #fdfcfe; color: #202024; box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; font-family: var(--font-geist-sans), Geist, system-ui, sans-serif; letter-spacing: -.25px; }
dialog.yw-exp-dialog::backdrop { background: rgba(32, 32, 36, .34); }
dialog.yw-exp-dialog :is(header, footer, [class~="border-b"], [class~="border-t"]) { border-color: #eae8ec; }
dialog.yw-exp-dialog header h2 { color: #202024; font-size: 17px; font-weight: 500; letter-spacing: -.4px; }
dialog.yw-exp-dialog footer { background: transparent; }
dialog.yw-exp-dialog :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea) { border-color: #e2e1e4; border-radius: 10px; }
dialog.yw-exp-dialog :is(input, select, textarea):focus { border-color: #b993ff; }
dialog.yw-exp-dialog :is(button, a)[class~="bg-violet-600"] { background-color: #7c3aed; }
dialog.yw-exp-dialog :is(button, a)[class~="bg-violet-600"]:hover { background-color: #7130df; }
dialog.yw-exp-dialog [class~="border-dashed"] { border-color: #ddd3e6; border-radius: 14px; background-color: #f8f6fa; }
.yw-exp-dialog-title { margin: 0; color: #202024; font-size: 17px; font-weight: 500; letter-spacing: -.4px; }
.yw-exp-dialog-sub { margin: 3px 0 0; color: #929097; font-size: 12px; line-height: 1.5; }
.yw-exp-dialog-section { margin-top: 14px; padding-top: 12px; border-top: 1px solid #eae8ec; }
.yw-exp-dialog-error { margin: 0; color: #a96883; font-size: 12px; }
.yw-exp-ok { margin: 0; color: #2f8a6d; font-size: 13px; font-weight: 500; }
.yw-exp-facts { margin: 0; }
.yw-exp-facts > .yw-row-stat:first-child { border-top: 0; }
.yw-exp-facts dd { max-width: 70%; text-align: right; }
.yw-exp-facts-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.yw-exp-form { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #eae8ec; }
.yw-exp-label { color: #87818c; font-size: 12px; }
.yw-exp-flag-btn { padding: 0; border: 0; background: none; color: #a96883; font-size: 12px; font-weight: 500; cursor: pointer; }
.yw-exp-flag-btn:hover { text-decoration: underline; text-underline-offset: 2px; }
dialog.yw-exp-dialog [data-ui="badge"] { padding: 4px 9px; border-radius: 20px; background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .024); color: #59535f; font-size: 10px; font-weight: 500; letter-spacing: .03em; }

@media (max-width: 800px) {
  .yw-exp-mix { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .yw-exp-mix .yw-channel-legend { width: 100%; }
  .yw-exp-desk-bar { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .yw-exp-drill { transition: none; }
}

/* -- 6a, Transactions rebuilt (10/11, owner: "all of these sub tabs need re
   designs having in mind everything i told you before"). The Get Paid shape:
   the hero (what waits for the owner's OK, as hatched bars), confirm by
   vendor as rows with a share bar and a Confirm pill, the TBD scene; the desk
   under them at the Room Types table scale (14px cells, nothing under 12px),
   the status words as words, the actions as pills, the controls 34px. */
.yw-exp-txbars { margin-top: 22px; }
.yw-exp-txbars .yw-money-bar-row { padding: 12px 0; font-size: 13.5px; }
.yw-exp-txbars .yw-money-bar-row > strong { font-size: 14px; }
.yw-exp-txhero .yw-money-rows { margin-top: 0; }
.yw-exp-txhero .yw-row-stat-label .yw-exp-drill { color: #202024; font-weight: 500; }
/* Confirm by vendor: a row per vendor. */
.yw-exp-vendor-rows { margin-top: 14px; }
.yw-exp-vendor-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name amount" "track act"; align-items: center; gap: 8px 14px; padding: 12px 0; border-top: 1px solid #eae8ec; }
.yw-exp-vendor-name { grid-area: name; }
.yw-exp-vendor-track { grid-area: track; align-self: center; max-width: 180px; }
.yw-exp-vendor-amount { grid-area: amount; text-align: right; }
.yw-exp-vendor-act { grid-area: act; justify-self: end; }
.yw-exp-vendor-row:first-child { border-top: 0; }
.yw-exp-vendor-name { display: block; min-width: 0; }
.yw-exp-vendor-label { display: flex; align-items: baseline; gap: 8px; overflow: hidden; color: #202024; font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.yw-exp-vendor-label > .yw-money-flag { flex-shrink: 0; font-size: 12px; letter-spacing: 0; }
.yw-exp-vendor-sub { display: block; margin-top: 2px; overflow: hidden; color: #87818c; font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.yw-exp-vendor-track { display: block; height: 8px; overflow: hidden; border-radius: 4px; background: #f0edf2; }
.yw-exp-vendor-track > i { display: block; height: 100%; border-radius: 4px; background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); transform-origin: left; animation: yw-scale-in 1s cubic-bezier(.2, .8, .2, 1) both; }
.yw-exp-vendor-amount { color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; white-space: nowrap; }
.yw-exp-vendor-act { display: inline-flex; flex-direction: column; align-items: flex-end; }
/* The pills: the violet one for the one primary action, the quiet one for the rest. */
.yw-exp-pill { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border: 1px solid #7c3aed; border-radius: 10px; background: #7c3aed; color: #fff; font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer; transition: background .16s; }
.yw-exp-pill:hover { background: #6d2fd6; }
/* The TBD scene: the insight card with a dot scene. */
.yw-insight.yw-exp-scene { height: auto; min-height: 0; }
.yw-exp-scene-art { position: absolute; right: 0; bottom: 0; left: 0; z-index: -2; height: 64%; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 45%); mask-image: linear-gradient(180deg, transparent 0, #000 45%); }
.yw-exp-scene-art > canvas { display: block; width: 100%; height: 100%; mix-blend-mode: multiply; }
.yw-exp-scene .yw-insight-top { font-size: 12px; }
.yw-exp-scene .yw-insight-tag .hw-info-label { color: inherit; font-size: 12px; font-weight: 400; }
.yw-exp-scene .yw-insight-count { padding: 5px 9px; border-radius: 20px; background: rgba(255, 255, 255, .55); color: #5e4380; font-size: 12px; font-weight: 500; }
.yw-exp-scene .yw-insight-value { margin-top: 22px; }
.yw-exp-scene h3 { max-width: 300px; font-size: 21px; }
.yw-exp-scene .yw-insight-detail { font-size: 13px; }
.yw-exp-scene .yw-insight-bottom { margin-top: 26px; }
.yw-exp-scene .yw-insight-link { font-size: 13px; }
/* The desk card: the controls at 34px and 13px. */
.yw-money-page .yw-exp-desk [data-ui="segmented"] > :is(a, button) { padding: 8px 14px; font-size: 13px; }
.yw-exp-find-input { width: 15rem; height: 34px; padding: 0 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 13px; outline: none; }
.yw-exp-find-input:focus { border-color: #c9b1ff; }
.yw-money-page .yw-exp-desk [data-ui="filter-select"] { height: 34px; padding: 0 12px; font-size: 13px; font-weight: 500; }
.yw-exp-quiet-btn { min-height: 34px; padding: 0 13px; font-size: 13px; }
.yw-exp-chips > button { padding: 6px 12px; font-size: 13px; }
.yw-exp-range > label { font-size: 12.5px; }
.yw-exp-range input { min-height: 34px; padding: 0 10px; font-size: 13px; }
.yw-exp-range > button { height: 34px; padding: 0 13px; border-radius: 10px; font-size: 13px; font-weight: 500; }
.yw-money-page .yw-exp-desk-body { max-height: 42rem; }
.yw-money-page .yw-exp-desk-body .yw-money-empty { padding: 20px 2px; font-size: 14px; }
/* The charge table: 14px cells, the merchant in ink, every note 12.5px. */
.yw-exp-tx-table thead th { padding: 0 8px 10px; color: #87818c; font-size: 12.5px; font-weight: 400; }
.yw-exp-tx-table tbody td { padding: 13px 8px; color: #202024; font-size: 14px; vertical-align: middle; }
.yw-exp-tx-table tbody tr[title] { cursor: default; }
.yw-exp-tx-table .yw-exp-td-date { color: #59535f; white-space: nowrap; }
.yw-exp-tx-table .yw-exp-td-descriptor { color: #a09aa4; font-size: 12.5px; }
.yw-exp-tx-table .yw-exp-td-account { color: #59535f; font-size: 13px; }
.yw-exp-tx-table .yw-exp-td-none { color: #c3bdc8; }
.yw-exp-tx-table .yw-exp-td-how { color: #59535f; font-size: 13px; }
.yw-exp-tx-table .yw-exp-row-note { display: block; margin-top: 3px; color: #87818c; font-size: 12.5px; line-height: 1.4; }
.yw-exp-tx-table .yw-exp-row-note[data-tone="bad"] { color: #a96883; }
.yw-exp-amount { font-size: 15px; letter-spacing: -.3px; }
/* Status words: the badge as a plain toned word at 12.5px, no capitals. */
.yw-money-page .yw-exp-tx-table [data-ui="badge"] { padding: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.yw-money-page .yw-exp-tx-table [data-ui="badge"] + * { margin-top: 3px; }
/* The row's controls: the category picker, Save, Confirm, TBD, Recategorize. */
.yw-exp-tx-table select { height: 32px; max-width: 14rem; padding: 0 10px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 13px; outline: none; }
.yw-exp-tx-table select:focus { border-color: #c9b1ff; }
.yw-exp-tx-table :is(button, a)[class~="bg-violet-600"] { height: 32px; padding: 0 12px; border-radius: 10px; border-color: #7c3aed; background-color: #7c3aed; font-size: 13px; font-weight: 500; line-height: 1; }
.yw-exp-tx-table :is(button, a)[class~="bg-violet-600"]:hover { background-color: #6d2fd6; }
.yw-exp-tx-table button[class~="text-rose-700"] { height: 32px; padding: 0 12px; border-color: #e2e1e4; border-radius: 10px; background: #fff; color: #59535f; font-size: 13px; font-weight: 500; line-height: 1; }
.yw-exp-tx-table button[class~="text-rose-700"]:hover { border-color: #e6b3c6; background: #fff; color: #a96883; }
.yw-exp-tx-table button[class~="text-violet-600"] { color: #7433d4; font-size: 13px; font-weight: 500; }
.yw-exp-tx-table button[class~="border-zinc-300"] { height: 32px; padding: 0 12px; border-color: #e2e1e4; border-radius: 10px; color: #59535f; font-size: 13px; font-weight: 500; line-height: 1; }
.yw-exp-tx-table button[class~="border-zinc-300"]:hover { border-color: #c9b1ff; background: #fff; color: #7433d4; }
.yw-exp-tx-table td > a.yw-text-link { font-size: 13px; }
/* The three cards under the desk: rows at the same scale. */
.yw-exp-line-main { font-size: 14px; }
.yw-exp-line-date { font-size: 12.5px; }
.yw-exp-line-meta { font-size: 13px; }
.yw-exp-line-sub { font-size: 12.5px; }
.yw-exp-quiet-link { font-size: 12.5px; }
.yw-money-page .yw-exp-lines [data-ui="badge"] { padding: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.yw-exp-scroll { max-height: 22rem; }
.yw-exp-older { font-size: 13px; }

/* -- 6a dark: the warm palette. */
[data-theme-root].dark .yw-money-page .yw-exp-notice { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-exp-notice[data-tone="bad"] .yw-exp-notice-text { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-exp-notice[data-tone="good"] .yw-exp-notice-text { color: #7fd3b4; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-notice-quiet, .yw-exp-row-note, .yw-exp-line-date, .yw-exp-line-sub, .yw-exp-line-meta, .yw-exp-range > label, .yw-exp-quiet-link) { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-exp-notice-more .hw-info-label { color: #c5a8ff; }
[data-theme-root].dark .yw-money-page .yw-exp-row-note[data-tone="bad"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-line-name, .yw-exp-line-main > strong, .yw-exp-subhead, .yw-exp-amount, .yw-money-table td .yw-exp-drill, .yw-exp-tx-table td .font-medium) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-exp-line-main { color: #d9d2e3; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-line, .yw-exp-confirm, .yw-exp-tx-table tbody tr > td) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table thead th { background: #0d1527; color: #a297ab; box-shadow: inset 0 -1px 0 #1c2843; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table tbody td { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table tbody tr:hover { background-color: #111b30; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-quiet-btn, .yw-exp-range input) { border-color: #1c2843; background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-exp-quiet-btn:hover { background: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-exp-drill:hover { color: #c5a8ff; }
[data-theme-root].dark dialog.yw-exp-dialog { border-color: #1c2843; background: #0d1527; color: #f3eef8; box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; }
[data-theme-root].dark dialog.yw-exp-dialog :is(header, footer, [class~="border-b"], [class~="border-t"], .yw-exp-dialog-section, .yw-exp-form, .yw-row-stat, .yw-exp-line) { border-color: #1c2843; }
[data-theme-root].dark dialog.yw-exp-dialog :is(header h2, .yw-exp-dialog-title, .yw-row-stat dd, .yw-exp-line-name, .yw-exp-line-main > strong) { color: #f3eef8; }
[data-theme-root].dark dialog.yw-exp-dialog :is(.yw-exp-dialog-sub, .yw-exp-label, .yw-row-stat, .yw-exp-line-sub, .yw-exp-row-note) { color: #a297ab; }
[data-theme-root].dark dialog.yw-exp-dialog :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea) { border-color: #1c2843; background-color: #142036; color: #f3eef8; }
[data-theme-root].dark dialog.yw-exp-dialog [class~="border-dashed"] { border-color: #273656; background-color: #111b30; }
[data-theme-root].dark dialog.yw-exp-dialog :is(.yw-exp-dialog-error, .yw-exp-flag-btn) { color: #e69ac4; }
[data-theme-root].dark dialog.yw-exp-dialog .yw-exp-ok { color: #7fd3b4; }
[data-theme-root].dark dialog.yw-exp-dialog [data-ui="badge"] { background: #142036; box-shadow: none; color: #c3b9cc; }

/* -- 6a dark, Transactions rebuilt (10/11). */
[data-theme-root].dark .yw-money-page .yw-exp-vendor-row { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-vendor-label, .yw-exp-vendor-amount, .yw-exp-txhero .yw-row-stat-label .yw-exp-drill) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-vendor-sub, .yw-exp-td-descriptor, .yw-exp-tx-table .yw-exp-row-note) { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-exp-vendor-track { background: #142036; }
[data-theme-root].dark .yw-money-page .yw-exp-vendor-track > i { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark .yw-money-page :is(.yw-exp-td-date, .yw-exp-td-account, .yw-exp-td-how) { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-exp-td-none { color: #6f6975; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table .yw-exp-row-note[data-tone="bad"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table tbody td { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-find-input, .yw-exp-tx-table select, .yw-exp-tx-table button[class~="text-rose-700"], .yw-exp-tx-table button[class~="border-zinc-300"]) { border-color: #1c2843; background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-find-input, .yw-exp-tx-table select):focus { border-color: #5a4a6d; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table button[class~="text-rose-700"]:hover { border-color: #5a3a4a; color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table button[class~="border-zinc-300"]:hover { border-color: #5a4a6d; color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table button[class~="text-violet-600"] { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-exp-tx-table [data-ui="badge"], [data-theme-root].dark .yw-money-page .yw-exp-lines [data-ui="badge"] { background: transparent; box-shadow: none; }
[data-theme-root].dark .yw-exp-scene-art > canvas { filter: invert(1) hue-rotate(180deg); mix-blend-mode: screen; opacity: .55; }
[data-theme-root].dark .yw-exp-scene .yw-insight-count { background: rgba(255, 255, 255, .1); color: #d9c8f0; }

/* -- 6b: Recurring. The hero's rows with a sparkline beside the value, the
   ad platform rows, the decision rows, the month grid, the dot strip. */
.yw-exp-row-value { display: inline-flex; align-items: center; gap: 10px; }
.yw-money-flag[data-tone="amber"] { color: #9a805f; }
.yw-exp-fold > summary { cursor: pointer; list-style: none; }
.yw-exp-fold > summary::-webkit-details-marker { display: none; }
.yw-exp-fold > summary:focus-visible { outline: 2px solid #b993ff; outline-offset: 2px; border-radius: 6px; }
.yw-exp-fold-body { margin: 8px 0 4px; padding: 12px 14px; border-radius: 12px; background: #f6f5f7; }
.yw-exp-ad-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 6.5rem 7rem; align-items: center; gap: 12px; }
.yw-exp-ad-name { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.yw-exp-ad-name > .yw-exp-line-name { flex: 0 1 auto; }
.yw-exp-ad-figure { color: #343039; font-size: 13px; font-weight: 500; text-align: right; white-space: nowrap; }
strong.yw-exp-ad-figure { color: #202024; }
.yw-exp-ad-figure > span { color: #929097; font-size: 10px; font-weight: 400; }
.yw-exp-decide { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.yw-exp-decide > .min-w-0 { flex: 1 1 14rem; }
.yw-exp-decide-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.yw-exp-moves { margin-top: 0; }
/* The month grid: header row, one hairline row per tool, a tinted month when
   it runs 25% or more above the first bill (the value stays ink). */
.yw-exp-grid { min-width: 760px; }
.yw-exp-grid-head { padding: 0 0 8px; border-bottom: 1px solid #eae8ec; color: #766d7c; font-size: 12px; font-weight: 500; }
.yw-exp-group { margin-top: 14px; padding-bottom: 2px; color: #87818c; font-size: 12px; font-weight: 500; }
.yw-exp-grid-row { border-bottom: 1px solid #eae8ec; }
.yw-exp-grid-row:last-child { border-bottom: 0; }
.yw-exp-grid-row > summary { padding: 9px 0; border-radius: 8px; transition: background-color .16s; }
.yw-exp-grid-row > summary:hover { background-color: #faf8fc; }
.yw-exp-grid-name { color: #202024; font-size: 13px; font-weight: 500; }
.yw-exp-grid-name[data-stopped] { color: #a09aa4; text-decoration: line-through; text-decoration-color: #d6d2da; }
.yw-exp-grid-cell { padding: 2px 4px; border-radius: 4px; color: #49434e; font-size: 12px; text-align: right; }
.yw-exp-grid-cell[data-zero] { color: #c3bdc8; }
.yw-exp-grid-cell[data-heat] { background: #fbf0f4; color: #202024; font-weight: 500; }
.yw-exp-grid-total { color: #202024; font-size: 12px; font-weight: 500; text-align: right; }
.yw-exp-grid-row .yw-exp-fold-body { margin: 2px 0 10px; }
.yw-exp-reclass { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #e7e4ea; }
.yw-exp-history { margin-top: 10px; }
.yw-exp-history .yw-exp-lines { margin-top: 6px; }
.yw-exp-archived { margin-top: 14px; }
.yw-exp-archived ul { margin: 6px 0 0; padding: 0; list-style: none; color: #929097; font-size: 11px; line-height: 1.7; }
.yw-exp-archived .yw-exp-line-name { font-size: 12px; }
.yw-exp-line-main > strong.yw-exp-ap-amount { margin-left: 0; color: #202024; font-size: 14px; font-weight: 500; }
/* Tracked obligations: one row each, the status a word, the focused one tinted. */
.yw-exp-obligation[data-obligation-focus] { margin: 0 -12px; padding: 11px 12px; border-radius: 12px; background: #f6f1fb; }
.yw-exp-obligation .yw-money-flag { margin-left: 2px; }
.yw-exp-dots { display: flex; align-items: center; gap: 5px; margin-top: 8px; }
.yw-exp-dots > span[data-status] { width: 9px; height: 9px; border-radius: 50%; background: #e2e1e4; }
.yw-exp-dots > span[data-status="paid"] { background: #279876; }
.yw-exp-dots > span[data-status="amount_changed"] { background: #c9a978; }
.yw-exp-dots > span[data-status="missing"] { background: #c85f84; }
.yw-exp-dots > span[data-status="upcoming"] { background: #cdb5ee; }
.yw-exp-dots > span.num { margin-left: 4px; color: #929097; font-size: 10px; }
.yw-exp-terms, .yw-exp-track { margin-top: 8px; }
.yw-exp-track { padding-top: 12px; border-top: 1px solid #eae8ec; }

/* -- 6b: the benchmarks (ratios-tab.tsx): one row per cost line, the band
   bar under it, the thresholds and source in the row's drill-down. */
.yw-exp-bench-list { margin-top: 10px; }
.yw-exp-bench-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.yw-exp-bench-label { color: #202024; font-size: 13px; font-weight: 500; }
.yw-exp-bench-label .yw-exp-line-meta { margin-left: 4px; font-weight: 400; }
.yw-exp-bench-pct { margin-left: auto; color: #202024; font-size: 14px; font-weight: 500; }
.yw-exp-bench-scale { display: flex; justify-content: space-between; margin-top: 3px; color: #a09aa4; font-size: 10px; }
.yw-exp-window { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* -- 6b: Log an expense and its own route (log-tab.tsx, capture/). */
.yw-exp-standalone-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 18px; }
.yw-exp-standalone-title { margin: 0; color: #202024; font-size: 26px; font-weight: 500; line-height: 1.2; letter-spacing: -.8px; }
.yw-exp-logstatus { margin-top: 4px; }
.yw-exp-logstatus-head { color: #343039; font-weight: 500; }
.yw-exp-logstatus-head[data-tone="bad"] { color: #a96883; }
.yw-exp-upload { display: block; }
.yw-exp-upload > .yw-card-head { margin-bottom: 16px; }
.yw-money-page .yw-exp-upload [class~="border-dashed"] { border-radius: 16px; background-color: #f8f6fa; }
.yw-exp-result { border-color: #e3d6f6; }
.yw-exp-files-as { margin-top: 8px; padding: 10px 12px; border-radius: 12px; background: #f6f1fb; }
.yw-exp-uploads > ul { margin: 12px 0 0; }
.yw-exp-uploads > ul > li { padding: 11px 0; border-color: #eae8ec; color: #343039; font-size: 13px; }
.yw-exp-uploads > ul > li:first-child { border-top: 0; }
.yw-exp-history-rows > li { padding: 14px 0; border-top: 1px solid #eae8ec; }
.yw-exp-history-rows > li:first-child { border-top: 0; padding-top: 4px; }
.yw-exp-log-grid { margin-top: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* -- 6b: Upload a statement (statement/page.tsx, statement-upload.tsx). */
.yw-money-page > .yw-exp-standalone-head + .yw-money-stack { margin-top: 18px; }
.yw-exp-statement > .yw-card-title { font-size: 19px; }
.yw-exp-statement-done { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: #eef7f3; }
.yw-exp-trust-group { margin-top: 16px; }
.yw-exp-trust-group > .yw-exp-lines { margin-top: 6px; }
.yw-exp-trust-row { display: flex; align-items: baseline; gap: 10px; color: #202024; font-size: 13px; font-weight: 500; }
.yw-exp-trust-row::before { content: ""; width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: #a5a0ab; transform: translateY(-1px); }
.yw-exp-trust-row[data-kind="we_never_see"]::before { background: #279876; }
.yw-exp-trust-row[data-kind="you_control"]::before { background: #9161df; }

@media (max-width: 800px) {
  .yw-exp-ad-row { grid-template-columns: minmax(0, 1fr) auto; }
  .yw-exp-ad-row > .yw-exp-spark { display: none; }
  .yw-exp-log-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .yw-exp-grid-row > summary { transition: none; }
}

/* -- 6b rebuilt (10/11, owner: "all of these sub tabs need re designs"):
   Overview, Recurring and Log an expense at the Room Types scale. Rows and
   cells 14px, notes 12.5px, nothing under 12px; every badge a plain toned
   word; every control a 34px pill or field with 10px corners; Log an
   expense takes the Get Paid row (the form beside the status scene) and
   its uploads become one table. */
/* Shared: notes, tables, fields, pills. */
.yw-exp-row-note { font-size: 12.5px; }
.yw-exp-table { font-size: 14px; }
.yw-exp-table thead th { padding: 0 8px 10px; color: #87818c; font-size: 12.5px; font-weight: 400; box-shadow: inset 0 -1px 0 #eae8ec; }
.yw-exp-table tbody td { padding: 13px 8px; vertical-align: middle; color: #202024; font-size: 14px; }
.yw-exp-table .yw-money-flag { font-size: 13px; letter-spacing: 0; }
.yw-exp-table .yw-exp-td-date { color: #59535f; }
.yw-exp-table .yw-exp-td-name { font-weight: 500; }
.yw-exp-table .yw-exp-td-none { color: #b9b3be; font-size: 13px; }
.yw-exp-table .yw-exp-table-note > td { padding: 0 8px 12px; border-top: 0; }
.yw-money-overflow.yw-exp-flat { overflow: visible; }
.yw-exp-pill-quiet { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #59535f; font-size: 13px; font-weight: 500; white-space: nowrap; text-decoration: none; cursor: pointer; transition: border-color .16s, color .16s; }
.yw-exp-pill-quiet:hover { border-color: #c9b1ff; color: #7433d4; }
.yw-exp-select, .yw-money-page .yw-card select[name="category"]:where(:not(:is(.yw-books) *)), .yw-money-page .yw-card select[name="memberId"]:where(:not(:is(.yw-books) *)) { height: 34px; max-width: 16rem; padding: 0 10px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 13px; outline: none; }
.yw-exp-select:focus, .yw-money-page .yw-card select[name="category"]:where(:not(:is(.yw-books) *)):focus { border-color: #c9b1ff; }
.yw-exp-inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.yw-money-page .yw-exp-lines form button[type="submit"] { height: 32px; padding: 0 12px; border-radius: 10px; font-size: 13px; font-weight: 500; }
/* The violet primaries on Recurring and Log: one 34px pill. */
.yw-money-page :is(.yw-exp-decide, .yw-exp-reclass, .yw-exp-lines, .yw-exp-moves, .yw-exp-upload, .yw-exp-capture) :is(button, a)[class~="bg-violet-600"] { height: 34px; padding: 0 14px; border-radius: 10px; background-color: #7c3aed; font-size: 13px; font-weight: 500; line-height: 1; }
.yw-money-page :is(.yw-exp-decide, .yw-exp-reclass, .yw-exp-lines, .yw-exp-moves, .yw-exp-upload, .yw-exp-capture) :is(button, a)[class~="bg-violet-600"]:hover { background-color: #6d2fd6; }
.yw-money-page :is(.yw-exp-upload, .yw-exp-capture) button[class~="border-zinc-300"] { height: 34px; padding: 0 13px; border-color: #e2e1e4; border-radius: 10px; color: #59535f; font-size: 13px; font-weight: 500; }
.yw-money-page :is(.yw-exp-upload, .yw-exp-capture) button[class~="border-zinc-300"]:hover { border-color: #c9b1ff; background: #fff; color: #7433d4; }
/* Badges on these tabs read as words. */
.yw-money-page :is(.yw-exp-ad-name, .yw-exp-moves, .yw-exp-grid, .yw-exp-capture, .yw-exp-lines) [data-ui="badge"] { padding: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
/* Overview. */
.yw-money-page .yw-channel-legend > li { font-size: 13.5px; }
.yw-exp-bench-label { font-size: 14px; }
.yw-exp-bench-pct { font-size: 15px; }
.yw-exp-bench-scale { font-size: 12px; }
/* Recurring. */
.yw-money-page .yw-card [data-ui="segmented"]:where(:not(:is(.yw-getpaid-page, .yw-refunds-page, .yw-channels-page) *)) > :is(a, button) { padding: 8px 14px; font-size: 13px; }
.yw-exp-ad-figure { font-size: 14px; }
.yw-exp-ad-figure > span { font-size: 12px; }
.yw-exp-grid-head { font-size: 12.5px; }
.yw-exp-group { font-size: 12.5px; }
.yw-exp-grid-name { font-size: 14px; }
.yw-exp-grid-cell { font-size: 13px; }
.yw-exp-grid-total { font-size: 13.5px; }
.yw-exp-archived ul { font-size: 12.5px; }
.yw-exp-archived .yw-exp-line-name { font-size: 13px; }
.yw-exp-dots > span.num { font-size: 12px; }
.yw-money-page :is(.yw-exp-track, .yw-exp-lines, .yw-exp-reclass) input[class~="rounded-lg"] { height: 34px; padding: 0 10px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 13px; outline: none; }
.yw-money-page :is(.yw-exp-track, .yw-exp-lines, .yw-exp-reclass) input[class~="rounded-lg"]:focus { border-color: #c9b1ff; }
.yw-money-page .yw-exp-track span[class~="text-xs"] { font-size: 12.5px; }
.yw-money-page .yw-exp-track button[type="submit"] { height: 34px; padding: 0 14px; border-radius: 10px; font-size: 13px; font-weight: 500; }
.yw-exp-track > summary { font-size: 13px; }
/* Log an expense: the form beside the scene. */
.yw-exp-log-top { align-items: stretch; }
.yw-exp-upload-cell { min-width: 0; }
.yw-exp-upload-cell > div > form.yw-exp-upload { height: 100%; }
.yw-exp-logscene .yw-insight-main h3 { color: inherit; }
.yw-exp-logscene .yw-exp-logstatus-head { color: inherit; font-size: 21px; font-weight: 500; }
.yw-exp-logscene .yw-exp-logstatus-head[data-tone="bad"] { color: #8f3a5e; }
.yw-money-page .yw-exp-upload [class~="border-dashed"] { padding: 26px 16px; border-width: 1.5px; border-color: #ddd3e6; border-radius: 16px; background-color: #faf8fc; }
.yw-money-page .yw-exp-upload [class~="border-dashed"]:hover { border-color: #cdb5ee; }
.yw-exp-drop-title { color: #202024; font-size: 14px; font-weight: 500; }
.yw-exp-drop-sub { margin-top: 3px; color: #87818c; font-size: 13px; }
.yw-money-page .yw-exp-upload :is(input:not([type="file"]):not([type="checkbox"]), select, textarea) { min-height: 38px; padding: 8px 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 14px; outline: none; box-shadow: none; }
.yw-money-page .yw-exp-upload :is(input, select, textarea):focus { border-color: #c9b1ff; box-shadow: 0 0 0 3px rgba(124, 58, 237, .08); }
.yw-money-page .yw-exp-upload label > span:first-child, .yw-money-page .yw-exp-capture label > span:first-child { color: #59535f; font-size: 13px; font-weight: 500; }
.yw-money-page .yw-exp-upload button[class~="rounded-full"] { padding: 5px 11px; border-color: #e2e1e4; color: #59535f; font-size: 12.5px; }
.yw-money-page .yw-exp-upload button[class~="rounded-full"]:hover { border-color: #c9b1ff; color: #7433d4; }
.yw-money-page .yw-exp-upload p[class~="text-xs"], .yw-money-page .yw-exp-upload p[class~="text-sm"] { font-size: 12.5px; }
.yw-money-page .yw-exp-upload p[class~="bg-violet-50"] { border-radius: 12px; background: #f6f1fb; color: #5e4380; font-size: 13px; }
.yw-money-page .yw-exp-upload button[type="submit"] { height: 38px; padding: 0 16px; border-radius: 10px; font-size: 14px; font-weight: 500; }
/* The capture detail (the Filed card and every open item). */
.yw-exp-history-row { padding: 14px 0; border-top: 1px solid #eae8ec; }
.yw-exp-history-row:first-child { border-top: 0; padding-top: 4px; }
.yw-exp-history-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.yw-exp-capture span[class~="text-sm"][class~="font-semibold"] { color: #202024; font-size: 14px; font-weight: 500; }
.yw-exp-capture p[class~="text-sm"] { color: #59535f; font-size: 13.5px; }
.yw-exp-capture p[class~="text-xs"] { color: #87818c; font-size: 12.5px; }
.yw-exp-capture span[class~="text-xs"] { font-size: 12.5px; }
.yw-exp-capture button[class~="text-violet-600"] { color: #7433d4; font-size: 13px; font-weight: 500; }
.yw-exp-capture a[class~="text-violet-600"] { color: #7433d4; font-weight: 500; }
.yw-exp-capture :is(input:not([type="checkbox"]), select) { min-height: 36px; padding: 6px 12px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 14px; outline: none; box-shadow: none; }
.yw-exp-capture :is(input, select):focus { border-color: #c9b1ff; box-shadow: none; }
.yw-exp-capture li > button[class~="rounded-lg"] { border-radius: 12px; border-color: #e2e1e4; font-size: 13.5px; }
.yw-exp-capture li > button[class~="border-violet-400"] { border-color: #c9b1ff; background: #f6f1fb; }
.yw-exp-capture div[class~="border-t"] { border-color: #eae8ec; }
.yw-exp-result { border-color: #e3d6f6; }

/* -- 6b dark: the warm palette. */
[data-theme-root].dark .yw-money-page .yw-money-flag[data-tone="amber"] { color: #e6bd7f; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-fold-body, .yw-exp-files-as) { background: #142036; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-ad-figure, .yw-exp-grid-cell) { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page :is(strong.yw-exp-ad-figure, .yw-exp-grid-name, .yw-exp-grid-total, .yw-exp-ap-amount, .yw-exp-bench-label, .yw-exp-bench-pct, .yw-exp-standalone-title, .yw-exp-trust-row, .yw-exp-logstatus-head) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-ad-figure > span, .yw-exp-grid-head, .yw-exp-group, .yw-exp-bench-scale, .yw-exp-archived ul, .yw-exp-dots > span.num) { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-exp-grid-cell[data-zero] { color: #6f6975; }
[data-theme-root].dark .yw-money-page .yw-exp-grid-cell[data-heat] { background: #3a2a31; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-exp-grid-name[data-stopped] { color: #8f8996; text-decoration-color: #59535f; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-grid-head, .yw-exp-grid-row, .yw-exp-reclass, .yw-exp-track, .yw-exp-uploads > ul > li, .yw-exp-history-rows > li) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-exp-grid-row > summary:hover { background-color: #111b30; }
[data-theme-root].dark .yw-money-page .yw-exp-obligation[data-obligation-focus] { background: #2f2638; }
[data-theme-root].dark .yw-money-page .yw-exp-dots > span[data-status] { background: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-exp-dots > span[data-status="paid"] { background: #5fbf9b; }
[data-theme-root].dark .yw-money-page .yw-exp-dots > span[data-status="amount_changed"] { background: #c9a978; }
[data-theme-root].dark .yw-money-page .yw-exp-dots > span[data-status="missing"] { background: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-exp-dots > span[data-status="upcoming"] { background: #5c4a78; }
[data-theme-root].dark .yw-money-page .yw-exp-logstatus-head[data-tone="bad"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-exp-upload [class~="border-dashed"] { border-color: #273656; background-color: #111b30; }
[data-theme-root].dark .yw-money-page .yw-exp-result { border-color: #4a3a63; }
[data-theme-root].dark .yw-money-page .yw-exp-uploads > ul > li { color: #d9d2e3; }
[data-theme-root].dark .yw-money-page .yw-exp-statement-done { background: #26332e; }
/* -- 6b dark, rebuilt (10/11). */
[data-theme-root].dark .yw-money-page .yw-exp-table thead th { color: #a297ab; box-shadow: inset 0 -1px 0 #1c2843; }
[data-theme-root].dark .yw-money-page .yw-exp-table tbody td { border-color: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-table .yw-exp-td-date) { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-exp-table .yw-exp-td-none { color: #6f6975; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-pill-quiet, .yw-exp-select, .yw-card select[name="category"], .yw-card select[name="memberId"], .yw-exp-upload :is(input:not([type="file"]):not([type="checkbox"]), select, textarea), .yw-exp-capture :is(input:not([type="checkbox"]), select), :is(.yw-exp-track, .yw-exp-lines, .yw-exp-reclass) input[class~="rounded-lg"], :is(.yw-exp-upload, .yw-exp-capture) button[class~="border-zinc-300"]) { border-color: #1c2843; background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-pill-quiet, :is(.yw-exp-upload, .yw-exp-capture) button[class~="border-zinc-300"]):hover { border-color: #5a4a6d; color: #c9b1ff; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-upload, .yw-exp-capture) :is(input, select, textarea):focus { border-color: #5a4a6d; box-shadow: none; }
[data-theme-root].dark .yw-money-page .yw-exp-upload [class~="border-dashed"] { border-color: #273656; background-color: #111b30; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-drop-title, .yw-exp-capture span[class~="text-sm"][class~="font-semibold"]) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-drop-sub, .yw-exp-upload label > span:first-child, .yw-exp-capture label > span:first-child, .yw-exp-capture p[class~="text-sm"], .yw-exp-capture p[class~="text-xs"], .yw-exp-upload p[class~="text-xs"], .yw-exp-upload p[class~="text-sm"]) { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-exp-upload button[class~="rounded-full"] { border-color: #1c2843; color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-exp-upload p[class~="bg-violet-50"] { background: #2f2638; color: #d9c8f0; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-capture button[class~="text-violet-600"], .yw-exp-capture a[class~="text-violet-600"]) { color: #c9b1ff; }
[data-theme-root].dark .yw-money-page .yw-exp-capture li > button[class~="rounded-lg"] { border-color: #1c2843; background: #0d1527; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-exp-capture li > button[class~="border-violet-400"] { border-color: #5a4a6d; background: #2f2638; }
[data-theme-root].dark .yw-money-page :is(.yw-exp-capture div[class~="border-t"], .yw-exp-history-row) { border-color: #1c2843; }
[data-theme-root].dark .yw-exp-logscene .yw-exp-logstatus-head[data-tone="bad"] { color: #e69ac4; }

/* ---- wave 7: Owner, Capital, Compliance ---- */
/* Owner (owner/**: the Deal, Underwriting, CapEx, Cap table and Units tabs,
   the cash modal, the edit and distribution modals, the investor ledger),
   Capital (capital/page.tsx) and Compliance (the body in
   wizard/compliance/*, mounted by ComplianceView in am/wizard-views.tsx).
   Built from the shared hero, grid, stack, rows, table, note and flag
   classes above; this block adds what these pages need on top: a card KPI
   (a card that is not the hero but leads with a figure), the notice stack,
   a section inside a card (sub-head, form), table group and total rows, a
   sticky first column for the wide underwriting grids, the cash receipt
   inside the modal, the modals on the menu surface, the Compliance tiles
   and status words, and the Capital dropzone. Values stay ink; only flag
   words, status words, pills and the tile dot take a tone. */

/* -- shared pieces (any Money page may use them) -- */
.yw-money-notices { display: flex; flex-direction: column; gap: 2px; margin-top: 14px; }
.yw-money-notices > .yw-money-note { margin-top: 0; }
.yw-money-notices .hw-info-label { color: inherit; font-size: inherit; font-weight: 500; }
.yw-money-alone { margin-top: 16px; }
.yw-money-grid > .yw-money-alone { grid-column: 1 / -1; margin-top: 0; }
.yw-money-page > .yw-money-alone, .yw-compliance > .yw-money-alone { animation: yw-motion-enter .65s backwards; animation-delay: .23s; }
.yw-money-kpi { margin: 16px 0 2px; color: #202024; font-size: 27px; font-weight: 500; line-height: 1.15; letter-spacing: -.05em; }
.yw-money-kpi-sub { margin: 0 0 12px; color: #929097; font-size: 12px; }
.yw-money-kpi-sub + .yw-money-note { margin-top: 0; }
.yw-money-track { margin: 4px 0 2px; }
.yw-money-track .yw-track-labels { margin-bottom: 10px; }
.yw-money-head-links { display: inline-flex; flex-shrink: 0; align-items: center; gap: 12px; }
.yw-money-act { padding: 4px 9px; border: 0; border-radius: 9px; background: transparent; color: #8553c2; font-size: 11px; font-weight: 500; cursor: pointer; }
.yw-money-act:hover { background: #f0e9fb; }
.yw-money-act[data-quiet] { color: #87818c; }
.yw-money-act[data-quiet]:hover { background: #f4f2f6; color: #202024; }
.yw-money-act:focus-visible { outline: 2px solid #b993ff; outline-offset: 1px; }
.yw-money-sub { display: block; margin: 2px 0 0; padding: 0; color: #a09aa4; font-size: 11px; font-weight: 400; line-height: 1.4; list-style: none; }
.yw-money-sub-inline { color: #a09aa4; font-size: 11px; }
.yw-money-cta { display: inline-block; margin-top: 16px; }
/* A section inside a card: a hairline, a sub-head, then its rows or form. */
.yw-money-subsection { margin-top: 18px; padding-top: 14px; border-top: 1px solid #eae8ec; }
.yw-money-subhead { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: 10px; }
.yw-money-subhead-title { color: #202024; font-size: 13px; font-weight: 500; }
.yw-money-subhead-title .hw-info-label { color: inherit; font-size: inherit; font-weight: inherit; }
.yw-money-subhead-meta { color: #929097; font-size: 11px; }
.yw-money-info-lines { margin: 0; padding: 0; list-style: none; }
.yw-money-info-lines > li { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; }
/* Tables: a group line inside a table, a subtotal row, the foot, a sticky
   first column for the wide grids, a muted padded month. */
.yw-money-table th.text-center { text-align: center; }
.yw-money-th-sub { display: block; color: #a09aa4; font-size: 11px; font-weight: 400; }
.yw-money-table .yw-money-table-group > td { padding-top: 16px; padding-bottom: 6px; color: #202024; font-size: 12px; font-weight: 500; }
.yw-money-table-group-meta { color: #929097; font-weight: 400; }
.yw-money-page tbody tr.yw-money-table-group:hover { background-color: transparent; }
/* 10/11: not on the Owner page, whose total rows are its own (skin/money-owner.css). */
.yw-money-table .yw-money-table-total > td, .yw-money-table:where(:not(.yw-owner-page *)) tfoot td { background-color: #f8f4fb; color: #202024; font-weight: 500; }
.yw-money-table .yw-money-table-total > td:first-child, .yw-money-table:where(:not(.yw-owner-page *)) tfoot td:first-child { padding-left: 8px; }
.yw-money-table .yw-money-row-empty > td { color: #c3bdc8; }
.yw-money-table .yw-money-sticky { position: sticky; left: 0; z-index: 1; background-color: #fbfbfb; }
.yw-money-table .yw-money-table-total > .yw-money-sticky { background-color: #f8f4fb; }
/* Forms inside a modal or a card: a fieldset is a hairline group. */
.yw-money-fieldset { margin: 0; padding: 12px 0 0; border: 0; border-top: 1px solid #eae8ec; }
.yw-money-legend { padding: 0 8px 0 0; color: #87818c; font-size: 12px; font-weight: 500; }
.yw-money-danger { padding: 8px 12px; border: 1px solid #f0d2dd; border-radius: 10px; background: transparent; color: #a96883; font-size: 13px; font-weight: 500; cursor: pointer; }
.yw-money-danger:hover { background: #fbf0f4; }
.yw-money-remove { padding: 0; border: 0; background: none; color: #a96883; font-size: 11px; font-weight: 500; cursor: pointer; }
.yw-money-remove:hover { text-decoration: underline; text-underline-offset: 2px; }

/* -- the modals on the menu surface (AcqModal motion="dialog") -- */
/* 10/11: not on the Owner page or Expenses > Books, whose dialogs are drawn by skin/money-owner.css and skin/money-expenses-books.css. */
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) { border: 1px solid #e5ddea; border-radius: 17px; background: #fdfcfe; box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; color: #202024; font-family: var(--font-geist-sans), Geist, system-ui, sans-serif; letter-spacing: -.25px; }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *))::backdrop { background: rgba(32, 24, 40, .34); }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header { padding: 18px 23px 14px; border-color: #eae8ec; }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header h2 { font-size: 19px; font-weight: 500; letter-spacing: -.55px; }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header p { margin-top: 2px; color: #929097; font-size: 12px; }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header > button { border-radius: 50%; color: #87818c; }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header > button:hover { background: #eeeeee; color: #202024; }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > div { padding: 18px 23px 23px; }
.yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) form label { color: #87818c; font-size: 12px; }

/* -- Owner: the cash receipt in the modal -- */

/* -- Owner: the ledger cards -- */
/* The fee ledger's year arrows. */
/* Bank payments to confirm as the management fee. */

/* -- Capital -- */
.yw-capital-upload { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 14px; }
.yw-capital-drop { display: flex; width: 100%; flex-direction: column; align-items: center; padding: 20px 16px; border: 1.5px dashed #ddd3e6; border-radius: 16px; background: #faf8fc; text-align: center; cursor: pointer; transition: border-color .2s ease, background-color .2s ease; }
.yw-capital-drop:hover { border-color: #cdb5ee; }
.yw-capital-drop-title { color: #202024; font-size: 13px; font-weight: 500; }
.yw-capital-drop-sub { margin-top: 3px; color: #929097; font-size: 12px; }
.yw-capital-statements { margin: 10px 0 0; padding: 0; list-style: none; }
.yw-capital-statements > li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid #eae8ec; }
.yw-capital-statements > li:first-child { border-top: 0; }
.yw-capital-statements > li strong { color: #202024; font-size: 13px; font-weight: 500; }
.yw-capital-statement-total { margin-left: auto; color: #343039; font-size: 13px; font-weight: 500; white-space: nowrap; }

/* -- Compliance -- */
/* The three tiles: a dashboard card each, the state word at KPI size, the
   next date as the pill with its dot. The dot is the only colour. */
.yw-compliance-tile { display: flex; flex-direction: column; color: inherit; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
.yw-compliance-tile[aria-current="true"] { border-color: #cdb5ee; }

/* ---- wave 5: P&L ---- */
/* P&L (pnl/page.tsx and its parts, 10/01). The same hero, grid, rows, notes
   and table cards as Get Paid; these are the pieces the statement adds: the
   source switch row, the statement table in the Monthly detail skin with its
   Total columns (tinted, a divider before them, a sticky line column), the
   section rows, the line drill dialog, the Books upload card, the months on
   file grid, the files list, and the Why NOI moved waterfall in hatched bars
   (violet NOI, grey helped, pink cost). Values stay ink: the bad tone lands on
   words only (the TBD line's name, a flagged month, a flag word). */
.yw-row-stat[data-strong] > .yw-row-stat-label { color: #343039; font-weight: 500; }
.yw-row-stat[data-strong] > .yw-row-stat-value { color: #202024; }
.yw-row-stat-value[data-unstated] { color: #a09aa4; font-weight: 400; }

/* The statement table: the Monthly detail skin, the line column sticky. */

/* Books: the upload card, the months on file, the files, the line notes. */

/* Trends: the variance flags and the waterfall. */
.yw-money-flag[data-tone="watch"] { color: #9a805f; }
.yw-wf { margin-top: 10px; }
.yw-wf-scroll { margin-top: 8px; overflow-x: auto; }
.yw-wf-svg { display: block; width: 100%; min-width: 32rem; height: auto; }
.yw-wf-axis { stroke: #e2e1e4; }
.yw-wf-connector { stroke: #d6d2da; }
.yw-wf-gap-total { fill: #dcccfa; }
.yw-wf-ink-total { fill: #9161df; }
.yw-wf-gap-up { fill: #e5e2e9; }
.yw-wf-ink-up { fill: #a5a0ab; }
.yw-wf-gap-down { fill: #f9dce9; }
.yw-wf-ink-down { fill: #d65e9e; }
.yw-wf-value { fill: #202024; font-size: 11px; font-weight: 500; }
.yw-wf-label { fill: #87818c; font-size: 11px; }
.yw-wf-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 10px 0 0; color: #87818c; font-size: 11px; }
.yw-wf-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.yw-wf-legend i { width: 10px; height: 10px; border-radius: 3px; }
.yw-wf-legend i[data-tone="total"] { background: repeating-linear-gradient(125deg, #9161df 0 2px, #dcccfa 2px 4px); }
.yw-wf-legend i[data-tone="up"] { background: repeating-linear-gradient(125deg, #a5a0ab 0 2px, #e5e2e9 2px 4px); }
.yw-wf-legend i[data-tone="down"] { background: repeating-linear-gradient(125deg, #d65e9e 0 2px, #f9dce9 2px 4px); }

/* NOI confidence (ConfidenceChip, used by Owner): row stats, a level word. */

/* The line drill: the menu surface as a dialog, hairline rows inside. */

/* -- Books rebuilt (10/11, owner: "these need improvement with the new
   design, they are hard to understand and read because of the font size").
   The printed statement: a fixed line column, the months even, one line per
   row with the percent a quieter 12.5px figure beside 14px dollars, the
   bookkeeper's sections as section rows, the subtotals a tinted band, the
   change column its own tint, the header and the line column held while
   the statement scrolls inside its card. The balance sheet shares the row
   with the files; a file is a row with a round mark, the name, one quiet
   line and a Delete pill. */
/* The fixed layout: the line column, then the figure columns sharing the rest. */
/* The subtotals: a tinted band, the dollars at 15px. */
/* The bookkeeper's sections. */
/* The balance sheet and the files share the row; the files fill their card. */

/* Wave 5, dark: the warm palette. */
[data-theme-root].dark .yw-money-page .yw-row-stat[data-strong] > .yw-row-stat-label { color: #ece6f2; }
[data-theme-root].dark .yw-money-page .yw-row-stat[data-strong] > .yw-row-stat-value { color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-row-stat-value[data-unstated] { color: #8f8996; }
/* Books rebuilt (10/11), dark. */
[data-theme-root].dark .yw-money-flag[data-tone="watch"] { color: #e6bd7f; }
[data-theme-root].dark .yw-money-page .yw-wf-axis { stroke: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-wf-connector { stroke: #55505d; }
[data-theme-root].dark .yw-money-page .yw-wf-gap-total { fill: #4a3a63; }
[data-theme-root].dark .yw-money-page .yw-wf-ink-total { fill: #a883ee; }
[data-theme-root].dark .yw-money-page .yw-wf-gap-up { fill: #17243d; }
[data-theme-root].dark .yw-money-page .yw-wf-ink-up { fill: #8b8794; }
[data-theme-root].dark .yw-money-page .yw-wf-gap-down { fill: #5a3a4b; }
[data-theme-root].dark .yw-money-page .yw-wf-ink-down { fill: #e07fb4; }
[data-theme-root].dark .yw-money-page .yw-wf-value { fill: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-wf-label { fill: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-wf-legend { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-wf-legend i[data-tone="total"] { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark .yw-money-page .yw-wf-legend i[data-tone="up"] { background: repeating-linear-gradient(125deg, #8b8794 0 2px, #17243d 2px 4px); }
[data-theme-root].dark .yw-money-page .yw-wf-legend i[data-tone="down"] { background: repeating-linear-gradient(125deg, #e07fb4 0 2px, #5a3a4b 2px 4px); }

/* ---- Compliance (10/7 rebuild: tiles are the tabs, one Needs you, one table) ----
   /compliance (ComplianceView in am/wizard-views.tsx, the body in
   wizard/compliance/*). The three tiles are the tabs; Permits and Insurance
   are a Needs you card, the document table beside a compact upload card,
   and a short "Does not apply" card. Status pills take their tone from
   data-tone, never a Tailwind colour. */
.yw-money-notices { display: flex; flex-direction: column; gap: 2px; margin-top: 14px; }
.yw-money-notices > .yw-money-note { margin-top: 0; }
.yw-compliance-tile { display: flex; flex-direction: column; color: inherit; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
.yw-compliance-tile:hover { border-color: #d9d2e0; box-shadow: 0 8px 22px rgba(48, 32, 64, .045); }
.yw-compliance-tile[aria-current="page"] { border-color: #b993ff; box-shadow: inset 0 0 0 1px #b993ff; }
.yw-compliance-tile:focus-visible { outline: 2px solid #b993ff; outline-offset: 2px; }
.yw-compliance-state { margin-top: 14px; color: #202024; font-size: 27px; font-weight: 500; line-height: 1.15; letter-spacing: -.04em; }
.yw-compliance-tile .yw-hero-status { margin-top: 12px; }
.yw-compliance-dot { display: inline-block; width: 7px; height: 7px; flex-shrink: 0; border-radius: 50%; background: #c3bdc8; }
.yw-compliance-tile:is([data-state="expired"], [data-state="missing"]) .yw-compliance-dot { background: #c85f84; }
.yw-compliance-tile:is([data-state="expiring"], [data-state="due"], [data-state="gap"]) .yw-compliance-dot { background: #c4a46f; }
.yw-compliance-tile[data-state="ok"] .yw-compliance-dot { background: #279876; }
.yw-compliance-tile[data-state="empty"] .yw-compliance-dot { background: #a09aa4; }
.yw-compliance-tile[data-state="unread"] .yw-compliance-dot { background: #d6d2da; }
/* Taxes return cards and month strip (10/15): the pill carries the tone. */
.yw-hero-pill[data-state="good"] .yw-compliance-dot { background: #279876; }
.yw-hero-pill[data-state="bad"] .yw-compliance-dot { background: #c85f84; }
.yw-hero-pill:is([data-state="warn"], [data-state="watch"]) .yw-compliance-dot { background: #c4a46f; }
.yw-compliance-views { margin-top: 16px; }
.yw-compliance > * + * { margin-top: 16px; }
.yw-compliance > .yw-money-notices:first-child { margin-top: 0; }
.yw-compliance .yw-needs-card { flex: none; }
.yw-compliance-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 12px; }
.yw-compliance-link { color: #8553c2; font-weight: 500; text-decoration: none; }
.yw-compliance-link:hover { text-decoration: underline; text-underline-offset: 2px; }
.yw-compliance-unread { color: #929097; text-decoration: underline; text-underline-offset: 2px; }
.yw-compliance-units { display: inline-flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.yw-compliance-units > label { color: #87818c; font-size: 12px; }
.yw-compliance-pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 20px; background: #f1eff3; color: #59535f; font-size: 11px; font-weight: 500; white-space: nowrap; }
.yw-compliance-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .8; }
.yw-compliance-pill[data-tone="ok"] { background: #e8f5ef; color: #2f8a6d; }
.yw-compliance-pill[data-tone="soon"] { background: #fbf3e2; color: #9a6f2c; }
.yw-compliance-pill[data-tone="bad"] { background: #faedf2; color: #a96883; }
.yw-compliance-pill[data-tone="quiet"] { background: #f1eff3; color: #8f8a94; }
.yw-compliance-sub { display: block; margin-top: 3px; color: #929097; font-size: 11px; line-height: 1.45; }
.yw-compliance-file { display: inline-block; max-width: 220px; overflow: hidden; color: #8553c2; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.yw-compliance-file:hover { text-decoration: underline; }
.yw-compliance-list { margin: 10px 0 0; padding: 0; list-style: none; }
.yw-compliance-list > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 10px 0; border-top: 1px solid #eae8ec; color: #343039; font-size: 13px; }
.yw-compliance-list > li > p { margin: 0; }
.yw-compliance-setup-list { margin: 0; padding: 0; list-style: none; }
.yw-compliance-setup-list > li { padding: 12px 0; border-top: 1px solid #eae8ec; }
.yw-compliance-setup-list > li:first-child { border-top: 0; padding-top: 0; }
@media (prefers-reduced-motion: reduce) { .yw-compliance-tile { transition: none; } }
[data-theme-root].dark .yw-money-page :is(.yw-compliance-state, .yw-compliance-list > li) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-compliance-unread, .yw-compliance-sub, .yw-compliance-units > label) { color: #a297ab; }
[data-theme-root].dark .yw-money-page :is(.yw-compliance-list > li, .yw-compliance-setup-list > li) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page :is(.yw-compliance-link, .yw-compliance-file) { color: #c5a8ff; }
[data-theme-root].dark .yw-money-page .yw-compliance-tile[aria-current="page"] { border-color: #7c5cc4; box-shadow: inset 0 0 0 1px #7c5cc4; }
[data-theme-root].dark .yw-money-page .yw-compliance-pill { background: #142036; color: #d9cfe3; }
[data-theme-root].dark .yw-money-page .yw-compliance-pill[data-tone="ok"] { color: #7fd3b4; }
[data-theme-root].dark .yw-money-page .yw-compliance-pill[data-tone="soon"] { color: #e6bd7f; }
[data-theme-root].dark .yw-money-page .yw-compliance-pill[data-tone="bad"] { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-compliance-pill[data-tone="quiet"] { color: #a297ab; }
@media (prefers-reduced-motion: reduce) {
  .yw-money-page > .yw-money-alone, .yw-compliance > .yw-money-alone { animation: none; }
  .yw-compliance-tile, .yw-capital-drop { transition: none; }
}

/* Wave 7 (Owner, Capital, Compliance), dark. */
[data-theme-root].dark .yw-money-page :is(.yw-money-kpi, .yw-money-subhead-title, .yw-compliance-state, .yw-compliance-tax-title, .yw-compliance-gaps > li > p, .yw-capital-drop-title, .yw-capital-statements > li strong) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-money-kpi-sub, .yw-money-subhead-meta, .yw-money-sub, .yw-money-sub-inline, .yw-money-th-sub, .yw-money-table-group-meta, .yw-money-legend, .yw-capital-drop-sub, .yw-compliance-unread, .yw-compliance-status[data-tone="quiet"], .yw-compliance-units > label, .yw-compliance-form label) { color: #a297ab; }
[data-theme-root].dark .yw-money-page :is(.yw-compliance-rows > li, .yw-compliance-tax-line, .yw-compliance-status, .yw-capital-statement-total) { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page :is(.yw-money-subsection, .yw-money-fieldset, .yw-capital-statements > li, .yw-compliance-rows > li, .yw-compliance-gaps > li, .yw-compliance-taxes > li, .yw-compliance-setup-list > li) { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page .yw-money-table:where(:not(.yw-owner-page *)) :is(.yw-money-table-total > td, tfoot td) { background-color: #2f2638; color: #f3eef8; }
[data-theme-root].dark .yw-money-page .yw-money-table .yw-money-table-group > td { color: #f3eef8; }
[data-theme-root].dark .yw-money-page tbody tr.yw-money-table-group:hover { background-color: transparent; }
[data-theme-root].dark .yw-money-page .yw-money-table .yw-money-row-empty > td { color: #6f6975; }
[data-theme-root].dark .yw-money-page .yw-money-table .yw-money-sticky { background-color: #0d1527; }
[data-theme-root].dark .yw-money-page .yw-money-table .yw-money-table-total > .yw-money-sticky { background-color: #2f2638; }
[data-theme-root].dark .yw-money-page :is(.yw-money-act, .yw-compliance-link) { color: #c5a8ff; }
[data-theme-root].dark .yw-money-page :is(.yw-money-act):hover:not(:disabled) { background: #142036; }
[data-theme-root].dark .yw-money-page .yw-money-act[data-quiet] { color: #a297ab; }
[data-theme-root].dark .yw-money-page .yw-money-act[data-quiet]:hover { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-money-remove, .yw-money-danger, .yw-compliance-status[data-tone="bad"], .yw-compliance-tax-line[data-tone="bad"]) { color: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-money-danger { border-color: #5a3a4b; }
[data-theme-root].dark .yw-money-page .yw-money-danger:hover { background: #3a2a31; }
[data-theme-root].dark .yw-money-page .yw-compliance-status[data-tone="amber"] { color: #e6bd7f; }
[data-theme-root].dark .yw-money-page .yw-compliance-tile[aria-current="true"] { border-color: #5c4a78; }
[data-theme-root].dark .yw-money-page .yw-compliance-tile:is([data-state="expired"], [data-state="missing"]) .yw-compliance-dot { background: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-compliance-tile:is([data-state="expiring"], [data-state="due"], [data-state="gap"]) .yw-compliance-dot { background: #e6bd7f; }
[data-theme-root].dark .yw-money-page .yw-compliance-tile[data-state="ok"] .yw-compliance-dot { background: #7fd3b4; }
[data-theme-root].dark .yw-money-page .yw-hero-pill[data-state="good"] .yw-compliance-dot { background: #7fd3b4; }
[data-theme-root].dark .yw-money-page .yw-hero-pill[data-state="bad"] .yw-compliance-dot { background: #e69ac4; }
[data-theme-root].dark .yw-money-page .yw-hero-pill:is([data-state="warn"], [data-state="watch"]) .yw-compliance-dot { background: #e6bd7f; }
[data-theme-root].dark .yw-money-page .yw-compliance-tile:is([data-state="empty"], [data-state="unread"]) .yw-compliance-dot { background: #6f6975; }
[data-theme-root].dark .yw-money-page .yw-capital-drop { border-color: #273656; background: #101a2f; }
[data-theme-root].dark .yw-money-page .yw-capital-drop:hover { border-color: #5c4a78; }
[data-theme-root].dark .yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) { border-color: #1c2843; background: #0d1527; box-shadow: 0 15px 45px #00000066, 0 3px 9px #00000033; color: #f3eef8; }
[data-theme-root].dark .yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *))::backdrop { background: rgba(0, 0, 0, .5); }
[data-theme-root].dark .yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header { border-color: #1c2843; }
[data-theme-root].dark .yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header p { color: #a297ab; }
[data-theme-root].dark .yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) > div > header > button:hover { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) form label { color: #a297ab; }
[data-theme-root].dark .yw-money-page dialog[data-motion="dialog"]:where(:not(.yw-owner-page *, .yw-books *)) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { border-color: #1c2843; background-color: #142036; color: #f3eef8; }

/* Schedule grid (10/13): a day the person cannot work is hatched, so the
   refusal reads before anyone drags onto it. The line token flips with the
   theme, so this needs no dark variant. */
.yw-schedule .yw-hatch {
  background-image: repeating-linear-gradient(135deg, var(--hw-line) 0 2px, transparent 2px 9px);
}

/* Compliance list + popup (10/14, owner: "incredibly simple UI... no
   scrolling needed"). One row per document; the whole row opens its popup. */
.yw-compliance-board .yw-card-head { align-items: flex-start; }
.yw-board-headline { display: inline-flex; align-items: center; gap: 6px; }
.yw-board-headline[data-tone="bad"] .yw-compliance-dot { background: #c85f84; }
.yw-board-headline[data-tone="soon"] .yw-compliance-dot { background: #c4a46f; }
.yw-board-headline[data-tone="ok"] .yw-compliance-dot { background: #279876; }
.yw-board-table td { padding-top: 8px; padding-bottom: 8px; vertical-align: middle; }
.yw-board-table tbody tr { position: relative; transition: background-color .15s ease; }
.yw-board-table tbody tr:hover { background-color: #f8f5fb; }
.yw-board-open { color: #202024; font-weight: 500; text-decoration: none; }
.yw-board-open::after { content: ""; position: absolute; inset: 0; }
.yw-board-open:focus-visible { outline: none; }
.yw-board-table tbody tr:has(.yw-board-open:focus-visible) { box-shadow: inset 0 0 0 2px #b993ff; }
.yw-board-pay { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.yw-board-pay .yw-compliance-sub { margin-top: 0; }
.yw-board-summary { margin: 0; color: #3b3640; font-size: 14px; line-height: 1.55; }
.yw-board-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px 18px; margin: 0; }
.yw-board-fact dt { color: #87818c; font-size: 11px; }
.yw-board-fact dd { margin: 2px 0 0; color: #202024; font-size: 13px; }
.yw-board-h { margin: 0 0 6px; color: #202024; font-size: 13px; font-weight: 600; }
.yw-board-terms { margin: 0; padding-left: 18px; color: #49434e; font-size: 13px; line-height: 1.5; }
.yw-board-terms > li + li { margin-top: 3px; }
.yw-board-rep { padding: 12px 14px; border: 1px solid #eae8ec; border-radius: 12px; }
.yw-board-rep > p { margin: 0; font-size: 13px; }
.yw-board-rep-lines { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 4px !important; }
.yw-board-files { margin: 0; padding: 0; list-style: none; }
.yw-board-files > li + li { margin-top: 4px; }
[data-theme-root].dark .yw-money-page .yw-board-table tbody tr:hover { background-color: #17223a; }
[data-theme-root].dark .yw-money-page :is(.yw-board-open, .yw-board-fact dd, .yw-board-h) { color: #f3eef8; }
[data-theme-root].dark .yw-money-page :is(.yw-board-summary, .yw-board-terms) { color: #c3b9cc; }
[data-theme-root].dark .yw-money-page .yw-board-rep { border-color: #1c2843; }

