.app-logo { height: 3rem; width: auto; }
.app-main { max-width: 48rem; padding-bottom: 3rem; }
.app-main-wide { max-width: 80rem; }
.lang-link { text-decoration: none; }
.jka-number .input-group-text { font-family: monospace; }
.jka-suffix { max-width: 6rem; }
.summary-label { width: 45%; }
.step-progress .badge { font-weight: normal; }
[hidden] { display: none !important; }
/* −/+ buttons replace the browser's own number spinners */
.stepper input[type=number] { -moz-appearance: textfield; appearance: textfield; }
.stepper input[type=number]::-webkit-inner-spin-button,
.stepper input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* Mobile: compact header, long words wrap in key/value tables, finger-sized links */
.app-brand { min-width: 0; }
.app-header-nav { flex-shrink: 0; white-space: nowrap; margin-left: .75rem; }
.app-header-nav a, .admin-nav a { display: inline-block; padding: .5rem .25rem; }
.table th, .table td { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 575.98px) {
  .app-logo { height: 2.25rem; }
  .app-title { font-size: .95rem; line-height: 1.25; }
  /* title gets the full width; language/logout links move to their own row */
  .app-header .container { flex-wrap: wrap; }
  .app-header-nav { width: 100%; margin-left: 0; text-align: right; }
  .app-logo.me-3 { margin-right: .5rem !important; }
  .btn-sm { padding-top: .45rem; padding-bottom: .45rem; }  /* finger-sized on phones */
}
