/*
 * oneadmin - PremierOne Provisioning. The frame, the Lobby, the search panes, grids and documents
 * are PremierOne Records' (web/one/records.css); these are only what administration adds: the
 * Sign On dialog, pick boxes and the bulk bar, status tags, and the confirm dialog.
 */
.hidden { display: none !important; }
html, body { height: 100%; }

/* Sign On, as the smart client's logon dialog */
.signon { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(160deg, #2e3a50, #56627a); }
.so-dlg { width: min(520px, calc(100vw - 32px)); background: #f3f4f6; border: 1px solid #1c2537; box-shadow: 0 6px 24px rgba(0,0,0,.45); }
.so-title { display: flex; align-items: center; gap: 8px; height: 30px; padding: 0 10px; color: #fff; font-weight: 600;
  background: linear-gradient(#3f4b61, #28334a); }
.so-title img { width: 18px; height: 18px; border-radius: 50%; }
.so-body { display: grid; grid-template-columns: 170px 1fr; gap: 16px; padding: 18px 18px 8px; }
.so-brand { display: flex; flex-direction: column; justify-content: center; border-right: 1px solid #cfd3da; padding-right: 12px; }
.so-brand b { font-size: 22px; color: #1e3f73; }
.so-brand span { font-size: 17px; color: #1e7ac2; }
.so-brand small { margin-top: 8px; color: #555; }
.so-fields { display: flex; flex-direction: column; gap: 4px; }
.so-fields label { color: #333; margin-top: 4px; }
.so-fields input { height: 26px; border: 1px solid #aeb4bf; padding: 0 6px; font: inherit; background: #fff; }
.so-fields input:focus { outline: 2px solid #5f86bd; outline-offset: -1px; }
.so-err { color: #b00; min-height: 1.2em; margin: 6px 0 0; }
.so-acts { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 10px 14px 12px; border-top: 1px solid #cfd3da; }
.so-note { margin-right: auto; font-size: 12px; color: #555; }
#view-denied .so-body { display: block; }

/* confirm / message dialog */
.dlg-back { position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center; background: rgba(10, 16, 28, .45); }
.dlg-body { display: block; max-height: 60vh; overflow: auto; }
.dlg-body p { margin: 0 0 8px; }
.codes { margin: 8px 0 0; padding: 0; list-style: none; font: 13px Consolas, monospace; }
.codes li { display: flex; gap: 16px; padding: 3px 0; border-bottom: 1px dotted #ccc; }
.codes li b { min-width: 60px; }

/* grids: pick boxes, tags */
.grid td.pk, .grid th.pk { width: 26px; text-align: center; }
.grid tbody tr.off td { color: #999; }
.tag { display: inline-block; min-width: 20px; padding: 0 6px; border-radius: 2px; font-size: 11.5px; line-height: 18px; text-align: center; }
.tag.admin { background: #fbe3c9; color: #8a4b00; }
.tag.dispatcher { background: #d9e7f7; color: #164a86; }
.tag.officer { background: #e6e6e6; color: #333; }
.tag.ok { background: #d9eadb; color: #1d6b33; }
.tag.warn { background: #fff0c2; color: #7a5a00; }
.tag.bad { background: #f7d9d9; color: #8d1b1b; }
.bulk { display: flex; align-items: center; gap: 8px; margin: 0 10px 8px; padding: 6px 10px; background: #eaf1fb; border: 1px solid #b9cbe6; }
.bulk b { margin-right: 8px; }
.bulk select { height: 26px; font: inherit; }

/* documents: action rows and lists */
.acts-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 12px 0; }
.btn.danger { border-color: #b35a5a; color: #8d1b1b; }
.btn.primary { border-color: #3d6fb3; font-weight: 600; }
.mini { margin: 0 12px; padding: 0; list-style: none; max-width: 760px; }
.mini li { display: grid; grid-template-columns: 70px 1fr 150px; gap: 10px; padding: 3px 4px; border-bottom: 1px solid #e3e5e9; }
.stack { margin: 8px 12px; max-width: 900px; padding: 8px; background: #f6f7f9; border: 1px solid #d4d7dd; font: 12px Consolas, monospace; white-space: pre-wrap; overflow: auto; max-height: 320px; }
.kpis { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 12px 10px; }
.kpi { min-width: 150px; padding: 8px 12px; background: #f6f7f9; border: 1px solid #d4d7dd; }
.kpi b { display: block; font-size: 20px; font-weight: 600; }
.kpi span { color: #555; font-size: 12px; }
.tool { margin: 0 12px 14px; padding: 10px 12px; max-width: 760px; border: 1px solid #d4d7dd; background: #fafbfc; }
.tool h5 { margin: 0 0 8px !important; }
.tool .row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.tool select, .tool input { height: 26px; font: inherit; }
.l-sec .l-ico.ic-user { border: 3px solid #3b8ed0; border-radius: 50% 50% 4px 4px; }
.l-sec .l-ico.ic-sys { border: 3px dashed #3b8ed0; border-radius: 50%; }
.l-sec .l-ico.ic-fire { background: radial-gradient(circle at 50% 70%, #ffb13b 0 30%, #e8501b 31% 60%, transparent 61%); }

html.dark .signon { background: linear-gradient(160deg, #10141b, #262d3a); }
html.dark .so-dlg { background: #23272e; border-color: #0b0e14; }
html.dark .so-brand { border-right-color: #3c4148; }
html.dark .so-brand b { color: #9cc3ef; }
html.dark .so-brand small, html.dark .so-note, html.dark .so-fields label { color: #aab0b8; }
html.dark .so-fields input { background: #15171a; color: #e4e6e9; border-color: #4a5058; }
html.dark .so-acts { border-top-color: #3c4148; }
html.dark .bulk { background: #22303f; border-color: #3a5474; }
html.dark .stack, html.dark .kpi, html.dark .tool { background: #20242a; border-color: #3c4148; }
html.dark .kpi span { color: #aab0b8; }
html.dark .mini li { border-bottom-color: #30353c; }
html.dark .codes li { border-bottom-color: #3c4148; }
html.dark .tag.admin { background: #4a3218; color: #f3c58f; }
html.dark .tag.dispatcher { background: #1e3552; color: #9cc3ef; }
html.dark .tag.officer { background: #33383f; color: #d0d4d9; }
html.dark .tag.ok { background: #1f3a26; color: #8fe0a3; }
html.dark .tag.warn { background: #45391a; color: #f0d58a; }
html.dark .tag.bad { background: #472325; color: #ffb4b4; }

/* Feature Flags: the test unit list */
.tunits .row { margin-bottom: 6px; }
.tunits .tu-num { width: 48px; text-align: center; }
/* Recording Archive: the picked recording, playable under the grid. */
.rec-play { display: flex; flex-direction: column; gap: 8px; padding: 8px 10px; border-top: 1px solid #c9ced6; }
.rec-play audio { width: 100%; max-width: 640px; }

/* Sign in with the ATXRP account (Authentik). */
.sso-btn { display: inline-block; text-decoration: none; text-align: center; }
.sso-btn.hidden, .sso-btn[hidden] { display: none; }

/* The ATXRP sign-in button: as wide as its words, on one line, ahead of OK. */
.so-acts .sso-btn { flex-shrink: 0; width: auto; min-width: 0; white-space: nowrap; padding: 0 14px; margin-right: 8px; line-height: 24px; }
