/* registrar.css — the Registrar dashboard: tenant-scoped cohort oversight (students × assignments ×
   progress × standing × timeline × completion) + assign-curriculum + audit/export. SAGE-90-SCOPE §13. */

.reg-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 16px 0 22px; }
.reg-kpi { background: var(--bg-assistant); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; }
.reg-kpi .num { font-family: 'Outfit', sans-serif; font-size: 26px; font-weight: 300; color: var(--text); }
.reg-kpi .lbl { font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: var(--text-dim); margin-top: 4px; }
.reg-kpi.good .num { color: var(--mint); }
.reg-kpi.bad .num { color: var(--error); }
.reg-tenant { font-size: 13px; }

.reg-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.reg-table th { text-align: left; font-size: 10px; letter-spacing: .6px; text-transform: uppercase; color: var(--text-dim); font-weight: 600; padding: 8px 12px; border-bottom: 1px solid var(--border); }
.reg-row { border-bottom: 1px solid var(--border); cursor: pointer; transition: background .15s; }
.reg-row:hover { background: rgba(255,255,255,.02); }
.reg-row td { padding: 11px 12px; color: var(--text); vertical-align: middle; }
.reg-name { font-weight: 500; }
.reg-email { font-size: 11px; color: var(--text-dim); margin-top: 2px; }
.reg-prog { display: flex; align-items: center; gap: 8px; min-width: 150px; }
.reg-prog .bar { flex: 1; }
.reg-prog .pct { font-size: 11px; color: var(--text-dim); width: 36px; text-align: right; }
.reg-caret { display: inline-block; transition: transform .15s; color: var(--text-dim); margin-right: 8px; font-size: 10px; }
.reg-row.open .reg-caret { transform: rotate(90deg); }
.reg-detail td { background: rgba(255,255,255,.01); padding: 0 12px 12px 32px; }
.reg-assign-list { display: flex; flex-direction: column; gap: 6px; padding: 10px 0 4px; }
.reg-assign { display: flex; align-items: center; gap: 12px; font-size: 12.5px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; }
.reg-assign .ca-title { flex: 1; color: var(--text); }
.reg-assign .ca-due { font-size: 11px; color: var(--text-dim); width: 110px; }
.reg-assign .bar { width: 90px; flex-shrink: 0; }

/* assign panel */
.reg-assign-panel { background: var(--bg-assistant); border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; margin-bottom: 20px; display: none; }
.reg-assign-panel.open { display: block; }
.reg-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: end; }
.reg-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; }
.reg-field label { font-size: 10px; letter-spacing: .5px; text-transform: uppercase; color: var(--text-dim); }
.reg-field select, .reg-field input { background: var(--void); border: 1px solid var(--border); border-radius: 8px; padding: 9px 11px; color: var(--text); font-family: 'Inter', sans-serif; font-size: 13px; outline: none; }
.reg-field select:focus, .reg-field input:focus { border-color: var(--border-focus); }
.reg-result { font-size: 11.5px; color: var(--mint); margin-top: 4px; min-height: 16px; }

.reg-audit-note { font-size: 11.5px; color: var(--text-dim); margin-top: 18px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.reg-audit-note a { color: var(--cyan); text-decoration: none; cursor: pointer; }

@media (max-width: 768px) { .reg-grid2 { grid-template-columns: 1fr; } .reg-table .hide-sm { display: none; } }
