/* Mobile enhancements: one Razor document, no user-agent split or hidden business data. */
.oa-bottom-nav, .oa-mobile-back, .oa-mobile-home { display: none; }
.oa-shortcuts { display: flex; flex-wrap: wrap; gap: .75rem; }
.oa-shortcuts > * { min-width: 0; }
.oa-shortcuts a { white-space: normal; overflow-wrap: anywhere; }
.oa-submit-status { margin-top: .75rem; }
.oa-card-table tr[id] { scroll-margin-top: 5rem; }
#add-line-heading { scroll-margin-top: 5rem; }

@media (max-width: 767.98px) {
  html { font-size: 16px; }
  body { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
  .oa-company-page { padding-bottom: calc(4.5rem + env(safe-area-inset-bottom)); }
  .oa-topbar { padding-top: env(safe-area-inset-top); }
  .oa-topbar .navbar > .container-fluid { flex-wrap: wrap !important; }
  .oa-topbar .oa-product-name { flex: 1; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
  .oa-topbar .oa-utility-link, .oa-topbar .oa-user-name { display: none !important; }
  .oa-bottom-nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); position: fixed;
    left: 0; right: 0; bottom: 0; z-index: 1030; border-top: 1px solid #ccd6e0; background: #fff;
    padding: .35rem env(safe-area-inset-right) calc(.35rem + env(safe-area-inset-bottom)) env(safe-area-inset-left); }
  .oa-bottom-nav a { display: flex; align-items: center; justify-content: center; min-height: 52px;
    padding: .5rem; text-decoration: none; color: #34495e; font-weight: 600; }
  .oa-bottom-nav a[aria-current="page"] { color: #0b63ce; background: #eaf3ff; border-radius: .5rem; }
  .oa-mobile-back { display: inline-flex; flex: 0 0 auto; align-items: center; }
  .oa-page-header { gap: .75rem; padding: .75rem .8rem; min-height: 4.5rem; }
  .oa-page-header h1 { flex: 1; min-width: 0; overflow-wrap: anywhere; }
  .oa-content, .oa-main-column, main, .card-body { min-width: 0; }
  .oa-content { padding: 1rem .8rem; }
  .oa-content p, .oa-content dd, .alert, .card, .footer, .oa-footer { overflow-wrap: anywhere; white-space: normal; }
  .footer.footer { white-space: normal; line-height: 1.6; padding: 1rem 0 calc(1rem + env(safe-area-inset-bottom)); }
  .oa-login-panel { margin: 1.5rem auto; width: 100%; }
  input.form-control, textarea.form-control, select.form-select { font-size: 16px; min-height: 44px; }
  .btn, button, .page-link { min-height: 44px; min-width: 44px; white-space: normal; }
  .form-check { min-height: 44px; padding-top: .5rem; }
  .form-check label { min-height: 32px; }
  form .row > [class*="col-"], form.row > [class*="col-"] { flex: 0 0 100%; width: 100%; }
  .oa-content .d-flex, .oa-content .btn-group { flex-wrap: wrap; gap: .5rem; }
  .oa-content .table-responsive { max-width: 100%; overflow-x: auto; }
  .oa-mobile-home { display: block; }
  .oa-mobile-home .list-group-item { overflow-wrap: anywhere; }
  .oa-mobile-home .list-group-item a { display: inline-flex; min-height: 44px; align-items: center; }
  .oa-shortcuts > * { flex: 1 1 130px; }
  .oa-shortcuts form button { width: 100%; }
  .oa-card-table, .oa-card-table tbody { display: block; width: 100%; }
  .oa-card-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .oa-card-table tr { display: block; margin-bottom: 1rem; padding: .75rem;
    border: 1px solid #d5dfe8; border-radius: .65rem; background: #fff; }
  .oa-card-table td { display: block; width: 100%; border: 0; padding: .35rem 0;
    white-space: normal; overflow-wrap: anywhere; box-shadow: none !important; background: transparent !important; }
  .oa-card-table td::before { content: attr(data-label); display: block; color: #586a7d; font-size: .8125rem; font-weight: 600; }
  .oa-card-table td a { display: inline-flex; align-items: center; min-height: 44px; }
  .oa-card-table .d-flex { align-items: stretch; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .oa-company-shell { display: flex; }
  .oa-company-page .oa-sidebar { flex: 0 0 13rem; width: 13rem; position: sticky; top: 58px; height: calc(100vh - 58px); }
  .oa-topbar .oa-product-name span, .oa-topbar .oa-user-name { display: none !important; }
  .oa-topbar .oa-utility-link { white-space: nowrap; }
}

@media (min-width: 768px) {
  .oa-card-table { min-width: 960px; }
}
