:root { --bs-body-bg: #f3f6fb; --bs-primary-rgb: 42, 78, 159; }
body { min-height: 100vh; }
main { min-height: calc(100vh - 130px); }
.card { border-color: #dbe3ef; border-radius: .8rem; }
.navbar-brand { letter-spacing: -.025em; }
.nav-link:focus-visible, .btn:focus-visible, a:focus-visible, .table-responsive:focus-visible { outline: 3px solid #ffbf47; outline-offset: 3px; box-shadow: none; }
.form-control:focus, .form-select:focus { border-color: #2a4e9f; box-shadow: 0 0 0 .2rem rgba(42,78,159,.18); }
pre, code { overflow-wrap: anywhere; white-space: pre-wrap; }
section[id] { scroll-margin-top: 1rem; }
[data-dashboard] .row > *, [data-dashboard] .d-flex > * { min-width: 0; }
[data-dashboard] th, [data-dashboard] td, [data-dashboard] summary, [data-dashboard] .form-label { overflow-wrap: anywhere; }
[data-dashboard] details { min-width: 16rem; max-width: 40rem; margin-top: .75rem; }
[data-dashboard] details[open] { padding: .75rem; border: 1px solid #dbe3ef; border-radius: .5rem; }
[data-dashboard] summary { cursor: pointer; font-weight: 600; }
[data-dashboard] [hidden] { display: none !important; }
[data-form-status][data-state="dirty"] { color: #775000; }
[data-form-status][data-state="error"] { color: #b02a37; }
[data-form-status][data-state="saved"] { color: #146c43; }
form[aria-busy="true"] button[type="submit"] { opacity: .65; cursor: progress; }
[data-secret] pre { user-select: all; }
.table th, .table td { max-width: 30rem; }
/* Scroll inside the labelled table region instead of crushing columns or
   overflowing the page. Long names may wrap; headers and actions must not. */
[data-dashboard] .table th[scope="col"], [data-dashboard] .table .btn,
#providers th[scope="row"] code, #models [data-model-row] > td:first-child code {
  white-space: nowrap; overflow-wrap: normal; word-break: normal;
}
#keys .table { min-width: 36rem; }
#keys .table tr > :last-child { min-width: 6rem; }
#providers .table { min-width: 26rem; }
#models .table { min-width: 40rem; }
#models .table tr > :first-child { min-width: 8rem; }
#models .table tr > :nth-child(3) { min-width: 6rem; }
#models .table tr > :last-child { min-width: 5rem; }
.skip-link:focus { position: absolute; z-index: 2000; top: .5rem; left: .5rem; padding: .6rem; background: white; color: #172026; }
@media (max-width: 575.98px) {
  .display-6 { font-size: 1.9rem; }
  .table { font-size: .875rem; }
  .navbar-collapse { padding-top: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body .btn, body .form-control, body .form-select, body .collapsing, body .nav-link { transition: none; }
}
