/* Task layouts: keep the next decision and its evidence together. Shared
   typography, control sizes and outer gutters are set by layout-tokens.css. */
.dashboard-workbench { gap: var(--section-gap,20px); }
.agenda-workspace { padding: var(--panel-padding,20px); }
.agenda-row { padding-block: 14px; gap: 12px; }
.priority-row { padding: 16px; gap: 12px; }
.priority-row p { margin-top: 5px; line-height: 1.6; }
.dashboard-shortcuts { gap: 16px; margin-top: 16px; }
.dashboard-shortcuts button { min-height: 64px; padding: 14px 4px; cursor: pointer; }
.dashboard-shortcuts span { margin-top: 5px; line-height: 1.5; }
.agenda-next { margin-block: 16px 8px; }
.upcoming-date { margin-top: 10px; }
.profile-upcoming { margin-bottom: 16px; }
.profile-upcoming > .spread { gap: 4px 12px; margin-bottom: 8px; }
.profile-upcoming h2 { margin: 0; font-size: 1rem; }
.profile-activity-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.profile-activity-list li { display: flex; gap: 8px; align-items: start; justify-content: space-between; min-width: 0; border-top: 1px solid var(--rule); padding-top: 12px; }
.profile-activity-list li > div { min-width: 0; overflow-wrap: anywhere; }
.profile-activity-list h3 { margin: 2px 0; font-size: .875rem; line-height: 1.4; }
.profile-activity-date { margin: 0; font-size: .8125rem; color: var(--ink-2); }
.profile-activity-list .sub { margin: 0; font-size: .8125rem; }
.profile-activity-list .btn { flex-shrink: 0; }
.profile-activity-more { margin: 8px 0 0; }
@media (max-width: 1000px) { .profile-activity-list { grid-template-columns: 1fr; gap: 8px; } }
.earlier-sessions { margin-block: 10px; }

.pipeline-stages { gap: 12px; margin-bottom: 20px; }
.pipeline-stages > button { align-items: center; flex-wrap: nowrap; min-height: 76px; padding: 14px 16px; gap: 10px; }
.pipeline-stages > button > span:nth-child(2) { min-width: 0; }
.pipeline-stages strong { flex-basis: auto; margin-left: auto; font-size: 1.25rem; }
.pipeline-stages .stage-number { flex-shrink: 0; }
.admission-client { padding: 12px 16px; gap: 12px; }
.admission-client p { margin-block: 3px 6px; }
.admissions-list .reg-row { padding: 12px 16px !important; }
.registration-details { margin-top: 4px; }
.registration-details > summary { min-height: 44px; align-content: center; padding-block: 4px; }

.workspace-toolbar { gap: 12px 16px; padding-block: 12px 16px; }
.roster-table td { padding-block: 14px; vertical-align: middle; }
.roster-table th { padding-block: 12px; color: var(--ink-3); font-weight: 500; }
.roster-table small { margin-top: 5px; line-height: 1.5; }
.roster-filter-options, .library-filter-options { padding-inline: 12px; margin-bottom: 12px; }
.roster-filter-options[open], .library-filter-options[open] { padding-bottom: 12px; }
.roster-stages { gap: 6px; }

/* Calendar alongside the day's work, rather than a full-width calendar above
   it. All 24 start times and historical appointments stay available. */
.session-workspace { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: var(--section-gap,20px); align-items: start; }
.session-selected-day { min-width: 0; }
.session-month { margin: 0; border-radius: 12px; }
.session-month-heading { padding: 16px; gap: 12px; }
.session-month-navigation { width: 100%; gap: 6px; justify-content: space-between; }
.session-month-navigation h2 { font-size: 1.0625rem; }
.session-month .calendar-datebar { width: 100%; justify-content: space-between; gap: 8px; }
.session-month .calendar-datebar .f { display: block; min-width: 0; flex: 1; }
.session-month .calendar-datebar .f > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.session-month .calendar-datebar input { width: 100%; }
.session-month-toggle { display: none; }
.session-month-weekdays span { padding: 10px 2px; }
.session-calendar-day { padding: 8px 3px; min-height: 56px; align-items: center; gap: 4px; justify-content: center; }
.session-calendar-day > span { font-size: .875rem; }
.session-calendar-day small { font-size: .8125rem; line-height: 1.2; }
.session-calendar-day .session-count-label { display: none; }
.session-calendar-day.has-appointments {
  background: color-mix(in srgb, var(--gold) 22%, var(--card));
  color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--gold-line);
}
.session-calendar-day.has-appointments:hover {
  background: color-mix(in srgb, var(--gold) 32%, var(--card));
}
.session-calendar-day .session-appointment-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  min-height: 22px;
  padding: 2px 5px;
  border-radius: 12px;
  background: var(--gold);
  color: var(--on-gold);
  font-size: .8125rem;
  font-weight: 750;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.session-calendar-day[aria-pressed='true'] {
  box-shadow: inset 0 0 0 2px var(--gold-dp);
}
.session-calendar-hint { padding: 12px 16px; line-height: 1.6; }
.session-overview { margin: 0 0 16px; padding: 8px 0 16px; border-top: 0; }
.session-overview > header { gap: 4px 8px; }
.session-overview h2 { font-size: 1.0625rem; }
.session-overview > header p { font-size: .8125rem; line-height: 1.5; }
.session-overview-totals { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 16px 0 0; }
.session-overview-totals dt { font-size: .8125rem; line-height: 1.5; }
.session-overview-totals dd { margin-top: 4px; font-size: 1.375rem; }
.session-day { margin: 0; }
.session-day-heading { gap: 12px; margin-bottom: 16px; }
.session-day-heading h2 { font-size: 1.125rem; }
.session-day-heading p { margin-top: 2px; }
.session-day-heading > .row { gap: 6px; flex-wrap: wrap; }
.calendar-agenda, .calendar-availability { padding: var(--panel-padding,20px); border-radius: 12px; margin-bottom: 16px; }
.calendar-agenda table { min-width: 0; }
.calendar-agenda-empty > h3 { margin: 0 0 4px; font-size: .9375rem; }
.calendar-agenda-empty > p { margin: 0; }
.calendar-availability > h3 { margin: 0 0 8px; font-size: .9375rem; }
.session-day .calendar-availability .slots { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.session-day .slot { min-height: 52px; padding: 8px 4px; gap: 4px; }
.session-day .slot small { font-size: .8125rem; }
.calendar-availability > .sub { margin: 8px 0 0; }
.session-assignment { margin-block: 12px; }
.session-availability-settings { margin-top: 12px; }

.library-search { gap: 12px; margin-bottom: 16px; }
.library-workspace { grid-template-columns: minmax(0,1fr); gap: 20px; }
.library-workspace.has-inspector { grid-template-columns: minmax(0,1fr) minmax(280px,.42fr); }
.library-table { padding-inline: 16px; }
.library-table td { padding-block: 14px; line-height: 1.55; vertical-align: middle; }
.library-inspector { padding: var(--panel-padding,20px); top: 20px; }
.library-inspector h3 { font-size: 1.25rem; margin-block: 12px; }
.library-inspector p, .library-inspector dd { line-height: 1.65; }
.library-inspector dt { margin-top: 10px; }
.library-inspector > .btn { margin-top: 12px; }
.library-inspector > .spread { gap: 6px; }
.library-inspector > .spread > span { color: var(--ink-3); font-size: .8125rem; }
.food-nutrition-readout > b { font-size: 1.5rem; padding-block: 10px; }
.food-nutrition-readout small { margin-top: 3px; }
.library-editor { max-width: none; padding: var(--panel-padding,20px); }
.library-editor > .grid { gap: 16px 20px; }
.library-pagination { margin-top: 12px; }
.library-filters { gap: 8px; margin-top: 8px; }

.finance-summary { padding: 20px 8px; margin-bottom: 20px; }
.finance-summary .kpi { padding-inline: 20px; border-radius: 0; }
.finance-summary .kpi::before { display: none; }
.finance-summary .kpi .v { font-size: 1.625rem; line-height: 1.3; }
.ledger-workspace, .receipt-inspector { padding: var(--panel-padding,20px); }
.receipt-inspector { margin-block: 12px; }
.receipt-detail-grid { gap: 16px; }
.ledger-history-note { margin-block: 10px; }
.package-catalogue { padding: 0 16px; }
.package-table td:first-child { max-width: 20rem; }
.package-table td:first-child > b { display: block; color: var(--ink); font-size: .9375rem; line-height: 1.5; }
.package-table td:first-child > small { max-width: 36ch; color: var(--ink-3); }
.package-table td[data-l="Price"] { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink); }
.package-table td:last-child { text-align: right; }
.package-editor > .spread { align-items: center; margin-bottom: 20px; }
.package-editor > .spread > h2 { margin: 0; }
.package-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; flex-wrap: wrap; }
.package-row-actions .row-menu[open] { flex-basis: 100%; }
.package-row-actions .row-menu[open] > div { position: static; width: 100%; min-width: 120px; text-align: left; box-shadow: none; }
.package-row-actions .row-menu > div > .btn { justify-content: flex-start; }
.membership-policy { margin-block: 16px; padding: 12px 16px; }
.membership-policy > summary { min-height: 44px; align-content: center; }

.settings-workspace { gap: 24px; grid-template-columns: 184px minmax(0,1fr); align-items: start; }
.settings-index button { min-height: 44px; padding: 10px 14px; }
.cms-publishbar { padding: 16px 20px; margin-bottom: 16px; gap: 12px; }
.cms-publishbar .row { gap: 6px; flex-wrap: wrap; }
[data-cms-draft-state] { margin-block: 8px; }
#cms-change-summary { margin-block: 8px; }
.cms-workspace { gap: 20px; grid-template-columns: 168px minmax(0,1fr) minmax(280px,.55fr); }
.cms-section { padding: var(--panel-padding,20px); }
.cms-section > .f { margin-bottom: 20px; }
.cms-section .cms-photo { margin-block: 20px; }
.cms-preview > div { padding: 16px; }
.cms-preview h3 { margin-block: 6px; font-size: 1rem; }
.cms-preview p { margin-block: 8px; line-height: 1.6; }
.cms-preview-viewport iframe { height: 440px; }
.cms-draft-actions { margin-top: 16px; padding: 16px 0; }
.cms-tabs .btn { min-height: 44px; padding: 10px 12px; line-height: 1.45; width: 100%; white-space: normal; overflow-wrap: anywhere; }

.flow-progress { margin-bottom: 12px; }
.intake-workspace { gap: 20px; grid-template-columns: 184px minmax(0,1fr); }
.intake-index > button { min-height: 48px; padding: 8px 6px; gap: 8px; }
.intake-index > button small { margin-top: 2px; }
.intake-canvas { padding: var(--panel-padding,20px); }
.intake-heading { margin-bottom: 12px; }
.intake-heading h3 { margin-block: 5px; font-size: 1.125rem; }
.intake-heading p { margin-bottom: 8px; }
.intake-field-group { margin-block: 12px; }
.intake-field-group > h3 { margin-bottom: 8px; }
.intake-form .grid { gap: 16px 20px; }
.intake-question { padding-block: 12px; gap: 12px; }
.intake-question select { width: 88px; flex-shrink: 0; }
.approval-summary > div { padding-block: 8px; gap: 8px; }
.signing-review-row { padding-block: 10px; gap: 10px; }
.intake-step-navigation { margin-block: 12px; gap: 8px; }

/* .f is a shared field class with its own display rule. Use the direct
   container to guarantee that a desktop never shows both navigation forms. */
@media (min-width: 701px) {
  .cms-workspace > .cms-section-select.f,
  .intake-workspace > .intake-section-select.f { display: none; }
}
@media (max-width: 1200px) {
  .cms-workspace { grid-template-columns: 168px minmax(0,1fr); }
  .cms-preview { grid-column: 2; position: static; }
  .cms-preview-viewport iframe { height: 320px; }
}
@media (max-width: 1100px) {
  .session-workspace { grid-template-columns: minmax(255px,.7fr) minmax(0,1.3fr); gap: 12px; }
  .session-day .calendar-availability .slots { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .session-overview-totals { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .intake-workspace { grid-template-columns: 160px minmax(0,1fr); }
  .intake-index { position: sticky; display: block; top: 12px; }
  .roster-table table.cardify tbody { grid-template-columns: 1fr; gap: 8px; }
  .roster-table table.cardify tr { display: grid; grid-template-columns: 44px minmax(0,1fr) minmax(0,1fr); gap: 4px 8px; padding: 10px 12px; margin: 0; border-radius: 8px; }
  .roster-table table.cardify td { padding: 0; gap: 4px 8px; margin: 0; justify-content: flex-start; text-align: left; min-width: 0; }
  .roster-table table.cardify td::before { display: none; }
  .roster-table table.cardify td:nth-child(1) { grid-column: 1; grid-row: 1; padding: 0; min-width: 44px; }
  .roster-table table.cardify td.lead { grid-column: 2 / 4; grid-row: 1; border: 0; margin: 0; padding: 0; }
  .roster-table table.cardify td:nth-child(3) { grid-column: 2 / 4; }
  .roster-table table.cardify td:nth-child(3) > small { flex-basis: auto; }
  .roster-table table.cardify td:nth-child(4) { grid-column: 2; }
  .roster-table table.cardify td:nth-child(5) { grid-column: 3; justify-content: flex-end; }
  .roster-table table.cardify td:last-child { grid-column: 2 / 4; padding-top: 4px; margin-top: 0; }
  .roster-table .who-cell { gap: 8px; }
  .roster-table .roster-actions { gap: 4px; }
}
@media (max-width: 1000px) {
  .dashboard-workbench { grid-template-columns: 1fr; }
  .library-workspace.has-inspector { grid-template-columns: minmax(0,1fr); }
  .finance-summary { gap: 12px 0; }
}
@media (max-width: 760px) {
  .session-workspace { grid-template-columns: 1fr; }
  .session-month-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(160px,.8fr); }
  .session-month-navigation, .session-month .calendar-datebar { width: auto; }
  .session-month-toggle { display: flex; grid-column: 1 / -1; width: 100%; justify-content: center; }
  .session-month:not(.calendar-expanded) .session-month-dates { display: none; }
  .session-month:not(.calendar-expanded) .session-month-navigation { display: none; }
  .session-overview-totals { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .library-workspace.has-inspector { grid-template-columns: minmax(0,1fr); }
  .library-workspace.has-inspector .library-inspector { grid-row: 1; }
}
@media (max-width: 700px) {
  .cms-workspace, .cms-workspace:has([data-registration-goals]), .intake-workspace { grid-template-columns: minmax(0,1fr); }
  .cms-workspace > .cms-section-select.f, .intake-workspace > .intake-section-select.f { display: block; margin: 0; }
  .cms-section-select > span, .intake-section-select > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .cms-tabs, .intake-index { display: none; }
  .cms-preview { grid-column: 1; }
  .settings-workspace { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .settings-index { position: static; display: flex; flex-wrap: wrap; gap: 4px; }
  .settings-index button { flex: 1; white-space: nowrap; }
  .package-catalogue { padding: 0; border: 0; background: transparent; }
  .package-catalogue table.cardify, .package-catalogue table.cardify tbody { display: block; width: 100%; }
  .package-catalogue table.cardify thead { display: none; }
  .package-catalogue table.cardify tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 16px; padding: 20px; margin: 0 0 16px; }
  .package-catalogue table.cardify td { display: block; text-align: left; padding: 0; border: 0; min-width: 0; line-height: 1.5; }
  .package-catalogue table.cardify td::before { display: block; margin-bottom: 4px; text-transform: none; letter-spacing: 0; font-size: .8125rem; color: var(--ink-3); }
  .package-catalogue table.cardify td:first-child { grid-column: 1 / -1; max-width: none; margin: 0 0 4px; padding: 0 0 16px; border-bottom: 1px solid var(--rule); }
  .package-catalogue table.cardify td:first-child::before { display: none; }
  .package-catalogue table.cardify td:nth-child(5) { grid-column: 1 / -1; }
  .package-catalogue table.cardify td:last-child { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid var(--rule); }
  .package-table .package-service-list { flex-direction: row; flex-wrap: wrap; gap: 6px 16px; }
  .package-row-actions { gap: 8px; }
  .package-row-actions > .btn { flex: 1; }
  .package-editor > .spread { flex-wrap: wrap; gap: 12px; }
  .package-editor > .spread > .row { width: 100%; }
  .package-editor > .spread > .row > .btn { flex: 1; }

  .intake-question { padding-block: 8px; }
  .intake-canvas, .cms-section { padding: 16px; }
  .finance-summary .kpi { padding-inline: 12px; }
}
@media (max-width: 520px) {
  .roster-table table.cardify td:nth-child(4),
  .roster-table table.cardify td:nth-child(5) { grid-column: 2 / 4; justify-content: flex-start; }
  .roster-table table.cardify :is(td:nth-child(4),td:nth-child(5)) .tag { white-space: normal; max-width: 100%; line-height: 1.5; }
  .priority-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 8px; padding: 10px 12px; }
  .priority-row > div { grid-column: 1; grid-row: 1; }
  .priority-row > .tag, .priority-row > .priority-symbol, .priority-row > .avatar { grid-column: 1; grid-row: 2; justify-self: start; min-width: 0; }
  .priority-row > .btn { grid-column: 2; grid-row: 1 / 3; width: auto; max-width: 108px; white-space: normal; padding-inline: 8px; }
  .priority-row p { font-size: .8125rem; }
  .pipeline-stages { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
  .pipeline-stages > button { padding: 8px; gap: 6px; }
  .pipeline-stages b { font-size: .8125rem; }
  .pipeline-stages .stage-number { display: none; }
  .admission-client { display: grid; grid-template-columns: auto minmax(0,1fr); padding: 10px 12px; gap: 8px; }
  .admission-client > .btn { grid-column: 2; width: auto; justify-self: start; }
  .session-month-heading { grid-template-columns: minmax(0,1fr); padding: 8px 10px; }
  .session-month .calendar-datebar { justify-content: space-between; }
  .session-calendar-day { min-height: 44px; padding: 4px 2px; }
  .session-day-heading > .row { width: auto; }
  .session-day .calendar-availability { padding: 16px; }
  .session-day .calendar-availability .slots { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; }
  .session-overview-totals { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px 10px; }
  .session-overview-totals > div { display: block; min-width: 0; }
  .session-overview-totals dd { font-size: 1.25rem; }
  .library-search .f { flex-basis: 100%; }
  .library-search > .sub { margin: 0; }
  .cms-publishbar { flex-wrap: wrap; }
  .cms-publishbar > .row { width: 100%; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .cms-publishbar .btn { white-space: normal; padding-inline: 6px; font-size: .8125rem; }
}
