/* /Components/Common/KSDaysBox.razor.rz.scp.css */
/* KSDaysBox - its own geometry only; the look is .ks-ctrl / .ks-menu (DESIGN.md section 9). */
.ks-daysbox[b-ewpd20c0hb] { position: relative; }
.ks-daysbox .ks-ctrl[b-ewpd20c0hb] { padding-right: 30px; font-variant-numeric: tabular-nums; }
.ks-daysbox[b-ewpd20c0hb]  svg { position: absolute; right: 12px; top: 50%; width: 10px; height: 10px; margin-top: -5px; color: var(--ks-ink-light); pointer-events: none; }

/* In a table row it reads as the value until pointed at; then it shows it is a drop-down. */
.ks-daysbox--bare .ks-ctrl[b-ewpd20c0hb] { border-color: transparent; background-color: transparent; padding-left: 8px; }
.ks-daysbox--bare .ks-ctrl[b-ewpd20c0hb]::placeholder { color: var(--ks-mute); }
.ks-daysbox--bare[b-ewpd20c0hb]  svg { color: var(--ks-mute); }
.ks-daysbox--bare .ks-ctrl:hover[b-ewpd20c0hb], .ks-daysbox--bare .ks-ctrl:focus[b-ewpd20c0hb] { border-color: var(--ks-line-strong); background-color: var(--ks-canvas); }
.ks-daysbox--bare .ks-ctrl:focus[b-ewpd20c0hb] { border-color: var(--ks-blue); }

/* Placed in the window by ksDaysBox (ks-screens.js), over any table that scrolls. */
.ks-daysbox__menu[b-ewpd20c0hb] { position: fixed; z-index: 1300; max-width: 280px; }
.ks-daysbox__menu .ks-menu__item[b-ewpd20c0hb] { justify-content: flex-start; }
.ks-daysbox__menu .ks-menu__item[b-ewpd20c0hb]  svg { position: static; margin: 0 0 0 auto; width: 14px; height: 14px; color: var(--ks-green-deep); }
.ks-daysbox__item--hi[b-ewpd20c0hb] { background: var(--ks-sky-50); color: var(--ks-blue); }
.ks-daysbox__meta[b-ewpd20c0hb] { margin-left: auto; font-size: 12.5px; color: var(--ks-mute); }
.ks-daysbox__hint[b-ewpd20c0hb] { padding: 6px 12px 4px; font-size: 12.5px; color: var(--ks-mute); }
/* /Components/Modals/AssignGroupDialog.razor.rz.scp.css */
/* Assign Group's own geometry (R9). The look is the design system's: .ks-dialog, .ks-grouppick, .ks-about, .ks-seg.
   The group menu hangs below the dialog's edge when it is longer than the dialog (DESIGN.md section 5). */
.assign-group[b-gwwdmpqltm] { width: 640px; overflow: visible; }
.assign-group__body[b-gwwdmpqltm] { gap: 24px; overflow: visible; }
.assign-group__pick[b-gwwdmpqltm] { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 12px; align-items: end; }
.assign-group__help[b-gwwdmpqltm] { margin-top: 8px; }
.assign-group__note[b-gwwdmpqltm] { color: var(--ks-ink-light); margin-top: 4px; }
.assign-group__error[b-gwwdmpqltm] { padding: 10px 12px; border-radius: var(--ks-radius-sm); background: var(--ks-danger-bg); color: var(--ks-danger); font-size: var(--ks-body-s-size); white-space: pre-line; }
/* /Components/Modals/FyiCategoryEditor.razor.rz.scp.css */
/* The category editor's own geometry (R9: a screen's CSS lives beside it, scoped - Chad 2026-10-24). Everything that
   looks like the design system comes from kickstand-components.css (.ks-dialog, .ks-catlist, .ks-add, .ks-chip). */
.fyi-cat-editor[b-bnqqwi8apq] { width: 820px; }
.fyi-cat-editor__body[b-bnqqwi8apq] { gap: 0; padding-top: 6px; }
/* An advisor sees Company as one badge line above both columns, so Personal and Sub categories start level (round 5). */
.fyi-cat-editor__company[b-bnqqwi8apq] { display: flex; align-items: center; gap: 8px; margin-bottom: 36px; }
.fyi-cat-editor__cols[b-bnqqwi8apq] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; }
.fyi-cat-editor__col[b-bnqqwi8apq], .fyi-cat-editor__group[b-bnqqwi8apq] { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
/* 26 + the column gap = 36px after Company's add control, the same as above Description (round 7). */
.fyi-cat-editor__group--first[b-bnqqwi8apq] { margin-bottom: 26px; }
.fyi-cat-editor__head[b-bnqqwi8apq] { display: flex; align-items: center; gap: 8px; }
.fyi-cat-editor__company .ks-chip[b-bnqqwi8apq], .fyi-cat-editor__head .ks-chip[b-bnqqwi8apq], .fyi-cat-editor__of[b-bnqqwi8apq], .fyi-cat-editor__for[b-bnqqwi8apq] {
  font-family: var(--ks-font-body); text-transform: none; letter-spacing: 0;
}
.fyi-cat-editor__of[b-bnqqwi8apq] { font-weight: 600; color: var(--ks-ink); }
.fyi-cat-editor__for[b-bnqqwi8apq] { font-weight: 500; color: var(--ks-mute); }
.fyi-cat-editor__desc[b-bnqqwi8apq] { margin-top: 36px; }
.fyi-cat-editor__error[b-bnqqwi8apq] { margin-top: 16px; padding: 10px 12px; border-radius: var(--ks-radius-sm); background: var(--ks-danger-bg); color: var(--ks-danger); font-size: var(--ks-body-s-size); }
/* /Components/Modals/GroupEditor.razor.rz.scp.css */
/* The group editor's own geometry (R9). The look is the design system's: .ks-dialog, .ks-search, .ks-catlist, .ks-count,
   .ks-add, .ks-chip, .ks-namelist. Round 4 (Chad 2026-10-24): 960 wide with the Groups column three fifths, so long names
   show whole; eight rows before a list scrolls. */
.group-editor[b-uqr7ijyp6l] { width: 960px; }
.group-editor__body[b-uqr7ijyp6l] { gap: 0; padding-top: 6px; }
.group-editor__cols[b-uqr7ijyp6l] { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 32px; align-items: start; margin-top: 24px; }
.group-editor__col[b-uqr7ijyp6l] { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.group-editor__col .ks-catlist[b-uqr7ijyp6l] { max-height: 353px; }
.group-editor__head[b-uqr7ijyp6l] { display: flex; align-items: center; gap: 8px; }
.group-editor__head .ks-chip[b-uqr7ijyp6l], .group-editor__of[b-uqr7ijyp6l], .group-editor__for[b-uqr7ijyp6l] { font-family: var(--ks-font-body); text-transform: none; letter-spacing: 0; }
.group-editor__of[b-uqr7ijyp6l] { font-weight: 600; color: var(--ks-ink); }
.group-editor__for[b-uqr7ijyp6l] { font-weight: 500; color: var(--ks-mute); }
.group-editor__desc[b-uqr7ijyp6l] { margin-top: 36px; }
.group-editor__error[b-uqr7ijyp6l] { margin-top: 16px; padding: 10px 12px; border-radius: var(--ks-radius-sm); background: var(--ks-danger-bg); color: var(--ks-danger); font-size: var(--ks-body-s-size); }
.group-editor__guard-text[b-uqr7ijyp6l] { margin-bottom: 14px; }
.group-editor__guard-row[b-uqr7ijyp6l] { justify-content: space-between; }
.group-editor__confirm[b-uqr7ijyp6l] { display: flex; flex-direction: column; gap: 14px; }
.group-editor__confirm-rows[b-uqr7ijyp6l] { max-height: 240px; }
/* /Components/Modals/GroupMembersDialog.razor.rz.scp.css */
/* Members in ... - its own geometry (R9). The look is the design system's: .ks-dialog, .ks-search, .ks-namelist. */
.group-members[b-qr42e603y7] { width: 560px; }
.group-members__body[b-qr42e603y7] { gap: 12px; }
/* /Pages/Management/MenuEditor.razor.rz.scp.css */
/* The Menu Editor - this page's own geometry. Everything else is the system: ks-page-head, ks-sidelist, ks-search,
   ks-tbl, ks-switch, ks-order, ks-add, ks-strip (DESIGN.md). */
.me-page[b-ote5u7h4tg] { display: flex; flex-direction: column; gap: 28px; flex: 1 1 auto; min-height: 0; padding: 36px 40px 40px; box-sizing: border-box;
  font-family: var(--ks-font-body); font-size: var(--ks-body-size); color: var(--ks-ink); }
.me-top[b-ote5u7h4tg] { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.me-ribbon[b-ote5u7h4tg] { flex: 0 0 auto; margin-top: -36px; }

/* Every menu on the left; the list scrolls under its search box, as more menus are added. The canvas is taller than
   the window (DESIGN.md section 14), so the two columns are held to the window: the add control never falls below it. */
.me-grid[b-ote5u7h4tg] { display: grid; grid-template-columns: 300px minmax(0, 960px); grid-template-rows: minmax(0, 1fr); gap: 28px; align-items: start;
  height: calc(100vh / var(--ks-scale, 1) - 210px); min-height: 420px; }
.me-lists[b-ote5u7h4tg] { max-height: 100%; min-height: 0; box-sizing: border-box; }
.me-find[b-ote5u7h4tg] { flex-shrink: 0; margin: 2px 2px 8px; }
.me-lists__scroll[b-ote5u7h4tg] { display: flex; flex-direction: column; min-height: 0; overflow-y: auto; }
.me-lists__name[b-ote5u7h4tg] { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.me-lists__none[b-ote5u7h4tg] { padding: 8px 12px; }

/* The choices: the table scrolls inside the card, so the add control stays in view on a long list. */
.me-card[b-ote5u7h4tg] { display: flex; flex-direction: column; gap: 14px; max-height: 100%; min-height: 0; box-sizing: border-box; padding: 24px 28px 22px;
  border-radius: var(--ks-radius-lg); background: var(--ks-canvas); box-shadow: var(--ks-shadow-sm); }
.me-card__head[b-ote5u7h4tg] { display: flex; align-items: center; gap: 10px; }
.me-card__title[b-ote5u7h4tg] { font-size: 20px; font-weight: 700; color: var(--ks-blue); }
.me-saved[b-ote5u7h4tg] { margin-left: auto; font-size: var(--ks-body-s-size); font-weight: 600; color: var(--ks-green-deep); }
.me-hint[b-ote5u7h4tg] { margin-top: -8px; }
.me-tbl[b-ote5u7h4tg] { min-height: 0; flex: 0 1 auto; }
.me-tbl .ks-tbl__scroll[b-ote5u7h4tg] { flex: 0 1 auto; min-height: 0; }
.me-order[b-ote5u7h4tg] { flex: 0 1 auto; min-height: 0; overflow-y: auto; }
.me-empty[b-ote5u7h4tg] { padding: 10px; color: var(--ks-mute); font-size: var(--ks-body-s-size); }

.me-rowbtns[b-ote5u7h4tg] { gap: 4px; }
.me-grip[b-ote5u7h4tg] { display: inline-flex; color: var(--ks-mute); cursor: grab; }
.me-grip[b-ote5u7h4tg]  svg { width: 16px; height: 16px; }
.me-off[b-ote5u7h4tg] { color: var(--ks-mute); }
.me-nonumber[b-ote5u7h4tg] { color: var(--ks-danger); font-weight: 600; }
.me-header[b-ote5u7h4tg] { font-weight: 700; gap: 6px; }
/* The fold triangle on a header: points right when folded, down when open. */
.me-fold[b-ote5u7h4tg] { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 20px; height: 20px; padding: 0; border: none;
  border-radius: var(--ks-radius-sm); background: transparent; color: var(--ks-ink-light); cursor: pointer; }
.me-fold:hover[b-ote5u7h4tg] { background: var(--ks-sky-50); color: var(--ks-blue); }
.me-fold svg[b-ote5u7h4tg] { width: 10px; height: 10px; }
.me-fold--open svg[b-ote5u7h4tg] { transform: rotate(90deg); }
.me-color[b-ote5u7h4tg] { display: inline-flex; align-items: center; gap: 8px; }
/* A row with what sits under it, moved as one by the drag. Each row is the last child of its wrapper here, so the table's
   "no rule under the last row" has to be put right. */
.me-rowwrap .ks-tbl__row .ks-tbl__cell[b-ote5u7h4tg] { border-bottom: 1px solid #CCCCCC; }
.me-rowwrap:last-child > .ks-tbl__row:last-child .ks-tbl__cell[b-ote5u7h4tg] { border-bottom: none; }
.me-tbl .ks-tbl__row[b-ote5u7h4tg] { cursor: default; }
/* Dragging: the copy under the mouse is a solid white card; the row's place in the list is the sky band that shows where it lands. */
.sortable-fallback .me-rowwrap .ks-tbl__cell[b-ote5u7h4tg] { background: var(--ks-canvas); border-bottom: none; }
.me-rowwrap.sortable-ghost:not(.sortable-fallback) .ks-tbl__cell[b-ote5u7h4tg] { background: var(--ks-sky-100); border-top: 1px solid var(--ks-blue); border-bottom: 1px solid var(--ks-blue); }
.me-order .ks-order__row.sortable-ghost:not(.sortable-fallback)[b-ote5u7h4tg] { background: var(--ks-sky-100); box-shadow: inset 0 0 0 1px var(--ks-blue); }
/* The priority square as a task row draws it. */
.me-swatch[b-ote5u7h4tg] { width: 20px; height: 20px; padding: 0; flex-shrink: 0; box-sizing: border-box; border: 1px solid var(--ks-ink); cursor: pointer; }
.me-swatch:disabled[b-ote5u7h4tg] { cursor: default; }
/* A list's colour: the browser's own picker opens from the square. */
.me-colorbox[b-ote5u7h4tg] { width: 20px; height: 20px; padding: 0; flex-shrink: 0; box-sizing: border-box; border: 1px solid var(--ks-ink); background: none; cursor: pointer; }
.me-colorbox[b-ote5u7h4tg]::-webkit-color-swatch-wrapper { padding: 0; }
.me-colorbox[b-ote5u7h4tg]::-webkit-color-swatch { border: none; }

.me-input[b-ote5u7h4tg] { padding: 0 8px; gap: 8px; }
.me-input .ks-ctrl[b-ote5u7h4tg] { width: 100%; min-width: 0; box-sizing: border-box; }
.me-kind.ks-seg[b-ote5u7h4tg] { height: 30px; flex-shrink: 0; align-self: center; }
.me-kind.ks-seg > button[b-ote5u7h4tg] { padding: 0 10px; }
.me-acts[b-ote5u7h4tg] { display: flex; align-items: center; gap: 6px; grid-column: span 2; padding: 0 10px; }
/* /Pages/Overview/AddNewGoalDialog.razor.rz.scp.css */
/* Add New Goal's own geometry (R9 - Chad 2026-10-28: the CSS leaves the screen as the design system replaces it). The
   look is kickstand-components.css: .ks-dialog, .ks-field / .ks-label / .ks-ctrl, .ks-check, .ks-btn. */

.goal-entry__body[b-undl10fwq8] { gap: 24px; padding: 6px 32px 32px; }
.goal-entry__head[b-undl10fwq8] { padding: 30px 32px 24px; align-items: center; }
/* The goal target has room inside its 100-unit box, so it is drawn at 28 like the FYI bubble (the Goals board). */
.goal-entry__mark[b-undl10fwq8]  svg { width: 28px; height: 28px; }

/* Goal as of, Status and Report on one line (the Goals board). */
.goal-entry__row[b-undl10fwq8] { display: grid; grid-template-columns: 200px minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }

/* A checkbox and its words on the 44px line of a field. */
.goal-entry__tick[b-undl10fwq8] { height: 44px; display: flex; align-items: center; gap: 10px; padding: 0; border: none; background: transparent;
  font-family: var(--ks-font-body); font-size: var(--ks-body-size); color: var(--ks-ink); text-align: left; cursor: pointer; }
.goal-entry__tick:focus-visible[b-undl10fwq8] { outline: none; }
.goal-entry__tick:focus-visible .ks-check[b-undl10fwq8] { box-shadow: 0 0 0 3px rgba(12, 59, 93, 0.22); }

/* A MudDatePicker drawn as a 44px .ks-ctrl, as on Add New FYI. Its box is sized on .mud-input, never through the
   picker's Style, which also lands on the calendar (module-ui-conventions.md, the 24-pixel calendar of 2026-10-12). */
.goal-entry__date[b-undl10fwq8] { position: relative; height: 44px; box-sizing: border-box; display: flex; align-items: center; padding: 0 44px 0 14px;
  border: 1px solid var(--ks-line-strong); border-radius: var(--ks-radius-sm); background: var(--ks-canvas); }
.goal-entry__date:focus-within[b-undl10fwq8] { border-color: var(--ks-blue); box-shadow: 0 0 0 3px rgba(12, 59, 93, 0.22); }
.goal-entry__date[b-undl10fwq8]  .mud-input-control { margin: 0 !important; width: 100%; }
.goal-entry__date[b-undl10fwq8]  .mud-input { max-height: 24px; font-family: var(--ks-font-body); font-size: var(--ks-body-size); color: var(--ks-ink); }
.goal-entry__date[b-undl10fwq8]  .mud-input-slot { padding: 0; }
.goal-entry__date-btn[b-undl10fwq8] { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
/* /Pages/Overview/FYIEntry.razor.rz.scp.css */
/* Add New FYI's own geometry (R9 - Chad 2026-10-24: the CSS leaves the screen as the design system replaces it). The
   look is kickstand-components.css: .ks-dialog, .ks-field / .ks-label / .ks-ctrl, .ks-btn, .ks-catpick. */

/* The category menu (and its side menu) drops below the dialog's edge, as on the Pop-ups board: nothing here clips it. */
.fyi-entry[b-2tywa58dvc], .fyi-entry__body[b-2tywa58dvc] { overflow: visible; }
.fyi-entry__body[b-2tywa58dvc] { gap: 24px; padding: 6px 32px 32px; }
.fyi-entry__head[b-2tywa58dvc] { padding: 30px 32px 24px; align-items: center; }
/* The FYI speech bubble has room inside its 100-unit box, so it is drawn at 28 to read like the 24px glyphs (Pop-ups board). */
.fyi-entry__mark[b-2tywa58dvc]  svg { width: 28px; height: 28px; }

/* Description is one line to look at, but a textarea, so a description that has line breaks keeps them. */
textarea.fyi-entry__one-line[b-2tywa58dvc] { min-height: 44px; }

.fyi-entry__category[b-2tywa58dvc] { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 8px; align-items: center; }
.fyi-entry__dates[b-2tywa58dvc] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }

/* A MudDatePicker drawn as a 44px .ks-ctrl. Its box is sized on .mud-input, never through the picker's Style, which also
   lands on the calendar (module-ui-conventions.md, the 24-pixel calendar of 2026-10-12). */
.fyi-entry__date[b-2tywa58dvc] { position: relative; height: 44px; box-sizing: border-box; display: flex; align-items: center; padding: 0 44px 0 14px;
  border: 1px solid var(--ks-line-strong); border-radius: var(--ks-radius-sm); background: var(--ks-canvas); }
.fyi-entry__date:focus-within[b-2tywa58dvc] { border-color: var(--ks-blue); box-shadow: 0 0 0 3px rgba(12, 59, 93, 0.22); }
.fyi-entry__date[b-2tywa58dvc]  .mud-input-control { margin: 0 !important; width: 100%; }
.fyi-entry__date[b-2tywa58dvc]  .mud-input { max-height: 24px; font-family: var(--ks-font-body); font-size: var(--ks-body-size); color: var(--ks-ink); }
.fyi-entry__date[b-2tywa58dvc]  .mud-input-slot { padding: 0; }
.fyi-entry__date-btn[b-2tywa58dvc] { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
.fyi-entry__error[b-2tywa58dvc] { font-size: var(--ks-body-s-size); color: var(--ks-danger); }
/* /Pages/Reviews/Reviews.razor.rz.scp.css */
/* Reviews - this page's own geometry and its status colours. Everything else is the system: ks-page-head, ks-seg,
   ks-btn--filter, ks-menu, ks-tbl--medium, ks-check, ks-chip, ks-strip (DESIGN.md). */
.rv-page[b-hlh71uz4vy] { display: flex; flex-direction: column; gap: 22px; flex: 1 1 auto; min-height: 0; padding: 34px 48px 32px; box-sizing: border-box;
  font-family: var(--ks-font-body); font-size: var(--ks-body-size); color: var(--ks-ink); }
.rv-top[b-hlh71uz4vy] { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.rv-ribbon[b-hlh71uz4vy] { flex: 0 0 auto; margin-top: -34px; }

/* ---- status buttons and the due-within box ---- */
.rv-status[b-hlh71uz4vy] { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rv-status .ks-seg > button[b-hlh71uz4vy] { gap: 8px; padding: 0 16px; white-space: nowrap; }
.rv-status .ks-seg > button .ks-chip[b-hlh71uz4vy] { font-variant-numeric: tabular-nums; }
.rv-status .ks-seg > button.ks-seg--on .ks-chip[b-hlh71uz4vy] { background: var(--ks-canvas); }
.rv-within[b-hlh71uz4vy] { display: flex; align-items: center; gap: 10px; font-size: var(--ks-body-s-size); color: var(--ks-ink-light); }
.rv-within[b-hlh71uz4vy]  .rv-within__box { width: 132px; }

/* Status colours (Chad 2026-10-24): red overdue, amber due soon, green on track, an empty ring for no date. */
.rv-dot[b-hlh71uz4vy] { width: 9px; height: 9px; border-radius: 999px; flex-shrink: 0; }
.rv-dot--overdue[b-hlh71uz4vy] { background: var(--ks-danger); }
.rv-dot--soon[b-hlh71uz4vy] { background: var(--ks-sun-deep); }
.rv-dot--ok[b-hlh71uz4vy] { background: var(--ks-green); }
.rv-dot--none[b-hlh71uz4vy] { box-shadow: inset 0 0 0 1.5px var(--ks-line-strong); }

/* ---- toolbar ---- */
.rv-tools[b-hlh71uz4vy] { display: flex; align-items: center; gap: 10px; }
.rv-tools > *[b-hlh71uz4vy] { flex-shrink: 0; }
.rv-find[b-hlh71uz4vy] { width: 240px; }
.rv-spacer[b-hlh71uz4vy] { flex: 1 1 0; min-width: 0; }
.rv-pop[b-hlh71uz4vy] { position: relative; }
.rv-pop .ks-menu[b-hlh71uz4vy] { top: calc(100% + 6px); left: 0; max-height: 420px; overflow-y: auto; }
.rv-backdrop[b-hlh71uz4vy] { position: fixed; inset: 0; z-index: 25; }
.rv-tools .rv-pop[b-hlh71uz4vy], .rv-tools[b-hlh71uz4vy]  .rv-saved { position: relative; z-index: 30; }
/* A task's list (D184): the filters wait - shown, but out of reach until Back to my list. */
.rv-filters[b-hlh71uz4vy] { display: contents; }
.rv-filters[inert] > *[b-hlh71uz4vy], .rv-status[inert][b-hlh71uz4vy] { opacity: .45; }
.rv-done__mark[b-hlh71uz4vy] { background: #EAF6E6; color: var(--ks-green-deep); }

/* ---- the table ---- */
.rv-tbl[b-hlh71uz4vy] { flex: 1 1 auto; min-height: 0; }
.rv-tbl .ks-tbl__scroll[b-hlh71uz4vy] { height: 100%; }
.rv-cols[b-hlh71uz4vy] { grid-template-columns: 48px minmax(200px, 1fr) 64px 92px 92px 150px 128px 104px 220px 136px 140px; }
.rv-tbl .ks-tbl__head > div:first-child[b-hlh71uz4vy] { justify-content: center; padding: 0; }
.rv-tbl .ks-tbl__cell[b-hlh71uz4vy] { font-variant-numeric: tabular-nums; }
.rv-tbl .ks-tbl__head .ks-tbl__cell--center .ks-tbl__sort[b-hlh71uz4vy] { justify-content: center; }
.rv-row--ticked .ks-tbl__cell[b-hlh71uz4vy] { background: var(--ks-sky-50); }
.rv-some[b-hlh71uz4vy] { width: 8px; height: 2px; border-radius: 1px; background: currentColor; }
.rv-freqcell[b-hlh71uz4vy] { padding: 0 4px; overflow: visible; }
.rv-freqcell[b-hlh71uz4vy]  .ks-daysbox { width: 100%; }
.rv-name[b-hlh71uz4vy] { min-width: 0; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--ks-blue); text-align: left; cursor: pointer;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rv-name:hover[b-hlh71uz4vy] { text-decoration: underline; text-underline-offset: 3px; }
.rv-ago[b-hlh71uz4vy] { margin-left: 4px; font-size: 13px; color: var(--ks-mute); }
.rv-dash[b-hlh71uz4vy] { color: var(--ks-line-strong); }
.rv-empty[b-hlh71uz4vy] { padding: 60px 20px; text-align: center; color: var(--ks-ink-light); }

.rv-state[b-hlh71uz4vy] { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rv-state--overdue[b-hlh71uz4vy] { color: var(--ks-danger); font-weight: 600; }
.rv-state--soon[b-hlh71uz4vy] { font-weight: 600; }
.rv-state--ontrack[b-hlh71uz4vy] { color: var(--ks-ink-light); }
.rv-state--noreview[b-hlh71uz4vy], .rv-state--nofrequency[b-hlh71uz4vy] { color: var(--ks-mute); }
.rv-meter[b-hlh71uz4vy] { width: 64px; height: 6px; border-radius: 3px; background: var(--ks-line); overflow: hidden; flex-shrink: 0; }
.rv-meter__fill[b-hlh71uz4vy] { display: block; height: 100%; border-radius: 3px; }
.rv-meter__fill--overdue[b-hlh71uz4vy] { background: var(--ks-danger); }
.rv-meter__fill--soon[b-hlh71uz4vy] { background: var(--ks-sun-deep); }
.rv-meter__fill--ontrack[b-hlh71uz4vy] { background: var(--ks-green); }

.rv-foot[b-hlh71uz4vy] { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: -10px; font-size: var(--ks-body-s-size); color: var(--ks-ink-light); }
.rv-foot b[b-hlh71uz4vy] { font-weight: 600; color: var(--ks-ink); }
/* /Pages/Reviews/ReviewsCompose.razor.rz.scp.css */
/* The send step's own geometry - laid out as the Groups page's Merge to tab (D185). The look is the system: ks-card,
   ks-tbl--dense, ks-field, ks-menu, ks-editor, ks-chip, ks-strip, ks-dialog. */
.rc[b-6t5i1g4kd4] { display: flex; flex-direction: column; gap: 18px; flex: 1 1 auto; min-height: 0; overflow-y: auto; padding-right: 4px; }

/* recipients: Groups' card - six rows, then it scrolls (Chad 2026-10-25) */
.rc-rcpt[b-6t5i1g4kd4] { padding: 18px 22px; display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }
.rc-rcpt__top[b-6t5i1g4kd4] { display: flex; align-items: center; gap: 14px; }
.rc-rcpt__when[b-6t5i1g4kd4] { font-size: var(--ks-body-s-size); color: var(--ks-mute); }
.rc-rcpt__edit[b-6t5i1g4kd4] { margin-left: auto; }
.rc-list .ks-tbl__scroll[b-6t5i1g4kd4] { max-height: 212px; }
.rc-list .ks-tbl__head[b-6t5i1g4kd4], .rc-list .ks-tbl__row[b-6t5i1g4kd4] { grid-template-columns: minmax(0, 1fr) 220px 420px 130px 130px; }
.rc-missing[b-6t5i1g4kd4] { font-weight: 600; color: var(--ks-sun-deep); }
.rc-missing--red[b-6t5i1g4kd4] { color: var(--ks-danger); }

.rc-grid[b-6t5i1g4kd4] { display: grid; grid-template-columns: minmax(0, 1fr) 560px; gap: 22px; align-items: start; }
.rc-left[b-6t5i1g4kd4] { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.rc-row[b-6t5i1g4kd4] { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 16px; }
.rc-tpl[b-6t5i1g4kd4] { display: flex; gap: 8px; align-items: center; position: relative; }
.rc-tpl select[b-6t5i1g4kd4] { flex: 1; min-width: 0; }
.rc-tpl .ks-menu[b-6t5i1g4kd4] { top: calc(100% + 6px); right: 0; left: auto; min-width: 220px; z-index: 30; }
.rc-backdrop[b-6t5i1g4kd4] { position: fixed; top: 0; left: 0; width: calc(100vw / var(--ks-scale, 1)); height: calc(100vh / var(--ks-scale, 1)); z-index: 25; }

/* the editor and the signature in one envelope, as Groups */
.rc-envelope[b-6t5i1g4kd4] { border: 1px solid var(--ks-line-strong); border-radius: var(--ks-radius-md); overflow: hidden; background: var(--ks-canvas); }
.rc-editor[b-6t5i1g4kd4] { min-height: 420px; position: relative; border: none; border-radius: 0; border-bottom: 1px solid var(--ks-line); }
.rc-editor[b-6t5i1g4kd4]  .TinyMceEditor .tox.tox-tinymce { min-height: 420px; }
.rc-sig__edit[b-6t5i1g4kd4] { position: absolute; top: 26px; right: 10px; transform: translateY(-50%); z-index: 5; }
.rc-sig[b-6t5i1g4kd4] { padding: 16px 20px 20px; }
.rc-sig[b-6t5i1g4kd4], .rc-sig[b-6t5i1g4kd4]  * { font-family: Arial, Helvetica, sans-serif !important; }
.rc-sig[b-6t5i1g4kd4]  img { max-width: 100%; height: auto; }
.rc-acts[b-6t5i1g4kd4] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* the preview with its check */
.rc-pv[b-6t5i1g4kd4] { padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; }
.rc-pv__head[b-6t5i1g4kd4] { display: flex; align-items: center; gap: 10px; }
.rc-who[b-6t5i1g4kd4] { border: 1px solid var(--ks-line-strong); border-radius: var(--ks-radius-md); max-height: 240px; overflow-y: auto; }
.rc-who__row[b-6t5i1g4kd4] { border-bottom: 1px solid var(--ks-line); }
.rc-who__row:last-child[b-6t5i1g4kd4] { border-bottom: 0; }
.rc-who__row--on[b-6t5i1g4kd4] { background: var(--ks-sky-100); box-shadow: inset 3px 0 0 var(--ks-blue); }
.rc-who__line[b-6t5i1g4kd4] { display: flex; align-items: center; gap: 10px; padding: 6px 12px; }
.rc-who__name[b-6t5i1g4kd4] { display: block; flex: 1; min-width: 0; padding: 4px 0; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 600; color: var(--ks-blue);
  text-align: left; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rc-gap[b-6t5i1g4kd4] { border: 0; cursor: pointer; font-family: inherit; }
.rc-gap--sal[b-6t5i1g4kd4] { color: var(--ks-sun-deep); background: var(--ks-warning-bg); }
.rc-gap--mail[b-6t5i1g4kd4] { color: var(--ks-danger); background: var(--ks-danger-bg); }
.rc-gap:hover[b-6t5i1g4kd4] { box-shadow: inset 0 0 0 1px currentColor; }
.rc-fix[b-6t5i1g4kd4] { display: flex; flex-direction: column; gap: 10px; padding: 4px 12px 12px; }
.rc-fix__acts[b-6t5i1g4kd4] { display: flex; justify-content: flex-end; gap: 8px; }
.rc-fix__field[b-6t5i1g4kd4] { display: flex; flex-direction: column; gap: 4px; }
.rc-fix__label[b-6t5i1g4kd4] { font-size: 13px; font-weight: 600; color: var(--ks-ink); }
.rc-fix__label em[b-6t5i1g4kd4] { font-style: normal; color: var(--ks-danger); margin-left: 4px; }
.rc-mail[b-6t5i1g4kd4] { border: 1px solid var(--ks-line-strong); border-radius: var(--ks-radius-md); background: var(--ks-sky-50); padding: 14px 16px;
  font-size: var(--ks-body-s-size); line-height: 1.55; max-height: 680px; overflow-y: auto; overflow-wrap: anywhere; }
.rc-mail__to[b-6t5i1g4kd4] { font-size: 13px; color: var(--ks-ink-light); }
.rc-mail__subj[b-6t5i1g4kd4] { margin: 4px 0 10px; padding-bottom: 10px; border-bottom: 1px solid var(--ks-line); font-weight: 600; }
/* the household's own message: the editor on the preview's paper, its small bar (bold, italic, underline, link) */
.rc-mail__body[b-6t5i1g4kd4] { margin: 0 -6px; border: 1px solid var(--ks-line); border-radius: var(--ks-radius-sm); background: var(--ks-canvas); min-height: 340px; display: flex; }
.rc-mail__body[b-6t5i1g4kd4]  .TinyMceEditor .tox.tox-tinymce { min-height: 340px; }
.rc-mail__note[b-6t5i1g4kd4] { display: flex; align-items: center; gap: 8px; margin: 2px 0 -4px; font-size: 13px; font-weight: 600; color: var(--ks-blue); }
.rc-mail__note span[b-6t5i1g4kd4] { flex: 1; min-width: 0; }
.rc-mail__note--hint[b-6t5i1g4kd4] { font-weight: 600; color: var(--ks-ink-light); }
/* the preview is narrower than an inbox: the signature drawn at 80% so a wide one (a logo beside the text) fits */
.rc-sig--pv[b-6t5i1g4kd4] { padding: 10px 0 0; zoom: 0.8; }

/* Fix them all at once */
.rc-fixall__row[b-6t5i1g4kd4] { display: flex; flex-direction: column; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--ks-line); }
.rc-fixall__row:last-child[b-6t5i1g4kd4] { border-bottom: 0; }
.rc-fixall__name[b-6t5i1g4kd4] { font-weight: 600; color: var(--ks-blue); }
.rc-dialog-error[b-6t5i1g4kd4] { color: var(--ks-danger); }
.rc-dialog-p[b-6t5i1g4kd4] { margin: 0; }
/* /Pages/Reviews/ReviewsSavedFilters.razor.rz.scp.css */
/* The saved-filters menu: its own geometry; the look is .ks-menu, .ks-check, .ks-chip, .ks-btn (DESIGN.md). */
.rv-saved[b-8wgt6xvnb1] { position: relative; }
.rv-saved__backdrop[b-8wgt6xvnb1] { position: fixed; inset: 0; z-index: 25; }
.rv-saved__menu[b-8wgt6xvnb1] { top: calc(100% + 6px); left: 0; z-index: 30; width: 400px; min-width: 400px; max-width: none; padding: 8px; gap: 2px; }
.rv-saved__save[b-8wgt6xvnb1] { display: flex; flex-direction: column; gap: 8px; padding: 8px 8px 10px; }
.rv-saved__what[b-8wgt6xvnb1] { font-size: 13px; line-height: 1.4; color: var(--ks-ink-light); }
.rv-saved__row[b-8wgt6xvnb1] { display: flex; gap: 8px; }
.rv-saved__row .ks-ctrl[b-8wgt6xvnb1] { flex: 1 1 auto; min-width: 0; }
.rv-saved__head[b-8wgt6xvnb1] { display: flex; justify-content: space-between; padding-right: 10px; }
.rv-saved__empty[b-8wgt6xvnb1] { padding: 10px 12px; font-size: var(--ks-body-s-size); color: var(--ks-mute); }

.rv-saved__item[b-8wgt6xvnb1] { display: flex; align-items: center; gap: 4px; min-height: 52px; padding: 0 4px 0 12px; border-radius: var(--ks-radius-sm); }
.rv-saved__item:hover[b-8wgt6xvnb1] { background: var(--ks-sky-50); }
.rv-saved__item--on[b-8wgt6xvnb1] { background: var(--ks-sky-100); box-shadow: inset 3px 0 0 var(--ks-blue); }
.rv-saved__item--edit[b-8wgt6xvnb1], .rv-saved__item--delete[b-8wgt6xvnb1] { gap: 8px; padding: 8px; }
.rv-saved__item--edit .ks-ctrl[b-8wgt6xvnb1] { flex: 1 1 auto; min-width: 0; }
.rv-saved__item--delete[b-8wgt6xvnb1], .rv-saved__item--delete:hover[b-8wgt6xvnb1] { background: var(--ks-danger-bg); }
.rv-saved__q[b-8wgt6xvnb1] { flex: 1 1 auto; min-width: 0; font-size: var(--ks-body-s-size); }

.rv-saved__pick[b-8wgt6xvnb1] { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 7px 0;
  border: 0; background: none; font: inherit; text-align: left; cursor: pointer; }
.rv-saved__name[b-8wgt6xvnb1] { display: flex; align-items: center; gap: 6px; max-width: 100%; font-size: 15px; font-weight: 600; color: var(--ks-blue); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-saved__meta[b-8wgt6xvnb1] { max-width: 100%; font-size: 12.5px; color: var(--ks-ink-light); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-saved__acts[b-8wgt6xvnb1] { display: flex; gap: 2px; opacity: 0; }
.rv-saved__item:hover .rv-saved__acts[b-8wgt6xvnb1], .rv-saved__item:focus-within .rv-saved__acts[b-8wgt6xvnb1] { opacity: 1; }
.rv-saved__acts .ks-btn[b-8wgt6xvnb1] { color: var(--ks-mute); }
.rv-saved__trash:hover:not(:disabled)[b-8wgt6xvnb1] { color: var(--ks-danger); background: var(--ks-danger-bg); }
.rv-saved__default[b-8wgt6xvnb1] { margin: 0 10px 0 6px; }
