/* Zappocity SaaS admin panel, on top of Bootstrap 5.3 and site.css. */
.admin-shell { display: flex; min-height: 100vh; }
.admin-nav { width: 15rem; flex-shrink: 0; background: var(--bs-body-bg); border-right: 1px solid var(--bs-border-color); }
.admin-nav .nav-link { color: var(--bs-body-color); border-radius: .375rem; display: flex; align-items: center; gap: .6rem; }
.admin-nav .nav-link:hover { background: var(--bs-tertiary-bg); }
.admin-nav .nav-link.active { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); font-weight: 600; }
.admin-main { flex-grow: 1; min-width: 0; }
.admin-top { background: var(--bs-body-bg); border-bottom: 1px solid var(--bs-border-color); flex-wrap: wrap; }
.admin-search { flex: 1 1 14rem; max-width: 28rem; }
.stat { font-size: 1.75rem; font-weight: 700; line-height: 1.1; }
.table td, .table th { vertical-align: middle; }
.mono { font-family: var(--bs-font-monospace); font-size: .85rem; overflow-wrap: anywhere; }
.signin { max-width: 24rem; }
@media (max-width: 767.98px) {
  .admin-shell { flex-direction: column; }
  .admin-nav { width: auto; border-right: 0; border-bottom: 1px solid var(--bs-border-color); }
  .admin-nav .nav { flex-direction: row !important; flex-wrap: wrap; }
}
/* Row actions: the More menu (see rowActions in admin.js). */
.row-menu > summary { list-style: none; white-space: nowrap; }
.row-menu > summary::-webkit-details-marker { display: none; }
.row-menu-list { z-index: 1050; min-width: 12rem; }
.table td .btn { white-space: nowrap; }
/* Mail log: Exim-style lines. */
.maillog { font-family: var(--bs-font-monospace); font-size: .8rem; overflow-x: auto; }
.maillog-line { white-space: pre; padding: 1px 0; }
.maillog-id { font-family: inherit; font-size: inherit; text-decoration: none; }
@media (max-width: 767.98px) { .maillog-line { white-space: pre-wrap; overflow-wrap: anywhere; } }
.trace-steps .min-w-0 { min-width: 0; }
/* Greylisting report. */
.gl-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: .5rem; }
.gl-stat { border: 1px solid var(--bs-border-color); border-left: .25rem solid var(--gl-accent); border-radius: .375rem; padding: .35rem .6rem; background: var(--bs-tertiary-bg); }
.gl-stat-n { font-size: 1.25rem; font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; }
.gl-stat-l { font-size: .75rem; color: var(--bs-secondary-color); white-space: nowrap; }
.gl-stat-secondary { --gl-accent: var(--bs-secondary); }
.gl-stat-warning { --gl-accent: var(--bs-warning); }
.gl-stat-info { --gl-accent: var(--bs-info); }
.gl-stat-success { --gl-accent: var(--bs-success); }
.gl-stat-danger { --gl-accent: var(--bs-danger); }
.gl-stat-primary { --gl-accent: var(--bs-primary); }
.gl-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.gl-q { flex: 1 1 14rem; max-width: 24rem; }
.gl-pager { margin-left: auto; }
.gl-ip { font-family: var(--bs-font-monospace); font-size: .85rem; white-space: nowrap; }
.gl-addr { min-width: 12rem; }
.gl-table td { padding-top: .45rem; padding-bottom: .45rem; }
.setting-found { box-shadow: 0 0 0 .2rem var(--bs-primary-border-subtle); scroll-margin-top: 1rem; }
