/* IMPERIUM Build431 R2 — CONSOLIDATED GLOBAL UI
   Canonical cascade = full Build430 hardening + Build431 runtime QA.
   This file intentionally contains both layers so Build431 cannot regress fixes already certified in Build430. */

/* IMPERIUM Build430 R1 — Global UI Layout Hardening
   Final cascade layer for smartphone/tablet resilience across the whole application.
   No business semantics are changed here. */

:root{
  --ui430-gutter:clamp(14px,3.6vw,24px);
  --ui430-gap:clamp(12px,2.8vw,20px);
  --ui430-touch:46px;
  --ui430-dock-space:calc(118px + env(safe-area-inset-bottom,0px));
}

html.imperium-ui-v431,
html.imperium-ui-v431 body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

html.imperium-ui-v431 *,
html.imperium-ui-v431 *::before,
html.imperium-ui-v431 *::after{box-sizing:border-box}

/* Universal flex/grid shrink contract: this removes the root cause of most vertical-text regressions. */
html.imperium-ui-v431 :where(
  .app-shell,.app-body,.main-column,main,.container,.panel,.card,section,article,nav,form,
  .grid,.grid2,.cards,.kpis,.mini-kpis,.formgrid,.form-grid,.inline-form,
  [class*="-grid"],[class*="-row"],[class*="-card"],[class*="-panel"],[class*="-wrap"],
  [class*="-toolbar"],[class*="-actions"],[class*="-content"],[class*="-body"]
){min-width:0;max-width:100%}

html.imperium-ui-v431 :where(img,video,canvas,svg){max-width:100%}
html.imperium-ui-v431 :where(input,select,textarea,button){min-width:0;max-width:100%;font:inherit}
html.imperium-ui-v431 :where(input,select,textarea){width:100%}

html.imperium-ui-v431 :where(
  h1,h2,h3,h4,h5,h6,p,small,strong,b,em,span,a,label,button,td,th,summary
){
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  word-break:normal;
  overflow-wrap:break-word;
}

html.imperium-ui-v431 :where(h1,h2,h3){text-wrap:balance}
html.imperium-ui-v431 :where(p,small,label,td,th){text-wrap:pretty}

/* Base shell safety */
html.imperium-ui-v431 .app-shell,
html.imperium-ui-v431 .app-body,
html.imperium-ui-v431 .main-column,
html.imperium-ui-v431 main.container{
  width:100%;
  min-width:0;
}

html.imperium-ui-v431 main.container{padding-inline:var(--ui430-gutter)}
html.imperium-ui-v431 .mobile-dock{z-index:90}
html.imperium-ui-v431 .imperium-programmer-credit-global,
html.imperium-ui-v431 footer{position:relative!important;inset:auto!important;transform:none!important}

/* Reusable cards/panels should never clip their own textual content. */
html.imperium-ui-v431 :where(.panel,.card,[class*="-card"],[class*="-panel"]){
  overflow-wrap:break-word;
}
html.imperium-ui-v431 :where(.panel,.card,[class*="-card"],[class*="-panel"]) > *{min-width:0}

/* Wide tables stay usable instead of forcing the page wider than the viewport. */
html.imperium-ui-v431 main :where(table){max-width:100%}
html.imperium-ui-v431 main :where(.table-wrap,.table-scroll,[class*="table-wrap"],[class*="table-scroll"]){
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}

/* Forms: labels and controls remain readable even when historic CSS contains fixed columns. */
html.imperium-ui-v431 :where(.formgrid,.form-grid,.inline-form) > *{min-width:0}
html.imperium-ui-v431 :where(.btn,button,a.btn,[class*="-btn"]){
  min-height:var(--ui430-touch);
  line-height:1.2;
}

/* ===== Super Admin / Direction command UI ===== */
html.imperium-ui-v431 .imp424-dashboard,
html.imperium-ui-v431 .dir426-dashboard{width:100%;min-width:0}

html.imperium-ui-v431 .imp424-section-head,
html.imperium-ui-v431 .dir426-section-head{
  min-width:0;
  gap:12px;
  flex-wrap:wrap;
}
html.imperium-ui-v431 .imp424-section-head > *,
html.imperium-ui-v431 .dir426-section-head > *{min-width:0}
html.imperium-ui-v431 .imp424-live-pill{max-width:100%;white-space:normal;text-align:center}

/* Status cards get an explicit internal grid. JS detail text belongs in <em>, never in the icon span. */
html.imperium-ui-v431 .imp424-status-grid > a{
  min-width:0!important;
  display:grid!important;
  grid-template-columns:54px minmax(0,1fr)!important;
  grid-template-rows:auto auto auto!important;
  column-gap:14px!important;
  row-gap:4px!important;
  align-items:center!important;
  align-content:center!important;
}
html.imperium-ui-v431 .imp424-status-grid > a > .imp424-icon{
  grid-column:1!important;
  grid-row:1 / span 3!important;
  align-self:center!important;
  width:54px!important;
  height:54px!important;
  min-width:54px!important;
  overflow:hidden!important;
}
html.imperium-ui-v431 .imp424-status-grid > a > small{
  grid-column:2!important;grid-row:1!important;margin:0!important;min-width:0!important
}
html.imperium-ui-v431 .imp424-status-grid > a > strong{
  grid-column:2!important;grid-row:2!important;margin:0!important;min-width:0!important;
  font-size:clamp(24px,6vw,34px)!important;line-height:1.08!important;letter-spacing:-.025em!important
}
html.imperium-ui-v431 .imp424-status-grid > a > em{
  grid-column:2!important;grid-row:3!important;margin:0!important;min-width:0!important;
  line-height:1.35!important;white-space:normal!important
}
html.imperium-ui-v431 .imp424-status-grid > a:first-child > strong{
  font-size:clamp(20px,5.2vw,30px)!important;
  font-variant-numeric:tabular-nums;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
}

html.imperium-ui-v431 .imp424-live-card > span:last-child,
html.imperium-ui-v431 .imp424-command-links > a > span:nth-child(2){min-width:0}
html.imperium-ui-v431 .imp424-command-links > a b,
html.imperium-ui-v431 .imp424-command-links > a small{display:block;min-width:0}

/* ===== HR ===== */
html.imperium-ui-v431 :where(.hr428-nav,.hr-jump,.section-jump){
  max-width:100%!important;
  min-width:0!important;
}
html.imperium-ui-v431 .hr429-person-card,
html.imperium-ui-v431 .hr429-person-grid,
html.imperium-ui-v431 .hr429-duty-row{min-width:0!important;width:100%!important}
html.imperium-ui-v431 .hr429-duty-row :where(strong,b,small,span){min-width:0!important;max-width:100%!important}

/* ===== Warehouse / inventory ===== */
html.imperium-ui-v431 :where(.warehouse379-commandbar,.warehouse379-kpis,.warehouse379-grid,.warehouse379-card-stats) > *{min-width:0}

/* ===== Update center / operational modules ===== */
html.imperium-ui-v431 :where(.updater-overview,.updater-steps,.update-detail-grid,.install-safety,.status-facts) > *{min-width:0}
html.imperium-ui-v431 :where(.notification-kpis,.report-summary,.closure-kpis,.order-workflow-kpis,.inventory-cycle-kpis) > *{min-width:0}

/* ===== Mobile contract ===== */
@media (max-width:760px){
  :root{--ui430-gutter:clamp(14px,4.8vw,20px);--ui430-gap:14px}

  html.imperium-ui-v431 body:not(.no-auth){padding-bottom:var(--ui430-dock-space)}
  html.imperium-ui-v431 main.container{padding-inline:var(--ui430-gutter)!important}

  html.imperium-ui-v431 :where(h1){font-size:clamp(36px,11vw,58px)!important;line-height:1.02!important}
  html.imperium-ui-v431 :where(h2){font-size:clamp(26px,7.8vw,38px);line-height:1.08}
  html.imperium-ui-v431 :where(h3){font-size:clamp(20px,6vw,28px);line-height:1.12}

  /* Common fixed desktop grids collapse predictably. */
  html.imperium-ui-v431 :where(.grid2,.system-grid,.formgrid,.form-grid,.inline-form){grid-template-columns:1fr!important}
  html.imperium-ui-v431 :where(.kpis,.mini-kpis,[class*="-kpis"]){grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Super Admin home: compact but never cramped. */
  html.imperium-ui-v431 .imp424-hero{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .imp424-radar{display:none!important}
  html.imperium-ui-v431 .imp424-hero-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .imp424-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .imp424-command-links{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .imp424-status-grid{grid-template-columns:1fr!important;gap:12px!important}
  html.imperium-ui-v431 .imp424-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .imp424-two-col{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .imp424-restaurant-form{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .imp424-license{grid-template-columns:1fr!important;gap:5px!important;text-align:left!important}
  html.imperium-ui-v431 .imp424-license > *{justify-self:start!important}

  /* Direction */
  html.imperium-ui-v431 .dir426-toolbar{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .dir426-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .dir426-business-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .dir426-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* HR: one navigation contract, no overlay. */
  html.imperium-ui-v431 :where(.hr428-nav,.section-jump.hr-jump){
    position:relative!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    padding:8px!important;
    margin:12px 0!important;
    overflow:visible!important;
  }
  html.imperium-ui-v431 :where(.hr428-nav,.section-jump.hr-jump) > *{
    min-width:0!important;
    width:100%!important;
    white-space:normal!important;
    text-align:center!important;
    justify-content:center!important;
  }
  html.imperium-ui-v431 .hr429-person-grid{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .hr429-duty-row{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .hr428-primary-grid,
  html.imperium-ui-v431 .hr428-secondary-grid,
  html.imperium-ui-v431 .wf428-pools{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .wf428-form,
  html.imperium-ui-v431 .wf428-form.compact{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .wf428-pool-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Warehouses */
  html.imperium-ui-v431 .warehouse379-commandbar{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .warehouse379-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .warehouse379-grid{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .warehouse379-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Historic admin/report grids with desktop columns. */
  html.imperium-ui-v431 :where(
    .report-filters,.closure-period-row,.order-send-form,.inventory-count-form,
    .notification-manage-form,.invite-registry-row,.location-quality-filters,
    .restaurant-day-form,.transfer-v99-grid,.scope-grant-row,.hr356-task
  ){grid-template-columns:1fr!important}

  html.imperium-ui-v431 :where(
    .report-summary,.closure-kpis,.order-workflow-kpis,.inventory-cycle-kpis,
    .notification-kpis,.invite-kpis,.recent-sales-summary,.location-quality-kpis,
    .hr354-contract-kpis,.hr356-kpis,.bi359-kpis,.guest331-kpis
  ){grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Dock: all five actions remain equal and readable. */
  html.imperium-ui-v431 .mobile-dock{
    width:calc(100% - 24px)!important;
    left:12px!important;
    right:12px!important;
    bottom:max(10px,env(safe-area-inset-bottom,0px))!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    padding:8px!important;
  }
  html.imperium-ui-v431 .mobile-dock > *{min-width:0!important;padding-inline:4px!important}
  html.imperium-ui-v431 .mobile-dock small{font-size:11px!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}

  /* Header never pushes the viewport horizontally. */
  html.imperium-ui-v431 .app-header{max-width:100vw!important;overflow:hidden}
  html.imperium-ui-v431 .brand{min-width:0!important}
  html.imperium-ui-v431 .brand-copy{min-width:0!important}

  /* Tables that cannot be cardified retain horizontal scrolling inside their own box. */
  html.imperium-ui-v431 main table:not([data-mobile-cards="1"]){
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

@media (max-width:420px){
  html.imperium-ui-v431 .imp424-hero-actions,
  html.imperium-ui-v431 .dir426-toolbar-actions{grid-template-columns:1fr!important}
  html.imperium-ui-v431 .imp424-status-grid > a:first-child > strong{font-size:clamp(18px,5.4vw,24px)!important}
}

@media (max-width:340px){
  html.imperium-ui-v431 .imp424-live-grid,
  html.imperium-ui-v431 .imp424-data-grid,
  html.imperium-ui-v431 :where(.kpis,.mini-kpis,[class*="-kpis"]),
  html.imperium-ui-v431 .warehouse379-commandbar,
  html.imperium-ui-v431 .warehouse379-kpis,
  html.imperium-ui-v431 .warehouse379-card-stats,
  html.imperium-ui-v431 .wf428-pool-nav,
  html.imperium-ui-v431 :where(
    .report-summary,.closure-kpis,.order-workflow-kpis,.inventory-cycle-kpis,
    .notification-kpis,.invite-kpis,.recent-sales-summary,.location-quality-kpis,
    .hr354-contract-kpis,.hr356-kpis,.bi359-kpis,.guest331-kpis
  ){grid-template-columns:1fr!important}
}

@media (min-width:761px) and (max-width:1180px){
  html.imperium-ui-v431 :where(.kpis,.mini-kpis,[class*="-kpis"]){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .imp424-status-grid,
  html.imperium-ui-v431 .imp424-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 .imp424-command-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media (prefers-reduced-motion:reduce){
  html.imperium-ui-v431 *,html.imperium-ui-v431 *::before,html.imperium-ui-v431 *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}


/* ===== Build431 R1 runtime/legacy coverage layer follows ===== */
/* IMPERIUM Build431 R1 — Global UI Runtime QA & Asset Integrity
   Final visual cascade after Build430. The goal is deterministic mobile/tablet rendering,
   runtime self-healing for genuinely cramped grids and coherent fallbacks for legacy modules
   whose historical route-specific stylesheets are no longer present in the release tree. */

:root{
  --ui431-gutter:clamp(14px,4vw,24px);
  --ui431-gap:clamp(12px,3vw,18px);
  --ui431-card-radius:clamp(18px,5vw,30px);
  --ui431-readable:68ch;
}

html.imperium-ui-v431,
html.imperium-ui-v431 body{max-width:100%;overflow-x:clip}
html.imperium-ui-v431 *,html.imperium-ui-v431 *::before,html.imperium-ui-v431 *::after{box-sizing:border-box}

/* Universal shrink contract, including anonymous legacy grids missed by named selectors. */
html.imperium-ui-v431 :where(main,section,article,aside,nav,form,fieldset,details,summary,div){min-width:0}
html.imperium-ui-v431 :where(main,section,article,aside,nav,form,fieldset,details){max-width:100%}
html.imperium-ui-v431 :where(h1,h2,h3,h4,h5,h6,p,span,small,strong,b,em,a,label,button,summary,dt,dd,li){max-width:100%}
html.imperium-ui-v431 :where(code,pre,.mono,[class*="hash"],[class*="sha"]){overflow-wrap:anywhere;word-break:break-word}
html.imperium-ui-v431 :where(img,picture,video,canvas,svg){height:auto;max-width:100%}

/* Text must never be forced into letter-by-letter vertical columns. */
html.imperium-ui-v431 :where(main,main *){
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
}
html.imperium-ui-v431 :where(main h1,main h2,main h3,main h4,main h5,main h6,main p,main label,main small,main span,main strong,main b,main em,main a,main button){
  word-break:normal;
  overflow-wrap:break-word;
}

/* One coherent panel rhythm across old and new modules. */
html.imperium-ui-v431 main :where(.panel,.card,[class$="-panel"],[class$="-card"],[class*="-panel "],[class*="-card "]){
  min-width:0;
  max-width:100%;
}
html.imperium-ui-v431 main :where(.panel,.card,[class$="-panel"],[class$="-card"]) > *{min-width:0}

/* Legacy module fallback families. Their historic CSS links are dead in the materialized baseline;
   these rules make the pages visually coherent without inventing business behavior. */
html.imperium-ui-v431 :where(
  .ac364,.h361-shell,.haccp348,.haccp360,.pc351-page,.hr387-shell
){width:100%;display:grid;gap:var(--ui431-gap)}

html.imperium-ui-v431 :where(
  .ac364-hero,.h361-head,.haccp348-head,.haccp360-head,.pc351-hero,.hr387-heading,
  .ac365-execution>header,.haccp360-task-head
){display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}

html.imperium-ui-v431 :where(
  .ac364-kpis,.h361-kpis,.haccp348-kpis,.haccp360-kpis,.pc351-kpis,.hr387-kpis,
  .hr387-person-metrics,.hr388-coverage-grid
){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px}

html.imperium-ui-v431 :where(
  .ac364-kpis>*,.h361-kpis>*,.haccp348-kpis>*,.haccp360-kpis>*,.pc351-kpis>*,.hr387-kpis>*,
  .hr387-person-metrics>*,.hr388-coverage-grid>*
){min-width:0;padding:14px;border:1px solid rgba(100,190,220,.16);border-radius:18px;background:rgba(5,27,43,.55)}

html.imperium-ui-v431 :where(
  .h361-form,.h361-activate,.haccp348-form,.haccp348-mini-form,.haccp360-form,.pc351-form,
  .hr387-form-grid,.hr387-subform,.ac365-exec-form
){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;align-items:end}
html.imperium-ui-v431 :where(
  .h361-form .wide,.haccp348-form .wide,.pc351-form .wide,.hr387-form-grid .wide
){grid-column:1/-1}

html.imperium-ui-v431 :where(
  .hr387-tabs,.haccp348-tabs,.haccp349-navigation,.h361-actions,.haccp360-head-actions,.ac364-filters
){display:flex;gap:8px;flex-wrap:wrap;position:relative!important;inset:auto!important;transform:none!important;max-width:100%}

html.imperium-ui-v431 :where(
  .hr387-table-wrap,.haccp348-tablewrap,.haccp360-tablewrap,.pc351-table,.wf428-history
){width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}

html.imperium-ui-v431 :where(
  .ac364-list,.ac365-exec-list,.haccp348-cards,.haccp348-process,.haccp348-hazards,.haccp348-profiles,
  .haccp360-task-list,.haccp360-blockers,.pc351-ranking,.pc351-warning-list,.hr387-alert-list,.hr387-account-grid,.hr387-person-grid
){display:grid;gap:12px;min-width:0}

html.imperium-ui-v431 :where(
  .ac364-item,.ac365-exec-card,.h361-card,.haccp348-pane,.haccp360-task,.haccp360-session,.haccp360-signoff,
  .pc351-register,.pc351-policy,.pc351-warning,.hr387-panel,.hr387-create-card,.hr387-person-summary,.hr393-runtime-warning
){min-width:0;max-width:100%;overflow-wrap:break-word}

/* Status/chip controls should not become rigid inline blocks. */
html.imperium-ui-v431 :where(
  .ac364-state,.haccp348-status,.pc351-hero-state,.status,.compatibility-badge,.badge,[class*="-badge"],[class*="-state"]
){max-width:100%;white-space:normal}

/* Runtime repair classes are only added when real rendered overflow/cramping is measured. */
html.imperium-ui-v431 .ui431-overflow-risk:not(table):not(pre){max-width:100%!important;overflow-x:hidden!important}
html.imperium-ui-v431 .ui431-overflow-risk.ui431-flex{flex-wrap:wrap!important}
html.imperium-ui-v431 .ui431-overflow-risk > *{min-width:0!important;max-width:100%!important}
html.imperium-ui-v431 .ui431-cramped-grid{grid-template-columns:1fr!important}
html.imperium-ui-v431 .ui431-cramped-grid > *{width:100%!important;min-width:0!important}

/* Local scrolling belongs to data tables only; it must never widen the whole application. */
html.imperium-ui-v431 main :where(table){max-width:100%}
html.imperium-ui-v431 main :where(.table-wrap,.table-scroll,[class*="table-wrap"],[class*="table-scroll"],.hr387-table-wrap,.haccp348-tablewrap,.haccp360-tablewrap){
  overflow-x:auto!important;max-width:100%!important;-webkit-overflow-scrolling:touch
}

/* Form and action consistency. */
html.imperium-ui-v431 main :where(input,select,textarea){width:100%;min-width:0;max-width:100%}
html.imperium-ui-v431 main :where(button,.btn,a.btn,.button){min-width:0;max-width:100%;white-space:normal;overflow-wrap:break-word}
html.imperium-ui-v431 main :where(label){min-width:0}

/* Avoid sticky secondary navigations covering content. Primary app header/dock are excluded. */
@media (max-width:760px){
  html.imperium-ui-v431 main :where(
    nav:not(.mobile-dock),[class*="-tabs"],[class*="-toolbar"],[class*="-jump"]
  ){position:relative!important;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;transform:none!important}

  html.imperium-ui-v431 main.container{padding-inline:var(--ui431-gutter)!important}
  html.imperium-ui-v431 main :where(h1){font-size:clamp(32px,9.5vw,50px)!important;line-height:1.03!important;letter-spacing:-.035em}
  html.imperium-ui-v431 main :where(h2){font-size:clamp(25px,7.2vw,36px);line-height:1.08}
  html.imperium-ui-v431 main :where(h3){font-size:clamp(20px,5.8vw,28px);line-height:1.12}

  html.imperium-ui-v431 :where(
    .h361-form,.h361-activate,.haccp348-form,.haccp348-mini-form,.haccp360-form,.pc351-form,
    .hr387-form-grid,.hr387-subform,.ac365-exec-form,.hr387-two-col,.hr387-command-grid,.hr387-link-grid,
    .haccp348-grid2,.haccp349-action-grid
  ){grid-template-columns:1fr!important}

  html.imperium-ui-v431 :where(.hr387-tabs,.haccp348-tabs,.haccp349-navigation){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.imperium-ui-v431 :where(.hr387-tabs,.haccp348-tabs,.haccp349-navigation)>*{min-width:0!important;text-align:center;justify-content:center;white-space:normal!important}

  html.imperium-ui-v431 :where(.ac364-hero,.pc351-hero,.h361-head,.haccp348-head,.haccp360-head,.hr387-heading){align-items:stretch}
  html.imperium-ui-v431 :where(.ac364-state,.pc351-hero-state,.haccp348-status){align-self:flex-start}

  /* A long semantic label must not be squeezed into a 140px KPI cell. */
  html.imperium-ui-v431 :where(
    .ac364-kpis,.h361-kpis,.haccp348-kpis,.haccp360-kpis,.pc351-kpis,.hr387-kpis,
    .hr387-person-metrics,.hr388-coverage-grid,[class*="-kpis"]
  ){grid-auto-flow:row}

  /* Header and bottom dock remain the only fixed navigational surfaces. */
  html.imperium-ui-v431 .app-header{z-index:80}
  html.imperium-ui-v431 .mobile-dock{z-index:90}

  /* Prevent cards from hiding behind the dock on very short screens. */
  html.imperium-ui-v431 body:not(.no-auth) main{padding-bottom:max(24px,env(safe-area-inset-bottom,0px))}
}

@media (max-width:390px){
  html.imperium-ui-v431 :where(.hr387-tabs,.haccp348-tabs,.haccp349-navigation){grid-template-columns:1fr!important}
  html.imperium-ui-v431 :where(
    .ac364-kpis,.h361-kpis,.haccp348-kpis,.haccp360-kpis,.pc351-kpis,.hr387-kpis,
    .hr387-person-metrics,.hr388-coverage-grid
  ){grid-template-columns:1fr!important}
}

@media (prefers-reduced-motion:reduce){
  html.imperium-ui-v431 *,html.imperium-ui-v431 *::before,html.imperium-ui-v431 *::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important
  }
}

