/* App-specific styles layered over nexpand.css */
.nx-auth { max-width: 420px; margin: 8vh auto; }
.nx-auth .nx-brand { font-size: 1.4rem; margin-bottom: 1.25rem; display: inline-flex; }
.nx-kb-text { white-space: pre-wrap; font-family: var(--nx-mono); font-size: .82rem; max-height: 70vh; overflow: auto;
  background: var(--nx-card); border: 1px solid var(--nx-border); border-radius: var(--nx-radius); padding: 1rem; }
textarea.nx-md { font-family: var(--nx-mono); font-size: .85rem; min-height: 320px; }
.nx-stat { background: var(--nx-card); border: 1px solid var(--nx-border); border-radius: var(--nx-radius); padding: 1rem 1.1rem; }
.nx-stat .v { font-size: 1.6rem; font-weight: 600; line-height: 1.1; }
.nx-stat .l { color: var(--nx-muted); font-size: .82rem; }
.nx-inactive { opacity: .55; }
.nav-tabs .nav-link { color: var(--nx-muted); }
.nav-tabs .nav-link.active { color: var(--nx-primary); font-weight: 500; }
.nx-help { color: var(--nx-muted); font-size: .82rem; }
.nx-badge-secret { font-family: var(--nx-mono); }
.nx-file { position: relative; display: inline-flex; align-items: center; gap: .6rem; }
.nx-file input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
