/* a1sip mockups: layout + structure only. All colour comes from the active theme (--bs-*). */

:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 2px; }
.text-balance { text-wrap: balance; }
.measure { max-width: 68ch; }
.tabular { font-variant-numeric: tabular-nums; }
.min-w-0 { min-width: 0; }
pre.code { background: rgba(var(--bs-emphasis-color-rgb), .05); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius); padding: .9rem 1rem; font-size: .82rem; white-space: pre; overflow-x: auto; margin: 0; }

/* ---------- portal v0 additions (layout only, colours from the theme) ---------- */
.small-box .inner h3 { font-size: clamp(1.4rem, 4vw, 2.2rem); }
.table td, .table th { white-space: nowrap; }
.table td.wrap, .table th.wrap { white-space: normal; min-width: 12rem; }
.login-shell { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 16px; }
.login-card { width: 100%; max-width: 26rem; }
.kv dt { font-weight: 600; }
@media (max-width: 575.98px) { .app-content-header h1 { font-size: 1.35rem; } }
