/* Shared responsive rules loaded after page styles. Print/export layouts stay intact. */
@media screen and (max-width:900px) {
  main, main > *, .grid > *, .grid2 > *, .two-col > *, .field, fieldset { min-width:0; }
  .tableWrap, .tablewrap, .ba-tablewrap, .rp-tablewrap { max-width:100%; -webkit-overflow-scrolling:touch; }
  .ep-table input[type=number] { width:110px; min-width:0; max-width:100%; }
  dialog { box-sizing:border-box; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); overflow:auto; }
  .mnavPanel { max-height:100dvh; overflow-y:auto; overscroll-behavior:contain; padding-bottom:max(20px,env(safe-area-inset-bottom)); }
}
@media screen and (max-width:640px) {
  /* Assign grid cells explicitly: the hidden desktop navigation must not add a row. */
  .topbar .topbar__inner { grid-template-areas:"left right"; grid-template-columns:minmax(0,1fr) auto !important; gap:8px; }
  .topbar__left { grid-area:left; }
  .topbar .topbar__center { display:none; }
  .topbar__right { grid-area:right; align-self:center; }
  .topbar .topbar__right, .topbar .topbar__actions, .topbar .userbar { gap:5px; }
  .topbar .brand__logo { max-width:80px !important; }
  .topbar .seasonpill { padding:5px 7px; }
  .topbar .seasonpill__name { font-size:12px !important; }
  .topbar .topbar__burger, .topbar .iconbtn, .topbar .avatar, .mnavClose { min-width:44px; min-height:44px; }
  main.container { padding-bottom:max(20px,env(safe-area-inset-bottom)); }
  .pageHead, .hrow { flex-wrap:wrap; gap:12px; }
  .pageHead > *, .hrow > *, .toolbar > *, .panel__head > * { min-width:0; max-width:100%; }
  h1, h2, .sub, .rp-notice, .uim-msg { overflow-wrap:anywhere; }
  .filtersBar, .filtersBar.pf-autogrid { grid-template-columns:minmax(0,1fr) !important; }
  .filters .field, .epFilters .field, .ba-field, .pf-top .pf-search { min-width:0 !important; width:100%; }
  .field input, .field select, .field textarea, .ba-field input, .ba-field select { box-sizing:border-box; max-width:100%; }
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea,
  .rp-page #rp-role, .ba-field select, .ba-field input { font-size:16px !important; }
  input[type=date], input[type=datetime-local], input[type=file] { min-width:0; width:100%; }
  button, .btn, .iconbtn, .seg label, .mnavLinks a { touch-action:manipulation; }
  .btn, .iconbtn, .uim-btn, .pwd-toggle { min-height:44px; }
  .toolbar .btn { height:auto; white-space:normal; }
  .actions-row { flex-wrap:wrap; }
  .actions-row .btn.icon { flex-shrink:0; width:44px; height:44px; }
  .seg { flex-wrap:wrap; max-width:100%; }
  .seg label, .seg button { white-space:normal; min-height:44px; }
  .pf-top .pf-seg { display:flex; flex-wrap:wrap; overflow:visible; }
  .pf-seg .pf-seg__btn { flex:1 1 120px; white-space:normal; min-height:44px; }
  main .au-tabs { flex-wrap:wrap; }
  .epFilters { display:block; }
  .ba-prices { min-inline-size:0; }
  .rp-page .rp-check, .rp-page .rp-check input[type=checkbox] { width:44px !important; height:44px !important; }
  .rp-table { display:block; min-width:0; }
  .rp-table thead { display:none; }
  .rp-table tbody { display:block; }
  .rp-table .rp-group { display:block; }
  .rp-table .rp-group th { display:block; height:auto; }
  .rp-table .rp-permission-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:10px 12px; border-bottom:1px solid var(--line); }
  .rp-table .rp-permission-row th[scope=row] { grid-column:1/-1; height:auto; padding:8px 4px; border:0; font-weight:700 !important; }
  .rp-table .rp-permission-row td { display:flex; align-items:center; justify-content:space-between; gap:4px; height:48px; padding:0 4px; border:0; }
  .rp-table .rp-permission-row td::before { content:attr(data-label); font-size:12px; color:var(--text-muted); }
  .rp-table .rp-permission-row td:first-of-type { background:transparent; }
  .rp-savebar { bottom:max(8px,env(safe-area-inset-bottom)); }
  .dlg__head, .dlg__foot, .uim-foot { flex-wrap:wrap; }
  .dlg__box, .uim-box { box-sizing:border-box; max-width:100%; }
  dialog .grid > .field { margin-bottom:0; padding-bottom:12px; }
  .photoItem { max-width:100%; }
  .auth-wrap { min-height:0; padding:24px 0; }
}
@media screen and (max-width:380px) {
  .topbar .brand__logo { max-width:64px !important; }
  .topbar .topbar__right, .topbar .topbar__actions, .topbar .userbar { gap:3px; }
}
@media screen and (prefers-reduced-motion:reduce) {
  .mnavPanel, .mnavOverlay, .kpi__bar span, .bullet__fill { transition:none; }
}
