.admin-nav-group { display:grid; gap:2px; min-width:0; }
.admin-nav-group + .admin-nav-group { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.admin-nav-group h2 { margin:0 12px 5px; color:var(--ink-soft); font:700 .68rem var(--font-body); letter-spacing:.08em; text-transform:uppercase; }
.admin-rail-nav button { width:100%; padding:10px 12px; }
.admin-rail { max-height:calc(100dvh - 32px); overflow-y:auto; }
.admin-rail-nav .rail-copy > span { display:none; }
.admin-mobile-workspace { display:none; }
.shell.shell--with-sidebar.shell--admin { padding-left:250px; }
.shell.shell--with-sidebar.shell--admin .app-sidebar { width:250px; }
.shell.shell--with-sidebar.shell--admin .shell-main { max-width:1600px; }
.shell--admin .admin-layout { display:block; }
.shell--admin .sidebar-nav { align-items:stretch; }
.admin-primary-workspaces { width:100%; min-width:0; }
.shell--admin .admin-rail-nav button { align-items:center; gap:10px; padding:9px 12px; }
.shell--admin .admin-rail-nav .nav-label { color:inherit; font-size:.85rem; }
.shell--admin .admin-rail-nav button.active { background:var(--amber-soft); color:var(--teal); }
.admin-workspace-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.admin-workspace-card { min-width:0; display:flex; flex-direction:column; gap:16px; }
.admin-workspace-card > p { margin:0; }
.admin-workspace-card > .actions { margin-top:auto; flex-wrap:wrap; }
.admin-workspace-heading { display:flex; gap:12px; align-items:center; }
.admin-workspace-heading h2 { margin:0; font-size:1.35rem; }
.admin-workspace-heading .eyebrow { margin:0 0 4px; }
.admin-workspace-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:12px; flex-shrink:0; color:var(--teal); background:var(--teal-light); }
[data-dashboard-area=accounts] .admin-workspace-icon { background:var(--amber-soft); color:#805020; }
.admin-workspace-icon .icon { width:24px; height:24px; }
.admin-workspace-metrics, .admin-course-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.admin-workspace-metrics > div, .admin-course-metrics > div { display:grid; align-content:start; gap:5px; min-width:0; }
.admin-workspace-metrics strong, .admin-course-metrics strong { font-size:1.8rem; font-weight:650; line-height:1.15; }
.admin-workspace-metrics span, .admin-course-metrics span { font-size:.8rem; color:var(--ink-soft); overflow-wrap:anywhere; }
.admin-workspace-preview { background:var(--paper); border-radius:12px; padding:14px; overflow-wrap:anywhere; }
.admin-workspace-preview h3 { font-size:.88rem; margin:0 0 8px; }
.admin-workspace-preview p { font-size:.85rem; line-height:1.65; margin:0; }
.admin-teaching-summary { margin:20px 0; }
.admin-teaching-summary h2, .admin-activity-grid h2 { font-size:1.25rem; margin:0; }
.admin-teaching-summary .page-head, .admin-activity-grid .page-head { margin-bottom:20px; }
.admin-teaching-summary .actions { flex-wrap:wrap; }
.admin-course-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
.admin-overview-list { display:grid; gap:0; }
.admin-overview-list button { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); padding:14px 0; display:flex; justify-content:space-between; text-align:left; gap:16px; width:100%; min-width:0; }
.admin-overview-list button:last-child { border-bottom:0; }
.admin-overview-list button:hover { color:var(--teal-mid); background:var(--paper); }
.admin-overview-list button > span { min-width:0; overflow-wrap:anywhere; }
.admin-overview-list button > span:last-child { flex-shrink:0; max-width:40%; font-size:.8rem; }
.admin-overview-list small { display:block; color:var(--ink-soft); line-height:1.5; margin-top:4px; }
@media(max-width:1100px) {
  .shell.shell--with-sidebar.shell--admin { padding-left:0; }
  .shell.shell--with-sidebar.shell--admin .app-sidebar { position:static; width:auto; height:auto; overflow:visible; border-right:0; border-bottom:1px solid var(--line); padding:16px; }
  .shell--admin .sidebar-nav { flex-direction:column; gap:12px; }
  .shell--admin .nav-logout { width:auto; align-self:flex-start; margin:0; }
  .admin-layout { grid-template-columns:minmax(0,1fr); }
  .admin-rail { position:static; }
  .admin-rail { max-height:none; overflow:visible; }
  .admin-rail-nav, .admin-rail-label { display:none; }
  .admin-mobile-workspace { display:grid; gap:8px; font-size:.85rem; font-weight:600; }
  .admin-mobile-workspace select { width:100%; margin:0; }
}
@media(max-width:720px) { .admin-workspace-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:520px) {
  .admin-teaching-summary .page-head { flex-direction:column; align-items:flex-start; gap:12px; }
  .admin-course-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .admin-workspace-card > .actions .btn { flex:1 1 auto; }
}

.attendance-batch-bar { display:flex; gap:20px; align-items:center; margin-bottom:20px; flex-wrap:wrap; }
.attendance-batch-bar .field { flex:1 1 220px; min-width:0; }
.attendance-batch-bar p { flex:2 1 280px; margin:0; }
.attendance-batch-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:16px; }
.attendance-batch-card { display:flex; flex-direction:column; align-items:flex-start; gap:12px; text-align:left; color:var(--ink); cursor:pointer; font:inherit; overflow-wrap:anywhere; }
.attendance-batch-card:hover { border-color:var(--teal); }
.attendance-batch-card strong { font-size:1.2rem; }
.attendance-summary { display:flex; align-items:center; gap:12px 24px; flex-wrap:wrap; margin:20px 0; }
.attendance-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:20px 0; }
.attendance-sessions { margin-top:16px; }
.attendance-session-open { display:grid; gap:6px; flex:1; min-width:0; padding:0; border:0; text-align:left; color:inherit; background:transparent; cursor:pointer; font:inherit; }
.attendance-session-open strong { font-size:1.1rem; }
.attendance-sessions .session-row { align-items:center; gap:20px; flex-wrap:wrap; }
.attendance-sessions .actions { flex-wrap:wrap; }
.attendance-management { margin:24px 0; padding-top:16px; border-top:1px solid var(--line); }
.attendance-management summary { cursor:pointer; font-weight:650; margin-bottom:16px; }
.attendance-full { grid-column:1/-1; }
.attendance-register { max-height:65vh; overflow:auto; }
.attendance-register th:first-child { position:sticky; left:0; z-index:1; background:var(--paper); min-width:150px; }
.attendance-register thead th { position:sticky; top:0; background:var(--paper); z-index:2; }
.attendance-register thead th:first-child { z-index:3; }
.attendance-register tbody th { text-transform:none; letter-spacing:normal; font-weight:400; }
.attendance-register th .btn { text-align:left; white-space:normal; min-width:140px; }
@media(max-width:600px) {
  .attendance-sessions .session-row { flex-direction:column; align-items:stretch; }
  .attendance-session-open { flex:0 1 auto; width:100%; }
  .attendance-summary { gap:12px; }
  .attendance-summary > span { flex:1 1 40%; }
  .attendance-tabs .btn { flex:1 1 40%; }
  .attendance-batch-bar { gap:12px; }
  .attendance-batch-bar p { flex-basis:100%; }
  #session-attendance-detail .page-head { flex-wrap:wrap; gap:12px; }
}
