/* Pricing > Setup (Rates setup, seasons and events, guardrails) redesign (10/05): the new Dashboard design on this Pricing section.
   Loaded after skin/money.css (whose root rules now include .yw-pricing-page),
   so a rule here at the same weight wins. Light rules first, their dark twins
   under [data-theme-root].dark.

   Owner, 10/05: "next we need to do pricing tab, everything we have done on
   the last tabs we need to do here ... the fonts, the colors the sizes ...
   use the new design style. remember no ai slop".

   Scope: the rules that dress shared primitives (Panel, SubmitButton, the
   inputs, the sheets) hang off .yw-setup-page, the root of radar/setup-tab.tsx
   (RatesSetupTab), so nothing reaches the month map. The rest name this
   section's own new classes (.yw-setup-*, .yw-season-*, .yw-events-*,
   .yw-floor*, .yw-seed-*, .yw-kind-*), which nothing else carries; the kind
   pills are unscoped on purpose so a sheet keeps them wherever it opens.

   In order: the page and the section bar; lines, labels and pills; Panel as
   the Dashboard card; the Rules grid; Your pricing today and the Pricing
   setup checklist; the staff step form; Market; Seasons and events (the head,
   the year strip as hatched columns, the events table); the Needs you rows;
   Room floors; the band form; the guardrail slices; last year's weight; the
   sheets and the competitor pop-up (the menu surface); the setup pop-up.
   Values stay ink; only words, pills and marks take a tone. */

/* ------------------------------------------------------------ the page -- */
.yw-setup-page { margin-top: 18px; }
.yw-setup-page > .yw-setup-late { margin: 0 0 14px; }
.yw-setup-page .yw-setup-card { margin-top: 16px; }
.yw-setup-page > .yw-setup-card:first-child,
.yw-setup-page > .yw-setup-late + .yw-setup-card { margin-top: 0; }
/* The section bar: the quiet segmented control (money.css) with room. */
.yw-setup-sections { margin-top: 18px; }
.yw-setup-page > .yw-setup-sections:first-child { margin-top: 0; }
.yw-setup-section-body { margin-top: 16px; }
.yw-setup-section-body > :first-child,
.yw-setup-section-body > :first-child > .yw-setup-card:first-child { margin-top: 0; }
.yw-setup-section-body > section[data-panel]:first-child { margin-top: 0; }
.yw-setup-section-body > .mb-3 { margin-bottom: 0; }

/* ---------------------------------------------------- lines and pills -- */
.yw-setup-line { margin: 6px 0 0; color: #929097; font-size: 12px; line-height: 1.5; }
.yw-setup-line--after { margin-top: 12px; }
.yw-setup-label { margin: 0; color: #202024; font-size: 13px; font-weight: 500; letter-spacing: -.2px; }
.yw-setup-label[data-tone="bad"] { color: #a96883; }
.yw-setup-clock { margin: 4px 0 0; color: #929097; font-size: 12px; line-height: 1.5; }
.yw-setup-count { flex-shrink: 0; padding-top: 4px; color: #7433d4; font-size: 12px; font-weight: 500; white-space: nowrap; }
.yw-setup-moves { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.yw-setup-moves > form { margin: 0; }
.yw-setup-check { display: flex; align-items: flex-start; gap: 9px; margin-top: 8px; color: #59535f; font-size: 12px; line-height: 1.5; }
.yw-setup-check input { margin-top: 2px; accent-color: #7c3aed; }
.yw-setup-confirm { margin: 0; padding: 14px 0 2px; border-top: 1px solid #eae8ec; }
.yw-setup-confirm > .yw-setup-line:first-of-type { margin-top: 4px; }
.yw-setup-confirm button[type="submit"] { margin-top: 10px; }
/* The Dashboard's buttons: the quiet pill and the one violet primary. */
.yw-setup-pill, .yw-setup-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 32px; margin: 0; padding: 0 13px; border: 0; border-radius: 10px;
  background: #eeeded; color: #202024; font-size: 12px; font-weight: 500; line-height: 1;
  letter-spacing: -.15px; white-space: nowrap; text-decoration: none; cursor: pointer;
  transition: background-color .16s, color .16s, box-shadow .16s;
}
.yw-setup-pill:hover { background: #e8e4ed; color: #202024; }
.yw-setup-primary { height: 34px; padding: 0 15px; background: #7c3aed; color: #fff; font-size: 12.5px; }
.yw-setup-primary:hover { background: #7130df; color: #fff; }
:is(.yw-setup-pill, .yw-setup-primary):focus-visible { outline: 2px solid #b993ff; outline-offset: 2px; }
:is(.yw-setup-pill, .yw-setup-primary):disabled { cursor: not-allowed; opacity: .5; }
/* SubmitButton's own variants (ui-client VARIANTS), dressed the same way: the
   primary keeps the violet at the Dashboard's size, secondary and ghost are
   the quiet pill. The section bar's lit tab and round chips keep their own. */
.yw-setup-page :is(button, a)[class~="bg-violet-600"]:not([data-ui="tab-bar"] > *, [data-ui="segmented"] > *, [class~="rounded-full"]) {
  min-height: 34px; padding: 0 15px; border-radius: 10px; font-size: 12.5px; font-weight: 500; letter-spacing: -.15px;
}
.yw-setup-page button[class~="border-zinc-300"][class~="bg-white"],
.yw-setup-page button[class~="border-zinc-200"][class~="text-zinc-500"][class~="rounded-lg"] {
  min-height: 32px; padding: 0 13px; border-color: transparent; border-radius: 10px; background: #eeeded; color: #202024; font-size: 12px; font-weight: 500;
}
.yw-setup-page button[class~="border-zinc-300"][class~="bg-white"]:hover,
.yw-setup-page button[class~="border-zinc-200"][class~="text-zinc-500"][class~="rounded-lg"]:hover { background: #e8e4ed; }
.yw-setup-page .yw-setup-export { margin-top: 16px; }

/* ------------------------------------------- Panel as the Dashboard card -- */
/* Panel (ui.tsx) keeps its markup and its title strings: the head is the
   card head (19px title, money.css), the status the quiet word on its right,
   the body under it with no hairline between them. */
.yw-setup-page section[data-panel] { margin-top: 16px; }
.yw-setup-page section[data-panel] > div:first-child { align-items: baseline; gap: 4px 12px; padding: 21px 23px 4px; }
.yw-setup-page section[data-panel] > div:first-child > span.text-xs { display: inline-block; margin-left: auto; color: #929097; font-size: 12px; text-align: right; }
/* Small text starts with a capital ("On", "Off", "Default ..."): the status
   words come lowercase from lib/pricing/rates-setup.ts. */
.yw-setup-page section[data-panel] > div:first-child > span.text-xs::first-letter { text-transform: uppercase; }
.yw-setup-page section[data-panel] > div:first-child > span.num { margin-left: 2px; color: #a59fab; font-size: 11px; }
/* A section with work (tone="attention"): no amber band, the status word in the house pink. */
.yw-setup-page section[data-panel] > div[class~="bg-amber-50/60"] { background: transparent; }
.yw-setup-page section[data-panel] > div[class~="bg-amber-50/60"] > span.text-xs { color: #a96883; font-weight: 500; }
.yw-setup-page section[data-panel] > div:last-child { padding: 12px 23px 23px; border-top: 0; }
/* A Panel inside a Panel (Advanced): a hairline row of the card, not a box. */
.yw-setup-page section[data-panel] section[data-panel] { margin: 0; border: 0; border-top: 1px solid #eae8ec; border-radius: 0; background: transparent; box-shadow: none; }
.yw-setup-page section[data-panel] section[data-panel] > div:first-child { padding: 14px 0 2px; }
.yw-setup-page section[data-panel] section[data-panel] > div:first-child > h2 { font-size: 15px; letter-spacing: -.3px; }
.yw-setup-page section[data-panel] section[data-panel] > div:last-child { padding: 8px 0 16px; }
.yw-setup-page section[data-panel] > div:last-child > .space-y-2:has(> section[data-panel]) > * + * { margin-top: 0; }
/* Inside those rows, a bordered block (Dying nights' one block per season,
   its clamp note) is one more hairline row, never a third level of box. */
.yw-setup-page section[data-panel] section[data-panel] :is(div, p)[class~="border"]:is([class~="rounded-xl"], [class~="rounded-2xl"]) { padding: 12px 0; border: 0; border-top: 1px solid #eae8ec; border-radius: 0; background: transparent; box-shadow: none; }
.yw-setup-page section[data-panel] section[data-panel] [class~="space-y-2"] > :is(div, p)[class~="border"] + :is(div, p)[class~="border"] { margin-top: 0; }
/* Controls inside a card: one height, one radius, the quiet labels. */
.yw-setup-page section[data-panel] input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="file"], :disabled),
.yw-setup-page section[data-panel] select { min-height: 34px; padding-top: 0; padding-bottom: 0; background-color: #fff; font-size: 13.5px; }
.yw-setup-page section[data-panel] label.text-xs > span.font-semibold { margin-bottom: 4px; color: #87818c; font-size: 12px; font-weight: 500; }
/* Per-room limits (guardrails-card PlanRow): hairline rows, no ring boxes. */
.yw-setup-page section[data-panel] li[class~="ring-1"] { padding: 12px 0; border-top: 1px solid #eae8ec; border-radius: 0; background: transparent; box-shadow: none; --tw-ring-shadow: 0 0 #0000; }
.yw-setup-page section[data-panel] ul:has(> li[class~="ring-1"]) > li + li { margin-top: 0; }

/* ------------------------------------------------------- the Rules grid -- */
/* Room floors across the top, the band beside the weekend nights, the caps
   beside the three rarely touched rules. Each card keeps its own height. */
.yw-setup-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.yw-setup-page .yw-setup-rules > :is(*, section[data-panel]) { min-width: 0; margin-top: 0; }
.yw-setup-rules > #floors, .yw-setup-rules > :not(section[data-panel]) { grid-column: 1 / -1; }
@media (max-width: 1000px) { .yw-setup-rules { grid-template-columns: minmax(0, 1fr); } }

/* --------------------------------------------- Your pricing today card -- */
.yw-setup-today-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; margin: 12px 0 0; }
.yw-setup-today-row { display: grid; grid-template-columns: minmax(6.5rem, 9.5rem) minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; min-height: 52px; padding: 9px 0; border-top: 1px solid #eae8ec; }
.yw-setup-today-row:nth-child(-n + 2) { border-top: 0; }
.yw-setup-today-row > dt { margin: 0; color: #87818c; font-size: 12px; }
.yw-setup-today-row > dd { min-width: 0; margin: 0; color: #202024; font-size: 13.5px; font-weight: 500; line-height: 1.4; letter-spacing: -.2px; }
.yw-setup-today-row > .yw-setup-pill { height: 28px; padding: 0 11px; font-size: 11.5px; }
@media (max-width: 900px) {
  .yw-setup-today-rows { grid-template-columns: minmax(0, 1fr); }
  .yw-setup-today-row:nth-child(2) { border-top: 1px solid #eae8ec; }
}
@media (max-width: 520px) {
  .yw-setup-today-row { grid-template-columns: minmax(0, 1fr) auto; }
  .yw-setup-today-row > dd { grid-column: 1; }
  .yw-setup-today-row > .yw-setup-pill { grid-row: 1 / span 2; grid-column: 2; }
}

/* --------------------------------------------- the Pricing setup card -- */
.yw-setup-progress { height: 9px; margin-top: 18px; }
.yw-setup-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; margin: 14px 0 0; padding: 0; list-style: none; }
.yw-setup-check-row { display: flex; align-items: center; gap: 11px; min-height: 44px; border-top: 1px solid #eae8ec; color: #202024; font-size: 13px; font-weight: 500; }
.yw-setup-check-row:nth-child(-n + 2) { border-top: 0; }
.yw-setup-check-mark { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; border: 1.5px dashed #cbbfe0; border-radius: 50%; font-size: 11px; line-height: 1; }
.yw-setup-check-row[data-done="1"] .yw-setup-check-mark { border: 0; background: #e5f2ec; color: #2f8a6d; }
.yw-setup-check-row[data-done="1"] .yw-setup-check-label { color: #929097; font-weight: 400; }
.yw-setup-check-row .yw-money-flag { margin-left: auto; }
.yw-setup-checklist > .yw-setup-primary { margin-top: 18px; }
.yw-setup-on { margin: 18px 0 0; color: #2f8a6d; font-size: 13px; font-weight: 500; }
@media (max-width: 640px) {
  .yw-setup-checks { grid-template-columns: minmax(0, 1fr); }
  .yw-setup-check-row:nth-child(2) { border-top: 1px solid #eae8ec; }
}

/* ------------------------------------- the staff step form (StepRow) -- */
.yw-setup-step { display: flex; gap: 14px; }
.yw-setup-step-mark { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 50%; background: #efe8fb; color: #7c3aed; font-size: 13px; font-weight: 500; }
.yw-setup-step[data-state="now"] .yw-setup-step-mark { background: #7c3aed; color: #fff; }
.yw-setup-step[data-state="done"] .yw-setup-step-mark { background: #e5f2ec; color: #2f8a6d; }
.yw-setup-step[data-state="later"] .yw-setup-step-mark { background: #f0eef2; color: #a09aa4; }
.yw-setup-step-title { margin: 6px 0 0; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; }
.yw-setup-step[data-state="later"] .yw-setup-step-title { color: #a09aa4; }
.yw-setup-done-lines { margin: 12px 0 0; padding: 0; list-style: none; }
.yw-setup-done-lines > li { padding: 10px 0; border-top: 1px solid #eae8ec; color: #343039; font-size: 13px; }
.yw-setup-done-lines > li:first-child { border-top: 0; }

/* -------------------------------------------------------------- Market -- */
.yw-setup-market { max-width: 760px; }
.yw-setup-market-body > .yw-setup-line:first-child { margin-top: 10px; color: #343039; font-size: 13.5px; }

/* --------------------------------------------- Seasons and events: head -- */
.yw-season-head { align-items: center; margin-bottom: 18px; }
/* The year: the quiet segmented control, the year itself the lit segment. */
.yw-season-year { display: inline-flex; flex-shrink: 0; align-items: center; gap: 2px; padding: 3px; border-radius: 12px; background: #eeeded; }
.yw-season-year > a { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; color: #6f6975; font-size: 15px; line-height: 1; text-decoration: none; transition: background-color .16s, color .16s; }
.yw-season-year > a:hover { background: rgba(255, 255, 255, .6); color: #202024; }
.yw-season-year > a:focus-visible { outline: 2px solid #b993ff; outline-offset: 1px; }
.yw-season-year > span { min-width: 3.6rem; height: 28px; padding: 0 8px; border-radius: 9px; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .06); color: #202024; font-size: 12px; font-weight: 500; line-height: 28px; text-align: center; }
.yw-season-moves { margin-top: 18px; }
.yw-setup-confirm-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #eae8ec; }
.yw-setup-confirm-row form { margin: 0; }
.yw-setup-done-word { display: inline-flex; align-items: center; gap: 6px; color: #2f8a6d; font-size: 12px; font-weight: 500; }
.yw-season-copy { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.yw-setup-confirm-row + .yw-season-copy { margin-top: 10px; }
.yw-season-card > .yw-setup-line { margin-top: 12px; }

/* ------------------------------------ Seasons and events: the year strip -- */
/* The Dashboard's column chart laid along the year: each season stands on
   the rail, its height its type, hatched in the violet ramp; events are a
   pink track and a star on their own rail; today is the violet marker. */
.yw-season-strip { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #ddd2e7 transparent; }
.yw-season-strip-inner { min-width: 44rem; }
.yw-season-key { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 18px; margin-bottom: 10px; color: #8e8494; font-size: 10.5px; }
.yw-season-key > span { display: inline-flex; align-items: center; gap: 6px; }
.yw-season-key i { display: inline-block; width: 13px; height: 8px; border-radius: 2px; }
.yw-season-key i[data-lane="low"], .yw-season-bar[data-lane="low"] { background: repeating-linear-gradient(125deg, #b4adbb 0 2px, #eceaef 2px 4px); }
.yw-season-key i[data-lane="shoulder"], .yw-season-bar[data-lane="shoulder"] { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #e9defb 2px 4px); }
.yw-season-key i[data-lane="peak"], .yw-season-bar[data-lane="peak"] { background: repeating-linear-gradient(125deg, #8a45f0 0 2px, #d4b6fb 2px 4px); }
.yw-season-key i[data-lane="season"], .yw-season-bar[data-lane="season"] { background: repeating-linear-gradient(125deg, #cdb5ee 0 2px, #f3edfb 2px 4px); }
.yw-season-key i[data-lane="event"] { background: repeating-linear-gradient(125deg, #d85e9e 0 2px, #f8dae9 2px 4px); }
.yw-season-grid { display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); column-gap: 10px; }
.yw-season-months { position: relative; height: 22px; }
.yw-season-months > span { position: absolute; top: 0; overflow: hidden; padding-left: 5px; color: #8b8290; font-size: 10.5px; white-space: nowrap; }
.yw-season-lane-label { display: flex; align-items: flex-end; padding-bottom: 7px; color: #87818c; font-size: 11px; }
.yw-season-lane { position: relative; border-bottom: 1px solid #cfc8d5; }
.yw-season-lane[data-lane="seasons"] { height: 136px; background: linear-gradient(to bottom, #ece8f0 0 1px, transparent 1px calc(50% - .5px), #ece8f0 calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px)); }
.yw-season-lane[data-lane="events"] { height: 46px; border-bottom-color: #eae8ec; }
.yw-season-gridline { position: absolute; top: 0; bottom: 0; border-left: 1px solid #f1eef4; }
.yw-season-today { position: absolute; top: -6px; bottom: 0; z-index: 3; width: 1.5px; margin-left: -.75px; background: #7c3aed; pointer-events: none; }
.yw-season-lane[data-lane="seasons"] .yw-season-today::before { content: ""; position: absolute; top: -3px; left: 50%; width: 7px; height: 7px; border-radius: 50%; background: #7c3aed; box-shadow: 0 0 0 3px #efe8fb; transform: translateX(-50%); }
.yw-season-lane[data-lane="events"] .yw-season-today { top: 0; }
.yw-season-bar {
  position: absolute; bottom: 0; z-index: 1; display: block; min-width: 6px; overflow: hidden;
  border-right: 1.5px solid #fbfbfb; border-left: 1.5px solid #fbfbfb; border-radius: 8px 8px 2px 2px;
  color: inherit; text-decoration: none; transform-origin: bottom;
  animation: yw-bar-in .65s cubic-bezier(.2, .7, .2, 1) both; transition: filter .16s, box-shadow .16s;
}
.yw-season-bar:hover { filter: saturate(1.35); box-shadow: 0 0 0 3px rgba(138, 64, 233, .12); }
.yw-season-bar:focus-visible { outline: 2px solid #7836e9; outline-offset: 2px; }
.yw-season-bar[data-overlaps] { box-shadow: inset 0 0 0 2px #c85f84; }
.yw-season-bar-label { position: absolute; top: 6px; left: 5px; display: flex; max-width: calc(100% - 10px); flex-direction: column; gap: 1px; overflow: hidden; padding: 4px 7px; border-radius: 7px; background: rgba(251, 251, 251, .93); box-shadow: 0 1px 3px rgba(48, 32, 64, .07); }
.yw-season-bar-name { overflow: hidden; color: #202024; font-size: 11.5px; font-weight: 500; line-height: 1.3; letter-spacing: -.15px; text-overflow: ellipsis; white-space: nowrap; }
.yw-season-bar-dates { overflow: hidden; color: #87818c; font-size: 10px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.yw-season-pin { position: absolute; top: 0; bottom: 0; z-index: 2; display: block; min-width: 10px; color: inherit; outline: none; text-decoration: none; }
.yw-season-pin-track { position: absolute; top: 50%; right: 0; left: 0; height: 6px; margin-top: -3px; border-radius: 3px; background: repeating-linear-gradient(125deg, #d85e9e 0 2px, #f8dae9 2px 4px); transition: filter .16s; }
.yw-season-pin-star { position: absolute; top: 50%; left: 0; color: #c85f84; font-size: 13px; line-height: 1; filter: drop-shadow(0 0 1.5px #fbfbfb) drop-shadow(0 0 1.5px #fbfbfb); transform: translate(-40%, -55%); }
.yw-season-pin-name { position: absolute; bottom: calc(100% - 4px); left: 0; z-index: 10; display: none; padding: 6px 10px; border: 1px solid rgba(229, 221, 234, .85); border-radius: 10px; background: rgba(253, 252, 254, .95); box-shadow: 0 8px 22px rgba(58, 33, 68, .12); color: #202024; font-size: 11px; font-weight: 500; white-space: nowrap; pointer-events: none; backdrop-filter: blur(12px); }
.yw-season-pin:hover .yw-season-pin-name, .yw-season-pin:focus-visible .yw-season-pin-name { display: block; }
.yw-season-pin:hover .yw-season-pin-track, .yw-season-pin:focus-visible .yw-season-pin-track { filter: saturate(1.4); }
.yw-season-pin:focus-visible .yw-season-pin-track { outline: 2px solid #7836e9; outline-offset: 2px; }
.yw-season-strip-inner > .yw-money-note { margin-top: 10px; }
@media (prefers-reduced-motion: reduce) { .yw-season-bar { animation: none; transition: none; } }

/* ---------------------------------- Seasons and events: the events table -- */
.yw-events-scroll { max-height: 26rem; margin-top: 10px; }
.yw-events-table { min-width: 640px; }
.yw-events-table thead th { padding-top: 6px; padding-bottom: 10px; }
.yw-events-table tbody td { vertical-align: middle; }
.yw-events-row { cursor: pointer; }
.yw-events-name { color: #202024; font-weight: 500; text-decoration: none; transition: color .16s; }
.yw-events-name:hover, .yw-events-row:hover .yw-events-name { color: #7c3aed; }
.yw-events-kind { display: inline-flex; align-items: center; gap: 6px; color: #a96883; font-size: 11px; font-weight: 500; white-space: nowrap; }
.yw-events-star { color: #c85f84; font-size: 12px; line-height: 1; }
.yw-money-table .yw-events-x { width: 40px; text-align: right; }
.yw-money-table td.yw-events-x { padding-top: 4px; padding-bottom: 4px; }
.yw-events-remove { display: grid; width: 28px; height: 28px; margin-left: auto; place-items: center; border: 0; border-radius: 50%; background: transparent; color: #a09aa4; font-size: 16px; line-height: 1; cursor: pointer; transition: background-color .16s, color .16s; }
.yw-events-remove:hover { background: #eeeded; color: #202024; }
.yw-events-remove:focus-visible { outline: 2px solid #b993ff; outline-offset: 1px; }

/* ------------------------------------------------------ Needs you rows -- */
/* The floors that keep setting the price, the suggested season changes and
   the seeded seasons: the Dashboard's Needs you row. A round mark, the title
   (its explanation the hover), one quiet line, the moves on the right. */
.yw-setup-needs { margin: 10px 0 0; padding: 0; list-style: none; }
.yw-setup-need { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 0 14px; min-height: 72px; padding: 12px 6px; border-top: 1px solid #eae8ec; transition: background-color .16s; }
.yw-setup-need:first-child { border-top: 0; }
.yw-setup-need:hover { background: #f8f6fa; }
.yw-setup-need-mark { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: #efe8fb; color: #7c3aed; font-size: 14px; font-weight: 500; }
.yw-setup-need[data-tone="bad"] .yw-setup-need-mark { background: #f8e8ef; color: #bd6a91; }
.yw-setup-need-copy { min-width: 0; }
.yw-setup-need-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin: 0; color: #202024; font-size: 14px; font-weight: 500; letter-spacing: -.2px; }
.yw-setup-need-title .hw-info-label { font-weight: 500; text-align: left; }
.yw-setup-need-dates { color: #87818c; font-size: 12px; font-weight: 400; letter-spacing: 0; }
.yw-setup-need-line { margin: 3px 0 0; overflow: hidden; color: #929097; font-size: 12px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.yw-setup-need-moves { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 6px; margin: 0; }
.yw-setup-need-moves form { margin: 0; }
.yw-setup-need-moves .yw-setup-pill { height: 30px; padding: 0 12px; }
.yw-setup-need-moves .yw-setup-primary { height: 30px; padding: 0 13px; font-size: 12px; }
@media (max-width: 720px) {
  .yw-setup-need { grid-template-columns: 36px minmax(0, 1fr); row-gap: 10px; }
  .yw-setup-need-moves { grid-column: 2; justify-content: flex-start; }
}
/* The seed review: the lead is the card's first line, and the rows say their
   prices and floors in full (Accept all accepts exactly these). */
.yw-seed-lead { margin: 0; color: #202024; font-size: 16px; font-weight: 500; line-height: 1.4; letter-spacing: -.35px; }
.yw-seed-review .yw-setup-need-line { white-space: normal; }
.yw-seed-review .yw-seed-floors { color: #59535f; }
.yw-seed-mark i { display: block; width: 13px; height: 17px; border-radius: 3px 3px 1px 1px; background: repeating-linear-gradient(125deg, #8a45f0 0 2px, #d4b6fb 2px 4px); }
.yw-seed-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #eae8ec; }
.yw-seed-foot .yw-setup-line { margin: 0; }
/* What a suggestion changes: one line per number. */
.yw-season-suggest-lines { margin: 6px 0 0; padding: 0; list-style: none; }
.yw-season-suggest-lines > li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; padding: 3px 0; color: #87818c; font-size: 12px; }
.yw-season-suggest-lines strong { color: #202024; font-weight: 500; }
.yw-season-suggest-lines span:last-child { color: #a59fab; }

/* ---------------------------------------------------------- Room floors -- */
.yw-floors > .yw-setup-line:first-child { margin-top: 0; }
.yw-floors > .yw-money-note { margin-top: 10px; }
.yw-floors-form { margin-top: 20px; }
.yw-floors-sub { display: flex; align-items: baseline; gap: 2px; margin: 0; color: #202024; font-size: 14px; font-weight: 500; letter-spacing: -.2px; }
.yw-floors-sub + .yw-setup-line { margin-top: 2px; }
/* The three hard rules side by side, the Dashboard's row stats. */
.yw-floors-rules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; margin-top: 10px; border-top: 1px solid #eae8ec; border-bottom: 1px solid #eae8ec; }
.yw-floors-rules + .yw-floors-sub { margin-top: 24px; }
/* Every room, in two columns of hairline rows. */
.yw-floors-rooms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin-top: 8px; }
.yw-floor-row { min-width: 0; padding: 12px 0; border-top: 1px solid #eae8ec; }
.yw-floors-rules > .yw-floor-row { padding: 14px 0; border-top: 0; }
.yw-floor-row-main { display: flex; align-items: center; gap: 8px; min-width: 0; }
.yw-floor-row-main > label { order: 0; flex: 1 1 auto; min-width: 0; color: #202024; font-size: 13.5px; font-weight: 500; letter-spacing: -.2px; }
.yw-floor-row-main > [data-ui="badge"], .yw-floor-step { order: 1; }
.yw-floor-step { color: #a59fab; font-size: 11px; white-space: nowrap; }
.yw-floor-cur { order: 2; color: #929097; font-size: 13px; }
.yw-setup-page .yw-floor-row-main > input:not([type="hidden"]) { order: 3; width: 84px; height: 34px; padding: 0 10px; border-radius: 10px; background: #fff; font-size: 14px; font-weight: 500; text-align: right; font-variant-numeric: tabular-nums; }
.yw-floor-why { margin: 4px 0 0; color: #929097; font-size: 12px; line-height: 1.45; }
.yw-floors-problems { margin: 14px 0 0; padding: 0; color: #a96883; font-size: 12px; line-height: 1.5; list-style: none; }
.yw-floors-problems > li + li { margin-top: 4px; }
.yw-floors-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 18px; }
.yw-floors-foot .yw-setup-line { margin: 0; }
@media (max-width: 900px) {
  .yw-floors-rules { grid-template-columns: minmax(0, 1fr); }
  .yw-floors-rules > .yw-floor-row + .yw-floor-row { border-top: 1px solid #eae8ec; }
  .yw-floors-rooms { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------- the room ladder (Rooms) -- */
/* ladder-edit.tsx: no box around the list, the head the table head, hairline
   rows, the drag rows' hover the Dashboard tint. */

/* ----------------------------------------------------- the band form -- */
/* BandForm keeps its Tailwind look for the band wall (tool-gate.tsx); on
   Rates Setup its hook classes take the Dashboard's fields. */
.yw-setup-page .yw-setup-band-line .yw-setup-line { margin-top: 0; }
.yw-setup-page .yw-band-form { margin-top: 14px; }
.yw-setup-page .yw-band-fields { gap: 14px 18px; }
.yw-setup-page .yw-band-field { display: flex; flex-direction: column; gap: 6px; color: #87818c; font-size: 12px; font-weight: 500; }
.yw-setup-page .yw-band-field > span.block { color: #87818c; font-size: 12px; font-weight: 500; }
.yw-setup-page .yw-band-field input { width: 124px; height: 36px; margin: 0; padding: 0 11px; border-radius: 10px; background: #fff; color: #202024; font-size: 14px; font-weight: 500; font-variant-numeric: tabular-nums; }
.yw-setup-page .yw-band-why { margin-top: 0; color: #a59fab; font-size: 11px; font-weight: 400; }
.yw-setup-page .yw-band-suggest { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 10px; }
.yw-setup-page .yw-band-suggest > span:first-child { color: #87818c; font-size: 11.5px; font-weight: 500; }
.yw-setup-page .yw-band-suggest > div { margin-top: 0; }
/* "Use $X" (season-rails-card.tsx FloorSuggestionChip): the lit pill. */
.yw-setup-page .yw-use-chip { display: inline-flex; height: 26px; align-items: center; padding: 0 10px; border: 0; border-radius: 20px; background: #eee5fd; color: #7433d4; font-size: 11.5px; font-weight: 500; transition: background-color .16s; }
.yw-setup-page .yw-use-chip:hover { background: #e3d6f6; }
[data-theme-root].dark .yw-setup-page .yw-use-chip { background: #3f2d5c; color: #c9b1ff; }
[data-theme-root].dark .yw-setup-page .yw-use-chip:hover { background: #4a3a63; }
.yw-setup-page .yw-band-weekend { margin-top: 16px; padding: 14px 0 0; border: 0; border-top: 1px solid #eae8ec; border-radius: 0; background: transparent; }
.yw-setup-page :is(.yw-band-weekend-head, .yw-band-weekend > p:first-of-type) { color: #202024; font-size: 13px; font-weight: 500; }
.yw-setup-page .yw-band-weekend-head:hover { color: #7c3aed; }
.yw-setup-page .yw-band-weekend .yw-band-why { margin-top: 4px; }
.yw-setup-page .yw-band-form > button[type="submit"] { margin-top: 16px; }

/* ------------------------------------------------- the guardrail slices -- */
.yw-setup-page .yw-guard-flat { margin-top: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.yw-setup-page .yw-day-chips { gap: 6px; }
.yw-setup-page .yw-day-chip { height: 32px; padding: 0 12px; border: 0; border-radius: 10px; background: #eeeded; color: #59535f; font-size: 12px; font-weight: 500; transition: background-color .16s, color .16s; }
.yw-setup-page .yw-day-chip:hover { background: #e8e4ed; }
.yw-setup-page .yw-day-chip:has(input:checked) { background: #eee5fd; color: #7433d4; }
.yw-setup-page .yw-day-chip input { accent-color: #7c3aed; }
.yw-setup-page .yw-guard-caps { gap: 12px 16px; }
.yw-setup-page .yw-guard-caps > label { display: flex; flex-direction: column; gap: 6px; color: #87818c; font-size: 12px; font-weight: 500; }
.yw-setup-page .yw-guard-caps > label > input { width: 92px; margin: 0; }
.yw-setup-page .yw-guard-label { width: 100%; color: #202024; font-size: 13px; font-weight: 500; }
.yw-setup-page .yw-guard-help { margin-top: 8px; color: #929097; font-size: 12px; line-height: 1.5; }
.yw-setup-page section[data-panel] .yw-guard-help:first-child { margin-top: 0; }

/* ---------------------------------------------------- last year's weight -- */
.yw-ly-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; }
.yw-ly-field { display: flex; flex-direction: column; gap: 6px; color: #87818c; font-size: 12px; font-weight: 500; }
.yw-setup-page .yw-ly-field input { width: 120px; }

/* ------------------------------------- the sheets and the competitor pop-up -- */
/* The season and event sheets (sheet-parts.tsx SheetDialog) and Your
   competitors (AcqModal): the menu surface. Radius 20, frosted, Geist, the
   17px title, hairlines, the quiet fills. A <dialog> sits in the top layer
   but stays in this tree, so the scope still reaches it. */
.yw-setup-page dialog.yw-sheet {
  border: 1px solid rgba(226, 225, 228, .9); border-radius: 20px; background: rgba(253, 252, 254, .92);
  box-shadow: 0 24px 60px rgba(48, 32, 64, .16); -webkit-backdrop-filter: saturate(140%) blur(18px); backdrop-filter: saturate(140%) blur(18px);
  color: #202024; font-family: var(--font-geist-sans), Geist, system-ui, sans-serif; letter-spacing: -.25px;
}
.yw-setup-page dialog.yw-sheet::backdrop { background: rgba(32, 28, 38, .34); }
/* The title: the season or event name is the sheet's 17px title. */
.yw-setup-page .yw-sheet header input[name="name"] { max-width: 30rem; padding: 8px 13px; border-radius: 12px; background: #f4f3f6; color: #202024; font-size: 17px; font-weight: 500; letter-spacing: -.4px; }
.yw-setup-page .yw-sheet header h2 { color: #202024; font-size: 17px; font-weight: 500; letter-spacing: -.4px; }
.yw-setup-page .yw-sheet :is(header, footer) { border-color: #eae8ec; background: transparent; }
/* The date range, the close button and the quiet buttons: the quiet fill. */
.yw-setup-page .yw-sheet header button[class~="bg-zinc-100"] { background: #eeeded; color: #7433d4; font-size: 12.5px; font-weight: 500; }
.yw-setup-page .yw-sheet header button[class~="bg-zinc-100"]:hover { background: #e8e4ed; }
.yw-setup-page .yw-sheet button[aria-label="Close"] { background: #eeeded; color: #59535f; }
.yw-setup-page .yw-sheet button[aria-label="Close"]:hover { background: #e8e4ed; color: #202024; }
.yw-setup-page .yw-sheet footer button[class~="bg-zinc-100"] { min-height: 34px; padding: 0 15px; border-radius: 10px; background: #eeeded; color: #202024; font-size: 12.5px; font-weight: 500; }
.yw-setup-page .yw-sheet footer button[class~="bg-zinc-100"]:hover { background: #e8e4ed; }
/* Tabs, rows and fields. */
.yw-setup-page .yw-sheet [role="tablist"] > button { font-size: 13px; font-weight: 500; }
.yw-setup-page .yw-sheet :is(.border-zinc-200, .border-zinc-100, [class~="border-zinc-200/70"]) { border-color: #eae8ec; }
.yw-setup-page .yw-sheet :is(label, span, input, select)[class~="bg-zinc-100"] { background-color: #f4f3f6; }
.yw-setup-page .yw-sheet input[class~="rounded-md"][class~="bg-zinc-100"] { border-radius: 8px; }
.yw-setup-page .yw-sheet table thead th { color: #87818c; font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.yw-setup-page .yw-sheet [class~="ring-zinc-200"] { --tw-ring-color: #eae8ec; }
.yw-setup-page .yw-sheet [class~="uppercase"][class~="tracking-wide"] { color: #87818c; font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
/* The season sheet's "YieldWizard extras" group: a quiet tint, no ring. The
   Import settings list: the frosted menu over the sheet. */
.yw-setup-page .yw-sheet div[class~="bg-zinc-50"][class~="ring-1"] { border-radius: 14px; background: #f6f5f7; --tw-ring-color: transparent; }
.yw-setup-page .yw-sheet div[class~="absolute"][class~="shadow-xl"] { border-radius: 14px; background: rgba(253, 252, 254, .97); box-shadow: 0 15px 45px #3a214421, 0 3px 9px #3a214409; --tw-ring-color: rgba(229, 221, 234, .85); }
.yw-setup-page .yw-sheet div[class~="absolute"][class~="shadow-xl"] [class~="bg-zinc-50"] { background: transparent; }
[data-theme-root].dark .yw-setup-page .yw-sheet div[class~="bg-zinc-50"][class~="ring-1"] { background: #142036; }
[data-theme-root].dark .yw-setup-page .yw-sheet div[class~="absolute"][class~="shadow-xl"] { background: rgba(13, 21, 39, .97); box-shadow: 0 15px 45px #00000066; --tw-ring-color: #1c2843; }
/* Your competitors: the same surface, its body the quiet list. */
.yw-setup-page .yw-comps-sheet > div > header { padding: 16px 20px 14px; }
.yw-setup-page .yw-comps-sheet > div > header button { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: #eeeded; color: #59535f; }
.yw-setup-page .yw-comps-body .yw-text-link { font-size: 12px; }

/* The season and event type, as a pill (the sheet's type picker) and a chip
   (the import list): the strip's own hatch family as flat tints. Unscoped:
   these are this section's own classes (sheet-parts.tsx KIND_STYLE). */
:is(.yw-kind-pill, .yw-kind-chip) { font-weight: 500; }
.yw-kind-low { background-color: #f0eef2; color: #59535f; }
.yw-kind-shoulder { background-color: #f1eafc; color: #7433d4; }
.yw-kind-peak { background-color: #e7dafb; color: #5d2bb0; }
.yw-kind-event { background-color: #f8e8ef; color: #a96883; }
.yw-kind-season { background-color: #f4f3f6; color: #6f6975; }
.yw-kind-chip.yw-kind-low { background-color: #e8e5eb; }
.yw-kind-chip.yw-kind-peak { background-color: #ddcdf8; }

/* ------------------------------------------- the setup pop-up (Rates) -- */
/* The setup conversation and the step form open over Rates in setup-flow's
   modal. On this page they take the Dashboard card: #fbfbfb, radius 24, the
   hairline border, the 24px heading, quiet chips and the one violet button. */
.yw-setup-page [data-setup-modal] [role="dialog"] { border-color: #e2e1e4; border-radius: 24px; background-color: #fbfbfb; box-shadow: 0 24px 60px rgba(48, 32, 64, .14); }
.yw-setup-page [data-setup-modal] [role="dialog"] > div:last-child:not([data-setup-scroll]) { border-color: #eae8ec; background-color: #fbfbfb; }
.yw-setup-page [data-setup-modal] .yw-setup-heading { color: #202024; font-size: 24px; font-weight: 500; line-height: 1.25; letter-spacing: -.04em; }
.yw-setup-page [data-setup-modal] .yw-setup-lede { color: #929097; font-size: 14px; }
.yw-setup-page [data-setup-modal] [data-goal-plan-table] thead tr { color: #87818c; font-size: 12px; letter-spacing: 0; text-transform: none; }
.yw-setup-page [data-setup-modal] [data-goal-plan-table] thead th { padding-bottom: 8px; font-weight: 500; }
.yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody { border-top: 1px solid #eae8ec; }
.yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody td { padding-top: 11px; padding-bottom: 11px; border-color: #eae8ec; }
.yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody td:first-child { color: #59535f; font-weight: 500; }
.yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody td:nth-child(2) { color: #202024; font-weight: 500; }
.yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody td:last-child { color: #929097; font-size: 12.5px; }
/* The goal chips and the day chips: quiet pills, the picked one violet. */
.yw-setup-page [data-setup-modal] :is([data-goal-chips], [data-setup-busy]) > button { border-color: transparent; background-color: #eeeded; color: #59535f; font-weight: 500; }
.yw-setup-page [data-setup-modal] :is([data-goal-chips], [data-setup-busy]) > button:hover { background-color: #e8e4ed; color: #202024; }
.yw-setup-page [data-setup-modal] :is([data-goal-chips], [data-setup-busy]) > button[class~="bg-violet-600"] { border-color: transparent; background-color: #7c3aed; color: #fff; }
.yw-setup-page [data-setup-modal] [data-setup-band-preview] { border-color: transparent; background-color: #f6f1fb; color: #59535f; }
/* No box inside the card: the bordered lists of rooms, seasons, events,
   hotels and limits are hairline rows; the Wizard's notes ("From what you
   told me") a quiet violet tint; a refusal its pink words, no amber box. */
.yw-setup-page [data-setup-modal] :is(ul, div)[class~="border"]:is([class~="rounded-lg"], [class~="rounded-xl"]):not([class*="bg-violet"], [class*="bg-amber"], [class*="bg-rose"]) {
  padding-right: 0; padding-left: 0; border: 0; border-top: 1px solid #eae8ec; border-bottom: 1px solid #eae8ec; border-radius: 0; background: transparent;
}
.yw-setup-page [data-setup-modal] ul[class~="border"]:is([class~="rounded-lg"], [class~="rounded-xl"]) > li { padding-right: 2px; padding-left: 2px; border-color: #eae8ec; }
.yw-setup-page [data-setup-modal] :is(ul, div)[class*="bg-violet-50"][class~="border"] { border-color: transparent; border-radius: 14px; background-color: #f6f1fb; }
.yw-setup-page [data-setup-modal] :is(p, div)[class*="bg-amber-50"][class~="border"],
.yw-setup-page [data-setup-modal] :is(p, div)[class*="bg-rose-50"][class~="border"] { padding: 0; border: 0; border-radius: 0; background: transparent; color: #a96883; }

/* ---------------------------------------------------------------- narrower -- */
@media (max-width: 520px) {
  .yw-setup-page section[data-panel] > div:first-child { padding: 18px 18px 4px; }
  .yw-setup-page section[data-panel] > div:last-child { padding: 10px 18px 18px; }
  .yw-setup-page section[data-panel] > div:first-child > span.text-xs { width: 100%; margin-left: 0; text-align: left; }
}

/* -------------------------------------------------------------------- dark -- */
/* The warm palette: card #2a2a30 / border #414148, raised #35353c, ink
   #f3eef8, body #c3b9cc, muted #a297ab, violet text #c5a8ff. */
[data-theme-root].dark :is(.yw-setup-label, .yw-setup-step-title, .yw-setup-today-row > dd, .yw-setup-check-row, .yw-setup-need-title, .yw-seed-lead, .yw-floors-sub, .yw-floor-row-main > label, .yw-events-name, .yw-season-bar-name, .yw-season-pin-name, .yw-season-suggest-lines strong, .yw-guard-label) { color: #f3eef8; }
[data-theme-root].dark :is(.yw-setup-line, .yw-setup-clock, .yw-setup-check, .yw-setup-today-row > dt, .yw-setup-need-line, .yw-setup-need-dates, .yw-floor-why, .yw-floor-cur, .yw-floor-step, .yw-season-key, .yw-season-months > span, .yw-season-lane-label, .yw-season-bar-dates, .yw-season-suggest-lines > li, .yw-ly-field, .yw-guard-help, .yw-setup-done-lines > li) { color: #a297ab; }
[data-theme-root].dark .yw-setup-page :is(.yw-band-field, .yw-band-field > span.block, .yw-guard-caps > label, .yw-band-suggest > span:first-child) { color: #a297ab; }
[data-theme-root].dark .yw-setup-page :is(.yw-band-weekend-head, .yw-band-weekend > p:first-of-type) { color: #f3eef8; }
[data-theme-root].dark :is(.yw-setup-label[data-tone="bad"], .yw-floors-problems, .yw-events-kind) { color: #e69ac4; }
[data-theme-root].dark .yw-setup-count { color: #c9b1ff; }
[data-theme-root].dark :is(.yw-setup-on, .yw-setup-done-word) { color: #7fd3b4; }
[data-theme-root].dark :is(.yw-setup-pill, .yw-season-year) { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-setup-pill:hover { background: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-setup-page button[class~="border-zinc-300"][class~="bg-white"],
[data-theme-root].dark .yw-setup-page button[class~="border-zinc-200"][class~="text-zinc-500"][class~="rounded-lg"] { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-setup-page button[class~="border-zinc-300"][class~="bg-white"]:hover { background: #1c2843; }
[data-theme-root].dark .yw-season-year > a { color: #c3b9cc; }
[data-theme-root].dark .yw-season-year > a:hover { background: #1c2843; color: #f3eef8; }
[data-theme-root].dark .yw-season-year > span { background: #3f2d5c; box-shadow: none; color: #c9b1ff; }
[data-theme-root].dark :is(.yw-setup-confirm, .yw-setup-confirm-row, .yw-setup-today-row, .yw-setup-check-row, .yw-setup-need, .yw-floor-row, .yw-floors-rules, .yw-seed-foot, .yw-setup-done-lines > li) { border-color: #1c2843; }
[data-theme-root].dark .yw-setup-page section[data-panel] section[data-panel] { border-top-color: #1c2843; background: transparent; }
[data-theme-root].dark .yw-setup-page section[data-panel] section[data-panel] :is(div, p)[class~="border"]:is([class~="rounded-xl"], [class~="rounded-2xl"]) { border-top-color: #1c2843; background: transparent; }
[data-theme-root].dark .yw-setup-page section[data-panel] li[class~="ring-1"] { border-top-color: #1c2843; background: transparent; }
[data-theme-root].dark .yw-setup-page section[data-panel] > div[class~="bg-amber-50/60"] { background: transparent; }
[data-theme-root].dark .yw-setup-page section[data-panel] > div[class~="bg-amber-50/60"] > span.text-xs { color: #e69ac4; }
[data-theme-root].dark .yw-setup-page section[data-panel] :is(input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="file"], :disabled), select),
[data-theme-root].dark .yw-setup-page :is(.yw-floor-row-main > input:not([type="hidden"]), .yw-band-field input, .yw-ly-field input) { border-color: #1c2843; background-color: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-setup-check-mark { border-color: #5b5663; }
[data-theme-root].dark .yw-setup-check-row[data-done="1"] .yw-setup-check-mark { background: #26332e; color: #7fd3b4; }
[data-theme-root].dark .yw-setup-check-row[data-done="1"] .yw-setup-check-label { color: #a297ab; }
[data-theme-root].dark .yw-setup-step-mark { background: #3d3350; color: #c5a8ff; }
[data-theme-root].dark .yw-setup-step[data-state="now"] .yw-setup-step-mark { background: #7c3aed; color: #fff; }
[data-theme-root].dark .yw-setup-step[data-state="done"] .yw-setup-step-mark { background: #26332e; color: #7fd3b4; }
[data-theme-root].dark .yw-setup-step[data-state="later"] .yw-setup-step-mark { background: #142036; color: #8f8996; }
[data-theme-root].dark .yw-setup-need:hover { background: #111b30; }
[data-theme-root].dark .yw-setup-need-mark { background: #3d3350; color: #c5a8ff; }
[data-theme-root].dark .yw-setup-need[data-tone="bad"] .yw-setup-need-mark { background: #4d3345; color: #f0b8d2; }
[data-theme-root].dark :is(.yw-seed-mark i, .yw-season-key i[data-lane="peak"], .yw-season-bar[data-lane="peak"]) { background: repeating-linear-gradient(125deg, #a883ee 0 2px, #4a3a63 2px 4px); }
[data-theme-root].dark :is(.yw-season-key i[data-lane="shoulder"], .yw-season-bar[data-lane="shoulder"]) { background: repeating-linear-gradient(125deg, #8f6fd0 0 2px, #3e3352 2px 4px); }
[data-theme-root].dark :is(.yw-season-key i[data-lane="low"], .yw-season-bar[data-lane="low"]) { background: repeating-linear-gradient(125deg, #6f6975 0 2px, #17243d 2px 4px); }
[data-theme-root].dark :is(.yw-season-key i[data-lane="season"], .yw-season-bar[data-lane="season"]) { background: repeating-linear-gradient(125deg, #6d5a8d 0 2px, #37303f 2px 4px); }
[data-theme-root].dark :is(.yw-season-key i[data-lane="event"], .yw-season-pin-track) { background: repeating-linear-gradient(125deg, #d27aa8 0 2px, #4d3345 2px 4px); }
[data-theme-root].dark .yw-season-bar { border-color: #0d1527; }
[data-theme-root].dark .yw-season-bar-label { background: rgba(13, 21, 39, .92); box-shadow: none; }
[data-theme-root].dark .yw-season-lane { border-bottom-color: #5b5063; }
[data-theme-root].dark .yw-season-lane[data-lane="seasons"] { background: linear-gradient(to bottom, #39323f 0 1px, transparent 1px calc(50% - .5px), #39323f calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px)); }
[data-theme-root].dark .yw-season-lane[data-lane="events"] { border-bottom-color: #1c2843; }
[data-theme-root].dark .yw-season-gridline { border-left-color: #131e34; }
[data-theme-root].dark .yw-season-today { background: #b48cf5; }
[data-theme-root].dark .yw-season-lane[data-lane="seasons"] .yw-season-today::before { background: #b48cf5; box-shadow: 0 0 0 3px #3d3350; }
[data-theme-root].dark .yw-season-pin-star { color: #e69ac4; filter: drop-shadow(0 0 1.5px #0d1527) drop-shadow(0 0 1.5px #0d1527); }
[data-theme-root].dark .yw-season-pin-name { border-color: #1c2843; background: rgba(13, 21, 39, .95); box-shadow: 0 8px 22px rgba(0, 0, 0, .3); }
[data-theme-root].dark .yw-season-strip { scrollbar-color: #273656 transparent; }
[data-theme-root].dark .yw-events-star { color: #e69ac4; }
/* money.css scopes these dark twins to .yw-money-page; Setup needs them too. */
[data-theme-root].dark .yw-setup-page .yw-money-overflow > .yw-money-table thead th { background: #0d1527; }
[data-theme-root].dark .yw-setup-page .yw-money-flag { color: #a297ab; }
[data-theme-root].dark .yw-setup-page .yw-money-table td.yw-money-muted { color: #a297ab; }
[data-theme-root].dark :is(.yw-events-name:hover, .yw-events-row:hover .yw-events-name) { color: #c5a8ff; }
[data-theme-root].dark .yw-events-remove { color: #8f8996; }
[data-theme-root].dark .yw-events-remove:hover { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-setup-page .yw-band-weekend { border-top-color: #1c2843; background: transparent; }
[data-theme-root].dark .yw-setup-page .yw-day-chip { background: #142036; color: #c3b9cc; }
[data-theme-root].dark .yw-setup-page .yw-day-chip:hover { background: #1c2843; }
[data-theme-root].dark .yw-setup-page .yw-day-chip:has(input:checked) { background: #3f2d5c; color: #c9b1ff; }
[data-theme-root].dark .yw-setup-page .yw-guard-flat { background: transparent; }
/* The sheets: the dark menu surface. */
[data-theme-root].dark .yw-setup-page dialog.yw-sheet { border-color: #1c2843; background: rgba(13, 21, 39, .92); color: #f3eef8; }
[data-theme-root].dark .yw-setup-page .yw-sheet header input[name="name"] { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-setup-page .yw-sheet header h2 { color: #f3eef8; }
[data-theme-root].dark .yw-setup-page .yw-sheet :is(header, footer, [role="tablist"], .border-zinc-200, .border-zinc-100, [class~="border-zinc-200/70"]) { border-color: #1c2843; }
[data-theme-root].dark .yw-setup-page .yw-sheet :is(header, footer) { background: transparent; }
[data-theme-root].dark .yw-setup-page .yw-sheet :is(label, span, input, select)[class~="bg-zinc-100"] { background-color: #142036; }
[data-theme-root].dark .yw-setup-page .yw-sheet :is(header button[class~="bg-zinc-100"], footer button[class~="bg-zinc-100"], button[aria-label="Close"]) { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-setup-page .yw-sheet header button[class~="bg-zinc-100"] { color: #c9b1ff; }
[data-theme-root].dark .yw-setup-page .yw-comps-sheet > div > header button { background: #142036; color: #f3eef8; }
[data-theme-root].dark .yw-kind-low { background-color: #142036; color: #c3b9cc; }
[data-theme-root].dark .yw-kind-shoulder { background-color: #3a2f4f; color: #c9b1ff; }
[data-theme-root].dark .yw-kind-peak { background-color: #47366a; color: #d9c8f0; }
[data-theme-root].dark .yw-kind-event { background-color: #4d3345; color: #f0b8d2; }
[data-theme-root].dark .yw-kind-season { background-color: #142036; color: #a297ab; }
/* The setup pop-up, dark. */
[data-theme-root].dark .yw-setup-page [data-setup-modal] [role="dialog"] { border-color: #1c2843; background-color: #0d1527; box-shadow: 0 24px 60px rgba(0, 0, 0, .4); }
[data-theme-root].dark .yw-setup-page [data-setup-modal] [role="dialog"] > div:last-child:not([data-setup-scroll]) { border-color: #1c2843; background-color: #0d1527; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] .yw-setup-heading { color: #f3eef8; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] .yw-setup-lede { color: #a297ab; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody { border-top-color: #1c2843; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody td { border-color: #1c2843; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody td:first-child { color: #c3b9cc; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] [data-goal-plan-table] tbody td:nth-child(2) { color: #f3eef8; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] :is([data-goal-chips], [data-setup-busy]) > button { background-color: #142036; color: #c3b9cc; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] :is([data-goal-chips], [data-setup-busy]) > button[class~="bg-violet-600"] { background-color: #7c3aed; color: #fff; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] [data-setup-band-preview] { background-color: #2f2638; color: #c3b9cc; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] :is(ul, div)[class~="border"]:is([class~="rounded-lg"], [class~="rounded-xl"]):not([class*="bg-violet"], [class*="bg-amber"], [class*="bg-rose"]) { border-color: #1c2843; background: transparent; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] ul[class~="border"]:is([class~="rounded-lg"], [class~="rounded-xl"]) > li { border-color: #1c2843; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] :is(ul, div)[class*="bg-violet-50"][class~="border"] { background-color: #2f2638; }
[data-theme-root].dark .yw-setup-page [data-setup-modal] :is(p, div)[class*="bg-amber-50"][class~="border"],
[data-theme-root].dark .yw-setup-page [data-setup-modal] :is(p, div)[class*="bg-rose-50"][class~="border"] { background: transparent; color: #e69ac4; }

/* =========================================================================
   10/09 rework. Owner: "this whole tab needs re design with our new design
   style ... no ai slop text, explanations on hover modals. correct font
   sizes not that mini text and overall layout fixed".
   The type scale every Setup screen now shares: names and values 15px,
   figures 14px, labels and secondary 13px, nothing under 12px. Explanations
   live in the hovers; a row is label, value, one move.
   ========================================================================= */

/* ---- the floor: Tailwind's micro text inside Setup reads at 12 or 13 -- */
.yw-setup-page .text-xs { font-size: 13px; line-height: 1.5; }
.yw-setup-page :is([class~="text-[10px]"], [class~="text-[10.5px]"], [class~="text-[11px]"], [class~="text-[11.5px]"]) { font-size: 12px; }
.yw-setup-page [data-ui="badge"] { padding: 3px 9px; border-radius: 20px; font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.yw-setup-page [data-ui="badge"]::first-letter { text-transform: uppercase; }

/* ---- lines, labels and buttons, one step up --------------------------- */
.yw-setup-page .yw-setup-line { color: #6f6975; font-size: 13.5px; }
.yw-setup-page .yw-setup-label { font-size: 14px; }
.yw-setup-page .yw-setup-check { color: #343039; font-size: 13.5px; }
.yw-setup-page :is(.yw-setup-pill, .yw-rates-pill) { height: 34px; padding: 0 14px; font-size: 13px; }
.yw-setup-page .yw-setup-primary { height: 36px; padding: 0 16px; font-size: 13.5px; }
.yw-setup-page :is(button, a)[class~="bg-violet-600"]:not([data-ui="tab-bar"] > *, [data-ui="segmented"] > *, [class~="rounded-full"]) { min-height: 36px; font-size: 13.5px; }
.yw-setup-page button[class~="border-zinc-300"][class~="bg-white"],
.yw-setup-page button[class~="border-zinc-200"][class~="text-zinc-500"][class~="rounded-lg"] { min-height: 34px; font-size: 13px; }
.yw-setup-page section[data-panel] > div:first-child > span.text-xs { font-size: 13px; }
.yw-setup-page section[data-panel] > div:first-child > span.num { font-size: 12px; }
.yw-setup-page section[data-panel] input:not([type="checkbox"], [type="radio"], [type="hidden"], [type="file"], :disabled),
.yw-setup-page section[data-panel] select { min-height: 36px; font-size: 14px; }
.yw-setup-page section[data-panel] label.text-xs > span.font-semibold { font-size: 13px; }
.yw-setup-page .yw-rates-night-line { color: #59535f; font-size: 14px; }
.yw-setup-page .yw-rates-subhead { font-size: 15px; letter-spacing: -.3px; }
.yw-setup-page .yw-rates-reveal { font-size: 13px; }

/* ---- Your pricing today: label, value, a quiet Change ----------------- */
.yw-setup-page .yw-setup-today-row { grid-template-columns: minmax(7.5rem, 10rem) minmax(0, 1fr) auto; min-height: 56px; padding: 10px 6px; margin: 0 -6px; border-radius: 10px; transition: background-color .16s; }
.yw-setup-page .yw-setup-today-row:hover { background: #f6f4f8; }
.yw-setup-page .yw-setup-today-row > dt { color: #87818c; font-size: 13px; }
.yw-setup-page .yw-setup-today-row > dd { font-size: 15px; letter-spacing: -.3px; }
.yw-setup-change { flex-shrink: 0; color: #8553c2; font-size: 13px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.yw-setup-change:hover { color: #7c3aed; text-decoration: underline; text-underline-offset: 3px; }
.yw-setup-change:focus-visible { outline: 2px solid #b993ff; outline-offset: 2px; border-radius: 4px; }

/* ---- Automatic rates: one card, a row per question -------------------- */
.yw-rates-auto { display: flex; flex-direction: column; gap: 16px; }
.yw-rates-auto > * { margin: 0; }
.yw-rates-auto-card .yw-card-head { align-items: center; margin-bottom: 4px; }
.yw-rates-auto-pill { display: inline-flex; flex-shrink: 0; align-items: center; height: 28px; padding: 0 12px; border-radius: 20px; background: #f0eef2; color: #59535f; font-size: 13px; font-weight: 500; }
.yw-rates-auto-pill[data-tone="good"] { background: #e5f2ec; color: #2f7f64; }
.yw-rates-auto-pill[data-tone="bad"] { background: #f8e8ef; color: #a9507a; }
.yw-rates-auto-pill[data-tone="watch"] { background: #f6efe3; color: #8d6a3d; }
.yw-rates-auto-ask { margin-top: 10px; }
.yw-rates-auto-ask > .yw-rates-auto-label { margin: 0 0 10px; color: #202024; font-size: 15px; font-weight: 500; }
.yw-rates-auto-line { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); align-items: center; gap: 6px 20px; margin: 0; padding: 15px 0; border-top: 1px solid #eae8ec; }
.yw-rates-auto-rows > .yw-rates-auto-line:first-child { border-top: 0; }
.yw-rates-auto-label { color: #87818c; font-size: 13px; }
.yw-rates-auto-value { min-width: 0; color: #202024; font-size: 15px; }
.yw-rates-auto-card .yw-rates-who { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.yw-rates-auto-card .yw-rates-who-line { color: #202024; font-size: 15px; letter-spacing: -.25px; }
.yw-rates-auto-card .yw-rates-who-change > summary { height: 34px; }
.yw-rates-auto-card .yw-rates-who-change > form { margin-top: 10px; }
.yw-rates-auto-warn { margin: 0; color: #a9507a; font-size: 14px; line-height: 1.45; }
.yw-rates-auto-warn + .yw-rates-auto-act { margin-top: 10px; }
.yw-rates-auto-confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 10px; }
.yw-rates-auto-check { display: inline-flex; align-items: center; gap: 9px; color: #343039; font-size: 14px; cursor: pointer; }
.yw-rates-auto-check input { width: 16px; height: 16px; accent-color: #7c3aed; }
.yw-rates-auto-act { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0; }
.yw-rates-auto-state { margin: 0; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.25px; }
.yw-rates-auto-state[data-muted] { color: #59535f; font-size: 14px; font-weight: 400; letter-spacing: 0; }
.yw-rates-page .yw-setup-page .yw-rates-auto-go { height: 38px; padding: 0 18px; border-radius: 10px; font-size: 13.5px; }

/* ---- Staff only: the same rows, a label and its control --------------- */
.yw-rates-takeover-state { margin: 0 0 4px; color: #202024; font-size: 15px; font-weight: 500; line-height: 1.45; letter-spacing: -.25px; }
.yw-rates-takeover[data-tone="amber"] .yw-rates-takeover-state { color: #a9507a; }
.yw-rates-takeover-primary { padding: 10px 0 14px; }
.yw-rates-staff-row { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); align-items: center; gap: 6px 20px; margin: 0; padding: 14px 0; border-top: 1px solid #eae8ec; }
.yw-rates-staff-label { color: #87818c; font-size: 13px; }
.yw-rates-staff-label[data-tone="bad"] { color: #a9507a; font-weight: 500; }
.yw-rates-staff-label .hw-info-label { color: inherit; font-size: 13px; font-weight: 400; }
.yw-rates-staff-value { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0; color: #202024; font-size: 14px; }
.yw-rates-staff-value > form { flex: 1 1 auto; margin: 0; }
.yw-rates-staff-stack { flex-direction: column; align-items: flex-start; }
.yw-rates-staff-face { margin: 0; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.25px; }
.yw-rates-staff-face[data-muted] { color: #59535f; font-weight: 400; }
.yw-rates-staff-note { margin: 6px 0 0; color: #59535f; font-size: 13.5px; line-height: 1.5; }
.yw-rates-staff-check { display: flex; align-items: flex-start; gap: 10px; color: #343039; font-size: 14px; line-height: 1.5; cursor: pointer; }
.yw-rates-staff-check input { width: 16px; height: 16px; flex-shrink: 0; margin-top: 3px; accent-color: #7c3aed; }
.yw-rates-staff-input, .yw-rates-staff-value select { height: 36px; padding: 0 11px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 14px; outline: none; }
.yw-rates-staff-input:focus, .yw-rates-staff-value select:focus { border-color: #b993ff; box-shadow: 0 0 0 3px rgba(124, 58, 237, .12); }
/* Change who prices (RmsForm): the select and Save on one line. */
.yw-rates-staff-value form[class~="flex"] { align-items: center; gap: 10px; }
.yw-rates-staff-value form label { min-width: 15rem; margin: 0; }
.yw-rates-staff-value form label select { width: 100%; margin: 0; }

/* Frozen nights: a table in its own scroller. */
.yw-rates-frozen-scroll { max-height: 24rem; margin-top: 10px; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #ddd2e7 transparent; }
.yw-rates-frozen-table { width: 100%; min-width: 560px; border-collapse: collapse; }
.yw-rates-frozen-table th { position: sticky; top: 0; z-index: 1; padding: 0 10px 9px; background: #fbfbfb; box-shadow: inset 0 -1px 0 #eae8ec; color: #87818c; font-size: 13px; font-weight: 400; text-align: left; white-space: nowrap; }
.yw-rates-frozen-table th.text-right { text-align: right; }
.yw-rates-frozen-table td { padding: 11px 10px; border-top: 1px solid #f0eef2; color: #202024; font-size: 14px; white-space: nowrap; }
.yw-rates-frozen-table tbody tr:first-child td { border-top: 0; }
.yw-rates-frozen-table tbody tr:hover td { background: #f8f6fa; }
.yw-rates-frozen-table td:first-child { padding-left: 4px; }
.yw-rates-frozen-day { font-weight: 500; letter-spacing: -.2px; }
.yw-rates-frozen-status .hw-info-label { color: #87818c; font-size: 13px; font-weight: 400; }
.yw-rates-frozen-table tr[data-flagged] .yw-rates-frozen-status .hw-info-label { color: #a9507a; font-weight: 500; }

/* The hourly writer: the facts across, the moves as one strip, the brakes. */
.yw-rates-hourly { display: flex; flex-direction: column; }
.yw-rates-hourly-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 12px 24px; padding: 4px 0 16px; }
.yw-rates-hourly-fact { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.yw-rates-hourly-fact > strong { color: #202024; font-size: 17px; font-weight: 500; letter-spacing: -.4px; }
.yw-rates-hourly-fact > strong[data-tone="good"] { color: #2f7f64; }
.yw-rates-hourly-fact > strong[data-tone="bad"] { color: #a9507a; }
.yw-rates-hourly .yw-rates-verdicts { display: flex; flex-wrap: wrap; gap: 8px 30px; margin: 0; padding: 0; list-style: none; }
.yw-rates-hourly .yw-rates-verdicts > li { display: flex; flex-direction: column; gap: 2px; padding: 0; border: 0; }
.yw-rates-hourly .yw-rates-verdicts > li > span:first-child { min-width: 0; color: #87818c; font-size: 13px; font-weight: 400; }
.yw-rates-hourly .yw-rates-verdicts > li > strong { color: #202024; font-size: 15px; font-weight: 500; }
.yw-rates-hourly .yw-rates-verdicts > li[data-moved] > strong { color: #7c3aed; }
.yw-rates-hourly-brakes { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); gap: 12px 20px; margin: 0; padding: 14px 0 4px; border-top: 1px solid #eae8ec; }
.yw-rates-hourly-brakes > .yw-rates-staff-label { padding-top: 8px; }
.yw-rates-hourly-brakes > button { grid-column: 2; justify-self: start; }
.yw-rates-hourly-brakes > [role="alert"] { grid-column: 1 / -1; }
.yw-rates-hourly-fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: 12px 16px; }
.yw-rates-hourly-field { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: #87818c; font-size: 13px; }
.yw-rates-hourly-input { display: flex; align-items: center; gap: 8px; }
.yw-rates-hourly-input > em { color: #a09aa4; font-size: 13px; font-style: normal; white-space: nowrap; }
.yw-rates-hourly-field :is(input, select) { width: 100%; height: 36px; padding: 0 11px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 14px; outline: none; }
.yw-rates-hourly-input > input { width: 5.5rem; flex-shrink: 0; }
.yw-rates-hourly-field :is(input, select):focus { border-color: #b993ff; box-shadow: 0 0 0 3px rgba(124, 58, 237, .12); }

/* The cards Setup's panels already title (Next engine, Last run): no
   second frame, no second label, the state a quiet pill. */
.yw-setup-page section[data-panel] section.halo[class~="rounded-2xl"]:not([data-panel]) { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.yw-setup-page section[data-panel] section.halo[class~="rounded-2xl"]:not([data-panel]) > div:first-child > [data-ui="section-label"] { display: none; }
.yw-setup-page section[data-panel] section.halo[class~="rounded-2xl"]:not([data-panel]) > div:first-child + div { margin-top: 8px; color: #343039; font-size: 14px; font-weight: 400; line-height: 1.5; }
.yw-setup-page .yw-rates-run-reasons > li { font-size: 14px; }
.yw-setup-page .yw-rates-run-dates { font-size: 13px; }
.yw-setup-page .yw-rates-run-reasons > li.yw-rates-run-more { font-size: 13px; }
.yw-setup-page .yw-rates-diverge-line { font-size: 13px; }
.yw-setup-page .yw-rates-diverge-why { font-size: 13.5px; }
.yw-setup-page .yw-rates-diverge-day { font-size: 14px; }
/* Last run: the status facts as hairline rows; each reason starts with a capital. */
.yw-setup-page .yw-rates-run > .yw-rates-night-line { margin: 0; padding: 9px 0; border-top: 1px solid #f0eef2; }
.yw-setup-page .yw-rates-run > .yw-rates-run-lead + .yw-rates-night-line { margin-top: 8px; }
.yw-setup-page .yw-rates-run-reasons > li > span:not(.yw-rates-run-dates)::first-letter, .yw-setup-page .yw-rates-run-reasons > li > div::first-letter { text-transform: uppercase; }
.yw-setup-page .yw-rates-run-reasons > li > strong { font-size: 17px; letter-spacing: -.4px; }

@media (max-width: 760px) {
  :is(.yw-rates-auto-line, .yw-rates-staff-row, .yw-rates-hourly-brakes) { grid-template-columns: minmax(0, 1fr); }
  .yw-rates-hourly-brakes > button { grid-column: 1; }
}

/* ---- dark --------------------------------------------------------------- */
[data-theme-root].dark .yw-setup-page .yw-setup-today-row:hover { background: #142036; }
[data-theme-root].dark .yw-setup-change { color: #c5a8ff; }
[data-theme-root].dark .yw-rates-auto-pill { background: #142036; color: #c3b9cc; }
[data-theme-root].dark .yw-rates-auto-pill[data-tone="good"] { background: #163229; color: #7fd1b0; }
[data-theme-root].dark .yw-rates-auto-pill[data-tone="bad"] { background: #3a2230; color: #e69ac4; }
[data-theme-root].dark .yw-rates-auto-pill[data-tone="watch"] { background: #352c1f; color: #e0bf8c; }
[data-theme-root].dark :is(.yw-rates-auto-line, .yw-rates-staff-row, .yw-rates-hourly-brakes) { border-color: #1c2843; }
[data-theme-root].dark :is(.yw-rates-auto-label, .yw-rates-staff-label, .yw-rates-hourly-field, .yw-rates-frozen-table th, .yw-rates-hourly .yw-rates-verdicts > li > span:first-child, .yw-rates-frozen-status .hw-info-label) { color: #a297ab; }
[data-theme-root].dark :is(.yw-rates-auto-value, .yw-rates-auto-card .yw-rates-who-line, .yw-rates-auto-state, .yw-rates-auto-ask > .yw-rates-auto-label, .yw-rates-takeover-state, .yw-rates-staff-value, .yw-rates-staff-face, .yw-rates-frozen-table td, .yw-rates-hourly-fact > strong, .yw-rates-hourly .yw-rates-verdicts > li > strong) { color: #f3eef8; }
[data-theme-root].dark :is(.yw-rates-auto-state[data-muted], .yw-rates-staff-face[data-muted], .yw-rates-staff-note, .yw-rates-auto-check, .yw-rates-staff-check) { color: #c3b9cc; }
[data-theme-root].dark :is(.yw-rates-auto-warn, .yw-rates-takeover[data-tone="amber"] .yw-rates-takeover-state, .yw-rates-staff-label[data-tone="bad"], .yw-rates-frozen-table tr[data-flagged] .yw-rates-frozen-status .hw-info-label, .yw-rates-hourly-fact > strong[data-tone="bad"]) { color: #e69ac4; }
[data-theme-root].dark .yw-rates-hourly-fact > strong[data-tone="good"] { color: #7fd1b0; }
[data-theme-root].dark .yw-rates-hourly .yw-rates-verdicts > li[data-moved] > strong { color: #c5a8ff; }
[data-theme-root].dark :is(.yw-rates-staff-input, .yw-rates-staff-value select, .yw-rates-hourly-field input, .yw-rates-hourly-field select) { border-color: #1c2843; background: #0d1527; color: #f3eef8; }
[data-theme-root].dark .yw-rates-frozen-table th { background: #0d1527; box-shadow: inset 0 -1px 0 #1c2843; }
[data-theme-root].dark .yw-rates-frozen-table td { border-color: #18233b; }
[data-theme-root].dark .yw-rates-frozen-table tbody tr:hover td { background: #142036; }
[data-theme-root].dark .yw-setup-page section[data-panel] section.halo[class~="rounded-2xl"]:not([data-panel]) > div:first-child + div { color: #c3b9cc; }

/* ---- Rooms (10/09): the ladder card, By season, the hard caps ----------- */
.yw-rates-ladder { position: relative; }
.yw-rates-ladder .yw-card-head { margin-bottom: 0; }
.yw-rates-rooms-status { margin: 4px 0 0; color: #87818c; font-size: 13px; }
.yw-rates-rooms-form { margin: 16px 0 0; }
.yw-rates-rooms-moves { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; }
.yw-rates-rooms-reset { position: absolute; right: 23px; bottom: 23px; margin: 0; }
.yw-rates-farout-row { margin-top: 8px; }
.yw-rates-farout { color: #343039; font-size: 14px; cursor: pointer; }
.yw-rates-farout > input[type="checkbox"] { width: 16px; height: 16px; accent-color: #7c3aed; }
.yw-rates-farout > .yw-rates-staff-input { width: 4.5rem; text-align: right; }
.yw-rates-farout > span:last-child { color: #87818c; }
.yw-setup-page .yw-rates-rooms-seasons .yw-money-table th { color: #87818c; font-size: 13px; font-weight: 400; vertical-align: bottom; }
.yw-setup-page .yw-rates-rooms-seasons .yw-money-table th > div:first-child { color: #343039; font-weight: 500; }
.yw-setup-page .yw-rates-rooms-seasons .yw-money-table th .yw-money-muted { font-size: 12.5px; }
.yw-setup-page .yw-rates-rooms-seasons .yw-money-table td { font-size: 14px; }
.yw-setup-page .yw-rates-rooms-seasons .yw-money-table td strong { font-weight: 500; }
.yw-setup-page .yw-rates-rooms-caps .yw-rates-caps-name { font-size: 15px; }

/* The ladder: one grid row per room. Unscoped: the setup pop-up draws it too. */
.yw-roomlist { margin-top: 2px; }
.yw-roomlist-head, .yw-roomlist-row { display: grid; grid-template-columns: 64px 26px minmax(0, 1fr) 118px 96px; align-items: center; gap: 0 12px; }
.yw-roomlist-head { padding: 0 8px 10px; border-bottom: 1px solid #eae8ec; color: #87818c; font-size: 13px; }
.yw-roomlist-head > span:first-child { grid-column: span 2; }
.yw-roomlist-head > span:nth-child(n + 3) { text-align: right; }
.yw-roomlist-rows { margin: 0; padding: 0; list-style: none; }
.yw-roomlist-row { min-height: 60px; padding: 8px; border-bottom: 1px solid #f0eef2; transition: background-color .16s, opacity .16s; }
.yw-roomlist-row:hover { background: #f8f6fa; }
.yw-roomlist-row[data-dragging] { opacity: .45; }
.yw-roomlist-move { display: inline-flex; align-items: center; gap: 1px; }
.yw-roomlist-grip { margin-right: 3px; color: #c9c4cd; font-size: 14px; cursor: grab; }
.yw-roomlist-move > button { display: inline-grid; width: 22px; height: 26px; place-items: center; padding: 0; border: 0; border-radius: 7px; background: transparent; color: #87818c; font-size: 13px; cursor: pointer; }
.yw-roomlist-move > button:hover:not(:disabled) { background: #eeedf1; color: #202024; }
.yw-roomlist-move > button:disabled { opacity: .3; cursor: default; }
.yw-roomlist-base { display: inline-flex; justify-content: center; cursor: pointer; }
.yw-roomlist-base > input { width: 16px; height: 16px; margin: 0; accent-color: #7c3aed; cursor: pointer; }
.yw-roomlist-name { position: relative; display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; outline: none; }
.yw-roomlist-title { max-width: 100%; overflow: hidden; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; text-overflow: ellipsis; white-space: nowrap; }
.yw-roomlist-row[data-base] .yw-roomlist-title { color: #6d2fd6; }
.yw-roomlist-units { color: #a09aa4; font-size: 13px; white-space: nowrap; }
.yw-roomlist-refusal { flex-basis: 100%; color: #b4547d; font-size: 13px; font-weight: 500; }
.yw-roomlist-price, .yw-roomlist-pct { text-align: right; }
.yw-roomlist-price > label, .yw-roomlist-pct > label { display: inline-flex; align-items: center; gap: 5px; color: #87818c; font-size: 14px; }
.yw-roomlist-price input, .yw-roomlist-pct input { height: 36px; padding: 0 10px; border: 1px solid #e2e1e4; border-radius: 10px; background: #fff; color: #202024; font-size: 14px; font-weight: 500; text-align: right; outline: none; }
.yw-roomlist-price input { width: 78px; }
.yw-roomlist-pct input { width: 62px; }
.yw-roomlist-price input:focus, .yw-roomlist-pct input:focus { border-color: #b993ff; box-shadow: 0 0 0 3px rgba(124, 58, 237, .12); }
.yw-roomlist-price input:disabled { border-color: transparent; background: transparent; color: #202024; }
.yw-roomlist-pct input[aria-invalid] { border-color: #e7a9c3; }
.yw-roomlist-pct > span.num { padding-right: 19px; color: #87818c; font-size: 14px; }
.yw-roomlist-none { color: #a09aa4; font-size: 13px; }
.yw-roomlist-note { margin: 10px 0 0; color: #87818c; font-size: 13px; }
/* Staff: the row's statistics as the name's hover, the frosted surface. */
.yw-roomlist-name[data-tip] { cursor: default; }
.yw-roomlist-name[data-tip]::after {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; width: max-content; max-width: 440px;
  padding: 8px 12px; border: 1px solid rgba(229, 221, 234, .9); border-radius: 12px; background: rgba(253, 252, 254, .9);
  -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: 12.5px; font-weight: 400; line-height: 1.45; letter-spacing: 0; white-space: normal;
  opacity: 0; pointer-events: none; transform: translateY(-3px); transition: opacity .16s ease, transform .24s cubic-bezier(.2, .8, .2, 1);
}
.yw-roomlist-name[data-tip]:is(:hover, :focus-visible)::after { opacity: 1; transform: translateY(0); transition-delay: .12s; }
@media (prefers-reduced-motion: reduce) { .yw-roomlist-name[data-tip]::after { transition: none; } }
@media (max-width: 760px) {
  .yw-roomlist-head, .yw-roomlist-row { grid-template-columns: 52px 22px minmax(0, 1fr) 96px 84px; gap: 0 8px; }
  .yw-rates-rooms-reset { position: static; margin-top: 10px; }
}

[data-theme-root].dark :is(.yw-rates-rooms-status, .yw-roomlist-head, .yw-roomlist-units, .yw-roomlist-note, .yw-roomlist-price > label, .yw-roomlist-pct > label, .yw-roomlist-pct > span.num, .yw-rates-farout > span:last-child) { color: #a297ab; }
[data-theme-root].dark .yw-roomlist-head { border-bottom-color: #1c2843; }
[data-theme-root].dark .yw-roomlist-row { border-bottom-color: #18233b; }
[data-theme-root].dark .yw-roomlist-row:hover { background: #142036; }
[data-theme-root].dark .yw-roomlist-title, [data-theme-root].dark .yw-roomlist-price input:disabled { color: #f3eef8; }
[data-theme-root].dark .yw-roomlist-row[data-base] .yw-roomlist-title { color: #c5a8ff; }
[data-theme-root].dark .yw-roomlist-move > button { color: #a297ab; }
[data-theme-root].dark .yw-roomlist-move > button:hover:not(:disabled) { background: #1c2843; color: #f3eef8; }
[data-theme-root].dark :is(.yw-roomlist-price input, .yw-roomlist-pct input):not(:disabled) { border-color: #1c2843; background: #0d1527; color: #f3eef8; }
[data-theme-root].dark .yw-roomlist-refusal { color: #e69ac4; }
[data-theme-root].dark .yw-rates-farout { color: #c3b9cc; }
[data-theme-root].dark .yw-roomlist-name[data-tip]::after { border-color: #1c2843; background: rgba(13, 21, 39, .9); box-shadow: 0 12px 30px #00000066, 0 2px 6px #00000033; color: #c3b9cc; }

/* ---- Rules (10/09): reasons in hovers, no box inside a card ------------- */
/* The one Setup hover: anything carrying data-tip opens the frosted surface
   under it on hover or focus. A dashed underline says there is one. Also on
   the band form, which the tool wall draws outside Setup. */
:is(.yw-setup-page, .yw-band-form) [data-tip]:not(.yw-roomlist-name) { position: relative; outline: none; }
:is(.yw-setup-page, .yw-band-form) :is(.yw-floors-sub, .yw-band-weekend-head, .yw-guard-plan-name, .yw-guard-plan-sub)[data-tip] { width: fit-content; text-decoration: underline dashed #d3cbdb; text-decoration-thickness: 1px; text-underline-offset: 4px; cursor: default; }
:is(.yw-setup-page, .yw-band-form) [data-tip]:not(.yw-roomlist-name)::after {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; width: max-content; max-width: 420px;
  padding: 8px 12px; border: 1px solid rgba(229, 221, 234, .9); border-radius: 12px; background: rgba(253, 252, 254, .92);
  -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: 12.5px; font-weight: 400; line-height: 1.45; letter-spacing: 0; text-align: left; text-decoration: none; text-transform: none; white-space: normal;
  opacity: 0; pointer-events: none; transform: translateY(-3px); transition: opacity .16s ease, transform .24s cubic-bezier(.2, .8, .2, 1);
}
:is(.yw-setup-page, .yw-band-form) [data-tip]:not(.yw-roomlist-name):is(:hover, :focus-visible)::after { opacity: 1; transform: translateY(0); transition-delay: .12s; }
@media (prefers-reduced-motion: reduce) { :is(.yw-setup-page, .yw-band-form) [data-tip]::after { transition: none; } }

/* Room floors: the floor-hit figures side by side, the rows at row size. */
.yw-setup-page .yw-rates-floorhit .yw-money-parts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.yw-setup-page .yw-rates-floorhit .yw-money-parts > .yw-row-stat { border-top: 0; padding-top: 4px; }
.yw-setup-page .yw-floors-sub { font-size: 15px; letter-spacing: -.3px; }
.yw-setup-page .yw-floors-form { margin-top: 18px; }
.yw-setup-page .yw-floor-room, .yw-setup-page .yw-floor-row-main > label { color: #202024; font-size: 14px; font-weight: 500; letter-spacing: -.2px; }
.yw-setup-page .yw-floor-step { color: #a09aa4; font-size: 12.5px; }
.yw-setup-page .yw-floor-cur { font-size: 14px; }
.yw-setup-page .yw-floor-row[data-tip] { cursor: default; }
.yw-setup-page .yw-floors-problems { font-size: 13px; }
.yw-setup-page .yw-floors-foot .yw-setup-line { font-size: 13px; }

/* The band: its summary line with the staff hovers inline after it. */
.yw-setup-band-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 6px; }
.yw-setup-band-line > .yw-setup-line { margin: 0; color: #343039; font-size: 14px; }
.yw-setup-band-line .hw-info-label { color: #8553c2; font-size: 13px; font-weight: 500; }
[data-theme-root].dark .yw-setup-band-line .hw-info-label { color: #c5a8ff; }
.yw-setup-page .yw-band-field { color: #87818c; font-size: 13px; }
.yw-setup-page .yw-band-field input { height: 36px; font-size: 14px; }
.yw-setup-page .yw-band-weekend-head { margin: 0; color: #202024; font-size: 14px; font-weight: 500; }
.yw-setup-page .yw-band-suggest > span:first-child { font-size: 13px; }

/* Per-room limits (guardrails PlanRow): the room at row size, the Sun to Thu
   pair a quiet second line, no ring box. */
.yw-setup-page .yw-guard-plan-name { color: #202024; font-size: 14px; font-weight: 500; letter-spacing: -.2px; }
.yw-setup-page .yw-guard-plan-sub { color: #87818c; font-size: 13px; }
.yw-setup-page .yw-guard-plan input { height: 34px; font-size: 13.5px; }

/* A box inside a card (a bordered Tailwind block) is a hairline section. */
.yw-setup-page section[data-panel] > div:last-child :is(div, details)[class~="border"]:is([class~="rounded-xl"], [class~="rounded-2xl"]):not([class*="bg-amber"], [class*="bg-rose"], [class*="bg-violet"]) { padding: 14px 0 0; border: 0; border-top: 1px solid #eae8ec; border-radius: 0; background: transparent; box-shadow: none; }
/* A warning box is the house pink line, no tint. */
.yw-setup-page section[data-panel] :is(div, p)[class*="bg-amber-50"]:is([class~="border"], [class~="ring-1"]),
.yw-setup-page section[data-panel] :is(div, p)[class~="text-rose-700"]:is([class~="border"], [class~="ring-1"]) { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #a9507a; font-size: 13.5px; }

/* Managed for you and the expert switch: one step up. */
.yw-setup-page .yw-rates-managed-title { font-size: 14px; }
.yw-setup-page .yw-rates-managed-value { color: #343039; font-size: 14px; }
.yw-setup-page .yw-rates-managed-rows { font-size: 13px; }
.yw-setup-page .yw-day-chip { min-height: 34px; padding: 0 11px; border-radius: 10px; font-size: 13px; }

[data-theme-root].dark :is(.yw-setup-page, .yw-band-form) [data-tip]:not(.yw-roomlist-name)::after { border-color: #1c2843; background: rgba(13, 21, 39, .92); box-shadow: 0 12px 30px #00000066, 0 2px 6px #00000033; color: #c3b9cc; }
[data-theme-root].dark :is(.yw-setup-page, .yw-band-form) :is(.yw-floors-sub, .yw-band-weekend-head, .yw-guard-plan-name, .yw-guard-plan-sub)[data-tip] { text-decoration-color: #4a4458; }
[data-theme-root].dark .yw-setup-page :is(.yw-floor-room, .yw-guard-plan-name, .yw-band-weekend-head) { color: #f3eef8; }
[data-theme-root].dark .yw-setup-band-line > .yw-setup-line { color: #c3b9cc; }
[data-theme-root].dark .yw-setup-page :is(.yw-guard-plan-sub, .yw-band-field) { color: #a297ab; }
[data-theme-root].dark .yw-setup-page section[data-panel] > div:last-child :is(div, details)[class~="border"]:is([class~="rounded-xl"], [class~="rounded-2xl"]):not([class*="bg-amber"], [class*="bg-rose"], [class*="bg-violet"]) { border-top-color: #1c2843; background: transparent; }
[data-theme-root].dark .yw-setup-page section[data-panel] :is(div, p)[class*="bg-amber-50"]:is([class~="border"], [class~="ring-1"]),
[data-theme-root].dark .yw-setup-page section[data-panel] :is(div, p)[class~="text-rose-700"]:is([class~="border"], [class~="ring-1"]) { background: transparent; color: #e69ac4; }

/* ---- Market (10/09): the count as the hero figure --------------------- */
.yw-setup-market-figure { display: flex; align-items: baseline; gap: 10px; margin-top: 14px; }
.yw-setup-market-figure > span { color: #87818c; font-size: 15px; font-weight: 400; letter-spacing: -.2px; }
.yw-setup-page .yw-setup-market-body > .yw-setup-line:first-child { color: #343039; font-size: 15px; }
[data-theme-root].dark .yw-setup-market-figure > span { color: #a297ab; }
[data-theme-root].dark .yw-setup-page .yw-setup-market-body > .yw-setup-line:first-child { color: #c3b9cc; }

/* ---- Seasons and events (10/09): nothing under 12px -------------------- */
.yw-setup-page .yw-season-key { font-size: 12px; }
.yw-setup-page .yw-season-lane-label { font-size: 12px; }
.yw-setup-page .yw-season-bar-name { font-size: 13px; }
.yw-setup-page .yw-season-bar-dates { font-size: 12px; }
.yw-setup-page .yw-events-kind { font-size: 12.5px; }

/* ---- Staff only (10/09, owner: "this container looks really confuising,
   not intuitive at all ... its really desorganized"): a section heading
   over a grid of cards, one question each. Who prices each night across the
   top; the last run beside the next engine; frozen nights; the hourly
   writer. The Panel keeps its markup; here it is a heading, not a card. --- */
.yw-setup-page .yw-rates-auto > section[data-panel] { margin-top: 12px; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.yw-setup-page .yw-rates-auto > section[data-panel] > div:first-child { align-items: baseline; padding: 8px 2px 12px; border: 0; }
.yw-setup-page .yw-rates-auto > section[data-panel] > div:first-child > h2 { font-size: 19px; font-weight: 500; letter-spacing: -.5px; }
.yw-setup-page .yw-rates-auto > section[data-panel] > div:first-child > span.text-xs { margin-left: 4px; color: #a09aa4; font-size: 13px; text-align: left; }
.yw-setup-page .yw-rates-auto > section[data-panel] > div:first-child > span.text-xs::first-letter { text-transform: none; }
.yw-setup-page .yw-rates-auto > section[data-panel] > div:last-child { padding: 0; border: 0; }
.yw-rates-staff { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); align-items: start; gap: 16px; }
.yw-rates-staff > * { grid-column: 1 / -1; min-width: 0; margin: 0; }
.yw-rates-staff > :is(#staff-last-run, #staff-next-engine) { grid-column: auto; }
.yw-rates-staff:not(:has(> #staff-next-engine)) > #staff-last-run { grid-column: 1 / -1; }
/* The Panels in the grid are whole cards here, not hairline rows. */
.yw-setup-page .yw-rates-staff > section[data-panel][data-panel] { margin: 0; overflow: visible; border: 1px solid #e2e1e4; border-radius: 24px; background: #fbfbfb; box-shadow: 0 2px 3px rgba(0, 0, 0, .008); }
.yw-setup-page .yw-rates-staff > section[data-panel][data-panel] > div:first-child { padding: 21px 23px 4px; }
.yw-setup-page .yw-rates-staff > section[data-panel][data-panel] > div:first-child > h2 { font-size: 19px; font-weight: 500; letter-spacing: -.5px; }
.yw-setup-page .yw-rates-staff > section[data-panel][data-panel] > div:last-child { padding: 12px 23px 23px; }

/* Who prices each night. */
.yw-rates-handover .yw-card-head { align-items: flex-start; }
.yw-rates-handover-state { margin: 8px 0 0; color: #343039; font-size: 15px; line-height: 1.45; letter-spacing: -.2px; }
.yw-rates-handover-rows { margin-top: 14px; }
.yw-rates-handover-rows > .yw-rates-staff-row:first-child { border-top: 1px solid #eae8ec; }
.yw-rates-switch { margin-top: 6px; padding-top: 18px; border-top: 1px solid #eae8ec; }
.yw-rates-switch-head { margin: 0 0 12px; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; }
.yw-rates-switch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 14px; }
.yw-rates-switch-tile { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 12px; margin: 0; padding: 16px 18px 18px; border: 1px solid #eae8ec; border-radius: 16px; background: #fff; }
.yw-rates-switch-lead { border-color: #dccbf6; background: #faf7fe; }
.yw-rates-switch-title { margin: 0; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; }
.yw-rates-switch-title .hw-info-label { color: inherit; font-size: 15px; font-weight: 500; }
.yw-rates-switch-tile .yw-rates-staff-check { font-size: 13.5px; }

/* Frozen nights, a card of its own. */
.yw-rates-frozen .yw-card-title { display: inline-flex; align-items: baseline; gap: 8px; }
.yw-rates-frozen .yw-card-head { align-items: center; }

/* The last run: one figure, four stats, the reasons. */
.yw-rates-run[data-layout="stats"] .yw-rates-run-hero { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 2px; }
.yw-rates-run-hero > strong { color: #202024; font-size: 34px; font-weight: 500; letter-spacing: -1.2px; line-height: 1.1; }
.yw-rates-run-hero > span { color: #87818c; font-size: 15px; }
.yw-rates-run-hero > .yw-rates-run-age { margin-left: auto; color: #a09aa4; font-size: 13px; }
.yw-rates-run-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: 12px 20px; margin-top: 16px; padding: 14px 0; border-top: 1px solid #eae8ec; border-bottom: 1px solid #eae8ec; }
.yw-rates-run-stats > div { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.yw-rates-run-stats strong { color: #202024; font-size: 17px; font-weight: 500; letter-spacing: -.4px; }
.yw-rates-run-stats strong > em { color: #a09aa4; font-size: 13px; font-style: normal; font-weight: 400; letter-spacing: 0; }
.yw-setup-page .yw-rates-run[data-layout="stats"] > .yw-rates-night-line { padding: 12px 0 0; border-top: 0; color: #59535f; font-size: 13.5px; }
.yw-rates-run-reasons-head { margin: 18px 0 0; color: #202024; font-size: 15px; font-weight: 500; letter-spacing: -.3px; }
.yw-rates-run[data-layout="stats"] .yw-rates-run-reasons { margin-top: 8px; }
[data-theme-root].dark .yw-rates-run-reasons-head, [data-theme-root].dark .yw-rates-switch-title .hw-info-label { color: #f3eef8; }
.yw-rates-run[data-layout="stats"] .yw-rates-run-dates { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1100px) {
  .yw-rates-staff { grid-template-columns: minmax(0, 1fr); }
  .yw-rates-staff > :is(#staff-last-run, #staff-next-engine) { grid-column: 1 / -1; }
}

[data-theme-root].dark .yw-setup-page .yw-rates-auto > section[data-panel] { background: transparent; }
[data-theme-root].dark .yw-setup-page .yw-rates-staff > section[data-panel][data-panel] { border-color: #1c2843; background: var(--yw-staff-card-dark, #0d1527); }
[data-theme-root].dark :is(.yw-rates-handover-state, .yw-rates-switch-tile .yw-rates-staff-check) { color: #c3b9cc; }
[data-theme-root].dark :is(.yw-rates-switch-head, .yw-rates-switch-title, .yw-rates-run-hero > strong, .yw-rates-run-stats strong) { color: #f3eef8; }
[data-theme-root].dark :is(.yw-rates-handover-rows > .yw-rates-staff-row:first-child, .yw-rates-switch, .yw-rates-run-stats) { border-color: #1c2843; }
[data-theme-root].dark .yw-rates-switch-tile { border-color: #1c2843; background: #111b30; }
[data-theme-root].dark .yw-rates-switch-lead { border-color: #4a3a63; background: #1d1830; }
[data-theme-root].dark :is(.yw-rates-run-hero > span, .yw-rates-run-stats strong > em) { color: #a297ab; }
[data-theme-root].dark .yw-setup-page .yw-rates-run[data-layout="stats"] > .yw-rates-night-line { color: #c3b9cc; }

