/* ─────────────────────────────────────────────────────────────────────────
   FRW-1103 — Admin v7 shell tokens, shipped.

   Bridges design/admin-profile/prototype/tokens.css's v7 `--color-*`/`--text-*` vocabulary
   onto THIS repo's own brand tokens (website/assets/css/fr-sporty-1.46.css :root), per
   HANDOFF.md's "name the token, never the hex" rule — same bridging pattern as
   cash-tokens-1.0.css (FRW-754). Every custom property below resolves to a value the repo
   already ships (--fr-*) or to a literal the design itself specifies verbatim (the two
   on-primary/on-destructive white text values — no --fr-white token exists to alias).

   🛑 NAMESPACED ON PURPOSE (`--v7-*` / `.tool-band*` / `.tool-body` / `.v7-btn*` /
   `.v7-input`), so loading this globally from website/style.php (the same single-load-point
   pattern as cash-tokens-1.0.css/admin-controls-1.0.css) cannot repaint a non-admin page's
   Bootstrap `.btn`/`.form-control`. LOADED AFTER cash-tokens-1.0.css (Waleed's default,
   FRW-1103 description): this file's `.tool-band` ink rule and cash-tokens' own rules never
   collide (disjoint selectors), so load order here is a convention, not a cascade fix. */

:root {
  /* ink shell — the band's own background/text (V7-7: "Ink band, red rule") */
  --v7-color-primary:         var(--fr-ink);
  --v7-color-on-primary:      var(--fr-card);   /* --fr-card is #fff; 18.08:1 on --fr-ink (HANDOFF v7 SCR-199) */
  --v7-color-accent:          var(--fr-red-2);   /* the 4px rule + red-only primary buttons */

  /* body surface */
  --v7-color-card:            var(--fr-card);
  --v7-color-foreground:      var(--fr-ink);
  --v7-color-secondary:       var(--fr-muted);
  /* the v7 input's border (HANDOFF: "the v7 input border --color-control-border 4.83:1") */
  --v7-color-control-border:  var(--fr-muted);
  /* a form-control-strength border, one step darker than --fr-line — reuses
     cash-tokens-1.0.css's --cash-border-strong (loaded before this file, same value) rather
     than a second hex literal for the same design-system value. */
  --v7-color-border-strong:   var(--cash-border-strong);

  /* destructive — V7-7 "Ink, red = delete only": the ONE red that may carry a word */
  --v7-color-destructive:     var(--fr-red-2);
  --v7-color-on-destructive:  var(--fr-card);   /* --fr-card is #fff; 6.30:1 on red */

  /* text-button links */
  --v7-color-info:            var(--fr-blue);

  /* layout (HANDOFF v7 "Tokens": --page-max 1100px, --page-gutter = --space-4) */
  --v7-page-max:              1100px;
  --v7-page-gutter:           16px;

  /* type (HANDOFF v7 SCR-199 "type" row) */
  --v7-text-xs:               12px;   /* the floor */
  --v7-text-sm:               13px;
  --v7-text-base:             15px;
  --v7-text-md:               16px;   /* inputs — the one new value v7 adds */
  --v7-text-lg:               17px;   /* sheet titles */
  --v7-text-2xl:              24px;   /* h1 */

  --v7-tap-min:                44px;

  /* body typeface for the v7 vocabulary (FRW-1103 remediation): `--font-body` is defined in
     NO served stylesheet (measured undefined on test) — every `font:` shorthand that named it
     was invalid at computed-value time (Back/`.v7-btn` fell back to the UA default, 15-16px/400
     instead of SCR-187's 700 13px). The repo's real body typeface token is `--bodyFonts`
     (style-2.03.css:30, served). */
  --v7-font-body:              var(--bodyFonts);

  /* FRW-1104 pass 4 — apx's lighter --color-border (cash-tokens-1.0.css) has no v7
     equivalent yet; needed below so `.ss-panel .potrow` can drop `.apx` and still use
     the same border weight it always had. */
  --v7-color-border:           var(--fr-line);
  /* the accessible muted-foreground alias (cash-tokens-1.0.css's #4b5563, 7.56:1 on a
     card) — NOT --v7-color-secondary (--fr-muted, #6b7280), which cash-tokens-1.0.css's
     own docblock records as failing 4.5:1. cash-tokens-1.0.css loads before this file
     (docblock above), so --cash-muted-foreground already exists when this runs. */
  --v7-color-muted-foreground: var(--cash-muted-foreground);
}

/* ── SCR-187 — the shell: band + one column ─────────────────────────────────────────── */

.tool-band {
  background: var(--v7-color-primary);
  color: var(--v7-color-on-primary);
  border-bottom: 4px solid var(--v7-color-accent);
  padding: 12px var(--v7-page-gutter) 16px;
  scroll-margin-top: var(--apx-head, 0px);
}
/* HANDOFF v7 rule 3: "band and body share max-width 1100px" — the inner wrapper ties the
   band's content to the same --v7-page-max column .tool-body uses (FRW-1103 remediation;
   was missing, so Back/h1 sat at the page's raw left edge while .tool-body content started
   at --v7-page-max's own left inset). Grid mirrors the prototype's .tp__in exactly: Back in
   its own column spanning both rows, trail+title stacked in the second column, lede full-width. */
.tool-band__in {
  max-width: var(--v7-page-max); margin: 0 auto;
  display: grid; grid-template-columns: auto minmax(0, 1fr);
  gap: 4px 12px; align-items: center;
}
.tool-band__back {
  grid-row: span 2;
  display: inline-flex; align-items: center; gap: 6px;
  min-height: var(--v7-tap-min); box-sizing: border-box;
  padding: 0 12px;
  border: 1px solid color-mix(in srgb, var(--v7-color-on-primary) 28%, transparent);
  border-radius: 8px;
  font: 700 var(--v7-text-sm)/1 var(--v7-font-body);
  color: var(--v7-color-on-primary); text-decoration: none;
}
.tool-band__back:hover { background: color-mix(in srgb, var(--v7-color-on-primary) 12%, transparent); }
.tool-band__trail {
  list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0;
  font-size: var(--v7-text-sm); color: var(--v7-color-on-primary);
}
.tool-band__trail li:not(:last-child)::after { content: '\203A'; margin-left: 4px; }
.tool-band__trail a { color: var(--v7-color-on-primary); text-decoration: underline; }
.tool-band__title {
  font-family: var(--headerFonts); font-weight: 600; text-transform: uppercase;
  font-size: var(--v7-text-2xl); margin: 0; color: var(--v7-color-on-primary);
}
.tool-band__lede { grid-column: 1 / -1; font-size: var(--v7-text-sm); color: var(--v7-color-on-primary); margin: 0; }

/* The body every v7 page shares: one 1100px column, 16px gutter (rule 3). */
.tool-body { max-width: var(--v7-page-max); margin: 0 auto; padding: 16px 16px 56px; display: grid; gap: 16px; }

/* tool_403.php (SCR-177) — moved out of its own inline <style> (FRW-1103, rule 2). */
.tool-403 { max-width: 520px; margin: 48px auto; text-align: center; color: var(--v7-color-secondary); font-size: var(--v7-text-base); }
.tool-403 i { font-size: 32px; display: block; margin-bottom: 12px; color: var(--v7-color-secondary); }

/* ── SCR-199 — component vocabulary (buttons, one input, 12px floor) ───────────────────
   Retained for the rows that build on this shell (HANDOFF "For bhai" item 1 note: shell +
   vocabulary base — everything else depends on it). Namespaced `.v7-*` so Bootstrap's own
   `.btn`/`.form-control` on every non-admin page is untouched. */

.v7-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: var(--v7-tap-min); padding: 0 var(--v7-page-gutter);
  border-radius: 8px; border: 1px solid transparent;
  font: 700 var(--v7-text-sm)/1 var(--v7-font-body); text-decoration: none; cursor: pointer;
}
.v7-btn--primary    { background: var(--v7-color-primary); color: var(--v7-color-on-primary); border-color: var(--v7-color-primary); }
.v7-btn--secondary  { background: var(--v7-color-card); color: var(--v7-color-foreground); border-color: var(--v7-color-border-strong); }
.v7-btn--destructive{ background: var(--v7-color-destructive); color: var(--v7-color-on-destructive); border-color: var(--v7-color-destructive); }
.v7-btn--text        { background: transparent; color: var(--v7-color-info); border-color: transparent; text-decoration: underline; min-height: auto; padding: 0; }
/* FRW-1145 review: a destructive text button keeps the 44px tap target (prototype .btn--text-danger
   inherits .btn's min-height) — min-height:auto left it 13-15px tall. */
.v7-btn--text-danger { background: transparent; color: var(--v7-color-destructive); border-color: transparent; text-decoration: underline; text-underline-offset: 2px; min-height: var(--v7-tap-min); padding: 0 8px; }

.v7-input {
  display: block; width: 100%; box-sizing: border-box;
  min-height: var(--v7-tap-min); font-size: var(--v7-text-md);
  padding: 0 12px; border: 1px solid var(--v7-color-control-border); border-radius: 8px;
  background: var(--v7-color-card); color: var(--v7-color-foreground);
}
.v7-field__label { display: block; font-size: var(--v7-text-sm); font-weight: 700; margin-bottom: 4px; color: var(--v7-color-foreground); }

/* The 12px floor (rule 5) is the token above (--v7-text-xs); it is APPLIED per page by the
   row that rebuilds that page's body (HANDOFF "the 12px floor is proven by a computed-style
   browser check, not grep" — a global `* { font-size: … }` here would silently resize every
   element already on Features/Deploy guide, which this row does not own the body of). */

.v7-input-wrap { position: relative; display: flex; align-items: center; }
.v7-input-wrap .v7-input { padding-left: 40px; }
.v7-input-prefix {
  position: absolute; left: 12px; display: inline-flex; align-items: center;
  font-size: var(--v7-text-sm); color: var(--v7-color-secondary); pointer-events: none;
}
/* FRW-1104 remediation round 2 (jutt follow-up 5): the shared 40px icon gutter above assumes a
   single-glyph prefix. The coupon value field's prefix is TEXT ("Rs off", "Rs off / hr") and at
   390px width overlaps digits typed into #coupon-form-value ("Rs of0"). Scoped to that one field
   by ID chain — every icon prefix elsewhere keeps the 40px gutter unchanged. */
#coupon-value-label { white-space: nowrap; }
#coupon-value-label ~ #coupon-form-value { padding-left: 92px; }

/* FRW-1104 remediation round 3 (SCR-188): the opened lists' row Edit/Holidays buttons are now
   worded 44px v7 secondaries, wider than the old 23px icons. .addon-row__left is flex:1 with
   min-width 0 (style-2.03.css), so on a 390px phone the row never wrapped and the NAME was
   squeezed to one word per line. A 160px basis for the name makes the row wrap the buttons onto
   their own line first. Scoped to the four opened lists only. */
#membership-list-result .addon-row__left,
#academy-list-result .addon-row__left,
#addon-list-result .addon-row__left,
#coupon-list-result .addon-row__left { flex: 1 1 160px; }

.v7-field { margin-bottom: var(--v7-page-gutter); }
.field__err { color: var(--v7-color-destructive); font-size: var(--v7-text-xs); margin-top: 4px; }
.v7-input[aria-invalid="true"], .field__err-input { border-color: var(--v7-color-destructive); }

/* ── SCR-189 … 193 — the ONE editor sheet (FRW-1104) ────────────────────────────────────
   Shared partial: app/Views/profile/_editor_sheet.php. Populated/driven by the bundle's
   v7_sheet_open()/v7_sheet_close() helpers — this file supplies layout/state CSS only. */

.v7-sheet-scrim {
  position: fixed; inset: 0; z-index: 2200;
  background: color-mix(in srgb, var(--v7-color-primary) 55%, transparent);
}
.v7-sheet {
  position: fixed; z-index: 2201; background: var(--v7-color-card); color: var(--v7-color-foreground);
  display: flex; flex-direction: column;
  inset: 0;
}
/* FRW-1109 follow-up: the sheet is its own scrollport — without it the foot's position:sticky
   resolves against the page's scroll container and sits mid-sheet over a tall editor (measured
   at 1366 on test). Was duplicated per-page (short_links.php, people_page.php, unscoped in
   _equipment_v7.php); one copy here covers every #v7Sheet instance, including Super Settings. */
#v7Sheet { overflow: hidden; }
@media (min-width: 600px) {
  .v7-sheet {
    inset: auto; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 100%; max-width: 560px; max-height: calc(100vh - 112px);
    border-radius: 12px; box-shadow: 0 12px 40px rgba(0,0,0,.28);
  }
}
.v7-sheet.d-none, .v7-sheet-scrim.d-none { display: none; }
.v7-sheet__head {
  display: flex; align-items: flex-start; gap: 12px; padding: var(--v7-page-gutter);
  border-bottom: 1px solid var(--v7-color-border-strong);
  position: sticky; top: 0; background: var(--v7-color-card); z-index: 1;
}
.v7-sheet__close {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: var(--v7-tap-min); min-height: var(--v7-tap-min);
  border: none; background: transparent; cursor: pointer; font-size: 20px;
  color: var(--v7-color-foreground);
}
.v7-sheet__title { font: 700 var(--v7-text-lg)/1.2 var(--v7-font-body); margin: 0; }
.v7-sheet__subtitle { font-size: var(--v7-text-xs); color: var(--v7-color-secondary); margin-top: 2px; }
.v7-sheet__status { padding: 0 var(--v7-page-gutter); font-size: var(--v7-text-xs); color: var(--v7-color-secondary); min-height: 0; }
.v7-sheet[aria-busy="true"] .v7-sheet__status { padding-top: 8px; }
.v7-sheet__body { flex: 1 1 auto; overflow-y: auto; padding: var(--v7-page-gutter); }
.v7-sheet__foot {
  display: flex; justify-content: flex-end; gap: 8px; padding: var(--v7-page-gutter);
  border-top: 1px solid var(--v7-color-border-strong);
  position: sticky; bottom: 0; background: var(--v7-color-card);
}

/* FRW-1104 remediation round 2 (jutt follow-up 6): SCR-189's titled groups, replacing the
   Teko/Bootstrap accordion inside a sheet body (Futsal Settings, both mirror copies — Add
   venue reuses the same template). Every section stays visible in the sheet's own scroll. */
.v7-sheet__group { margin-bottom: calc(var(--v7-page-gutter) * 1.5); }
.v7-sheet__group:last-child { margin-bottom: 0; }
.v7-sheet__group-title {
  font-size: var(--v7-text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
  color: var(--v7-color-secondary); margin: 0 0 8px;
  padding-bottom: 6px; border-bottom: 1px solid var(--v7-color-border);
}

/* ── SCR-151/188 — Super Settings list surface, unscoped from `.apx` (FRW-1104 pass 4) ──
   `.apx` (cash-tokens-1.0.css) still exists and still ships — features_hub.php and
   deploy_guide.php keep it. Only admin/profile.php's Super Settings panel and
   futsal_summary.php (its `#futsal-summary` AJAX fragment, rendered INSIDE the same
   panel) drop the wrapper; every rule below is scoped to `.ss-panel` (the panel's own
   existing wrapper class, `#super-details-panel`) instead of `.apx`, so no other `.apx`
   page anywhere else is affected — same narrowness cash-tokens-1.0.css's `.apx` always
   had, just a different ancestor selector.

   Values carried over 1:1 from cash-tokens-1.0.css's apx-scoped originals, using the
   v7 tokens that already alias the same source values (verified equal where they
   overlap: --v7-text-base 15px == apx --text-base 0.9375rem, --v7-tap-min 44px ==
   apx --tap-min, --v7-color-border-strong == apx --color-border-strong, both alias
   --cash-border-strong) plus the two additions above this block. */
.ss-panel { color: var(--v7-color-foreground); font-size: var(--v7-text-base); }
.ss-panel .page__sub { font-size: var(--v7-text-sm); color: var(--v7-color-muted-foreground); margin: 0 0 12px; }
.ss-panel .page__sub a { color: var(--v7-color-info); }
.ss-panel .sect__h {
  font-size: var(--v7-text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--v7-color-muted-foreground); margin: 16px 0 8px;
}
.ss-panel .ctx { font-size: var(--v7-text-sm); color: var(--v7-color-muted-foreground); margin: 0; }
.ss-panel .potrow {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px; margin-bottom: 8px; background: var(--v7-color-card);
  border: 1px solid var(--v7-color-border); border-radius: 8px; min-height: var(--v7-tap-min);
  text-decoration: none; color: inherit; width: 100%; box-sizing: border-box; text-align: left;
  font-family: inherit; font-size: var(--v7-text-base);
}
.ss-panel button.potrow { cursor: pointer; }
.ss-panel a.potrow:hover, .ss-panel button.potrow:hover { border-color: var(--v7-color-border-strong); color: inherit; }
.ss-panel .potrow:focus-visible { outline: 2px solid var(--v7-color-info); outline-offset: 2px; }
.ss-panel .potrow > :first-child { min-width: 0; flex: 1 1 16ch; }
.ss-panel .potrow__name { display: block; font-weight: 700; }
.ss-panel .potrow__sub { display: block; font-size: var(--v7-text-xs); color: var(--v7-color-muted-foreground); }
.ss-panel .potrow__count { font-weight: 800; font-variant-numeric: tabular-nums; }
.ss-panel .potrow__chev { color: var(--v7-color-muted-foreground); flex: 0 0 auto; }
.ss-panel .inline-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.ss-panel .field__label { font-size: var(--v7-text-sm); font-weight: 700; color: var(--v7-color-foreground); }
.ss-panel .field__ctl {
  min-height: var(--v7-tap-min); width: 100%; max-width: 480px; padding: 8px 12px;
  border: 1px solid var(--v7-color-border-strong); border-radius: 8px;
  /* FRW-1119 (SCR-199 "input: 16px --text-md"): the input is 16px here, never by moving
     --v7-text-base, which also sizes body text. */
  background: var(--v7-color-card); color: var(--v7-color-foreground); font-size: var(--v7-text-md);
}
.ss-panel .field__help { font-size: var(--v7-text-xs); color: var(--v7-color-muted-foreground); line-height: 1.4; margin: 8px 0 0; }
.ss-panel .apx-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  min-height: var(--v7-tap-min); padding: 8px 16px; border-radius: 8px;
  border: 1px solid var(--v7-color-border-strong); background: var(--v7-color-card); color: var(--v7-color-foreground);
  font-size: var(--v7-text-sm); font-weight: 700; text-decoration: none; cursor: pointer;
}
.ss-panel .ss-sect { scroll-margin-top: calc(var(--apx-head, 72px) + 12px); }

/* ── FRW-1117 — the stat-card 12px floor, ONCE for every page ──────────────────────────
   style-2.03.css sets the card's label/meta at 0.6875rem (11px) and its action at 0.625rem
   (10px); both sit under the v7 floor on Money rollup, On-spot, Add-ons, Volume, Utilization,
   Trends, Coupon usage, the Reports hub, Cash overview and Opening balances. Same specificity
   as those rules and loaded after style-2.03.css (website/style.php), so this wins without
   !important. Replaces FRW-1106's per-page `.rpt-v7` copies on the four reports. Size only —
   no figure changes (ReportDisplayFiguresGuardTest). Not covered: the dark owner-futsal
   modal's own `.admin-futsal-modal-summary .admin-stat-card__meta` (higher specificity). */
.admin-stat-card__label,
.admin-stat-card__meta,
.admin-stat-card__action { font-size: var(--v7-text-xs); }

/* ── FRW-1145 — Venue Settings: Fields/Bank in-place lists + Owner/Manager (SCR-215 … 219) ──
   Values carried over from design/admin-profile/prototype/tokens.css's .field/.opened-list/
   .irow/.pgrid/.money-in/.check/.badge/.how/.rcard__dl families (HANDOFF SCR-189 "Fields"),
   mapped onto the --v7-* tokens already bridged above. Scoped to `.v7-sheet__body` so these
   class names (shared across the three groups: Fields, Bank, Owner/Manager, hence living here
   and not per-view) cannot repaint anything outside the Futsal Settings / Owner-Manager sheet. */
:root { --v7-color-muted: var(--cash-muted); }

.v7-sheet__body .field { display: grid; gap: 4px; margin-bottom: var(--v7-page-gutter); }
.v7-sheet__body .field:last-child { margin-bottom: 0; }
.v7-sheet__body .field__label { font-size: var(--v7-text-sm); font-weight: 700; color: var(--v7-color-foreground); }
.v7-sheet__body .field__help { font-size: var(--v7-text-xs); color: var(--v7-color-muted-foreground); line-height: 1.4; }
.v7-sheet__body .field__ctl,
.v7-sheet__body select.field__ctl,
.v7-sheet__body textarea.field__ctl {
  display: block; width: 100%; box-sizing: border-box;
  min-height: var(--v7-tap-min); font-size: var(--v7-text-md);
  padding: 0 12px; border: 1px solid var(--v7-color-control-border); border-radius: 6px;
  background: var(--v7-color-card); color: var(--v7-color-foreground);
}
.v7-sheet__body .field__ctl[aria-invalid="true"] { border-color: var(--v7-color-destructive); box-shadow: inset 3px 0 0 var(--v7-color-destructive); }
.v7-sheet__body .field--required .field__label::after { content: " • required"; font-weight: 600; color: var(--v7-color-accent); letter-spacing: .02em; }

.v7-sheet__body .opened-list { display: grid; gap: 0; border: 1px solid var(--v7-color-border-strong); border-radius: 6px; overflow: hidden; background: var(--v7-color-card); }
.v7-sheet__body .irow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; padding: 8px 12px; border-top: 1px solid var(--v7-color-border); min-height: var(--v7-tap-min); }
.v7-sheet__body .irow:first-child { border-top: 0; }
.v7-sheet__body .irow__t { font-weight: 700; }
.v7-sheet__body .irow__s { font-size: var(--v7-text-xs); color: var(--v7-color-muted-foreground); line-height: 1.4; }
.v7-sheet__body .irow__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; background: var(--v7-color-muted); }
.v7-sheet__body .irow--off .irow__t { color: var(--v7-color-muted-foreground); }
/* one-at-a-time open state (V7-12): the summary half is hidden, the form half shows, and the
   row drops its two-column grid so the form can use the full width. */
.v7-sheet__body .irow__form { display: none; padding-top: 8px; }
.v7-sheet__body .irow--open { grid-template-columns: minmax(0, 1fr); background: var(--v7-color-card); box-shadow: inset 3px 0 0 var(--v7-color-primary); }
.v7-sheet__body .irow--open .irow__summary { display: none; }
.v7-sheet__body .irow--open .irow__form { display: block; }
/* FRW-1145 review: the row's own Edit button hides while its form is open, and the closed
   "add" row (an empty summary) is not drawn as a blank 44px band. */
.v7-sheet__body .irow--open > .v7-btn { display: none; }
.v7-sheet__body .irow[data-irow="add"]:not(.irow--open) { display: none; }
.v7-sheet__body .irow__err { margin: 8px 0 0; font-size: var(--v7-text-sm); font-weight: 700; color: var(--v7-color-destructive); }
.v7-sheet__body .irow__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.v7-sheet__body .irow__acts .v7-btn--primary { flex: 1 1 12ch; }
.v7-sheet__body .irow__del { border-top: 1px solid var(--v7-color-border); margin-top: 12px; padding-top: 8px; }

.v7-sheet__body .pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin-bottom: 12px; }
.v7-sheet__body .pgrid__h { grid-column: 1 / -1; font-size: var(--v7-text-sm); font-weight: 700; margin: 8px 0 0; }
.v7-sheet__body .pgrid .field { margin-bottom: 0; }
.v7-sheet__body .pgrid .field__label { font-weight: 600; color: var(--v7-color-muted-foreground); }
.v7-sheet__body .money-in { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: stretch; }
.v7-sheet__body .money-in__pre { display: inline-flex; align-items: center; padding: 0 12px; border: 1px solid var(--v7-color-border-strong); border-right: 0; border-radius: 6px 0 0 6px; background: var(--v7-color-muted); font-weight: 700; font-size: var(--v7-text-sm); }
.v7-sheet__body .money-in .field__ctl { border-radius: 0 6px 6px 0; }

.v7-sheet__body .checks { display: flex; flex-wrap: wrap; gap: 0 var(--v7-page-gutter); }
.v7-sheet__body .check { display: flex; align-items: center; gap: 12px; min-height: var(--v7-tap-min); font-size: var(--v7-text-base, var(--v7-text-md)); }
.v7-sheet__body .check input { width: 20px; height: 20px; accent-color: var(--v7-color-primary); flex: 0 0 auto; }

/* FRW-1145 remediation (cold review) — the first fix put `color` on this bare
   `.v7-sheet__body .badge` selector, shared across every group that draws a
   plain badge. It also matches Bootstrap's `.badge bg-*` badges
   (coupon_modal.php's `bg-secondary`, cloned into #v7SheetBody by
   open_coupon_modal()): they win the BACKGROUND (Bootstrap's `bg-*` is
   `!important`) but this shared rule still won the ink colour by
   specificity, dropping bg-secondary from 4.69:1 to 3.86:1 and bg-success
   from 4.53:1 to 3.99:1. Ink is NOT shared across the three groups (only
   fields.php draws the plain "Removed" badge that needed it), so `color` is
   removed from here — bg-* badges fall back to Bootstrap's own white text —
   and fields.php pins its own ink via `.badge--removed` in that view's own
   <style> block. */
.v7-sheet__body .badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: var(--v7-text-xs); font-weight: 700; border: 1px solid var(--v7-color-border-strong); background: var(--v7-color-card); }
.v7-sheet__body .count-line { font-size: var(--v7-text-sm); color: var(--v7-color-muted-foreground); margin: 0; font-variant-numeric: tabular-nums; }

.v7-sheet__body .rcard__dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; margin: 0 0 12px; font-size: var(--v7-text-sm); }
.v7-sheet__body .rcard__dl dt { color: var(--v7-color-muted-foreground); }
.v7-sheet__body .rcard__dl dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }

.v7-sheet__body .sheet__danger { border-top: 1px solid var(--v7-color-border-strong); margin-top: var(--v7-page-gutter); padding-top: 12px; display: grid; gap: 4px; }

.v7-sheet__body .how { background: var(--v7-color-card); border: 1px solid var(--v7-color-border-strong); border-radius: 6px; margin-bottom: 12px; }
.v7-sheet__body .how summary { min-height: var(--v7-tap-min); display: flex; align-items: center; padding: 0 12px; font-weight: 700; font-size: var(--v7-text-sm); cursor: pointer; }
.v7-sheet__body .how__b { padding: 0 12px 12px; font-size: var(--v7-text-sm); line-height: 1.5; color: var(--v7-color-muted-foreground); }

/* The Owner/Manager sheet-body template (app/Views/profile/admin/profile.php#owner-sheet-body,
   not owned by this row) is CLONED into the shared #v7SheetBody container (main-3.237.js
   owner_settings()) and still carries a static "<hr><h6>Manager</h6>" ahead of #manager-details.
   settings/owner.php and settings/manager.php now supply their own SCR-219 group titles
   (.v7-sheet__group-title "Owner" / "Manager"), so the host's copy is hidden here rather than
   left as a second, un-styled "Manager" label above the new one — presentation only, no markup
   in the unowned template touched. Scoped to a DIRECT child of #v7SheetBody, which no other
   editor sheet's cloned body uses for a bare <hr>/<h6 class="fw-bold"> (checked). */
#v7SheetBody > hr,
#v7SheetBody > h6.fw-bold { display: none; }
