/* Platform admin console: the few styles the customer stylesheet (src/web/static/app.css, served as /static/app.css) does
   not already have. Brand tokens only: no colour, radius, spacing or font size is written here as a literal value
   (test/unit-admin-console-brand.test.ts). Loaded after app.css. */

.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.muted { color: var(--color-text-muted); }
body.adm main.app-main { max-width: 1280px; }
.adm-plain { background: var(--color-bg); }
.adm-confirm { max-width: 46rem; }
.af-version { color: var(--color-text-muted); }
.num { text-align: right; font-variant-numeric: tabular-nums; }
code { font-family: var(--font-mono); font-size: var(--text-sm); }

/* Sidebar: the environment, and the account */
.adm-env { display: flex; flex-direction: column; gap: var(--space-1); margin: 0 var(--space-2); padding: var(--space-2) var(--space-3); border: 1px solid var(--color-sidebar-line); border-radius: var(--radius-md); background: var(--color-sidebar-hover-bg); }
.adm-env-label { font-size: var(--text-2xs); letter-spacing: .06em; text-transform: uppercase; color: var(--color-sidebar-label); }
.adm-env-name { color: var(--color-on-primary); font-weight: 600; font-size: var(--text-md); }
.adm-signout { margin: var(--space-2) 0 0; }
.adm-link { padding: 0; border: 0; background: none; color: var(--color-sidebar-text); font: inherit; font-size: var(--text-sm); text-decoration: underline; cursor: pointer; }
.adm-link:hover { color: var(--color-on-primary); }
@media (max-width: 900px) { .adm-env { flex-direction: row; align-items: center; gap: var(--space-2); } }

/* Notices: a label as well as a colour */
.adm-banner { display: block; margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.adm-banner.ok { border-color: var(--color-success); background: var(--color-success-bg); color: var(--color-success); }
.adm-banner.error { border-color: var(--color-danger-border); background: var(--color-danger-bg); color: var(--color-danger-text); }
.adm-banner.info { border-color: var(--color-primary-100); background: var(--color-primary-50); color: var(--color-link); }

/* Status badges beyond the customer set (ok, warn and muted already exist) */
.badge.danger { color: var(--color-danger-text); background: var(--color-danger-bg); }
.badge.info { color: var(--color-link); background: var(--color-primary-50); }

/* Tables */
.table-wrap { overflow-x: auto; }
.adm-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.adm-table th, .adm-table td { padding: var(--space-3) var(--space-3); text-align: left; border-bottom: 1px solid var(--color-border); vertical-align: top; }
.adm-table thead th { font-size: var(--text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--color-text-muted); white-space: nowrap; }
.adm-table tbody th { font-weight: 600; }
.adm-table tbody tr:hover { background: var(--color-bg-soft); }
.adm-table .num { text-align: right; }
.adm-sub { margin-top: var(--space-1); font-size: var(--text-sm); color: var(--color-text-muted); }
.actions form { display: inline-flex; gap: var(--space-2); margin: 0 var(--space-2) var(--space-1) 0; align-items: center; }
.actions input { width: 5rem; min-height: var(--size-control-sm); padding: var(--space-1) var(--space-2); }
.adm-pager { display: flex; gap: var(--space-3); margin: var(--space-4) 0 0; }
.adm-toolbar { margin: 0 0 var(--space-3); }

/* Search, forms */
.adm-search { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: flex-end; margin: 0 0 var(--space-4); }
.adm-search label { margin: 0; font-weight: 600; }
.adm-grow { flex: 1 1 18rem; }
.adm-form { max-width: 34rem; }
.adm-form select, .adm-search select { display: block; width: 100%; min-height: var(--size-control-md); margin-top: var(--space-1); padding: var(--space-2) var(--space-3); border: 1px solid var(--color-border-input); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); font: inherit; }
.adm-form input:not([type=hidden]) { margin-top: var(--space-1); }
.adm-narrow { max-width: 40rem; }
.adm-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin: var(--space-4) 0 0; }
.adm-inline { display: inline-flex; gap: var(--space-2); align-items: center; }

/* Detail pages */
.adm-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-4); }
.adm-cols .panel { margin-bottom: 0; }
@media (max-width: 1100px) { .adm-cols { grid-template-columns: 1fr; } }
.adm-facts { display: grid; grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr); gap: var(--space-2) var(--space-4); margin: 0; }
.adm-facts dt { color: var(--color-text-muted); }
.adm-facts dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) { .adm-facts { grid-template-columns: 1fr; gap: 0; } .adm-facts dd { margin-bottom: var(--space-3); } }
.adm-review { margin: 0 0 var(--space-4); padding-left: var(--space-5); }
.adm-review li { margin: var(--space-1) 0; }

/* Overview */
.adm-h3 { margin: var(--space-5) 0 var(--space-2); font-size: var(--text-lg); color: var(--color-text); }
.adm-none { display: flex; align-items: center; gap: var(--space-2); margin: 0; }
.adm-defs { display: grid; grid-template-columns: minmax(9rem, 14rem) minmax(0, 1fr); gap: var(--space-3) var(--space-5); margin: 0; }
.adm-defs dt { font-weight: 600; }
.adm-defs dd { margin: 0; color: var(--color-text-2); }
@media (max-width: 720px) { .adm-defs { grid-template-columns: 1fr; gap: var(--space-1); } .adm-defs dd { margin-bottom: var(--space-3); } }
.ac-list + .hint { margin-top: var(--space-3); }

/* A new access code, shown once */
.code { margin: var(--space-4) 0; padding: var(--space-4); border: 2px dashed var(--color-primary); border-radius: var(--radius-lg); background: var(--color-primary-50); color: var(--color-text); font-family: var(--font-mono); font-size: var(--text-3xl); font-weight: 600; letter-spacing: .06em; user-select: all; overflow-wrap: anywhere; }

/* Sign-in and pages without a session */
.adm-brandline { display: flex; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-5); color: var(--color-text); font-size: var(--text-xl); }
.adm-login .pub-auth { min-height: 100vh; }
.adm-plain-main { max-width: 36rem; margin: 0 auto; padding: var(--space-12) var(--space-4); }
.adm-error h1 { margin-top: 0; font-size: var(--text-2xl); }
