/* ================================
   Chairperson Page Utilities
   ================================ */

.chair-subtitle {
  font-size:14px;
  opacity:.95;
}

.chair-subtitle-small {
  font-size:12px;
  opacity:.85;
  font-weight:650;
}

.ai-decision-hint {
  margin: 6px 0 0;
  color: var(--muted);
}

.ai-decision-actions {
  margin-top: 10px;
}

.ai-decision-panel {
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(122, 90, 120, 0.06);
}

.ai-decision-panel .ai-decision-result strong {
  font-weight: 750;
}

.card-header-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.catalog-panel {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, #fcfbfd 0%, #f7f2f6 100%);
}

.catalog-title {
  font-size:13px;
  font-weight:800;
  color:var(--aub-maroon);
  text-transform:uppercase;
  letter-spacing:.04em;
}

.catalog-meta {
  margin-top:4px;
  font-size:12px;
  color:var(--muted);
}

.catalog-chips {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.catalog-chip {
  margin:0;
  padding:5px 10px;
  font-size:11px;
}

.course-list-chips {
  margin: 0 0 12px;
}

.catalog-form {
  display:grid;
  grid-template-columns:minmax(240px, 1fr) repeat(5, max-content);
  gap:10px;
  align-items:center;
  justify-content:end;
  width:100%;
}

.catalog-form input[type="file"] {
  min-width:0;
  width:100%;
}

.catalog-form select {
  min-width:220px;
  width:100%;
}

.catalog-form .btn {
  white-space:nowrap;
}

.manual-course-form {
  display:grid;
  gap:14px;
}

.checkbox-group.compact-days {
  gap:8px;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  padding:8px 10px;
}

.checkbox-group.compact-days .checkbox-label {
  padding:8px 10px;
  margin:0;
}

.time-picker-row{
  display:flex;
  align-items:center;
  gap:8px;
}

.time-picker-row select{
  width:auto;
  min-width:72px;
}

.time-period-toggle{
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:10px;
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
  min-width:60px;
}

.time-period-toggle:hover{
  border-color:#cfd5e3;
}

.time-mode-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.btn-time-mode{
  min-width:84px;
}

.time-fields-row{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap:14px;
  align-items:end;
}

.time-field{
  min-width:0;
}

.time-mode-inline{
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
  padding-bottom:2px;
  justify-self:end;
}

.instructor-section{
  display:grid;
  gap:12px;
}

.instructor-section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.instructor-rows{
  display:grid;
  gap:10px;
}

.instructor-row{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap:12px;
  align-items:end;
}

.instructor-field{
  min-width:0;
}

.btn-add-instructor,
.btn-instructor-remove{
  white-space:nowrap;
}

.section-builder-toolbar{
  display:grid;
  gap:8px;
}

.manual-section-list{
  display:grid;
  gap:10px;
}

.manual-section-item{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px 14px;
  background:#fbfcff;
  display:grid;
  gap:8px;
}

.manual-section-item-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.manual-section-item-title{
  font-weight:900;
}

.manual-section-item-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  font-size:12px;
  color:var(--muted);
}

.tabs-wrapper {
  display:flex;
  gap:0;
  border-bottom:1px solid var(--line);
  margin-bottom:0;
}

.search-input {
  min-width:260px;
  flex:1;
}

.table-scroll {
  overflow:auto;
}

.hidden {
  display:none;
}

.flex-spacer {
  flex:1;
}

/* Chairperson table header widths */
.th-select { min-width: 54px; width: 54px; }
.th-request { min-width: 150px; }
.th-student { min-width: 120px; }
.th-course { min-width: 160px; }
.th-type { min-width: 150px; }
.th-semester { min-width: 130px; }
.th-status { min-width: 140px; }
.th-actions { min-width: 280px; }


/* ================================
   Student Page - Refactored Inline Styles
   ================================ */

/* Student Interface header */
.student-subtitle {
  font-size: 15px;
  opacity: 0.95;
  font-weight: 700;
}

/* Course Registration Requests subtitle */
.course-subtitle {
  font-size: 13px;
  opacity: 0.85;
  font-weight: 700;
}

/* Hidden containers for "Other" fields */
.hidden-container {
  display: none;
  margin-top: 8px;
}

/* Flexibility section input row */
.flex-row-compact {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
}

/* Sidebar colored header */
.sidebar-header {
  background: linear-gradient(90deg, var(--aub-maroon), var(--aub-maroon-2));
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.card-h.sidebar-header p {
  color: rgba(255,255,255,.86);
}


/* Full-width card (for My Requests section) */
.full-width {
  grid-column: 1 / -1;
}

.student-flow-card .card-h{
  padding-bottom:14px;
}

.student-flow-card .card-h p{
  font-size:16px;
  line-height:1.65;
}

.student-flow-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.student-flow-card{
  border-color:rgba(122,0,60,.10);
  background:
    radial-gradient(circle at top right, rgba(122,0,60,.07), transparent 28%),
    linear-gradient(180deg, #ffffff 0%, #fcfafc 100%);
}

.student-flow-header{
  background:linear-gradient(180deg, #fffdfd 0%, #fbf6f9 100%);
}

.student-flow-header h1{
  margin:6px 0 0;
  font-size:28px;
  line-height:1.12;
  letter-spacing:-.03em;
}

.student-flow-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.student-flow-chip{
  background:rgba(122,0,60,.06);
  border-color:rgba(122,0,60,.10);
  color:var(--aub-maroon);
  font-size:12px;
}

.student-home-card{
  overflow:hidden;
  border-color:rgba(122,0,60,.12);
}

.student-home-hero{
  background:
    radial-gradient(circle at top right, rgba(122,0,60,.08), transparent 30%),
    linear-gradient(180deg, #fffdfd 0%, #fbf6f9 100%);
  padding:28px;
}

.student-home-hero h1{
  margin:6px 0 0;
  font-size:34px;
  line-height:1.08;
  letter-spacing:-.035em;
}

.student-home-hero p{
  max-width:620px;
  font-size:16px;
}

.student-choice-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}

.student-choice-card{
  display:grid;
  gap:10px;
  min-height:210px;
  padding:22px;
  border:1px solid rgba(173,190,220,.55);
  border-radius:24px;
  background:linear-gradient(180deg, #ffffff 0%, #fcfbff 100%);
  color:var(--ink);
  text-decoration:none;
  box-shadow:0 14px 30px rgba(15,23,42,.06);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.student-choice-card:hover{
  transform:translateY(-2px);
  border-color:rgba(122,0,60,.22);
  box-shadow:0 18px 38px rgba(15,23,42,.10);
}

.student-choice-card strong{
  font-size:24px;
  line-height:1.15;
}

.student-choice-card span:last-child{
  color:var(--muted);
  line-height:1.5;
}

.student-choice-kicker{
  color:var(--aub-maroon);
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}

@media (min-width:1100px){
  .student-flow-card{
    display:grid;
    grid-template-columns:minmax(320px, .9fr) minmax(0, 1.1fr);
  }

  .student-flow-card .card-h{
    border-right:1px solid var(--line);
    border-bottom:0;
    display:flex;
    align-items:center;
    padding:22px 24px;
  }

  .student-flow-card .card-b{
    padding:18px;
    align-content:stretch;
  }

  .student-flow-grid .side-item{
    display:grid;
    align-content:start;
  }
}

@media (max-width:760px){
  .student-choice-grid{
    grid-template-columns:1fr;
  }

  .student-home-hero{
    padding:22px;
  }

  .student-home-hero h1{
    font-size:28px;
  }
}

/* Force muted small text (already mostly handled by .small but ensures consistency) */
.small-muted {
  color: var(--muted);
}




/* AUB Course Request System - Shared Styles */

/* Tabs */
.tab-btn {
  padding: 10px 20px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s;
}

.tab-btn:hover {
  color: var(--ink);
}

.tab-btn.active {
  color: var(--aub-maroon);
  border-bottom-color: var(--aub-maroon);
  font-weight: 600;
}

:root{
  /* AUB-ish minimal palette (adjust hex if you have official values) */
  --aub-maroon:#7A003C;
  --aub-maroon-2:#5E002E;
  --ink:#1b1f24;
  --muted:#6b7280;
  --bg:#f6f7f9;
  --card:#ffffff;
  --line:#e6e8ee;
  --ok:#0f766e;
  --warn:#b45309;
  --bad:#b91c1c;
  --shadow:0 10px 30px rgba(16,24,40,.08);
  --radius:14px;
  --radius-sm:10px;
  --chip:#f2f3f6;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color:var(--ink);
  background:var(--bg);
}

/* Top bar */
.topbar{
  background:linear-gradient(90deg,var(--aub-maroon),var(--aub-maroon-2));
  color:#fff;
  padding:14px 18px;
  position:sticky; top:0; z-index:10;
  box-shadow:0 2px 0 rgba(255,255,255,.06);
}

.topbar-inner{
  max-width:1680px;
  margin:0 auto;
  display:grid;
  grid-template-columns: auto 1fr auto;
  align-items:center;
  gap:16px;
}

@media (max-width: 900px){
  .topbar-inner{
    grid-template-columns: 1fr;
    gap:10px;
  }
  .topbar-inner .stats{
    order:2;
    width:100%;
    justify-content:flex-start;
  }
  .topbar-inner .nav{
    order:3;
    justify-self:flex-end;
  }
  .catalog-panel{
    flex-direction:column;
    align-items:flex-start;
  }
  .catalog-form{
    width:100%;
    grid-template-columns:1fr 1fr;
  }
  .catalog-form input[type="file"]{
    grid-column:1 / -1;
  }
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:700;
  letter-spacing:.2px;
  flex-shrink:0;
}

.seal{
  width:34px;height:34px;border-radius:10px;
  background:rgba(255,255,255,.18);
  display:grid;place-items:center;
  font-weight:800;
  border:1px solid rgba(255,255,255,.22);
}

.nav a{
  color:#fff;
  text-decoration:none;
  font-weight:600;
  opacity:.95;
  border:1px solid rgba(255,255,255,.25);
  padding:8px 10px;
  border-radius:999px;
  transition:all 0.2s ease;
}

.nav a:hover{opacity:1;background:rgba(255,255,255,.10)}

.topbar .btn-nav-auth{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.28);
  color:#fff;
  box-shadow:none;
}

.topbar .btn-nav-auth:hover:not(:disabled),
.topbar a.btn-nav-auth:hover{
  background:rgba(255,255,255,.20);
  border-color:rgba(255,255,255,.44);
  color:#fff;
}

/* Layout */
.wrap{
  max-width:1200px;
  margin:18px auto 48px;
  padding:0 16px;
  display:grid;
  gap:16px;
}

.chair-wrap{
  max-width:min(1680px, calc(100vw - 24px));
}

.student-wrap{
  max-width:min(1480px, calc(100vw - 24px));
}

.student-home-wrap{
  max-width:min(1080px, calc(100vw - 24px));
  min-height:calc(100vh - 150px);
  align-content:center;
}

.wrap-2col{
  grid-template-columns: 1fr 340px;
}

@media (max-width: 980px){
  .wrap-2col{grid-template-columns:1fr}
  .student-flow-grid{grid-template-columns:1fr}
}

/* Cards */
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.card-h{
  padding:18px 18px 10px;
  border-bottom:1px solid var(--line);
}

.card-h h1{
  margin:0;
  font-size:24px;
  letter-spacing:.2px;
}

.card-h h2{
  margin:0 0 8px;
  font-size:16px;
  letter-spacing:.2px;
}

.card-h p{
  margin:8px 0 0; 
  color:var(--muted); 
  font-size:14px; 
  line-height:1.5;
}

.card-b{
  padding:18px;
}

/* Form */
form{
  display:grid; 
  gap:18px;
}

.grid-2{
  display:grid; 
  grid-template-columns:1fr 1fr; 
  gap:14px;
}

@media (max-width:700px){
  .grid-2{grid-template-columns:1fr}
}

label{
  display:block;
  font-size:14px;
  color:var(--muted);
  margin:0 0 8px;
  font-weight:800;
  letter-spacing:.2px;
}

.req{
  color:var(--bad); 
  margin-left:4px;
}

input[type="text"], 
input[type="number"], 
input[type="email"], 
select, 
textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  outline:none;
  font-size:15px;
  transition:all 0.2s ease;
}

input[type="file"]{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  outline:none;
  font-size:14px;
}

textarea{
  min-height:132px; 
  resize:vertical;
}

input:focus, 
select:focus, 
textarea:focus{
  border-color:rgba(122,0,60,.45);
  box-shadow:0 0 0 4px rgba(122,0,60,.10);
}

input.error, 
select.error, 
textarea.error{
  border-color:var(--bad);
  box-shadow:0 0 0 4px rgba(185,28,28,.10);
}

.error-msg{
  font-size:12px;
  color:var(--bad);
  margin-top:4px;
  display:none;
}

.error-msg.show{
  display:block;
}

.hint{
  font-size:14px; 
  color:var(--muted);
  margin-top:6px; 
  line-height:1.45;
}

/* Checkbox Group */
.checkbox-group{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg, #fcfdff 0%, #faf8fc 100%);
}

.checkbox-label{
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  font-size:16px;
  font-weight:500;
  color:var(--ink);
  margin:0;
}

.checkbox-label input[type="checkbox"]{
  width:auto;
  margin:0;
  cursor:pointer;
  flex-shrink:0;
}

.checkbox-label:hover{
  color:var(--aub-maroon);
}

/* Pills/Chips */
.pillrow{
  display:flex; 
  flex-wrap:wrap; 
  gap:8px;
  padding:10px;
  border:1px dashed var(--line);
  border-radius:12px;
  background:#fafbff;
}

.pill{
  display:inline-flex; 
  align-items:center; 
  gap:8px;
  border:1px solid var(--line);
  background:#fff;
  padding:7px 10px;
  border-radius:999px;
  font-size:13px;
}

.pill button{
  border:none; 
  background:transparent; 
  cursor:pointer;
  color:var(--muted); 
  font-weight:900; 
  line-height:1;
  transition:color 0.2s ease;
}

.pill button:hover{
  color:var(--bad);
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:var(--chip);
  border:1px solid var(--line);
  font-size:12px;
  font-weight:800;
  color:var(--ink);
  margin-right:6px;
  margin-bottom:6px;
  white-space:nowrap;
}

/* Buttons */
.actions{
  display:flex; 
  gap:10px; 
  align-items:center; 
  flex-wrap:wrap;
  padding-top:10px;
}

.btn{
  border:none;
  padding:13px 16px;
  border-radius:14px;
  cursor:pointer;
  font-weight:800;
  letter-spacing:.2px;
  font-size:16px;
  transition:all 0.2s ease;
}

.btn-primary{
  background:var(--aub-maroon);
  color:#fff;
}

.btn-primary:hover:not(:disabled){
  background:var(--aub-maroon-2);
}

.btn-primary:disabled{
  background:var(--muted);
  cursor:not-allowed;
  opacity:0.6;
}

.btn-ghost{
  background:#fff;
  border:1px solid var(--line);
  color:var(--ink);
}

.btn-ghost:hover:not(:disabled){
  border-color:#cfd5e3;
}

.btn-bulk{
  background:#0f766e;
  color:#fff;
  border:1px solid rgba(15,118,110,.22);
}

.btn-bulk:hover:not(:disabled){
  background:#0b5f59;
}

.btn-danger{
  background:var(--bad);
  color:#fff;
}

.btn-danger:hover:not(:disabled){
  filter:brightness(.95);
}

.btn:disabled{
  opacity:0.5;
  cursor:not-allowed;
}

.note{
  font-size:12px; 
  color:var(--muted);
}

/* Sidebar */
.side-item{
  padding:18px 18px;
  border-bottom:1px solid var(--line);
}

.side-item:last-child{
  border-bottom:none;
}

.student-flow-grid .side-item{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg, #ffffff 0%, #f9f5f8 100%);
  box-shadow:0 12px 24px rgba(15,23,42,.04);
}

.tag{
  display:inline-flex;
  font-size:12px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.12);
  padding:6px 10px;
  border-radius:999px;
  color:#fff;
  font-weight:700;
}

.side-title{
  margin:0 0 6px; 
  font-size:15px; 
  font-weight:900;
}

.side-text{
  margin:0; 
  font-size:15px; 
  color:var(--muted); 
  line-height:1.55;
}

/* Status badges */
.status{
  font-weight:950;
  padding:6px 10px;
  border-radius:999px;
  display:inline-flex;
  border:1px solid var(--line);
  font-size:12px;
}

.status-badge{
  font-weight:950;
  padding:4px 8px;
  border-radius:999px;
  display:inline-flex;
  border:1px solid var(--line);
  font-size:11px;
}

.s-Pending{
  background:#fff7ed; 
  color:var(--warn); 
  border-color:rgba(180,83,9,.25);
}

.s-Approved,
.s-Accepted{
  background:#ecfeff; 
  color:var(--ok); 
  border-color:rgba(15,118,110,.20);
}

.s-Rejected{
  background:#fef2f2; 
  color:var(--bad); 
  border-color:rgba(185,28,28,.18);
}

.s-Implemented{
  background:#f0fdf4; 
  color:#166534; 
  border-color:rgba(22,101,52,.18);
}

.history-badge-add{
  background:#eefbf3;
  color:#166534;
  border-color:rgba(22,101,52,.18);
}

.history-badge-update{
  background:#f5f3ff;
  color:#6d28d9;
  border-color:rgba(109,40,217,.18);
}

.history-badge-delete{
  background:#fef2f2;
  color:#b91c1c;
  border-color:rgba(185,28,28,.18);
}

.history-badge-flag{
  background:#fffbeb;
  color:#b45309;
  border-color:rgba(180,83,9,.22);
}

.history-badge-unflag{
  background:#f8fafc;
  color:#475569;
  border-color:rgba(71,85,105,.18);
}

.history-action{
  display:grid;
  gap:4px;
}

.history-action-main{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  font-weight:800;
}

.history-area-chip{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:800;
  border:1px solid var(--line);
  background:#fff;
  color:#475569;
}

.history-area-requests{
  background:#fff7fb;
  color:#7a284a;
  border-color:rgba(122,40,74,.12);
}

.history-area-courses{
  background:#f5fbff;
  color:#245a75;
  border-color:rgba(36,90,117,.12);
}

.history-area-semesters{
  background:#f8f7ff;
  color:#5a47a7;
  border-color:rgba(90,71,167,.12);
}

.history-action-detail{
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  display:grid;
  gap:2px;
}

.history-detail-label{
  color:var(--ink);
  font-weight:800;
}

.history-request-number,
.history-course-code,
.history-semester-name{
  font-weight:900;
}

/* Stats */
.stats{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  flex-shrink:1;
  min-width:0;
}

.stat{
  background:rgba(255,255,255,.14);
  border:2px solid rgba(255,255,255,.25);
  color:#fff;
  padding:10px 16px;
  border-radius:999px;
  font-size:clamp(15px, 1.25vw, 21px);
  font-weight:950;
  white-space:nowrap;
  flex-shrink:0;
  line-height:1.2;
  letter-spacing:-.01em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}

.summary-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:14px;
  padding:16px 18px 0;
}

.summary-grid-wide{
  padding-bottom:18px;
}

.summary-card{
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg, #fff 0%, #fcfafc 100%);
  padding:18px;
  position:relative;
  overflow:hidden;
}

.summary-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  background:#d9dfeb;
}

.summary-card-total::before{
  background:#7f003f;
}

.summary-card-capacity::before{
  background:#7c3aed;
}

.summary-card-accepted::before{
  background:#0f766e;
}

.summary-card-rejected::before{
  background:#b42318;
}

.summary-card-verified::before{
  background:#1d4ed8;
}

.summary-card-flagged::before{
  background:#b45309;
}

.summary-card-neutral::before{
  background:#98a2b3;
}

.summary-card-chart::before{
  background:linear-gradient(180deg, #7f003f, #0f766e);
}

.summary-card-wide-insight{
  background:
    linear-gradient(180deg, #fff 0%, #fbf8fc 100%);
}

.summary-card-wide{
  grid-column: 1 / -1;
}

.summary-card-wide .summary-list li{
  font-size:16px;
}

.summary-card h3{
  margin:0 0 6px;
  font-size:14px;
  color:var(--muted);
}

.summary-card .summary-value{
  font-size:34px;
  font-weight:900;
  line-height:1;
  color:var(--aub-maroon);
}

.summary-card .summary-sub{
  margin-top:8px;
  font-size:13px;
  color:var(--muted);
  line-height:1.45;
}

.summary-list{
  margin:10px 0 0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.summary-list li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:14px;
}

.summary-list strong{
  color:var(--ink);
}

.course-status-table-wrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}

.course-status-table{
  min-width:640px;
}

.course-status-table thead th{
  position:static;
  box-shadow:none;
  padding:10px 12px;
}

.course-status-sort-btn{
  width:100%;
  border:0;
  background:transparent;
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  justify-content:inherit;
  gap:6px;
  padding:0;
  font:inherit;
  font-weight:950;
  cursor:pointer;
  text-align:inherit;
}

.course-status-sort-btn:hover,
.course-status-sort-btn:focus{
  color:var(--aub-maroon);
  outline:none;
}

.course-status-sort-btn.is-active{
  color:var(--aub-maroon);
}

.course-status-sort-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:16px;
  font-size:12px;
  line-height:1;
}

.course-status-table tbody td{
  padding:10px 12px;
}

.course-status-table tbody tr{
  transition:background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.course-status-table tbody tr.is-selected-course{
  background:#fff7ed;
  box-shadow:inset 5px 0 0 #f59e0b;
}

.course-status-table tbody tr.is-selected-course td{
  border-top:1px solid rgba(245,158,11,.28);
  border-bottom:1px solid rgba(245,158,11,.28);
}

.course-status-table tbody tr.is-selected-course .course-status-course{
  color:#92400e;
}

.course-status-table th:not(:first-child),
.course-status-table td:not(:first-child){
  text-align:center;
  white-space:nowrap;
}

.course-status-course{
  font-weight:900;
  color:var(--ink);
}

.course-status-total,
.course-status-pending,
.course-status-accepted,
.course-status-rejected,
.course-status-implemented{
  font-weight:900;
}

.course-status-total{
  background:#f8fafc;
  color:#334155;
}

.course-status-pending{
  background:#fff7ed;
  color:#9a3412;
}

.course-status-accepted{
  background:#ecfdf5;
  color:#047857;
}

.course-status-rejected{
  background:#fef2f2;
  color:#b42318;
}

.course-status-implemented{
  background:#eef2ff;
  color:#3730a3;
}

.course-status-table tbody tr.is-selected-course .course-status-total,
.course-status-table tbody tr.is-selected-course .course-status-pending,
.course-status-table tbody tr.is-selected-course .course-status-accepted,
.course-status-table tbody tr.is-selected-course .course-status-rejected,
.course-status-table tbody tr.is-selected-course .course-status-implemented{
  filter:saturate(1.15);
}

.summary-insight-text{
  line-height:1.45;
}

.summary-insight-highlight{
  font-weight:900;
  color:var(--aub-maroon);
}

.summary-toggle{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:none;
  background:transparent;
  color:var(--aub-maroon);
  font-weight:800;
  cursor:pointer;
  padding:0;
}

.summary-toggle:hover{
  text-decoration:underline;
}

.summary-extra{
  margin-top:10px;
}

.summary-empty{
  padding:28px 22px;
  color:var(--muted);
  text-align:center;
  border:1px dashed var(--line);
  border-radius:22px;
  background:linear-gradient(180deg, #fff 0%, #fcfafc 100%);
  display:flex;
  flex-direction:column;
  gap:8px;
}

.summary-empty strong{
  color:var(--ink);
  font-size:16px;
}

.summary-empty span{
  font-size:14px;
  line-height:1.5;
}

.summary-empty-state{
  margin-top:10px;
  padding:12px 14px;
  border-radius:14px;
  background:#faf7fa;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.summary-visual-grid{
  display:grid;
  grid-template-columns:minmax(240px, .85fr) repeat(2, minmax(260px, 1fr));
  gap:14px;
  margin-top:12px;
}

.summary-visual-panel{
  min-width:0;
  padding:14px;
  border:1px solid rgba(220,225,235,.9);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.summary-visual-panel:hover,
.summary-visual-panel:focus-within{
  transform:translateY(-2px);
  border-color:rgba(122,0,60,.20);
  box-shadow:0 16px 34px rgba(15,23,42,.08);
}

.summary-chart-title{
  margin-bottom:12px;
  color:var(--ink);
  font-size:13px;
  font-weight:950;
}

.summary-bar-chart{
  display:grid;
  gap:10px;
}

.summary-bar-row{
  display:grid;
  grid-template-columns:minmax(96px, .8fr) minmax(120px, 1.4fr) minmax(34px, auto);
  align-items:center;
  gap:10px;
  padding:6px 8px;
  border-radius:12px;
  transition:background .18s ease, transform .18s ease;
}

.summary-bar-row:hover,
.summary-bar-row:focus{
  outline:none;
  background:#faf2f7;
  transform:translateX(2px);
}

.summary-bar-label{
  overflow:hidden;
  color:var(--ink);
  font-size:13px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.summary-bar-track{
  height:12px;
  overflow:hidden;
  border-radius:999px;
  background:#edf1f7;
}

.summary-bar-fill{
  width:var(--bar-width);
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--bar-color), var(--bar-color));
  transform-origin:left center;
  animation:summaryBarGrow .75s cubic-bezier(.2,.8,.2,1) both;
}

.summary-bar-count{
  color:var(--ink);
  font-size:13px;
  font-weight:950;
  text-align:right;
}

.summary-donut-wrap{
  display:grid;
  grid-template-columns:160px minmax(0, 1fr);
  align-items:center;
  gap:16px;
}

.summary-donut{
  position:relative;
  width:150px;
  aspect-ratio:1;
  border-radius:50%;
  background:conic-gradient(var(--donut-segments));
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.06), 0 14px 30px rgba(15,23,42,.08);
  animation:summaryDonutIn .7s cubic-bezier(.2,.8,.2,1) both;
}

.summary-donut::after{
  content:"";
  position:absolute;
  inset:21px;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(220,225,235,.85);
}

.summary-donut-center{
  position:absolute;
  inset:0;
  z-index:1;
  display:grid;
  place-content:center;
  text-align:center;
}

.summary-donut-center strong{
  color:var(--aub-maroon);
  font-size:30px;
  line-height:1;
}

.summary-donut-center span{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}

.summary-chart-legend{
  display:grid;
  gap:8px;
}

.summary-legend-item{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border-radius:12px;
  font-size:13px;
  transition:background .18s ease, transform .18s ease;
}

.summary-legend-item:hover,
.summary-legend-item:focus{
  outline:none;
  background:#faf2f7;
  transform:translateX(2px);
}

.summary-legend-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--legend-color);
}

.summary-legend-item span:nth-child(2){
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.summary-legend-item strong{
  color:var(--ink);
}

.summary-chart-empty{
  padding:16px;
  border:1px dashed var(--line);
  border-radius:14px;
  color:var(--muted);
  font-size:13px;
  background:#fff;
}

.summary-metric-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(160px, 1fr));
  gap:12px;
  margin-top:14px;
}

.summary-metric-gauge{
  padding:13px;
  border:1px solid rgba(220,225,235,.9);
  border-radius:16px;
  background:#fff;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.summary-metric-gauge:hover,
.summary-metric-gauge:focus{
  outline:none;
  transform:translateY(-2px);
  border-color:rgba(122,0,60,.22);
  box-shadow:0 12px 26px rgba(15,23,42,.08);
}

.summary-metric-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:13px;
  font-weight:900;
}

.summary-metric-head strong{
  color:var(--metric-color);
}

.summary-metric-track{
  height:10px;
  overflow:hidden;
  margin-top:10px;
  border-radius:999px;
  background:#edf1f7;
}

.summary-metric-fill{
  width:var(--metric-width);
  height:100%;
  border-radius:999px;
  background:var(--metric-color);
  transform-origin:left center;
  animation:summaryBarGrow .75s cubic-bezier(.2,.8,.2,1) both;
}

.summary-metric-sub{
  margin-top:8px;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}

.summary-bubble-cloud{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:12px;
}

.summary-bubble{
  display:grid;
  place-items:center;
  width:var(--bubble-size);
  aspect-ratio:1;
  padding:10px;
  border-radius:999px;
  background:var(--bubble-color);
  color:#fff;
  text-align:center;
  box-shadow:0 12px 28px rgba(15,23,42,.12);
  animation:summaryBubbleIn .55s cubic-bezier(.2,.8,.2,1) both;
  transition:transform .18s ease, box-shadow .18s ease;
}

.summary-bubble:hover,
.summary-bubble:focus{
  outline:none;
  transform:translateY(-3px) scale(1.04);
  box-shadow:0 18px 34px rgba(15,23,42,.16);
}

.summary-bubble strong{
  font-size:20px;
  line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
}

.summary-bubble span{
  display:-webkit-box;
  overflow:hidden;
  max-width:90%;
  color:#fff;
  font-size:11px;
  font-weight:900;
  line-height:1.15;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.summary-audience-visual{
  display:grid;
  gap:12px;
  margin:12px 0 14px;
}

.summary-audience-row{
  display:grid;
  grid-template-columns:minmax(150px, .7fr) minmax(160px, 1fr) minmax(220px, 1.2fr);
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid rgba(220,225,235,.9);
  border-radius:16px;
  background:#fff;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.summary-audience-row:hover,
.summary-audience-row:focus{
  outline:none;
  transform:translateX(2px);
  border-color:rgba(122,0,60,.20);
  box-shadow:0 12px 24px rgba(15,23,42,.06);
}

.summary-audience-main{
  display:grid;
  gap:2px;
}

.summary-audience-main strong{
  color:var(--aub-maroon);
  font-size:15px;
}

.summary-audience-main span,
.summary-audience-courses{
  overflow:hidden;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.summary-audience-track{
  height:12px;
  overflow:hidden;
  border-radius:999px;
  background:#edf1f7;
}

.summary-audience-fill{
  width:var(--audience-width);
  height:100%;
  border-radius:999px;
  background:var(--audience-color);
  transform-origin:left center;
  animation:summaryBarGrow .75s cubic-bezier(.2,.8,.2,1) both;
}

@keyframes summaryBarGrow{
  from{transform:scaleX(0); opacity:.35;}
  to{transform:scaleX(1); opacity:1;}
}

@keyframes summaryDonutIn{
  from{transform:scale(.88) rotate(-20deg); opacity:0;}
  to{transform:scale(1) rotate(0deg); opacity:1;}
}

@keyframes summaryBubbleIn{
  from{transform:scale(.82); opacity:0;}
  to{transform:scale(1); opacity:1;}
}

@media (max-width:1180px){
  .summary-visual-grid{
    grid-template-columns:1fr;
  }

  .summary-donut-wrap{
    grid-template-columns:160px minmax(0, 1fr);
  }

  .summary-metric-grid{
    grid-template-columns:repeat(2, minmax(160px, 1fr));
  }

  .summary-audience-row{
    grid-template-columns:1fr;
  }
}

@media (max-width:620px){
  .summary-donut-wrap,
  .summary-bar-row{
    grid-template-columns:1fr;
  }

  .summary-donut{
    margin-inline:auto;
  }

  .summary-bar-count{
    text-align:left;
  }

  .summary-metric-grid{
    grid-template-columns:1fr;
  }

  .summary-audience-main span,
  .summary-audience-courses{
    white-space:normal;
  }
}

@media (prefers-reduced-motion: reduce){
  .summary-bar-fill,
  .summary-metric-fill,
  .summary-audience-fill,
  .summary-donut,
  .summary-bubble{
    animation:none;
  }
}

/* Toolbar */
.toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.toolbar input,
.toolbar select,
.toolbar button {
  width: auto;
  flex: 0 0 auto;
}

.toolbar select.filter-active,
.toolbar input.filter-active {
  border-color: var(--aub-maroon);
  background: #fff4f8;
  color: var(--aub-maroon);
  box-shadow: 0 0 0 3px rgba(122, 0, 60, 0.10);
}
.toolbar .search-input {
  flex: 1 1 220px;
  min-width: 160px;
}

.request-controls{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  padding:0 18px 16px;
  background:#fff;
  border-bottom:1px solid var(--line);
}

.request-export-row{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  padding:14px 18px 10px;
  background:#fff;
}

.request-export-row .small{
  margin:0;
}

.request-control-panel{
  display:grid;
  gap:8px;
  min-width:0;
  padding:12px;
  border:1px solid rgba(220,225,235,.9);
  border-radius:14px;
  background:#fbfcff;
}

.request-control-title{
  color:var(--aub-maroon);
  font-size:11px;
  font-weight:950;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.request-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px, 1.35fr) repeat(5, minmax(128px, .72fr)) max-content;
  gap:8px;
  align-items:center;
}

.request-filter-actions{
  display:flex;
  justify-content:flex-start;
}

.request-filter-grid input,
.request-filter-grid select,
.request-filter-grid .btn,
.request-bulk-row select,
.request-bulk-row .btn{
  height:38px;
  border-radius:10px;
  font-size:13px;
  padding-block:6px;
}

.request-filter-grid .btn{
  white-space:nowrap;
}

.request-bulk-row{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  width:max-content;
  max-width:100%;
  padding:10px 12px;
  border:1px solid rgba(220,225,235,.9);
  border-radius:14px;
  background:#fbfcff;
}

#implementedRequestsContainer .toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  margin: 12px 0 18px;
  background: #fafbfc;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.history-toolbar{
  padding: 14px 18px 10px;
  margin: 12px 0 10px;
  align-items: center;
}

.summary-toolbar{
  padding: 14px 18px 10px;
  margin: 12px 0 10px;
  align-items: center;
}

.summary-toolbar .small{
  margin: 0;
}

.history-toolbar .small{
  margin: 0;
}

#reviewerAccessContainer {
  padding: 16px 18px 20px;
}

.reviewer-access-toolbar {
  padding: 0;
  margin: 0 0 14px;
  align-items: flex-start;
}

.reviewer-access-copy {
  max-width: 720px;
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
}

.reviewer-invite-form {
  width: 100%;
  margin: 0 0 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fafbfc;
}

.reviewer-invite-row {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) max-content;
  gap: 12px;
  align-items: end;
}

.reviewer-invite-field {
  min-width: 0;
}

.reviewer-invite-form input {
  width: 100%;
}

.reviewer-invite-form .btn {
  height: 44px;
  white-space: nowrap;
}

.reviewer-invite-message {
  margin-top: 2px;
}

.reviewer-access-table {
  border: 1px solid var(--line);
  border-radius: 12px;
}

.reviewer-access-table table {
  min-width: 680px;
}

body[data-role="reviewer"] #tabReviewerAccess,
body[data-role="reviewer"] #reviewerAccessContainer {
  display: none !important;
}

.history-actor {
  display: grid;
  gap: 2px;
  min-width: 120px;
}

.history-actor-name {
  font-weight: 800;
  color: var(--ink);
}

.history-actor-meta {
  font-size: 12px;
  color: var(--muted);
}

#activeRequestsContainer .toolbar .search-input,
#implementedRequestsContainer .toolbar .search-input {
  flex: 1 1 220px;
  min-width: 180px;
}

#activeRequestsContainer .toolbar select,
#implementedRequestsContainer .toolbar select {
  flex: 0 1 auto;
  min-width: 130px;
  max-width: 200px;
}

#activeRequestsContainer .toolbar input,
#activeRequestsContainer .toolbar select,
#implementedRequestsContainer .toolbar input,
#implementedRequestsContainer .toolbar select {
  height: 36px;
  padding: 6px 10px;
  font-size: 13px;
  border-radius: 8px;
}

#activeRequestsContainer .toolbar .btn,
#implementedRequestsContainer .toolbar .btn {
  height: 36px;
  padding: 0 14px;
  font-size: 13px;
  border-radius: 8px;
  margin-left: auto;
}

.bulk-toolbar-group{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
}

.request-bulk-row select{
  min-width:190px;
}

#bulkStatusApplyBtn{
  min-width: 92px;
  white-space: nowrap;
}

.bulk-toolbar-copy{
  font-size:12px;
  color:var(--muted);
  margin-left:auto;
}

@media (max-width: 720px){
  .reviewer-invite-row {
    grid-template-columns: 1fr;
  }

  .reviewer-invite-form .btn {
    width: 100%;
  }

  #activeRequestsContainer .toolbar select,
  #implementedRequestsContainer .toolbar select{
    flex: 1 1 calc(50% - 4px);
    max-width: none;
  }
  #activeRequestsContainer .toolbar .btn,
  #implementedRequestsContainer .toolbar .btn{
    margin-left: 0;
    flex: 1 1 100%;
  }
}

@media (max-width: 1320px){
  .request-filter-grid{
    grid-template-columns:minmax(260px, 1fr) repeat(3, minmax(132px, 1fr));
  }

  .request-filter-actions{
    grid-column:1 / -1;
  }
}

@media (max-width: 760px){
  .request-controls{
    padding:0 12px 12px;
  }

  .request-export-row{
    align-items:stretch;
    flex-direction:column;
    padding:12px;
  }

  .request-filter-grid,
  .bulk-toolbar-group{
    grid-template-columns:1fr;
    display:grid;
  }

  .request-filter-actions,
  .request-bulk-row{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }

  .request-filter-grid input,
  .request-filter-grid select,
  .request-filter-grid .btn,
  .request-bulk-row select,
  .request-bulk-row .btn{
    width:100%;
  }
}

#activeRequestsContainer,
#implementedRequestsContainer {
  padding: 0 14px;
}


/* Table */
table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  position:relative;
}

thead{
  position:sticky;
  top:0;
  z-index:8;
  background:#fff;
}

thead th{
  text-align:left;
  font-size:12px;
  color:var(--muted);
  font-weight:900;
  letter-spacing:.2px;
  padding:12px 14px;
  background:#fff;
  border-bottom:2px solid var(--line);
  box-shadow:0 2px 4px rgba(0,0,0,.04);
}

tbody td{
  padding:12px 14px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  font-size:13px;
}

tbody tr:hover{
  background:#fcfcff;
}

.mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.small{
  font-size:12px;
  color:var(--muted);
  margin-top:6px;
  line-height:1.35;
}

.row-actions{
  display:flex; 
  gap:8px; 
  flex-wrap:wrap;
  align-items:center;
}

.row-actions-compact {
  gap:6px;
  flex-wrap:nowrap;
  align-items:center;
}

.row-actions-compact .btn {
  padding:6px 10px;
  font-size:12px;
  border-radius:10px;
}

.request-heading{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.flag-toggle{
  border:none;
  background:transparent;
  color:#cbd5e1;
  padding:0;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  transition:color 0.2s ease, transform 0.2s ease;
}

.flag-toggle:hover{
  color:#f59e0b;
  transform:translateY(-1px);
}

.flag-toggle.is-flagged{
  color:#f59e0b;
}

.table-select-all,
.request-select-cell{
  display:flex;
  align-items:center;
  justify-content:center;
}

.table-select-all input,
.request-row-checkbox{
  width:18px;
  height:18px;
  margin:0;
  accent-color:var(--maroon);
  cursor:pointer;
}

.table-action-select {
  min-width:150px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  font-size:12px;
  font-weight:700;
}

.btn-action-apply {
  min-width:72px;
}

/* Preview table */
.preview-table{
  width:max-content;
  min-width:100%;
  border-collapse:separate;
  border-spacing:0;
  margin-top:12px;
  table-layout:auto;
}

.preview-table th{
  text-align:left;
  font-size:11px;
  color:var(--muted);
  font-weight:900;
  letter-spacing:.2px;
  padding:8px 10px;
  background:#fafbff;
  border-bottom:1px solid var(--line);
}

.preview-table td{
  padding:10px;
  border-bottom:1px solid var(--line);
  font-size:12px;
  white-space:nowrap;
  word-break:normal;
}

.preview-table th:nth-child(1),
.preview-table td:nth-child(1) {
  min-width: 110px;
}

.preview-table th:nth-child(2),
.preview-table td:nth-child(2) {
  min-width: 260px;
  white-space: normal;
}

.preview-table th:nth-child(4),
.preview-table td:nth-child(4),
.preview-table th:nth-child(5),
.preview-table td:nth-child(5),
.preview-table th:nth-child(11),
.preview-table td:nth-child(11) {
  min-width: 160px;
  white-space: normal;
}

.preview-table th:nth-child(8),
.preview-table td:nth-child(8),
.preview-table th:nth-child(9),
.preview-table td:nth-child(9),
.preview-table th:nth-child(10),
.preview-table td:nth-child(10),
.preview-table th:nth-child(12),
.preview-table td:nth-child(12) {
  min-width: 120px;
}

.preview-table tr:last-child td{
  border-bottom:none;
}

.preview-note{
  background:#fff7ed;
  border:1px solid rgba(180,83,9,.25);
  border-radius:10px;
  padding:10px 12px;
  margin-top:12px;
  font-size:12px;
  color:var(--warn);
}

.course-list-toolbar {
  padding: 0 0 12px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.modal.course-list-modal {
  width: calc(100vw - 12px);
  max-width: calc(100vw - 12px);
}

.modal.request-details-modal{
  width:min(1240px, 96vw);
  max-width:min(1240px, 96vw);
  max-height:94vh;
  border-radius:20px;
  background:
    radial-gradient(circle at top right, rgba(127,0,63,.05), transparent 26%),
    linear-gradient(180deg, #fff 0%, #fbf9fc 100%);
}

.course-list-scroll {
  min-height: 72vh;
  max-height: 72vh;
  overflow: auto;
}

.course-list-table {
  width: 100%;
  min-width: 100%;
  table-layout: fixed;
}

.course-list-table th,
.course-list-table td {
  padding: 8px 8px;
  font-size: 11px;
  white-space: normal;
  word-break: break-word;
  vertical-align: top;
}

.course-list-table th:nth-child(1),
.course-list-table td:nth-child(1) {
  width: 15%;
}

.course-list-table th:nth-child(2),
.course-list-table td:nth-child(2) {
  width: 26%;
}

.course-list-table th:nth-child(3),
.course-list-table td:nth-child(3) {
  width: 10%;
}

.course-list-table th:nth-child(4),
.course-list-table td:nth-child(4) {
  width: 12%;
}

.course-list-table th:nth-child(5),
.course-list-table td:nth-child(5) {
  width: 13%;
}

.course-list-table th:nth-child(6),
.course-list-table td:nth-child(6) {
  width: 11%;
}

.course-list-table th:nth-child(7),
.course-list-table td:nth-child(7) {
  width: 13%;
}

.course-list-table .source-tag {
  font-size: 10px;
  padding: 3px 7px;
}

.course-summary-row{
  cursor:pointer;
}

.course-summary-row:hover td{
  background:#fbfcff;
}

.course-summary-row.is-expanded td{
  background:#faf7fb;
}

.course-section-summary{
  font-weight:800;
}

.course-detail-row td{
  padding:0;
  background:#fff;
}

.course-detail-panel{
  padding:14px 16px 18px;
  background:#fcfcfe;
  border-top:1px solid var(--line);
}

.course-section-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

.course-section-table th,
.course-section-table td{
  padding:10px 12px;
  text-align:left;
  font-size:12px;
  border-bottom:1px solid #e9edf5;
  white-space:normal;
}

.course-section-table th{
  color:#667085;
  font-weight:800;
  background:#f7f9fc;
}

.course-linked-row td{
  padding:0 12px 10px;
  background:#fcfcfe;
}

.course-linked-dropdown{
  border:1px solid #e9edf5;
  border-radius:10px;
  background:#fff;
}

.course-linked-dropdown summary{
  cursor:pointer;
  padding:9px 12px;
  color:#667085;
  font-size:12px;
  font-weight:800;
}

.course-linked-table{
  border-top:1px solid #e9edf5;
}

.course-linked-empty{
  display:block;
  padding:4px 0;
  color:var(--muted);
}

.btn-course-edit,
.btn-course-delete {
  padding: 6px 10px;
  font-size: 10px;
  white-space: nowrap;
}

.btn-course-edit {
  background:#fff;
  border:1px solid var(--line);
  color:var(--ink);
  margin-right:6px;
}

.btn-course-edit:hover:not(:disabled){
  border-color:#cfd5e3;
}

.source-tag {
  display:inline-flex;
  align-items:center;
  padding:4px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.source-tag-excel {
  background:#ecfeff;
  color:#155e75;
  border:1px solid rgba(21, 94, 117, 0.18);
}

.source-tag-manual {
  background:#fff7ed;
  color:#9a3412;
  border:1px solid rgba(154, 52, 18, 0.18);
}

/* Modal */
.modal-backdrop{
  position:fixed; 
  inset:0;
  background:rgba(17,24,39,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:50;
}

#courseListBackdrop{
  z-index:50;
}

#manualCourseBackdrop{
  z-index:60;
}

.modal{
  width:min(860px, 100%);
  max-height:92vh;
  background:#fff;
  border-radius:16px;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.2);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.modal.modal-small{
  width:min(500px, 100%);
}

.modal-h{
  padding:14px 16px;
  background:linear-gradient(90deg,var(--aub-maroon),var(--aub-maroon-2));
  color:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

.request-details-modal .modal-h{
  padding:12px 18px;
}

.modal-h b{
  font-size:16px;
}

.modal-h button{
  border:none; 
  background:rgba(255,255,255,.14); 
  color:#fff;
  border:1px solid rgba(255,255,255,.22);
  border-radius:10px;
  padding:8px 10px;
  cursor:pointer;
  font-weight:900;
  transition:all 0.2s ease;
}

.modal-h button:hover{
  background:rgba(255,255,255,.20);
}

.modal-b{
  padding:18px 20px; 
  display:grid; 
  gap:14px;
  overflow-y:auto;
}

.request-details-body{
  padding:10px 12px 12px;
  gap:8px;
}

.modal-b.modal-center{
  text-align:center;
  padding:20px;
}

.modal-b p{
  margin:0 0 16px; 
  font-size:14px; 
  line-height:1.5; 
  color:var(--ink);
}

.modal-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}

.request-details-grid{
  gap:12px;
  grid-template-columns:1fr 1fr;
  align-items:start;
}

@media (max-width:780px){
  .modal-grid{grid-template-columns:1fr}
}

.kv{
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px 16px;
  background:#fff;
}

.request-kv{
  border-radius:12px;
  border:1px solid rgba(217,223,235,.9);
  box-shadow:0 8px 18px rgba(15,23,42,.035);
  padding:8px 10px;
  min-height:0;
}

.request-details-modal .kv .k{
  font-size:11px;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.kv .k{
  color:var(--muted); 
  font-size:13px; 
  font-weight:850;
}

.kv .v{
  margin-top:4px;
  font-size:15px;
  line-height:1.35;
}

.request-details-modal .kv .v{
  font-size:14px;
  line-height:1.35;
}

.request-details-modal .chip{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
}

.request-details-body{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, 400px);
  grid-template-areas:
    "student student"
    "actions actions"
    "request transcript";
  gap:8px 10px;
  max-height:calc(96vh - 84px);
  overflow-y:visible;
  overflow-x:hidden;
  padding:10px 12px 12px;
  align-content:start;
  align-items:start;
}

.request-details-section{
  display:grid;
  gap:7px;
  min-width:0;
  align-self:start;
}

.request-details-section:nth-of-type(1){
  grid-area:student;
}

.request-details-section:nth-of-type(2){
  grid-area:request;
}

.request-details-section:nth-of-type(3){
  grid-area:transcript;
}

.request-section-title{
  font-size:11px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--muted);
  padding:0 2px;
}

.request-details-grid-student{
  grid-template-columns:minmax(220px, 1.05fr) minmax(150px, .65fr) minmax(290px, 1.3fr);
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
}

.request-details-grid-student .request-kv{
  display:grid;
  gap:2px;
  min-width:0;
  padding:8px 10px;
  border:1px solid rgba(217,223,235,.86);
  border-radius:12px;
  box-shadow:none;
  background:rgba(255,255,255,.76);
}

.request-details-grid-student .k{
  font-size:10px;
}

.request-details-grid-student .v{
  min-width:0;
  margin-top:0;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
  font-size:13px;
  font-weight:700;
}

.request-details-grid-student #mStudent div{
  font-size:14px !important;
  line-height:1.2;
}

.request-details-grid-main{
  grid-template-columns:minmax(110px, .52fr) minmax(130px, .58fr) minmax(180px, .9fr);
  grid-template-areas:
    "semester submitted type"
    "course course justification";
  align-content:start;
  align-items:start;
  grid-auto-rows:max-content;
}

.request-details-grid-transcript{
  grid-template-columns:1fr;
  align-content:start;
}

.request-kv-span-2{
  grid-area:justification;
  grid-column:auto;
}

.request-details-grid-main .request-kv:nth-child(1){
  grid-area:semester;
}

.request-details-grid-main .request-kv:nth-child(2){
  grid-area:submitted;
}

.request-kv-course{
  grid-area:course;
  align-self:start;
}

.request-kv-type{
  grid-area:type;
  align-self:start;
}

.request-details-grid-main > .request-kv:not(.request-kv-course):not(.request-kv-type){
  padding:10px 12px;
}

.request-details-grid-main > .request-kv:not(.request-kv-course):not(.request-kv-type) .v{
  font-size:16px;
  line-height:1.25;
}

.request-kv-course .v,
.request-kv-type .v{
  margin-top:5px;
}

.request-kv-span-2 .v{
  max-height:118px;
  overflow:auto;
}

.transcript-kv{
  background:linear-gradient(180deg, #ffffff 0%, #fcfbff 100%);
}

.verification-kv{
  background:linear-gradient(180deg, rgba(247,250,255,.95) 0%, rgba(253,251,255,.98) 100%);
  border-color:rgba(173,190,220,.65);
}

.transcript-details-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.request-crn-line{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:7px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
  color:var(--aub-maroon);
  background:rgba(128,0,64,.08);
  border:1px solid rgba(128,0,64,.14);
  border-radius:999px;
  padding:3px 8px;
}

.request-course-head{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.request-course-link{
  padding:6px 10px;
  font-size:12px;
  white-space:nowrap;
}

.request-transcript-file{
  display:grid;
  gap:7px;
}

.request-transcript-label{
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
}

.request-transcript-name{
  font-size:13px;
  line-height:1.25;
  font-weight:800;
  word-break:break-word;
  color:var(--ink);
}

.request-transcript-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

#mTranscript .btn{
  font-size:12px !important;
  padding:7px 10px !important;
  border-radius:10px;
}

#mVerification{
  display:grid;
  gap:8px;
}

#mVerification .status-badge{
  font-size:13px;
  padding:7px 11px;
}

.verification-detail-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}

.verification-detail-card{
  display:grid;
  gap:2px;
  padding:8px 9px;
  border-radius:10px;
  background:rgba(255,255,255,.65);
  border:1px solid rgba(173,190,220,.35);
}

.verification-detail-label{
  font-size:10px;
  line-height:1.2;
  font-weight:900;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.03em;
}

.verification-detail-value{
  font-size:13px;
  line-height:1.25;
  font-weight:700;
  color:var(--ink);
}

.verification-error{
  font-size:16px;
  line-height:1.45;
  color:var(--danger, #b42318);
}

.request-modal-actions{
  grid-area:actions;
  display:grid;
  grid-template-columns:minmax(180px, 1fr) minmax(190px, 240px) minmax(150px, 190px);
  gap:8px;
  align-items:center;
  align-self:start;
  padding:10px 12px;
  margin:0;
  border:1px solid rgba(128,0,64,.18);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(128,0,64,.08), rgba(255,255,255,.96));
  box-shadow:0 10px 24px rgba(128,0,64,.08);
}

.request-action-copy{
  display:grid;
  gap:2px;
  align-self:center;
}

.request-action-title{
  font-size:13px;
  font-weight:900;
  color:var(--aub-maroon);
  text-transform:uppercase;
  letter-spacing:.04em;
}

.request-modal-actions select{
  min-width:0;
  width:100%;
  font-size:14px;
  padding:10px 12px;
  border-radius:12px;
  background:#fff;
}

.request-modal-actions .btn{
  width:100%;
  min-width:0;
  font-size:15px;
  padding:12px 14px;
  border-radius:12px;
  box-shadow:0 10px 20px rgba(128,0,64,.18);
}

.request-ai-inline{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(180px, max-content) minmax(0, 1fr);
  gap:8px;
  align-items:start;
  padding-top:8px;
  border-top:1px solid rgba(128,0,64,.12);
}

.request-ai-inline .btn{
  background:#fff;
  color:var(--ink);
  border:1px solid rgba(217,223,235,.9);
  box-shadow:none;
  font-size:12px;
  padding:8px 10px;
  width:max-content;
  min-width:180px;
}

.request-ai-inline .ai-decision-panel{
  max-height:none;
  overflow:visible;
  margin:0;
}

.section-pref-builder{
  display:grid;
  gap:10px;
  margin-top:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg, #fff 0%, #fcfbff 100%);
}

.section-pref-controls{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr)) auto;
  gap:12px;
  align-items:end;
}

.section-pref-control{
  display:grid;
  gap:6px;
  min-width:0;
}

.section-pref-control-label{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.section-pref-add-btn{
  min-height:50px;
  white-space:nowrap;
}

.lab-dropdown{
  position:relative;
}

.lab-dropdown-toggle{
  width:100%;
  text-align:left;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:14px;
  padding:14px 15px;
  font-size:16px;
  font-weight:600;
  cursor:pointer;
}

.lab-dropdown-toggle:disabled{
  color:var(--muted);
  background:#f7f7fb;
  cursor:not-allowed;
}

.lab-dropdown-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  right:0;
  z-index:20;
  display:grid;
  gap:2px;
  max-height:220px;
  overflow:auto;
  padding:10px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 20px 40px rgba(15, 23, 42, .12);
}

.lab-dropdown.open .lab-dropdown-menu{
  display:grid;
}

.lab-dropdown-menu.hidden{
  display:none;
}

.lab-dropdown-option{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:10px;
  cursor:pointer;
  font-size:15px;
  font-weight:400;
  color:var(--ink);
}

.section-choice-label{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  min-width:0;
}

.section-choice-crn,
.section-crn-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:3px 9px;
  border-radius:999px;
  border:1px solid rgba(128,0,64,.16);
  background:rgba(128,0,64,.08);
  color:var(--aub-maroon);
  font-size:12px;
  line-height:1.2;
  font-weight:900;
}

.section-choice-detail,
.section-choice-status,
.section-inline-detail{
  color:var(--muted);
  font-size:12px;
  line-height:1.3;
  font-weight:700;
}

.section-choice-status{
  display:block;
  margin-top:3px;
}

.lab-dropdown-option:hover{
  background:#f7f2f6;
}

.lab-dropdown-option input{
  width:auto;
  margin:0;
}

.section-none-picker{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fbf7fa;
}

.section-none-picker.hidden{
  display:none;
}

.section-none-list{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:10px;
}

.section-none-option{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
}

.section-none-option:hover{
  border-color:rgba(128, 0, 64, .28);
  box-shadow:0 10px 24px rgba(128, 0, 64, .08);
}

.section-none-option input{
  width:auto;
  margin:0;
}

.section-dropdown-option{
  width:100%;
  border:0;
  background:transparent;
  color:var(--ink);
  padding:8px 10px;
  border-radius:10px;
  cursor:pointer;
  font:inherit;
  font-size:15px;
  text-align:left;
}

.section-dropdown-option:hover:not(:disabled){
  background:#f7f2f6;
}

.section-dropdown-option.is-disabled{
  color:var(--muted);
  cursor:not-allowed;
  opacity:.62;
}

.section-pref-list{
  display:grid;
  gap:12px;
  margin-top:12px;
}

.section-pref-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(180deg, #ffffff 0%, #fcfbff 100%);
}

.section-pref-copy{
  display:grid;
  gap:8px;
  min-width:0;
}

.section-pref-title{
  font-size:17px;
  font-weight:900;
  color:var(--ink);
}

.section-pref-meta{
  font-size:15px;
  line-height:1.5;
  color:var(--muted);
}

.section-pref-remove{
  flex:0 0 auto;
}

.section-pref-empty{
  padding:14px 16px;
  border:1px dashed var(--line);
  border-radius:14px;
  font-size:14px;
  color:var(--muted);
  background:rgba(255,255,255,.7);
}

.student-request-form{
  gap:20px;
}

@media (min-width:1180px){
  .student-request-form{
    grid-template-columns:minmax(340px, .82fr) minmax(520px, 1.18fr);
    align-items:start;
  }

  .student-form-section-profile{
    grid-column:1;
  }

  .student-form-section-petition{
    grid-column:2;
  }

  .student-form-section-availability{
    grid-column:1 / -1;
  }

  .student-form-section-transcript,
  .student-form-actions{
    grid-column:1 / -1;
  }
}

.student-request-form input[type="text"],
.student-request-form input[type="email"],
.student-request-form input[type="file"],
.student-request-form select,
.student-request-form textarea{
  font-size:16px;
}

.student-form-section{
  display:grid;
  gap:14px;
  padding:16px;
  border:1px solid rgba(230,232,238,.95);
  border-radius:20px;
  background:linear-gradient(180deg, #ffffff 0%, #fcfbfd 100%);
  box-shadow:0 10px 24px rgba(15,23,42,.03);
}

.student-form-section-transcript{
  background:linear-gradient(180deg, #ffffff 0%, #fbf7fb 100%);
  border-color:rgba(122,0,60,.10);
}

.current-transcript-notice{
  display:grid;
  gap:3px;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(20,118,110,.18);
  border-radius:12px;
  background:linear-gradient(180deg, rgba(236,253,245,.86), rgba(255,255,255,.96));
}

.current-transcript-notice.hidden{
  display:none;
}

.current-transcript-title{
  color:#0f766e;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.current-transcript-file{
  color:var(--ink);
  font-size:14px;
  font-weight:900;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.current-transcript-help{
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}

.student-form-section-head{
  display:grid;
  gap:4px;
}

.student-form-kicker{
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--aub-maroon);
}

.student-form-section-head h2{
  margin:0;
  font-size:19px;
  line-height:1.2;
}

.student-form-actions{
  justify-content:flex-end;
  padding-top:2px;
}

.student-page-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}

.student-page-head .btn{
  flex:0 0 auto;
}

.student-history-card{
  background:linear-gradient(180deg, #ffffff 0%, #fcfbfd 100%);
}

.student-history-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:14px;
}

.student-history-head .card-header-actions{
  margin-left:auto;
  justify-content:flex-end;
}

.student-history-head h2{
  font-size:22px;
  margin:0;
}

.student-history-head p{
  max-width:560px;
}

@media (max-width:900px){
  .student-page-head{
    flex-direction:column;
  }

  .section-pref-controls{
    grid-template-columns:1fr;
  }

  .section-pref-add-btn{
    width:100%;
  }

  .student-history-head{
    align-items:start;
  }

  .student-history-head .card-header-actions{
    margin-left:0;
    justify-content:flex-start;
  }
}

.student-request-view-btn{
  font-size:13px;
  padding:8px 12px;
  white-space:nowrap;
}

.student-request-table-scroll{
  margin-top:0;
}

.student-request-table{
  min-width:960px;
}

.student-request-table th,
.student-request-table td{
  vertical-align:top;
}

.student-request-table th:nth-child(1),
.student-request-table td:nth-child(1){
  width:16%;
}

.student-request-table th:nth-child(2),
.student-request-table td:nth-child(2){
  width:34%;
}

.student-request-table th:nth-child(3),
.student-request-table td:nth-child(3){
  width:18%;
}

.student-request-table th:nth-child(4),
.student-request-table td:nth-child(4){
  width:12%;
}

.student-request-table th:nth-child(5),
.student-request-table td:nth-child(5){
  width:9%;
}

.student-request-table th:nth-child(6),
.student-request-table td:nth-child(6){
  width:13%;
}

.student-request-sections-cell{
  margin-top:0;
}

.student-request-table-types{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.student-request-table-types .chip{
  font-size:11px;
  padding:4px 8px;
}

.student-request-table-transcript{
  margin-top:6px;
}

.student-request-transcript-chip{
  display:inline-flex;
  max-width:100%;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(20,118,110,.18);
  background:rgba(236,253,245,.9);
  color:#0f766e;
  font-size:11px;
  font-weight:900;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.student-request-card-muted{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.student-request-details-modal{
  max-width:min(920px, calc(100vw - 40px));
}

.student-request-detail-note{
  margin-top:8px;
  font-size:13px;
  color:var(--muted);
}

.student-request-section-item,
.request-section-pref-item{
  display:grid;
  gap:8px;
  padding:10px;
  border-radius:12px;
  border:1px solid rgba(173,190,220,.55);
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  box-shadow:0 8px 18px rgba(15,23,42,.035);
}

.student-request-section-title,
.request-section-pref-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  padding:6px 8px;
  border-radius:10px;
  background:rgba(128,0,64,.045);
  font-size:15px;
  font-weight:900;
  color:var(--ink);
}

.student-request-section-meta,
.request-section-pref-meta{
  font-size:13px;
  line-height:1.4;
  color:var(--muted);
}

.section-detail-row{
  display:grid;
  grid-template-columns:minmax(132px, max-content) minmax(0, 1fr);
  gap:10px;
  align-items:center;
  padding:6px 8px;
  border-radius:9px;
  background:rgba(247,249,252,.78);
}

.section-detail-label{
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1.4;
  text-transform:uppercase;
}

.section-detail-value{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  min-width:0;
  color:var(--ink);
  font-size:13px;
  font-weight:750;
  line-height:1.35;
}

.section-mini-chip{
  display:inline-flex;
  align-items:center;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid rgba(173,190,220,.55);
  background:#fff;
  color:var(--ink);
  font-size:12px;
  font-weight:850;
}

.section-paired-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  max-width:100%;
  padding:3px;
  border-radius:999px;
  background:#fff;
}

.section-paired-name{
  display:inline-flex;
  align-items:center;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(15,23,42,.055);
  color:var(--ink);
  font-size:13px;
  font-weight:900;
  line-height:1.2;
}

.section-muted-value{
  color:var(--muted);
  font-weight:700;
}

.section-summary-line{
  display:grid;
  gap:4px;
  align-items:start;
}

.section-summary-lab-row{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
  padding-left:8px;
  border-left:2px solid rgba(128,0,64,.18);
}

.request-table-section-summary{
  display:grid;
  gap:5px;
  margin-top:7px;
}

.request-table-section-summary .section-summary-line{
  padding:5px 6px;
  border:1px solid rgba(173,190,220,.45);
  border-radius:10px;
  background:rgba(255,255,255,.76);
}

.request-table-section-summary .section-paired-chip{
  padding:0;
}

.request-table-section-summary .section-paired-name,
.request-table-section-summary .section-crn-badge,
.request-table-section-summary .section-inline-detail{
  font-size:11px;
}

.request-section-pref-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.request-section-pref-list .request-section-pref-item{
  flex:0 1 360px;
  max-width:100%;
}

.request-course-subtitle{
  margin-top:5px;
  font-size:12px;
  line-height:1.3;
  color:var(--muted);
}

@media (max-width:1080px){
  .request-details-body{
    grid-template-columns:1fr;
    grid-template-areas:
      "actions"
      "student"
      "request"
      "transcript";
  }

  .request-details-grid-student,
  .request-details-grid-transcript{
    grid-template-columns:1fr 1fr;
  }

  .request-details-grid-main{
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "semester submitted"
      "course course"
      "type type"
      "justification justification";
  }

  .request-modal-actions{
    grid-template-columns:1fr minmax(170px, 220px) minmax(130px, 170px);
  }

  .verification-detail-list{grid-template-columns:1fr 1fr;}
}

@media (max-width:780px){
  .request-details-grid,
  .request-details-grid-student,
  .request-details-grid-main,
  .request-details-grid-transcript{
    grid-template-columns:1fr;
  }

  .request-details-grid-main{
    grid-template-areas:
      "semester"
      "submitted"
      "course"
      "type"
      "justification";
  }

  .request-modal-actions{
    grid-template-columns:1fr;
  }

  .request-ai-inline .btn{
    width:100%;
  }

  .request-ai-inline{
    grid-template-columns:1fr;
  }

  .section-detail-row{
    grid-template-columns:1fr;
    gap:4px;
  }

  .request-kv-span-2{
    grid-column:auto;
  }
}

#mVerification .small{margin-top:0;}

.divider{
  height:1px; 
  background:var(--line);
}

/* Toast */
.toast{
  position:fixed;
  right:16px; 
  bottom:16px;
  background:#111827;
  color:#fff;
  padding:12px 14px;
  border-radius:12px;
  box-shadow:var(--shadow);
  opacity:0;
  transform:translateY(10px);
  transition:.22s ease;
  max-width:360px;
  font-size:13px;
  line-height:1.35;
  z-index:100;
}

.toast.show{
  opacity:1; 
  transform:translateY(0);
}

.auth-nav-label{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  color:rgba(255,255,255,.92);
  font-weight:700;
  font-size:13px;
  max-width:280px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.btn-nav-auth{
  padding:10px 16px;
  min-height:auto;
}

.auth-readonly{
  background:linear-gradient(180deg, #f7f8fc, #f1f4fb);
}

.student-history-actions{
  justify-content:flex-start;
}

.auth-page{
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(142, 0, 66, 0.10), transparent 28%),
    radial-gradient(circle at bottom right, rgba(10, 118, 122, 0.08), transparent 30%),
    linear-gradient(180deg, #fbfbfe 0%, #f4f6fb 100%);
}

.auth-wrap{
  max-width:880px;
  margin-inline:auto;
  padding-top:36px;
  padding-bottom:56px;
}

.auth-card{
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(188, 198, 219, 0.55);
  background:rgba(255,255,255,0.88);
  backdrop-filter:blur(14px);
  box-shadow:0 22px 56px rgba(36, 41, 61, 0.10);
}

.auth-card .card-h{
  padding:28px 30px 18px;
  background:
    linear-gradient(180deg, rgba(139, 0, 75, 0.06), rgba(139, 0, 75, 0) 90%);
  border-bottom:1px solid rgba(221, 227, 240, 0.75);
}

.auth-card-body{
  display:grid;
  gap:18px;
  padding:26px 30px 30px;
}

.auth-intro{
  display:grid;
  gap:8px;
}

.auth-eyebrow{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:7px 12px;
  border-radius:999px;
  background:#f7edf4;
  color:var(--aub-maroon, #8b004b);
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.auth-card h1{
  margin:0;
  font-size:34px;
  line-height:1.05;
}

.auth-card .card-h p{
  margin:0;
  font-size:16px;
  line-height:1.6;
  color:#60677b;
}

.auth-role-toggle,
.auth-mode-toggle{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding:6px;
  border-radius:18px;
  background:#f7f8fc;
  border:1px solid rgba(220, 227, 241, 0.9);
}

.auth-role-btn,
.auth-mode-btn{
  flex:1 1 0;
  min-width:140px;
  border:1px solid transparent;
  background:transparent;
  color:#5d6478;
  border-radius:999px;
  padding:12px 18px;
  font-weight:800;
  cursor:pointer;
  transition:all .18s ease;
}

.auth-role-btn.active,
.auth-mode-btn.active{
  background:var(--aub-maroon, #8b004b);
  border-color:var(--aub-maroon, #8b004b);
  color:#fff;
  box-shadow:0 10px 18px rgba(139, 0, 75, 0.18);
}

.auth-guidance{
  padding:15px 18px;
  border-radius:18px;
  background:linear-gradient(180deg, #faf5f8, #f8f1f5);
  color:#5c5f6d;
  border:1px solid #eadce6;
  line-height:1.55;
  font-weight:600;
}

.auth-verification-note{
  padding:15px 18px;
  border-radius:18px;
  background:linear-gradient(180deg, #edf8f8, #ecf7f6);
  color:#2a6161;
  border:1px solid #caece8;
  line-height:1.55;
  font-weight:600;
}

.auth-form{
  display:grid;
  gap:16px;
}

.auth-form.hidden{
  display:none;
}

.auth-panel-wrap{
  display:grid;
}

.auth-panel{
  display:grid;
  gap:18px;
  padding:24px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,255,0.96));
  border:1px solid rgba(220, 227, 241, 0.95);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.7);
}

.auth-panel.hidden{
  display:none;
}

.auth-inline-link-row{
  display:flex;
  justify-content:flex-end;
}

.btn-inline-link{
  border:none;
  background:transparent;
  padding:0;
  color:var(--aub-maroon, #8b004b);
  font-weight:800;
  font-size:14px;
  cursor:pointer;
}

.btn-inline-link:hover{
  text-decoration:underline;
}

.auth-panel-head{
  display:grid;
  gap:6px;
}

.auth-panel-head h2{
  margin:0;
  font-size:24px;
}

.auth-panel-head p{
  margin:0;
  color:#687083;
  font-size:15px;
  line-height:1.55;
}

.auth-form input{
  min-height:52px;
  border-radius:16px;
  padding:14px 16px;
  font-size:15px;
}

.auth-form label{
  font-size:14px;
  font-weight:800;
}

.auth-actions{
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.auth-actions .btn{
  min-width:190px;
  min-height:50px;
  border-radius:16px;
  font-size:15px;
}

.auth-footer-note{
  color:#6a7286;
  font-size:14px;
  line-height:1.55;
  text-align:center;
  padding-top:4px;
}

.auth-message{
  padding:15px 18px;
  border-radius:18px;
  font-weight:600;
  line-height:1.5;
}

.auth-message.success{
  background:#effaf5;
  color:#136b46;
  border:1px solid #b8ebcf;
}

.auth-message.error{
  background:#fff4f2;
  color:#a53a2d;
  border:1px solid #f2c2ba;
}

@media (max-width: 960px){
  .auth-wrap{
    max-width:100%;
    padding-top:24px;
  }

  .auth-nav-label{
    max-width:180px;
  }

  .auth-card .card-h,
  .auth-card-body{
    padding-left:20px;
    padding-right:20px;
  }

  .auth-card h1{
    font-size:28px;
  }
}
