/* Administration: Access, Groups and roles, System details. Read-only views of Entra configuration. */
.admin-settings { display:grid; gap:20px; min-width:0; }
.admin-icon { flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.admin-settings-tabs { display:flex; gap:32px; min-width:0; overflow-x:auto; margin-inline:-8px; padding-inline:8px; border-bottom:1px solid var(--border); scrollbar-width:none; }
.admin-settings-tab { flex:none; display:flex; align-items:center; height:46px; margin-bottom:-1px; padding:0; border:0; border-bottom:3px solid transparent; color:var(--text); background:transparent; font:inherit; font-size:15px; font-weight:400; white-space:nowrap; cursor:pointer; }
.admin-settings-tab:hover { color:var(--strong); }
.admin-settings-tab[aria-selected="true"] { border-bottom-color:var(--accent); color:var(--strong); font-weight:600; }
/* The tab strip scrolls sideways, which clips an outside outline: draw the focus ring inside the tab height. */
.admin-settings-tab { position:relative; }
.admin-settings-tab:focus-visible { outline:2px solid var(--focus-ring); outline-offset:-4px; border-radius:6px; }
.admin-settings-status { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.admin-settings-content { display:grid; gap:20px; min-width:0; }
.admin-settings-content:focus { outline:none; }
.admin-settings-section-intro { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.admin-settings-section-intro p { flex:1 1 320px; }
.admin-settings-card { display:grid; align-content:start; gap:14px; min-width:0; padding:20px 24px; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.admin-settings-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.admin-settings-card h3 { margin:0; color:var(--strong); font-size:17px; line-height:24px; font-weight:600; overflow-wrap:anywhere; }
.admin-settings-card-list { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap:20px; min-width:0; }
.admin-settings-group-list { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.admin-settings-group-card { gap:12px; padding:22px 24px; }
.admin-settings-group-card > .chip { justify-self:start; }
.admin-settings-group-purpose { margin:0; color:var(--text); font-size:14px; line-height:20px; }
.admin-settings-group-facts { display:flex; flex-wrap:wrap; gap:6px 20px; margin:0; padding-top:12px; border-top:1px solid var(--border); color:var(--text); font-size:14px; line-height:20px; font-variant-numeric:tabular-nums; }
.admin-owner-name { color:var(--strong); }
.admin-icon-link { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; margin:-6px -6px -6px 0; border-radius:8px; color:var(--accent-text); }
.admin-icon-link:hover { background:var(--tint); }
.admin-directory-owners { display:grid; gap:6px; margin-top:auto; }
.admin-settings-role-list { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap:10px; }
.admin-settings-role { display:grid; gap:3px; min-width:0; padding:12px; border:1px solid var(--border-soft); border-radius:8px; background:var(--surface-subtle); }
.admin-settings-role strong { color:var(--strong); }
.admin-settings-technical-role { margin:0; color:var(--text); font-size:13px; overflow-wrap:anywhere; }
.admin-settings-role-help, .admin-directory-role-help { margin-top:6px; }
.admin-settings-role-help summary, .admin-directory-role-help summary { color:var(--accent-text); cursor:pointer; font-size:13px; font-weight:600; }
.admin-settings-role-help p, .admin-directory-role-help p { margin:6px 0 0; }
.admin-settings-muted { margin:0; color:var(--text); font-size:13px; line-height:18px; overflow-wrap:anywhere; }
.admin-settings-muted-inline { color:var(--text); }
.admin-settings-pill { max-width:100%; }
.admin-settings-error { margin:0; padding:14px; border-radius:8px; color:var(--error-fg); background:var(--error-bg); }
.admin-settings-loading, .admin-settings-empty { margin:0; padding:22px; border:1px dashed var(--border-strong); border-radius:8px; color:var(--text); background:var(--surface-subtle); }
.admin-settings-link { max-width:100%; overflow-wrap:anywhere; color:var(--accent-text); font-weight:600; }
.admin-settings-role-reference { border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.admin-settings-role-reference > summary { min-height:48px; padding:13px 18px; color:var(--strong); cursor:pointer; font-weight:600; }
.admin-settings-role-reference > p, .admin-settings-role-reference > .admin-settings-role-list { margin-inline:18px; }
.admin-settings-role-reference > p { margin-bottom:12px; }
.admin-settings-role-reference > .admin-settings-role-list { margin-bottom:18px; }

.admin-settings-connection-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; min-width:0; padding:14px 20px; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.admin-settings-connection-row > .admin-icon { color:var(--text); }
.admin-settings-connection-row.is-connected > .admin-icon { color:var(--accent); }
.admin-settings-connection-copy { flex:1 1 280px; min-width:0; margin:0; color:var(--strong); font-size:15px; line-height:22px; overflow-wrap:anywhere; }
.admin-settings-connection-copy strong { font-weight:600; }
.admin-settings-connection-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px 12px; min-width:0; }
.admin-settings-connection-controls .admin-settings-error { padding:0; background:transparent; }
.admin-settings-connection-controls .secondary-button, .admin-settings-connection-controls .primary-button { min-height:36px; height:36px; padding:0 14px; }
.admin-settings-status-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.admin-settings-connection-row.is-connected .admin-settings-status-row { display:none; }

.admin-access-grid { display:grid; grid-template-columns:440px minmax(0, 1fr); gap:24px; align-items:start; min-width:0; }
.admin-settings-card.admin-directory-search-card { gap:0; padding:0; overflow:hidden; }
.admin-directory-search { display:flex; align-items:center; gap:8px; height:44px; margin:16px; padding:0 12px; border:1px solid var(--border-strong); border-radius:8px; color:var(--text); background:var(--surface); }
.admin-directory-search:focus-within { outline:2px solid var(--focus-ring); outline-offset:2px; }
/* 0.4.170: one focus ring (on the field) and no native blue clear button; Escape still clears the search. */
.admin-directory-search input[type="search"]:focus-visible { outline:0; }
.admin-directory-search input[type="search"]::-webkit-search-cancel-button, .admin-directory-search input[type="search"]::-webkit-search-decoration { -webkit-appearance:none; appearance:none; display:none; }
.admin-directory-search input[type="search"], .admin-directory-search input[type="search"]:focus { flex:1; width:auto; min-width:0; min-height:0; height:100%; padding:0; border:0; outline:0; box-shadow:none; color:var(--strong); background:transparent; font:inherit; font-size:15px; }
.admin-directory-search-input::placeholder { color:var(--placeholder); }
.admin-directory-list-label { margin:0; padding:0 16px 8px; color:var(--text); font-size:13px; line-height:18px; font-weight:600; }
.admin-directory-results { display:grid; min-width:0; }
.admin-directory-results > .admin-settings-empty, .admin-directory-results > .admin-settings-loading, .admin-directory-results > .admin-settings-error { margin:0 16px 16px; }
.admin-directory-results-note { padding:0 16px 8px; }
.admin-directory-person-row { display:flex; align-items:center; gap:12px; width:100%; min-height:56px; padding:8px 16px; border:0; border-top:1px solid var(--border); color:var(--strong); background:transparent; font:inherit; text-align:left; cursor:pointer; }
.admin-directory-person-row:hover { background:var(--surface-subtle); }
.admin-directory-person-row[aria-current="true"] { background:var(--tint); box-shadow:inset 4px 0 0 var(--accent); }
.admin-directory-person-row:focus-visible { outline:3px solid var(--accent); outline-offset:-3px; }
.admin-person-row-copy { display:grid; flex:1; min-width:0; }
.admin-person-row-copy strong { font-size:15px; line-height:22px; font-weight:600; overflow-wrap:anywhere; }
.admin-person-row-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-avatar { display:inline-flex; flex:none; align-items:center; justify-content:center; width:36px; height:36px; border-radius:100%; color:var(--strong); background:var(--surface-muted); font-size:12px; font-weight:600; }
.admin-avatar.is-large { width:64px; height:64px; font-size:20px; }

.admin-directory-person { gap:24px; }
.admin-directory-person:focus { outline:none; }
.admin-directory-person:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.admin-directory-person > * { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.admin-person-header { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
.admin-person-titles { display:grid; flex:1 1 220px; gap:2px; min-width:0; }
.admin-person-titles h2 { margin:0; color:var(--strong); font-size:20px; line-height:28px; font-weight:600; overflow-wrap:anywhere; }
.admin-person-titles .admin-settings-muted { font-size:15px; line-height:22px; }
.admin-person-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.admin-external-link { display:inline-flex; align-items:center; gap:6px; font-size:15px; text-decoration:none; }
.admin-external-link:hover { text-decoration:underline; }
.admin-person-section { display:grid; gap:10px; }
.admin-person-section h3 { margin:0; color:var(--strong); font-size:16px; line-height:24px; font-weight:600; }
.admin-person-chips { display:flex; flex-wrap:wrap; gap:8px; }
.admin-access-table { overflow-x:auto; border:1px solid var(--border); border-radius:8px; }
.admin-access-table table { width:100%; min-width:0; table-layout:fixed; border-collapse:collapse; font-size:15px; line-height:22px; }
.admin-access-table thead th:first-child { width:30%; }
.admin-access-table thead th:last-child { width:24%; }
.admin-access-table thead th { height:40px; padding:0 16px; border-bottom:1px solid var(--border); color:var(--text); background:var(--bg); font-size:13px; font-weight:600; text-align:left; white-space:nowrap; }
.admin-access-table tbody th, .admin-access-table tbody td { padding:12px 16px; background:transparent; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.admin-access-table tbody tr:last-child > * { border-bottom:0; }
.admin-access-table tbody th { height:auto; color:var(--strong); font-size:15px; font-weight:600; line-height:22px; }
.admin-access-table tbody td { height:auto; }
.admin-access-table tbody td:nth-child(2) { color:var(--text); }
.admin-access-table tbody td:last-child { color:var(--strong); }
.admin-policy-note { margin:0; }
.admin-person-footer { display:grid; gap:8px; justify-items:start; }
.admin-directory-session-note { margin:0; color:var(--text); font-size:13px; line-height:18px; }
.admin-directory-conflict { margin:0; padding:10px 12px; border-radius:8px; color:var(--warn-fg); background:var(--warn-bg); }
.admin-directory-evidence { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }

.admin-system-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:24px; align-items:start; }
.admin-system-card { gap:0; padding:0; overflow:hidden; }
.admin-system-card h2 { margin:0; padding:20px 24px 12px; color:var(--strong); font-size:17px; line-height:24px; font-weight:600; }
.admin-system-row { display:flex; align-items:center; gap:16px; min-height:52px; padding:8px 24px; border-top:1px solid var(--border); }
.admin-system-row-copy { display:grid; flex:1; gap:2px; min-width:0; }
.admin-system-row-label { color:var(--strong); font-size:15px; line-height:22px; overflow-wrap:anywhere; }
.admin-system-row > .chip { flex:none; }
.admin-chip-link { gap:4px; color:var(--strong); text-decoration:none; }
.admin-chip-link:hover { border-color:var(--accent); color:var(--accent-text); }
.admin-system-note { font-size:14px; line-height:20px; }

/* 0.4.161: credit-tier groups from the uploaded spending policies (Groups and roles). */
.admin-credit-tiers { display:grid; gap:12px; min-width:0; margin-block:24px 40px; }
.admin-settings-subheading { margin:0 0 16px; color:var(--strong); font-size:17px; line-height:24px; font-weight:600; }
.admin-settings-group-list + p { margin:20px 0 16px; }
.admin-credit-tiers h3 { margin:0; color:var(--strong); font-size:17px; line-height:24px; font-weight:600; }
.admin-credit-tier-list { grid-template-columns:repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.admin-credit-tier-card h4 { margin:0; color:var(--strong); font-size:16px; line-height:22px; font-weight:600; overflow-wrap:anywhere; }
.admin-credit-tier-card > .admin-settings-pill { justify-self:start; }
.admin-credit-tier-card .admin-icon-link { width:44px; height:44px; margin:-10px -10px -10px 0; }
.admin-credit-tier-setup { display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:center; gap:8px 12px; padding:16px; border:1px solid var(--field-border); border-radius:8px; background:var(--surface); }
.admin-credit-tier-setup strong { color:var(--strong); font-size:15px; }
.admin-credit-tier-setup p { grid-column:1 / -1; }
.admin-credit-tier-fallback { display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.admin-credit-tier-fallback li { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; padding:8px 12px; border:1px solid var(--border); border-radius:8px; background:var(--surface-subtle); color:var(--strong); }
.admin-credit-tier-warnings { display:grid; gap:4px; margin:0; padding:10px 12px 10px 28px; border-radius:8px; color:var(--warning); background:var(--warning-soft); font-size:13px; line-height:18px; overflow-wrap:anywhere; }

@media (max-width:1280px) {
  .admin-settings-group-list { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:1100px) {
  .admin-access-grid { grid-template-columns:minmax(0, 1fr); }
  .admin-system-grid { grid-template-columns:minmax(0, 1fr); }
}
@media (max-width:760px) {
  .admin-settings-group-list { grid-template-columns:minmax(0, 1fr); }
  .admin-settings-card { padding:16px; }
  .admin-settings-tabs { gap:20px; }
  .admin-settings-connection-row { padding:12px 16px; }
  .admin-settings-connection-controls { justify-content:flex-start; }
  .admin-system-row { flex-wrap:wrap; padding:8px 16px; }
  .admin-system-card h2 { padding:16px 16px 10px; }
  .admin-access-table thead { display:none; }
  .admin-access-table table, .admin-access-table tbody, .admin-access-table tr, .admin-access-table tbody th, .admin-access-table tbody td { display:block; min-width:0; }
  .admin-access-table tbody tr { padding:10px 14px; border-bottom:1px solid var(--border); }
  .admin-access-table tbody tr:last-child { border-bottom:0; }
  .admin-access-table tbody th, .admin-access-table tbody td { padding:2px 0; border:0; }
}
@media (max-width:420px) {
  .admin-settings-tabs { gap:16px; }
  .admin-settings-tab { font-size:14px; }
}

/* 0.4.162: About the system. Groups and roles first; technical details folded. */
.admin-about-title { margin:0 0 12px; color:var(--strong); font-size:var(--font-section-title-size); }
.admin-about-technical { margin-top:24px; border-top:1px solid var(--border); padding-top:8px; }
.admin-about-technical > summary { display:flex; align-items:center; min-height:44px; color:var(--strong); font-weight:600; cursor:pointer; }
.admin-settings-sections { min-width:0; }
.admin-about-technical > summary { list-style:none; gap:8px; }
.admin-about-technical > summary::-webkit-details-marker { display:none; }
.admin-about-technical > summary::before { content:"\25B8"; color:var(--muted); }
.admin-about-technical[open] > summary::before { content:"\25BE"; }
