/* =============================================================================
   mh-empty-states.css - ONE place where every "there is nothing here yet"
   message is centred. CEO, Aug 8 2026: centre the hint messages everywhere.

   WHY A SEPARATE FILE, LOADED LAST:
   These overrides touch fifteen rules spread across ten stylesheets that are
   otherwise owned by different surfaces. Editing each one in place would scatter
   the same decision across ten files and make it impossible to see - or undo -
   as a single change. Loaded last in App.razor, so identical-specificity
   selectors win on order and nothing here needs an !important.

   WHAT THIS FILE IS NOT ALLOWED TO TOUCH, and why - these are NOT hint messages
   and centring them would be a bug, not a fix:
     - inline field notes (.fld-note, .lock-note, .ob-hint) - they belong under
       the field they explain, left-aligned with its label.
     - input placeholders (::placeholder, .dpf-val.empty, .att-cell.empty) - a
       placeholder is a VALUE in a control, not a message about a panel.
     - case-note and history cards (.cd-note, .sd-note, .cl-note) - prose the
       staff wrote; centred prose is unreadable.
     - .cd-exp-empty / .cl-exp-empty - these read as "no documents recorded" but
       are icon-left CARDS with a title and subtitle, not text blocks. Centring
       them would strand the icon. Left exactly as they were.

   ALREADY CENTRED before this file existed, and untouched by it: .apv-empty,
   .um-empty, .hs-empty, .wh-empty, .tm-empty, .tm-roster-empty, .hh-empty,
   .ws-empty, .sb-eps-empty, .sp-empty, .bm-empty, .pg-empty, .id-empty,
   .sai-empty, .pp-empty, .lb-empty, .kp-empty, .hlp-empty. Centring was already
   the house style; this file just finishes the job.
   ============================================================================= */

/* ---------------------------------------------------------------------------
   1. THE DETAIL SHELL's inline empty state.
   `.dv-empty` was already centred; the `.inline` variant deliberately overrode
   it back to flex-start/left. That one rule is why "Your current session will
   appear here" and "No recent activity attributed to your account yet" sat hard
   against the left edge of the My Profile panes.

   BLAST RADIUS, stated up front ([[mh-shared-component-blast-radius]]): this is
   19 empty states across FOUR surfaces, not just My Profile -
     ClientDetailOverlay  (8)   ProgramDetailView (2)
     StudentDetailView    (7)   ProfileOverlay    (2)
   All four move together, which is the point: they are the same message in the
   same shell and should not disagree about where they sit.
   --------------------------------------------------------------------------- */
#mhDetail .dv-empty.inline {
  align-items: center;
  text-align: center;
  padding: 18px 0 14px;    /* was 2px 0 0 - a centred block needs room to read as one */
}

/* ---------------------------------------------------------------------------
   2. "No matches for ..." inside a type-to-search dropdown. Four copies of the
   same rule in four stylesheets (the field kit is duplicated per surface); all
   four say the same thing, so all four are centred together.
   --------------------------------------------------------------------------- */
#mhDetail .selpop .cb-empty,
#enrollWiz .selpop .cb-empty,
:is(#clWiz, #clMbr) .selpop .cb-empty,
#hhDetail .hh-form .selpop .cb-empty,
.mh-ssp-empty {
  text-align: center;
}

/* ---------------------------------------------------------------------------
   3. Standalone "nothing here yet" text blocks that were left-aligned outliers.
   Every one of these is a whole-panel message with no icon and no controls, so
   centring is a pure alignment change - no layout is restructured.
   --------------------------------------------------------------------------- */
.mh-app .fe-empty,               /* Feedback inbox - no feedback yet            */
.mh-app #clDetail .cd-empty,     /* Client Detail - empty tab section           */
#hhDetail .stu-empty,            /* Household - no students on this household   */
.mh-app .hh-housing-empty,       /* Household - no housing subsidy recorded     */
.mh-app .pl-hol-empty,           /* Planner - no holidays in this range         */
.mh-app .sh-empty,               /* Status history - no changes recorded        */
.wzx .f-mempty,                  /* Subsidy wizard - no members matched         */
#enrollWiz .sum-empty {          /* Enrolment wizard - nothing chosen yet       */
  text-align: center;
}

/* ---------------------------------------------------------------------------
   4. "No rows" cells inside a data table. A table's empty cell is a message
   about the whole table, so it centres across it rather than hugging column 1.
   --------------------------------------------------------------------------- */
#mhDetail .cl-table td.empty,
.mh-app #clDetail .hist-tbl td.empty {
  text-align: center;
}
