/* Admin (Sprint 7d): section navigation, setup checklist, Process editor, users. Tokens only; no inline styles. */
/* The admin shell reuses the sidebar of shell.css; these are its collapsible groups. */
.sb-group { display: flex; flex-direction: column; gap: 2px; }
.sb-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; border: 0; background: none; text-align: left; cursor: pointer; }
.sb-toggle:hover { opacity: 1; color: #fff; }
.sb-group-items { display: flex; flex-direction: column; gap: 2px; }
@media (max-width: 1100px) { .sb-group-items.hidden { display: flex !important; } .sb-toggle { display: none; } }
.adm-actions { display: flex; align-items: center; gap: var(--s-2); }
.adm-page.legacy { max-width: 900px; }
.row-actions { text-align: right; }

/* setup checklist */
.checklist { list-style: none; margin: 0; padding: 0; }
.checklist li { display: flex; align-items: center; gap: var(--s-4); padding: var(--s-4) var(--s-5); border-bottom: 1px solid var(--line); }
.checklist li:last-child { border-bottom: 0; }
.checklist .ck { color: var(--n-400); display: inline-flex; } .checklist li.done .ck { color: var(--good); }
.checklist .ck .icon { width: 22px; height: 22px; }
.ck-text { flex: 1; min-width: 0; }

/* process editor */
.preset-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--s-3); margin-top: var(--s-4); }
.preset-card { display: flex; flex-direction: column; gap: var(--s-1); padding: var(--s-4); text-align: left; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-xs); font: inherit; color: inherit; }
.preset-card:hover { border-color: var(--brand-200); box-shadow: var(--sh-md); }
.pstepper { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-1) 0; margin-top: var(--s-5); padding: var(--s-3); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); }
.pstep { display: flex; align-items: center; }
.parrow { display: inline-flex; color: var(--n-300); margin: 0 2px; }
.pchip { display: inline-flex; align-items: center; gap: var(--s-2); height: 36px; padding: 0 var(--s-3); border: 1px solid var(--line-strong); border-radius: var(--r-md); background: var(--surface); font-size: var(--fs-sm); font-weight: 600; color: var(--text); cursor: grab; }
.pchip:hover { background: var(--surface-2); }
.pchip.active { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.pchip.dragging { opacity: .45; } .pchip.drop { box-shadow: 0 0 0 3px var(--brand-200); }
.pnum { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--n-100); font-size: 11px; color: var(--text-2); }
.pchip.active .pnum { background: var(--accent); color: var(--on-accent); }
.pcount { padding: 0 6px; border-radius: var(--r-pill); background: var(--n-100); font-size: 11px; color: var(--text-2); }
.pdrag { margin: var(--s-2) 0 var(--s-4); }
.pdetail .panel-body { display: flex; flex-direction: column; gap: var(--s-5); }
.pd-top { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-4); flex-wrap: wrap; }
.pd-name { margin: 0; flex: 1; min-width: 240px; max-width: 420px; }
.pd-name input { width: 100%; height: 36px; padding: 0 var(--s-3); border: 1px solid var(--line-strong); border-radius: var(--r-md); background: var(--surface); font-size: var(--fs-md); font-weight: 600; }
.pd-name input:focus { border-color: var(--accent); box-shadow: var(--ring); }
.pd-tools { display: flex; gap: var(--s-2); }
.pgroup { display: flex; flex-direction: column; gap: var(--s-2); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.plabel { font-size: var(--fs-sm); font-weight: 600; }
.pgroup > .select { align-self: flex-start; min-width: 260px; }
.pchecks { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); }
.prow { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-3); }
.pbar { position: sticky; bottom: var(--s-4); display: none; align-items: center; justify-content: space-between; gap: var(--s-4); margin-top: var(--s-5); padding: var(--s-3) var(--s-4); background: var(--ink-900); color: #fff; border-radius: var(--r-lg); box-shadow: var(--sh-lg); }
.pbar.show { display: flex; }
.pbar .bad { color: #fecaca; margin-left: var(--s-2); }
.pbar-actions { display: flex; gap: var(--s-2); }
.pbar .btn-ghost { color: #e2e8f0; } .pbar .btn-ghost:hover { background: rgba(255, 255, 255, .12); }
.plist { margin: 0; padding-left: var(--s-5); display: flex; flex-direction: column; gap: 4px; }
.pv-stepper { margin-bottom: var(--s-5); }
.pv-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--s-3); }
.pv-item { padding: var(--s-3) var(--s-4); border: 1px solid var(--line); border-radius: var(--r-md); background: var(--n-25); }
.pv-item ul { margin: var(--s-2) 0 0; padding-left: var(--s-4); font-size: var(--fs-sm); color: var(--text-2); }
.work-rows { display: flex; flex-direction: column; gap: var(--s-2); }
.work-row { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.work-title { flex: 1; min-width: 180px; height: 32px; padding: 0 var(--s-3); border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--surface); font-size: var(--fs-sm); }
.work-num { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-xs); color: var(--text-2); }
.work-num input { width: 64px; height: 32px; padding: 0 var(--s-2); border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--surface); font-size: var(--fs-sm); }

/* users */
.role-rows { display: flex; flex-direction: column; gap: var(--s-2); margin-bottom: var(--s-3); }
.role-row, .role-add { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.role-row .role-dept { flex: 1 1 12rem; min-width: 0; }
.role-dept { font-size: var(--fs-sm); }

/* roles, rules, workflow editor */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--s-5); }
@media (max-width: 760px) { .grid-2 { grid-template-columns: 1fr; } }
.perm-chip { margin: 0 4px 4px 0; }
.perm-list { display: flex; flex-direction: column; gap: var(--s-2); max-height: 320px; overflow-y: auto; }
.perm-list .check { align-items: flex-start; }
.rule-h { margin: var(--s-5) 0 var(--s-2); font-size: var(--fs-md); }
.rule-row { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-2); }
.rule-row input, .rule-row select { flex: 1; min-width: 0; }
.table input:not([type=checkbox]):not([type=radio]), .rule-row input:not([type=checkbox]), .grid-2 input:not([type=checkbox]), .grid-2 select {
  width: 100%; height: 32px; padding: 0 var(--s-3); border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--surface); font-size: var(--fs-sm); }
.table input:focus, .rule-row input:focus, .grid-2 input:focus, .grid-2 select:focus { border-color: var(--accent); box-shadow: var(--ring); outline: 0; }
.table input:disabled, .grid-2 input:disabled, .grid-2 select:disabled { background: var(--n-50); color: var(--text-3); }
.table input[type=checkbox], .table input[type=radio] { width: 16px; height: 16px; accent-color: var(--accent); }
.table input.num-in { width: 72px; text-align: right; }
.table .select { width: 100%; }

/* Templates (Sprint 8e): placeholder chips and the sample-data preview */
.ph-list { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.ph-chip { cursor: pointer; font-family: var(--font-mono); border: 1px solid var(--border); background: var(--surface-2); }
.ph-chip:hover { border-color: var(--accent); }
.tpl-preview { white-space: pre-wrap; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-4); min-height: 3em; margin: 0; font: inherit; }

/* Access policy (Sprint 9b) */
.adm-sub { margin: var(--s-5) 0 var(--s-3); font-size: var(--fs-md, 1rem); color: var(--text); }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s-4); }

/* Users: people on the left, the selected person's setup on the right (Sprint 9 follow-up) */
.adm-page.adm-wide { max-width: none; }
.users-split { display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); gap: var(--s-4); align-items: start; }
.users-list { position: sticky; top: var(--s-3); max-height: calc(100vh - 8rem); display: flex; flex-direction: column; }
.users-list-hd { display: flex; gap: var(--s-2); padding: var(--s-3); border-bottom: 1px solid var(--border); }
.users-list-hd input { flex: 1; min-width: 0; }
.users-items { overflow-y: auto; display: flex; flex-direction: column; }
.users-item { display: grid; gap: 2px; text-align: left; padding: var(--s-3); border: 0; border-bottom: 1px solid var(--border); background: transparent; color: var(--text); cursor: pointer; font: inherit; }
.users-item:hover { background: var(--n-100); }
.users-item.active { background: var(--n-100); box-shadow: inset 3px 0 0 var(--accent); }
.users-item .ui-name { font-weight: 600; }
.users-item .ui-mail { font-size: var(--fs-sm); color: var(--text-muted, var(--text)); overflow-wrap: anywhere; }
.users-item .ui-chips { display: flex; gap: var(--s-1); flex-wrap: wrap; }
.users-none { padding: var(--s-4); margin: 0; }
.users-detail { display: grid; gap: var(--s-4); min-width: 0; }
.ud-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; }
.ud-head .adm-title { display: inline-block; margin: 0 var(--s-3) 0 0; }
.ud-save { display: inline-flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.ud-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--s-4); }
.ud-confirm { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; padding: var(--s-3); border: 1px solid var(--border); border-radius: var(--r-md, 8px); background: var(--n-100); margin-top: var(--s-3); }
.ud-secret { border-color: var(--accent); }
.ud-role-controls { display: flex; align-items: flex-end; gap: var(--s-3); flex-wrap: wrap; margin-bottom: var(--s-3); }
.ud-role-controls .field { margin: 0; }
@media (max-width: 800px) { .users-split { grid-template-columns: 1fr; } .users-list { position: static; max-height: 18rem; } }
/* Activity log (Sprint 9f) */
.log-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: var(--s-3); align-items: end; }
.log-filter-btns { display: flex; gap: var(--s-2); }
.log-table code { font-size: var(--fs-sm); overflow-wrap: anywhere; }
.log-masked td { color: var(--text-muted, var(--text)); font-style: italic; }
.log-detail td { background: var(--n-100); }
.log-dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--s-1) var(--s-3); margin: var(--s-2) 0; }
.log-dl dt { font-weight: 600; } .log-dl dd { margin: 0; overflow-wrap: anywhere; }
/* AI log and cost (Sprint 9g) */
.adm-sub { margin: var(--s-5) 0 var(--s-3); font-size: var(--fs-lg, 1.1rem); }
.log-q { max-width: 28rem; overflow-wrap: anywhere; }
.log-ai-detail { display: grid; gap: var(--s-3); }
.log-ai-detail p { margin: var(--s-1) 0 0; }