html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}
/* Journal entry grid (pass 47) */
.ims-jgrid { width: 100%; }
.ims-jgrid td { vertical-align: top; }
.ims-jgrid input { width: 100%; min-width: 7rem; }
.ims-jgrid td:nth-child(2) input { min-width: 10rem; }
.ims-jgrid tfoot td { border-top: 2px solid var(--ims-border, #E2EAE5); font-weight: 600; }
.ims-jdiff-off { color: #B3261E; font-weight: 600; }
.ims-jtools { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .75rem 0; }
.ims-jpaste { display: grid; gap: .4rem; margin-bottom: .75rem; }
.ims-jpaste textarea { width: 100%; font-family: ui-monospace, monospace; }
.ims-jactions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.ims-expense-photo { font-size: .85rem; }

/* Bank reconciliation (pass 48) */
.ims-bankrec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start; }
@media (max-width: 1100px) { .ims-bankrec-grid { grid-template-columns: 1fr; } }
.ims-match-bar { position: sticky; top: 0; z-index: 5; }

/* Year end (pass 51) */
.ims-ye-steps { display: grid; gap: .75rem; padding-left: 1rem; }
.ims-ye-steps li { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }

/* HR (pass 52+) */
.ims-hr-head { display: flex; gap: 16px; align-items: center; padding: 16px 18px; }
.ims-hr-photo img, .ims-hr-initials { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; flex: none; }
.ims-hr-initials { display: grid; place-items: center; background: var(--ims-mint); color: var(--ims-green-deep, #00693A); font-size: 28px; font-weight: 600; }
.ims-hr-id { min-width: 0; }
.ims-hr-id .ims-pe-title { margin: 0; }
.ims-hr-pills { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.ims-hr-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ims-claim-pad .ims-hr-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ims-row-muted td { color: var(--ims-text-2); }
@media (max-width: 760px) { .ims-hr-head { flex-direction: column; align-items: flex-start; } .ims-claim-pad .ims-hr-facts, .ims-hr-facts { grid-template-columns: minmax(0, 1fr); } }
.ims-hr-sideform { grid-template-columns: minmax(0, 1fr); }
