/* ---------- admin shell (wireframe §3.4) ---------- */
.login-view {
  max-width: 26rem;
  margin: 10vh auto;
  padding: 0 var(--sp-4);
}

.admin-shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: rgb(var(--c-bg));
}

.admin-body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  position: relative;
}

.admin-main {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
  padding: var(--sp-4);
  padding-bottom: max(var(--sp-6), env(safe-area-inset-bottom));
  overflow: auto;
}

.app-header-menu { color: #fff; display: inline-grid; }
.app-header .brand { text-decoration: none; white-space: nowrap; }

/* side-nav in shell: desktop/tablet */
.admin-shell .side-nav {
  flex: none;
  display: none;
  height: auto;
  min-height: 0;
}
.side-nav-scroll { flex: 1 1 auto; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.side-nav-icon {
  flex: none; width: 1.25em; text-align: center;
  font-style: normal; font-weight: 600;
}
.side-nav-footer { margin-top: auto; }

/* F0 icon-rail hides all .side-nav-item > span; keep the icon visible */
@media (min-width: 768px) and (max-width: 1023px) {
  .admin-shell .side-nav-item > .side-nav-icon { display: inline; }
}

@media (min-width: 768px) {
  .admin-shell .side-nav { display: flex; }
  .app-header-menu { display: none; }
}

@media (min-width: 1024px) {
  .admin-main { padding: var(--sp-6); }
}

/* mobile drawer <768 */
.nav-drawer-backdrop {
  position: fixed; inset: 0; z-index: 40;
  background: rgb(0 0 0 / 0.35);
}
.nav-drawer {
  position: fixed; top: 0; bottom: 0; left: 0; z-index: 50;
  width: min(var(--nav-w), 86vw);
  display: flex; flex-direction: column; gap: 2px;
  padding: var(--sp-3) var(--sp-2);
  padding-top: max(var(--sp-3), env(safe-area-inset-top));
  background: rgb(var(--c-surface));
  border-right: 1px solid rgb(var(--c-line));
  box-shadow: var(--shadow-2);
  overflow-y: auto;
}
.nav-drawer-head {
  display: flex; align-items: center; gap: var(--sp-2);
  padding: 0 var(--sp-2) var(--sp-3);
}
.nav-drawer-head .panel-heading { flex: 1; margin: 0; padding: 0; }

@media (min-width: 768px) {
  .nav-drawer, .nav-drawer-backdrop { display: none !important; }
}

/* user menu */
.user-menu { position: relative; }
.user-menu-btn {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: var(--hit); padding: 0 10px;
  border: 0; border-radius: var(--radius-sm);
  background: rgb(255 255 255 / 0.14); color: #fff;
  font: inherit; font-weight: 600; cursor: pointer;
}
.user-menu-btn:hover { background: rgb(255 255 255 / 0.22); }
.user-menu-caret { opacity: 0.8; font-size: 11px; }
.user-menu-dropdown {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 30;
  min-width: 200px; padding: var(--sp-2);
  background: rgb(var(--c-surface)); color: rgb(var(--c-ink));
  border: 1px solid rgb(var(--c-line)); border-radius: var(--radius);
  box-shadow: var(--shadow-2);
}
.user-menu-meta { padding: 6px 10px; }
.user-menu-item {
  display: block; width: 100%;
  min-height: var(--hit); padding: 0 10px;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: rgb(var(--c-ink));
  font: inherit; font-weight: 500; text-align: left; cursor: pointer;
}
.user-menu-item:hover { background: rgb(var(--c-primary) / 0.06); }

/* record tab close */
.record-tab-close {
  display: inline-grid; place-items: center;
  margin-left: 8px; width: 22px; height: 22px;
  border-radius: var(--radius-pill);
  font-size: 14px; line-height: 1; cursor: pointer;
}
.record-tab-close:hover { background: rgb(var(--c-ink) / 0.08); }

/* data table extras */
.data-table-root .card { padding: 0; overflow: hidden; }
.data-table-root .table-wrap.card { margin-bottom: 0; }
.data-table tbody tr.is-clickable { cursor: pointer; }
.data-table th.is-sortable { cursor: pointer; user-select: none; }
.data-table th.is-sortable:hover { color: rgb(var(--c-ink)); }
.filter-search { flex: 1 1 220px; max-width: 360px; }
.filter-search .input { flex: 1; min-width: 0; }
.table-status { margin-bottom: var(--sp-3); }

/* session detail */
.session-detail { display: flex; flex-direction: column; gap: 0; }
.session-detail .patient-banner { position: sticky; top: 0; }
.session-detail-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-4);
  margin-top: var(--sp-4);
  align-items: start;
}
.session-facts { position: sticky; top: calc(var(--banner-h) + var(--sp-2)); }
.fact-row + .fact-row { margin-top: var(--sp-2); padding-top: var(--sp-2); border-top: 1px solid rgb(var(--c-line)); }
.session-turn { align-items: flex-start; }

@media (min-width: 900px) {
  .session-detail-body { grid-template-columns: minmax(0, 1fr) 260px; }
}

/* kiosk open banner (F5) */
.kiosk-banner-host { margin-bottom: var(--sp-3); }
.kiosk-banner.flag {
  display: flex; width: 100%;
  min-height: var(--hit); height: auto;
  padding: 10px 14px; border-radius: var(--radius-sm);
  font-size: var(--fs-sm); line-height: 1.4;
}

/* settings sub-nav */
.settings-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-4);
  align-items: start;
}
.settings-subnav {
  display: flex; flex-wrap: wrap; gap: 4px;
  padding: 4px; border-radius: var(--radius-sm);
  background: rgb(var(--c-ink) / 0.06);
}
.settings-subnav-item {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: calc(var(--hit) - 4px); padding: 6px 12px;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: rgb(var(--c-mute));
  font: inherit; font-size: var(--fs-sm); font-weight: 600; cursor: pointer;
}
.settings-subnav-item:hover { color: rgb(var(--c-ink)); }
.settings-subnav-item.is-active {
  background: rgb(var(--c-primary)); color: #fff;
}
.dirty-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgb(var(--c-warn)); flex: none;
}
.settings-subnav-item.is-active .dirty-dot { background: #fff; }
.settings-field .form-row { margin-bottom: 0; }
@media (min-width: 900px) {
  .settings-layout { grid-template-columns: 160px minmax(0, 1fr); }
  .settings-subnav {
    flex-direction: column; flex-wrap: nowrap;
    position: sticky; top: var(--sp-2);
  }
  .settings-subnav-item { justify-content: flex-start; width: 100%; }
}

/* roles matrix */
.role-matrix-wrap { overflow: auto; max-width: 100%; }
.role-matrix { border-collapse: separate; border-spacing: 0; min-width: 100%; }
.role-matrix th, .role-matrix td {
  padding: 8px 10px; border-bottom: 1px solid rgb(var(--c-line));
  vertical-align: middle;
}
.role-matrix-sticky {
  position: sticky; left: 0; z-index: 2;
  background: rgb(var(--c-surface));
  min-width: 180px; max-width: 260px;
}
.role-matrix thead .role-matrix-sticky { z-index: 3; background: rgb(var(--c-surface-2)); }
.role-matrix-col { text-align: center; min-width: 100px; }
.role-matrix-group td { background: rgb(var(--c-surface-2)); }

/* devices enrolment code */
.enrol-code {
  font-size: 2rem; font-weight: 700; letter-spacing: 0.2em;
  text-align: center; padding: var(--sp-3);
  background: rgb(var(--c-surface-2)); border-radius: var(--radius-sm);
}
.enrol-code.is-expired { opacity: 0.45; text-decoration: line-through; }
.enrol-countdown { font-variant-numeric: tabular-nums; }

/* glossary pin toggle */
.pin-toggle.is-active,
.pin-toggle[aria-pressed="true"] {
  color: rgb(var(--c-primary)); font-weight: 600;
}
.filter-badge { margin-left: 4px; vertical-align: middle; }

/* legacy admin layout leftovers (unused after shell rewrite; keep harmless) */
.admin-layout { min-height: 100vh; min-height: 100dvh; }
.admin-sidebar { display: none; }
.mobile-topbar { display: none; }
.nav-group-title { padding: 18px 12px 6px; font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgb(var(--c-mute)); }
.nav-item {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 8px 12px;
  border: 0; border-radius: var(--radius-control); background: transparent; text-align: left; text-decoration: none;
  font-size: 15px; font-weight: 500; color: rgb(var(--c-ink)); cursor: pointer;
}
.nav-item:hover { background: rgb(var(--c-primary) / 0.06); }
.nav-item.is-active { background: rgb(var(--c-primary) / 0.1); color: rgb(var(--c-primary)); font-weight: 600; }

/* Session detail: expandable SOAP versions */
.amend-version > summary { cursor: pointer; }
