/* Shared maroon, ivory and carved-gold visual system for every learning portal. */
:root {
  --maroon: #550000;
  --cream: #fffadf;
  --light: #fffdf3;
  --border: #e6d7b1;
  --gold: #c9912e;
}
.rp-shell {
  max-width: 1800px;
  margin: auto;
  background: #fffaf0;
  border: 7px solid transparent;
  border-image: url("/images/royal-temple-frame-reference.png") 125/9px stretch;
  color: #271f1c;
  font:
    15px/1.5 Georgia,
    "Times New Roman",
    serif;
  min-height: 100vh;
}
.rp-shell h1,
.rp-shell h2,
.rp-shell h3 {
  color: #690606;
  font-family: Georgia, "Times New Roman", serif;
}
.rp-shell h1 {
  font-size: 36px;
}
.rp-shell h2 {
  font-size: 23px;
  margin: 0 0 12px;
}
.rp-shell h3 {
  font-size: 18px;
  margin: 0 0 7px;
}
.rp-shell p {
  margin: 8px 0 12px;
}
.rp-shell small {
  font-size: 12px;
  color: #675a48;
}
.rp-top {
  position: relative;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 22px;
  min-height: 79px;
  padding: 5px 20px 5px 9px;
  background: linear-gradient(110deg, #620400, #480000 55%, #650700);
  border-bottom: 2px solid #cc9833;
  color: #fff7d4;
  box-shadow: 0 2px 8px #3d100055;
}
.rp-brand {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-shrink: 0;
}
.rp-brand .ag-crest {
  width: 64px;
  height: 64px;
  margin: 0;
  border: 2px solid #e8ba57;
}
.rp-brand > span:last-child {
  font-size: 20px;
  line-height: 1.1;
  color: #fff2c5;
}
.rp-brand strong {
  display: block;
  font-size: 16px;
  font-weight: 500;
}
.rp-brand small {
  display: block;
  font-size: 11px;
  letter-spacing: 3px;
  color: #e9c975;
  margin-top: 4px;
}
.rp-portal-title {
  text-align: center;
  min-width: 180px;
  flex: 1;
  font-weight: bold;
  font-size: 21px;
  white-space: nowrap;
}
.rp-portal-title small {
  display: block;
  color: #fff4d7;
  font:
    12px Arial,
    sans-serif;
  font-weight: 400;
}
.rp-search {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  max-width: 450px;
  background: #fffefa;
  border: 1px solid #d4b573;
  border-radius: 5px;
  padding: 0 10px;
  color: #730000;
}
.rp-search input {
  width: 100%;
  min-width: 0;
  padding: 9px 0;
  background: transparent;
  border: 0;
  margin: 0;
  font-size: 13px;
}
.rp-user-tools {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-left: auto;
  flex-shrink: 0;
}
.rp-bell {
  border: 0;
  padding: 8px;
  background: none;
  color: #fff5d1;
}
.rp-user {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.rp-user > span:nth-child(2) {
  max-width: 140px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rp-user small {
  display: block;
  color: #f3dbb7;
  font-size: 11px;
  text-transform: capitalize;
}
.rp-avatar {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  background: #fff2c8;
  border: 2px solid #cda854;
  border-radius: 50%;
  color: #660000;
  overflow: hidden;
}
.rp-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rp-body {
  display: grid;
  grid-template-columns: 215px minmax(0, 1fr);
  min-height: calc(100vh - 130px);
}
.rp-sidebar {
  background: linear-gradient(105deg, #650700, #3d0000);
  color: #fff4d0;
  border-right: 3px solid #be882f;
  padding: 12px 8px;
  position: relative;
}
.rp-sidebar nav {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.rp-sidebar nav a {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 9px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.2;
  min-height: 40px;
  color: #fff6dc;
}
.rp-sidebar nav svg {
  flex-shrink: 0;
  color: #ffe9ac;
}
.rp-sidebar nav a:hover {
  background: #a5411222;
  border-color: #b5813455;
}
.rp-sidebar nav a.active {
  background: linear-gradient(#fff4c7, #f5d783);
  color: #650000;
  border-color: #d0a042;
  box-shadow:
    0 2px 5px #2700006b,
    inset 0 0 3px #fff6d4;
}
.rp-sidebar a.active svg {
  color: #740700;
}
.rp-sidebar-art {
  height: 180px;
  position: relative;
  overflow: hidden;
  margin: 25px -7px 0;
  border-block: 1px solid #bb842555;
  background: #400000;
}
.rp-sidebar-art img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: 100% 60%;
  mix-blend-mode: luminosity;
  opacity: 0.75;
}
.rp-sidebar-art span {
  position: absolute;
  z-index: 1;
  left: 8px;
  bottom: 17px;
  color: #ffdd78;
  font-size: 20px;
  text-shadow: 0 1px 3px black;
}
.rp-home-link {
  display: block;
  padding: 13px 9px;
  font-size: 13px;
  color: #e9c475;
}
.rp-content {
  min-width: 0;
  background: #fffcf1;
  overflow-wrap: anywhere;
}
.rp-page {
  padding: 0;
  margin: 0;
  max-width: none;
}
.rp-page-body {
  padding: 16px;
  min-width: 0;
}
.rp-hero {
  min-height: 167px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 29px 31px;
  background: #fff2cc url("/images/gurukul-portal-banner.png") center 55% /
    cover;
  border: 7px solid transparent;
  border-image: url("/images/royal-temple-frame-reference.png") 125/8px stretch;
  color: #48190a;
  box-shadow: 0 2px 5px #66431325;
}
.rp-hero > div {
  max-width: 64%;
  text-shadow: 0 1px #fff8dd;
}
.rp-hero h1 {
  margin: 0 0 5px;
  color: #760d08;
  font-size: 36px;
  line-height: 1.1;
}
.rp-hero p {
  font-size: 18px;
  line-height: 1.35;
  margin: 4px 0;
  color: #321f12;
}
.rp-hero blockquote {
  background: #fff7ddea;
  border: 2px solid #dbad57;
  border-radius: 8px;
  padding: 15px;
  margin: 0;
  color: #7f170b;
  font-size: 17px;
  font-weight: bold;
  text-align: center;
  box-shadow: 0 2px 7px #61411428;
}
.rp-hero blockquote small {
  color: #976528;
  font-size: 12px;
  display: block;
  margin-top: 5px;
}
.rp-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 20px;
  background: #510000;
  color: #fff2c9;
  border-top: 2px solid #d4a340;
  font:
    12px Arial,
    sans-serif;
}
.rp-menu-button,
.rp-mobile-nav,
.rp-drawer-shade {
  display: none;
}
.rp-notification-panel {
  position: absolute;
  right: 20px;
  top: calc(100% + 5px);
  width: 300px;
  max-width: 90vw;
  padding: 18px;
  background: #fff8df;
  border: 1px solid #c99b49;
  border-radius: 7px;
  box-shadow: 0 10px 20px #3f12004d;
  color: #590000;
}
.rp-panel {
  padding: 17px;
  background: linear-gradient(120deg, #fffefa, #fffdf5);
  border: 1px solid #e5d9b8;
  border-radius: 7px;
  box-shadow: 0 1px 4px #8762280b;
  margin-bottom: 16px;
  min-width: 0;
}
.rp-panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.rp-panel-title h2 {
  margin: 0;
  color: #721309;
  font-size: 22px;
}
.rp-panel-title > a {
  font-size: 13px;
  white-space: nowrap;
}
.rp-panel .rp-panel {
  background: #fff9e8;
  margin-block: 14px;
}
.rp-shell .button {
  min-height: 39px;
  padding: 8px 18px;
  border-radius: 5px;
  background: linear-gradient(#8a0704, #550000);
  box-shadow: inset 0 1px 1px #dc81784d;
  border: 1px solid #811509;
  color: #fff9e7;
  font:
    600 15px/1.25 Georgia,
    serif;
}
.rp-shell .button:hover {
  background: linear-gradient(#a52712, #6c0703);
}
.rp-shell .button.outline {
  background: #fffdf4;
  color: #851411;
  border-color: #d59985;
  box-shadow: none;
}
.rp-shell .button.small {
  font-size: 12px;
  min-height: 30px;
  padding: 5px 12px;
}
.rp-shell .button.success {
  background: #129762;
  border-color: #129762;
}
.rp-shell .button.amber {
  background: #ffdfa0;
  color: #72270a;
  border-color: #e4b751;
}
.rp-shell .wide {
  margin: 10px 0;
}
.rp-shell .button:disabled {
  opacity: 0.5;
  transform: none;
}
.rp-shell input,
.rp-shell select,
.rp-shell textarea {
  width: 100%;
  min-width: 0;
  background: #fff;
  border: 1px solid #d8d6ce;
  border-radius: 4px;
  padding: 9px 10px;
  box-shadow: inset 0 1px 2px #25271f08;
  color: #2b2730;
  font:
    14px/1.3 Georgia,
    serif;
  margin: 4px 0 9px;
}
.rp-shell textarea {
  resize: vertical;
}
.rp-shell input[type="checkbox"],
.rp-shell input[type="radio"] {
  width: 17px;
  height: 17px;
  accent-color: #840606;
  box-shadow: none;
  flex-shrink: 0;
  margin: 0;
}
.rp-shell label {
  font-size: 14px;
}
.rp-field {
  display: block;
  min-width: 0;
  margin: 5px 0 10px;
}
.rp-field > span {
  display: block;
  font-weight: bold;
  color: #2e2524;
}
.rp-field b {
  color: #a40803;
}
.rp-check {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 14px;
  margin: 12px 0;
}
.rp-fields {
  display: grid;
  gap: 5px 18px;
}
.rp-fields.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.rp-fields.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.rp-editor-fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
.rp-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(245px, 1fr);
  gap: 17px;
}
.rp-editor-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: flex-end;
  margin: 15px 0;
  flex-wrap: wrap;
}
.rp-editor-actions > .button:first-child {
  margin-right: auto;
}
.rp-editor-status {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.rp-editor-status p {
  margin: 0;
  font-size: 13px;
  color: #71604a;
}
.rp-status {
  display: inline-block;
  white-space: nowrap;
  border: 1px solid #e1c278;
  border-radius: 4px;
  background: #fff0c6;
  color: #9a5c15;
  padding: 3px 9px;
  font-size: 12px;
  line-height: 1.2;
  text-transform: capitalize;
}
.rp-status.published,
.rp-status.approved,
.rp-status.connected,
.rp-status.enabled {
  background: #ddf6e8;
  border-color: #b4e0c6;
  color: #107149;
}
.rp-status.submitted,
.rp-status.teacher,
.rp-status.reviewer {
  background: #e5f2ff;
  border-color: #b7d9f5;
  color: #245c92;
}
.rp-status.revision {
  background: #ffe6e5;
  border-color: #edb6b4;
  color: #a52626;
}
.rp-status.admin {
  background: #f1e6fa;
  border-color: #d9c0f1;
  color: #743694;
}
.rp-stepper {
  display: flex;
  gap: 6px;
  justify-content: space-between;
  overflow-x: auto;
  margin: 0 0 19px;
  padding: 5px 0 8px;
}
.rp-stepper button {
  flex: 1;
  min-width: 100px;
  border: 0;
  padding: 0 5px;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  gap: 8px;
  font-size: 13px;
  color: #3c3029;
  isolation: isolate;
}
.rp-stepper button:not(:last-child):after {
  content: "→";
  position: absolute;
  top: 7px;
  left: 70%;
  width: 60%;
  height: 1px;
  border-top: 1px solid #dac7a7;
  color: #9e7b5d;
  text-align: right;
  line-height: 0;
  z-index: -1;
}
.rp-stepper button > span {
  display: grid;
  place-items: center;
  background: linear-gradient(#fff7d6, #f9dd8d);
  border: 1px solid #e5c889;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 20px;
}
.rp-stepper button.active {
  color: #8b0000;
}
.rp-stepper button.active > span {
  background: linear-gradient(#ad0908, #660000);
  color: #fff3d5;
  border-color: #9b120a;
}
.rp-stepper button.complete > span {
  color: #1b6a47;
}
.rp-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin-bottom: 17px;
}
.rp-metric {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fffaf0;
  border: 1px solid #e8dbad;
  box-shadow: 0 1px 5px #9f7c2520;
  border-radius: 7px;
  padding: 16px 11px;
  min-width: 0;
}
.rp-metric > span {
  height: 47px;
  width: 47px;
  display: grid;
  place-items: center;
  background: #fff1b4;
  color: #7b1902;
  border-radius: 50%;
  flex-shrink: 0;
}
.rp-metric strong {
  font-size: 28px;
  line-height: 1.15;
  color: #670806;
}
.rp-metric p {
  margin: 3px 0 0;
  font-size: 13px;
  line-height: 1.25;
}
.rp-admin .tone-0 {
  background: #f9f3ff;
}
.rp-admin .tone-1 {
  background: #eef9ff;
}
.rp-admin .tone-2 {
  background: #fffaed;
}
.rp-admin .tone-3 {
  background: #eefbf5;
}
.rp-admin .tone-4 {
  background: #fff1f4;
}
.rp-admin .tone-5 {
  background: #f3f1ff;
}
.rp-admin-dashboard .rp-hero {
  align-items: center;
  padding: 24px 28px;
  background: linear-gradient(110deg, #620400, #480000 55%, #650700);
  color: #fff8e5;
  border: 1px solid #c9912e;
  border-radius: 8px;
}
.rp-admin-dashboard .rp-hero h1,
.rp-admin-dashboard .rp-hero p { color: #fff8e5; }
.rp-admin-welcome { display:flex; align-items:center; gap:10px; padding:10px 15px; border:1px solid #d8b86e; border-radius:8px; background:#fff8e6; color:#650606; }
.rp-admin-welcome span,.rp-admin-welcome small { display:block; }
.rp-admin-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:18px 0; }
.rp-admin-stat { display:flex; align-items:center; gap:12px; min-width:0; padding:15px; border:1px solid #e4d7b7; border-radius:9px; background:#fff; box-shadow:0 2px 8px #512b1010; }
.rp-admin-stat > span { flex:none; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#fff0c5; color:#680900; }
.rp-admin-stat small,.rp-admin-stat strong { display:block; }
.rp-admin-stat strong { margin-top:3px; font:bold 25px/1.1 Georgia,serif; color:#590500; }
.rp-admin-stat.tone-1 > span { background:#e8f3ff;color:#1758aa; }
.rp-admin-stat.tone-2 > span { background:#fff2d9;color:#a95d00; }
.rp-admin-stat.tone-3 > span { background:#e6f7ed;color:#16824c; }
.rp-admin-stat.tone-4 > span { background:#fce9ee;color:#a11c3d; }
.rp-admin-analytics { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:14px; }
.rp-admin-analytics > .rp-panel,.rp-admin-tables > .rp-panel { min-width:0; padding:16px; border:1px solid #e5dac2; border-radius:9px; background:#fffefa; box-shadow:0 2px 7px #4827000d; }
.rp-admin-bars { display:flex; align-items:flex-end; justify-content:space-around; gap:10px; height:180px; padding:10px 3px 0; border-bottom:1px solid #d9cfbb; }
.rp-admin-bar { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:flex-end; gap:6px; height:100%; min-width:0; }
.rp-admin-bar i { display:block; width:min(42px,75%); min-height:4px; border-radius:5px 5px 0 0; background:linear-gradient(#bd3833,#650606); }
.rp-admin-bar span,.rp-admin-bar small { color:#6c5c49; font-size:11px; white-space:nowrap; }
.rp-admin-rank { display:grid; grid-template-columns:12px minmax(65px,1fr) minmax(55px,1.2fr) auto; align-items:center; gap:8px; padding:10px 0; border-bottom:1px solid #f0e8d8; font-size:12px; }
.rp-admin-rank i { height:9px; overflow:hidden; border-radius:8px; background:#eee8dd; }
.rp-admin-rank i em { display:block; height:100%; border-radius:8px; background:#8f1711; }
.rp-admin-rank strong { color:#5c0804; }
.rp-admin-dot { width:10px;height:10px;border-radius:50%;background:#740b0b; }
.rp-admin-dot.tone-1 { background:#2680d8; }.rp-admin-dot.tone-2 { background:#e98521; }.rp-admin-dot.tone-3 { background:#1e9b65; }.rp-admin-dot.tone-4 { background:#7151c6; }
.rp-admin-top-course { display:grid; grid-template-columns:25px minmax(0,1fr) auto; gap:8px; align-items:center; padding:10px 0; border-bottom:1px solid #f0e8d8; font-size:13px; }
.rp-admin-top-course > span,.rp-admin-top-course > strong { color:#690606; }
.rp-admin-departments { margin:18px 0; }
.rp-admin-departments > h2 { margin-bottom:10px; }
.rp-admin-departments .rp-department-grid { grid-template-columns:repeat(4,minmax(0,1fr)); margin:0; }
.rp-admin-departments .rp-department { grid-template-columns:32px minmax(0,1fr) auto; align-items:center; justify-items:start; text-align:left; padding:13px; border-radius:8px; background:#fff; }
.rp-admin-departments .rp-department > svg { grid-row:span 3; color:#740b0b; }
.rp-admin-departments .rp-department strong { font-size:13px; }
.rp-admin-departments .rp-department b { color:#680900; font-size:16px; }
.rp-admin-departments .rp-department > span { color:#6b0804; }
.rp-admin-tables { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.rp-admin-tables .rp-panel-title { align-items:center; }
.rp-admin-tables .rp-panel-title h2 { font-size:18px; }
.rp-admin-tables .rp-panel-title > a { white-space:nowrap; }
.rp-admin-row { display:grid; grid-template-columns:minmax(95px,1.1fr) minmax(70px,1.3fr) minmax(65px,.8fr) auto; align-items:center; gap:8px; padding:10px 0; border-bottom:1px solid #f0e8d8; font-size:12px; }
.rp-admin-row:last-child { border-bottom:0; }
.rp-admin-row > b { color:#42251b; }
.rp-admin-row > span,.rp-admin-row > small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rp-admin-row > a { color:#7a0c05; font-weight:bold; }
.rp-admin-tools { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.rp-admin-tools a { flex:1; min-width:120px; padding:9px; border:1px solid #e4d5b4; border-radius:6px; background:#fff8e8; text-align:center; font-size:12px; color:#6a0905; }
@media (max-width:1100px) {
  .rp-admin-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .rp-admin-analytics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rp-admin-analytics > .rp-panel:first-child { grid-column:1/-1; }
  .rp-admin-departments .rp-department-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
  .rp-admin-dashboard .rp-hero { align-items:flex-start; padding:18px; }
  .rp-admin-dashboard .rp-hero h1 { font-size:26px; }
  .rp-admin-welcome { display:none; }
  .rp-admin-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .rp-admin-stat { gap:8px; padding:10px; }
  .rp-admin-stat > span { width:38px;height:38px; }
  .rp-admin-stat strong { font-size:21px; }
  .rp-admin-stat small { font-size:11px; }
  .rp-admin-analytics,.rp-admin-tables { grid-template-columns:1fr; }
  .rp-admin-analytics > .rp-panel:first-child { grid-column:auto; }
  .rp-admin-departments .rp-department-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rp-admin-departments .rp-department { grid-template-columns:24px minmax(0,1fr); padding:10px; font-size:12px; }
  .rp-admin-departments .rp-department > svg { width:20px;height:20px; }
  .rp-admin-departments .rp-department b,.rp-admin-departments .rp-department > span { grid-column:2; }
  .rp-admin-row { grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; }
  .rp-admin-row > * { min-width:0; }
  .rp-admin-row > span,.rp-admin-row > small { font-size:11px; }
}
.rp-department-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0;
}
.rp-department {
  padding: 15px 10px;
  border: 1px solid #d9d6bd;
  border-radius: 5px;
  display: grid;
  gap: 8px;
  text-align: center;
  justify-items: center;
  line-height: 1.3;
  font-size: 13px;
}
.rp-department span {
  font-size: 12px;
}
.rp-department svg {
  color: #7a230d;
}
.rp-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.3fr) minmax(195px, 1fr) minmax(190px, 1fr);
  gap: 16px;
}
.rp-three-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.rp-two-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.rp-course-row {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 12px 0;
  border-bottom: 1px solid #ede4cd;
  min-width: 0;
}
.rp-course-row:last-child {
  border: 0;
}
.rp-course-row > img {
  width: 100px;
  height: 69px;
  object-fit: cover;
  border-radius: 5px;
  border: 1px solid #e5c78f;
}
.rp-course-row > div {
  flex: 1;
  min-width: 0;
}
.rp-course-row h3 {
  font-size: 17px;
  color: #311e16;
  margin: 0 0 5px;
}
.rp-course-row p {
  font-size: 12px;
  color: #76634e;
  margin: 0;
}
.rp-course-row small {
  font-size: 11px;
}
.rp-action {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 12px 10px;
  margin: 6px 0;
  background: #fffbee;
  border: 1px solid #ebdfbb;
  border-radius: 5px;
  font-size: 13px;
  color: #780e07;
}
.rp-action:hover {
  background: #fff1bc;
}
.rp-action > span:last-child {
  margin-left: auto;
}
.rp-activity {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
}
.rp-activity > span:first-child {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #b53816;
  margin-top: 6px;
  flex-shrink: 0;
}
.rp-activity strong {
  font-size: 13px;
}
.rp-activity p {
  margin: 3px 0;
  font-size: 13px;
}
.rp-activity small {
  font-size: 11px;
}
.rp-empty {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 5px;
  padding: 35px 15px;
  color: #8c734b;
}
.rp-empty h3 {
  font-size: 20px;
  margin: 7px 0 0;
}
.rp-empty p {
  max-width: 430px;
  font-size: 14px;
}
.rp-empty .button {
  margin: 12px 4px 0;
}
.rp-empty svg {
  color: #bd9658;
}
.rp-tabs {
  display: flex;
  align-items: stretch;
  gap: 2px;
  margin: 14px 0;
  overflow-x: auto;
  scrollbar-width: thin;
  border-bottom: 1px solid #e5d8b9;
}
.rp-tabs button,
.rp-tabs > span {
  border: 0;
  border-radius: 4px 4px 0 0;
  background: #f7f4ed;
  color: #41362d;
  padding: 10px 16px;
  white-space: nowrap;
  font-size: 13px;
  text-transform: capitalize;
}
.rp-tabs button.active,
.rp-tabs > span.active {
  background: linear-gradient(#930e06, #610000);
  color: #fff7d5;
}
.rp-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  align-items: center;
  margin-bottom: 10px;
}
.rp-toolbar input {
  max-width: 270px;
}
.rp-toolbar .rp-tabs {
  margin: 0;
}
.rp-table-wrap {
  overflow: auto;
  max-width: 100%;
}
.rp-shell table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 13px;
  line-height: 1.4;
}
.rp-shell th {
  background: #f3f5f7;
  color: #303a49;
  font-size: 12px;
  padding: 9px;
  border: 1px solid #e5e4de;
  white-space: nowrap;
}
.rp-shell td {
  padding: 9px;
  border: 1px solid #ebe5d6;
  vertical-align: middle;
}
.rp-shell tbody tr:nth-child(even) {
  background: #fffaf0;
}
.rp-shell tbody tr.selected {
  background: #fff1bf;
}
.rp-review-button {
  padding: 4px 12px;
  font-size: 12px;
  border-radius: 4px;
  background: #eaf5ff;
  border: 1px solid #a9d1ea;
  color: #165598;
}
.rp-review-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr);
  gap: 16px;
}
.rp-review-content {
  max-height: 440px;
  overflow: auto;
  border: 1px solid #e4dfd3;
  padding: 13px;
  background: #fffefa;
}
.rp-review-content h3 {
  font-size: 18px;
}
.rp-review-content p {
  font-size: 14px;
}
.rp-review-content summary {
  font-weight: bold;
  color: #780b06;
  cursor: pointer;
}
.rp-review-actions {
  display: grid;
  gap: 7px;
}
.rp-feedback-list {
  max-height: 420px;
  overflow: auto;
}
.rp-feedback-list article {
  border-left: 3px solid #d1ae59;
  padding: 10px 15px;
  margin-bottom: 10px;
  background: #fffae8;
}
.rp-feedback-list strong {
  display: flex;
  gap: 10px;
  align-items: center;
}
.rp-feedback-list p {
  white-space: pre-wrap;
}
.rp-saved-record {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 10px;
  justify-content: space-between;
  text-align: left;
  border: 0;
  border-bottom: 1px solid #e4dac0;
  padding: 12px 6px;
  border-radius: 0;
  background: transparent;
  font-size: 14px;
}
.rp-saved-record:hover {
  background: #fff0bd;
}
.rp-saved-record small {
  font-size: 10px;
}
.rp-saved-record strong {
  flex: 1;
}
.rp-summary-list {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 11px 20px;
  font-size: 14px;
  margin: 13px 0;
}
.rp-summary-list dt {
  color: #713423;
}
.rp-summary-list dd {
  margin: 0;
  text-align: right;
  overflow-wrap: anywhere;
}
.rp-thumbnail {
  width: 100%;
  height: 165px;
  object-fit: cover;
  border: 4px solid #e4c073;
  border-radius: 4px;
  margin-bottom: 15px;
}
.rp-module-editor {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px;
  border: 1px solid #e1d3ad;
  margin-bottom: 10px;
  background: #fffbee;
}
.rp-module-editor .rp-field {
  flex: 1;
  margin: 0;
}
.rp-module-editor > span {
  font-size: 12px;
}
.rp-question-editor {
  border: 1px solid #e2d5b2;
  border-radius: 5px;
  padding: 15px;
  margin: 14px 0;
  background: #fffbed;
}
.rp-content-type {
  display: flex;
  gap: 9px;
  margin: 17px 0;
  flex-wrap: wrap;
}
.rp-content-type > span,
.rp-content-type > .rp-check {
  min-width: 110px;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 14px 10px;
  border: 1px solid #e1d9bd;
  border-radius: 5px;
  background: #fffdf6;
  margin: 0;
  font-size: 13px;
}
.rp-content-type svg {
  color: #910c06;
}
.rp-workflow p {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 14px;
}
.rp-workflow p > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #f4d68b;
  color: #611002;
}
.rp-progress-ring {
  width: 140px;
  height: 140px;
  margin: 20px auto;
  border-radius: 50%;
  background: conic-gradient(#218d55 var(--progress), #ece8d7 0);
  position: relative;
  display: grid;
  place-items: center;
}
.rp-progress-ring:before {
  content: "";
  position: absolute;
  inset: 17px;
  background: #fffdf3;
  border-radius: 50%;
}
.rp-progress-ring strong {
  position: relative;
  font-size: 31px;
  color: #3d362c;
}
.rp-center {
  text-align: center;
}
.rp-student-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr);
  gap: 18px;
}
.rp-student-welcome {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr);
  gap: 24px;
  align-items: center;
  margin: 0 0 20px;
  padding: 26px;
  border: 1px solid #d8bd7d;
  border-radius: 16px;
  background: radial-gradient(circle at 8% 0%, #fff5d5, transparent 42%), linear-gradient(120deg, #fffdf6, #f4e8c8);
  box-shadow: 0 12px 30px #4a260012;
}
.rp-student-eyebrow { color: #8c5c12; font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.rp-student-welcome h2 { margin: 7px 0; color: #641006; font: 700 27px/1.2 Georgia,serif; }
.rp-student-welcome-copy > p { max-width: 510px; margin: 0 0 17px; color: #635446; }
.rp-student-welcome .button { display: inline-flex; align-items: center; gap: 8px; }
.rp-student-profile-glance { padding: 17px; border: 1px solid #eadbb7; border-radius: 12px; background: #ffffffc9; }
.rp-student-glance-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; }
.rp-student-glance-heading img,.rp-student-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.rp-student-avatar { display: grid; place-items: center; background: #771509; color: #fff3ce; font: 700 20px Georgia,serif; }
.rp-student-glance-heading strong,.rp-student-glance-heading small { display: block; }
.rp-student-glance-heading small { margin-top: 3px; color: #766b5d; font-size: 12px; }
.rp-student-profile-glance > p { display: flex; gap: 8px; align-items: flex-start; margin: 9px 0; color: #584839; font-size: 13px; }
.rp-student-profile-glance > p svg { flex: 0 0 auto; color: #8a5a0b; }
.rp-student-profile-glance > a { display: inline-flex; align-items: center; gap: 5px; margin-top: 5px; color: #7b160a; font-weight: 700; font-size: 13px; }
.rp-continue {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 15px 0;
  border-bottom: 1px solid #e3d6b0;
}
.rp-continue img {
  width: 145px;
  height: 105px;
  object-fit: cover;
  border: 2px solid #d6b36c;
  border-radius: 5px;
}
.rp-continue > div {
  min-width: 0;
  flex: 1;
}
.rp-continue h3 {
  color: #2e251c;
}
.rp-continue p {
  font-size: 14px;
  margin: 5px 0;
}
.rp-continue small {
  display: block;
  margin: 4px 0;
}
.rp-shortcut-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 13px;
}
.rp-shortcut-row a {
  display: grid;
  justify-items: center;
  gap: 9px;
  background: #fff8df;
  border: 1px solid #e3d4a8;
  padding: 18px 8px;
  border-radius: 6px;
  font-size: 13px;
}
.rp-shortcut-row svg {
  color: #8c1804;
}
.rp-learning-paths {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 18px;
}
.rp-learning-paths > a {
  position: relative;
  display: flex;
  align-items: center;
  border: 8px solid transparent;
  border-image: url("/images/royal-temple-frame-reference.png") 125/9px stretch;
  min-height: 172px;
  background: #fff2d3;
  overflow: hidden;
}
.rp-learning-paths img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 0 center;
}
.rp-learning-paths > a > div {
  position: relative;
  margin-left: 35%;
  width: 65%;
  padding: 10px;
  background: linear-gradient(90deg, #fff3d400, #fff3d4db 12%);
  text-align: center;
}
.rp-learning-paths > a:last-child > div {
  background: linear-gradient(90deg, #55000000, #550000df 12%);
  color: #fff5d0;
}
.rp-learning-paths h2 {
  font-size: 25px;
  line-height: 1;
  margin-bottom: 8px;
}
.rp-learning-paths > a:last-child h2 {
  color: #fff4c0;
}
.rp-learning-paths p {
  font-size: 12px;
}
.rp-learning-paths .button {
  font-size: 13px;
}
.rp-exam-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr);
  gap: 20px;
}
.rp-question-text {
  font-size: 25px !important;
  margin: 22px 0 !important;
  color: #2e2530 !important;
}
.rp-answer {
  display: flex;
  gap: 13px;
  align-items: center;
  padding: 20px 16px;
  border: 1px solid #e3e1dc;
  border-radius: 5px;
  margin: 13px 0;
  background: #fff;
  font-size: 18px !important;
  cursor: pointer;
}
.rp-answer.selected {
  background: #fff0ed;
  border-color: #c88478;
}
.rp-question-palette {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 7px;
}
.rp-question-palette button {
  border-radius: 4px;
  padding: 8px 3px;
  background: #f4f5f7;
  color: #303c4e;
  border: 1px solid #e0e0de;
  font-size: 15px;
}
.rp-question-palette .answered {
  background: #1b9d72;
  color: white;
  border-color: #159469;
}
.rp-question-palette .current {
  background: #850500;
  color: #fff7d8;
  border-color: #740400;
}
.rp-question-palette .marked {
  background: #ffd681;
  color: #6c3700;
}
.rp-palette-legend {
  font-size: 11px;
}
.rp-shell progress {
  width: 100%;
  height: 9px;
  border: 0;
  border-radius: 6px;
  overflow: hidden;
  accent-color: #309755;
  background: #e5e3d6;
}
.rp-shell progress::-webkit-progress-bar {
  background: #e5e3d6;
}
.rp-shell progress::-webkit-progress-value {
  background: #309755;
  border-radius: 6px;
}
.rp-result-row {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 17px 6px;
  border-bottom: 1px solid #e2d7b6;
}
.rp-result-row > div {
  flex: 1;
  min-width: 0;
}
.rp-result-row h3 {
  margin: 0;
  font-size: 19px;
}
.rp-result-row > strong {
  font-size: 19px;
  color: #6c1407;
}
.rp-result-row p {
  font-size: 13px;
  margin: 5px 0;
}
.rp-result-banner {
  display: flex;
  gap: 20px;
  align-items: center;
  padding: 22px;
  background: #ecf9f0;
  border: 1px solid #c3e2d0;
  color: #15804f;
  border-radius: 6px;
  margin: 7px 0 20px;
}
.rp-result-banner h2 {
  color: #178255;
}
.rp-result-banner.review {
  background: #fff4df;
  color: #9e6c1d;
  border-color: #e9d5a5;
}
.rp-result-banner.review h2 {
  color: #9e6c1d;
}
.rp-answer-review {
  padding: 17px;
  border-left: 3px solid #b74940;
  background: #fff3ed;
  margin-bottom: 13px;
}
.rp-answer-review.correct {
  border-color: #23966b;
  background: #f3fbf4;
}
.rp-answer-review p {
  font-size: 14px;
}
.rp-certificate {
  max-width: 820px;
  margin: 25px auto;
  padding: 45px;
  text-align: center;
  border: 22px solid transparent;
  border-image: url("/images/royal-temple-frame-reference.png") 125/25px stretch;
  background: #fff5d9 url("/images/gurukul-portal-banner.png") center/cover;
  background-blend-mode: screen;
  box-shadow: 0 5px 20px #54200022;
}
.rp-certificate .ag-crest {
  width: 100px;
  height: 100px;
  margin: 0 auto 18px;
}
.rp-certificate h3 {
  color: #771509;
  font-size: 23px;
}
.rp-certificate h1 {
  font-size: 39px;
  margin: 10px;
}
.rp-certificate h2 {
  font-size: 34px;
  color: #241b10;
  margin: 20px;
}
.rp-certificate > svg {
  display: block;
  margin: 25px auto;
  color: #b68629;
}
.rp-certificate > small {
  display: block;
}
.rp-certificate-rule {
  font-size: 28px;
  color: #be8c32;
}
.rp-certificate-note {
  font-size: 12px !important;
}
.rp-explorer {
  display: grid;
  grid-template-columns: 1fr 1fr 1.15fr 1.1fr;
  gap: 10px;
}
.rp-explorer .rp-panel {
  padding: 0 0 12px;
}
.rp-explorer .rp-panel-title {
  padding: 12px;
  background: linear-gradient(#820d05, #530000);
  border: 1px solid #ca983f;
  margin: 0 0 5px;
  border-radius: 5px 5px 0 0;
}
.rp-explorer .rp-panel-title h2 {
  color: #fff2c5;
  font-size: 18px;
}
.rp-explorer-row {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-width: 0;
  text-align: left;
  padding: 12px 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  border-bottom: 1px solid #e6ddbf;
  color: #482c1b;
  font-size: 14px;
}
.rp-explorer-row > span {
  flex: 1;
}
.rp-explorer-row small {
  display: block;
  font-size: 11px;
  margin-top: 4px;
}
.rp-explorer-row > svg {
  flex-shrink: 0;
  color: #8b260e;
}
.rp-explorer-row.selected {
  background: linear-gradient(#ffefb5, #f8d87e);
  color: #641402;
}
.rp-explorer-row:hover {
  background: #fff2c6;
}
.rp-explorer .rp-panel:last-child {
  padding: 12px;
}
.rp-explorer .rp-panel:last-child .rp-panel-title {
  margin: -12px -12px 14px;
}
.rp-explorer .rp-panel:last-child h2 {
  font-size: 24px;
}
.rp-explorer .rp-panel:last-child p {
  font-size: 13px;
}
.rp-explorer .pagination {
  gap: 6px;
  padding: 10px;
  font-size: 11px;
}
.rp-explorer .pagination button {
  font-size: 10px;
  padding: 5px;
}
.rp-explorer-steps > span {
  flex: 1;
  text-align: center;
  background: #660000;
  color: #fff1c7;
}
.rp-explorer-steps > span.active {
  background: #f6d68a;
  color: #681808;
}
/* Existing pages inherit the same panels, borders, banners and controls. */
.rp-content > .page {
  max-width: none;
  padding: 22px;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #fffcf1;
}
.rp-content > .page.narrow {
  max-width: 960px;
  margin: 20px auto;
}
.rp-content .page-banner,
.rp-content .category-heading,
.rp-content .reading-banner {
  background: #fff2cc url("/images/gurukul-portal-banner.png") center/cover;
  color: #5b1400;
  border: 6px solid transparent;
  border-image: url("/images/royal-temple-frame-reference.png") 125/8px stretch;
  border-radius: 0;
  padding: 32px;
  margin-bottom: 23px;
  min-height: 165px;
}
.rp-content .page-banner h1,
.rp-content .category-heading h1,
.rp-content .reading-banner h1 {
  color: #790c04;
  text-shadow: 0 1px #fff4c4;
}
.rp-content .page-banner small,
.rp-content .category-heading p {
  color: #5c2708;
}
.rp-content .category-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.rp-content .category-card {
  background: #fff8df;
  border: 1px solid #d3b06e;
  border-radius: 7px;
  box-shadow: 0 3px 7px #70401424;
  overflow: hidden;
}
.rp-content .category-card h3 {
  font-size: 21px;
}
.rp-content .course-card,
.rp-content .panel,
.rp-content .chapter,
.rp-content .filter-panel,
.rp-content .course-sidebar {
  border-color: #dfc58b;
  border-radius: 6px;
  box-shadow: 0 2px 7px #73430014;
  background: #fffaf0;
}
.rp-content .course-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.rp-content .course-card h3 {
  font-size: 22px;
}
.rp-content .course-card p {
  font-size: 14px;
}
.rp-content .course-card > div:last-child > strong {
  background: linear-gradient(#8b0805, #550000);
  border-radius: 4px;
  color: #fff7dc;
  justify-content: center;
}
.rp-content .course-banner {
  border: 8px solid transparent;
  border-image: url("/images/royal-temple-frame-reference.png") 125/9px stretch;
  background: #5a0000;
  color: #fff2bf;
  border-radius: 0;
}
.rp-content .course-banner h1 {
  color: #fff0b3;
}
.rp-content .course-banner p {
  font-size: 16px;
}
.rp-content .lesson-layout {
  grid-template-columns: minmax(0, 1fr) 270px;
}
.rp-content .lesson-layout video {
  border: 6px solid #c99639;
  border-radius: 5px;
  width: 100%;
}
.rp-content .lesson-text {
  background: #fff9e6;
  border: 1px solid #e4d2a4;
  border-radius: 5px;
  padding: 22px;
}
.rp-content .stat-row > div {
  border: 1px solid #e3d3a5;
  background: #fff6d7;
}
.rp-content .stat-row strong {
  color: #7c1206;
}
.rp-content .chapter summary {
  background: #fff7e4;
  border-bottom: 1px solid #e2cd99;
  color: #731307;
}
.rp-content .lesson-row.selected {
  background: #fcebb2;
}
.rp-content .filter-field {
  background: #fff9e4;
}
.rp-content .filter-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.rp-content .breadcrumbs {
  font-size: 12px;
}
.rp-content .page > h1:first-of-type {
  margin: 0 0 22px;
}
.rp-content .admin-layout {
  grid-template-columns: 260px minmax(0, 1fr);
}
/* Temple login: live fields over a decorative framed background. */
.rp-auth-page {
  display: grid;
  grid-template-columns: 1fr 440px;
  gap: 0;
  padding: 35px;
  max-width: 1200px;
  margin: 35px auto;
  background: #4b0000 url("/images/gurukul-portal-banner.png") center/cover;
  border: 20px solid transparent;
  border-image: url("/images/royal-temple-frame-reference.png") 125/24px stretch;
  border-radius: 0;
  box-shadow: 0 7px 25px #4f210033;
}
.rp-auth-page > aside {
  background: linear-gradient(90deg, #430000ee, #560000a8);
  color: #fff0ae;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.rp-auth-page > aside h1 {
  color: #fff0af;
  font-size: 40px;
}
.rp-auth-page > aside img {
  display: none;
}
.rp-auth-page > section {
  background: #fff7dfef;
  border: 1px solid #d6ae58;
  border-radius: 22px 22px 7px 7px;
  padding: 27px;
  color: #500000;
  text-align: center;
  box-shadow: 0 4px 14px #4b22003b;
}
.rp-auth-page > section > .ag-crest {
  width: 92px;
  height: 92px;
  margin: 0 auto 14px;
}
.rp-auth-page > section > h3 {
  font-size: 19px;
  margin: 4px 0;
}
.rp-auth-page h1 {
  font-size: 32px;
  margin: 14px 0 3px;
}
.rp-auth-page > section > p {
  font:
    15px Georgia,
    serif;
  margin: 6px 0 15px;
}
.rp-auth-page form {
  text-align: left;
}
.rp-auth-page form label {
  font:
    14px Georgia,
    serif;
}
.rp-auth-page input {
  background: #fffdfa;
  border: 1px solid #d8c8a3;
  border-radius: 5px;
  min-height: 42px;
}
.rp-auth-page .button {
  border-radius: 5px;
  background: linear-gradient(#8f0b02, #570000);
  color: #fff8e0;
}
.rp-auth-page form > small {
  font-size: 11px;
}
.rp-auth-page > section > a {
  display: block;
  font:
    13px Georgia,
    serif;
  margin: 12px 0;
}
.rp-auth-tabs {
  display: flex;
  border: 1px solid #e4cf93;
  background: #ffefc0;
  border-radius: 20px;
  margin: 15px 0;
  overflow: hidden;
}
.rp-auth-tabs button {
  flex: 1;
  border: 0;
  background: none;
  border-radius: 15px;
  font:
    13px Georgia,
    serif;
  padding: 8px;
  color: #590000;
}
.rp-auth-tabs button.active {
  background: #800701;
  color: #fff4ce;
}
.rp-preview-logins {
  padding-top: 12px;
  margin-top: 20px;
  border-top: 1px solid #d3ba82;
}
.rp-preview-logins h4 {
  margin: 0;
  font-size: 13px;
}
.rp-preview-logins p {
  font-size: 12px;
}
.rp-preview-logins .button {
  background: #fff7d9;
  color: #710a00;
  min-height: 30px;
  font-size: 11px;
  padding: 6px 9px;
  margin: 3px;
}
.rp-auth-page .password button {
  font-size: 12px;
  padding: 6px;
}
@media (min-width: 1550px) {
  .rp-top {
    gap: 32px;
  }
  .rp-hero {
    min-height: 185px;
  }
  .rp-page-body {
    padding: 20px;
  }
  .rp-body {
    grid-template-columns: 230px minmax(0, 1fr);
  }
}
@media (max-width: 1300px) {
  .rp-portal-title {
    display: none;
  }
  .rp-top {
    gap: 18px;
  }
  .rp-dashboard-grid {
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
  }
  .rp-dashboard-grid > .rp-panel:last-child {
    grid-column: 1/-1;
  }
  .rp-dashboard-grid > .rp-panel:last-child:has(.rp-activity) {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }
  .rp-dashboard-grid > .rp-panel:last-child > .rp-panel-title {
    grid-column: 1/-1;
  }
  .rp-body {
    grid-template-columns: 195px minmax(0, 1fr);
  }
  .rp-sidebar nav a {
    font-size: 13px;
    padding: 9px 7px;
  }
  .rp-hero h1 {
    font-size: 32px;
  }
  .rp-hero blockquote {
    font-size: 14px;
    padding: 11px;
  }
  .rp-hero p {
    font-size: 16px;
  }
  .rp-department-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .rp-explorer {
    grid-template-columns: 1fr 1fr 1.3fr;
  }
  .rp-explorer > .rp-panel:last-child {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 10px 22px;
  }
  .rp-explorer > .rp-panel:last-child > .rp-panel-title {
    grid-column: 1/-1;
  }
  .rp-explorer > .rp-panel:last-child > .rp-thumbnail {
    grid-row: 2/6;
    margin: 0;
  }
  .rp-explorer > .rp-panel:last-child > h2 {
    margin: 0;
  }
  .rp-review-grid {
    grid-template-columns: 1fr;
  }
  .rp-editor-grid {
    grid-template-columns: minmax(0, 1.9fr) minmax(220px, 1fr);
  }
  .rp-learning-paths h2 {
    font-size: 23px;
  }
  .rp-course-row .rp-status {
    font-size: 10px;
  }
  .rp-course-row > img {
    width: 79px;
    height: 63px;
  }
  .rp-course-row {
    gap: 10px;
  }
  .rp-course-row .button {
    padding: 5px 8px;
  }
}
@media (max-width: 1023px) {
  .rp-brand > span:last-child {
    font-size: 17px;
  }
  .rp-brand strong {
    font-size: 13px;
  }
  .rp-brand .ag-crest {
    width: 58px;
    height: 58px;
  }
  .rp-body {
    grid-template-columns: 175px minmax(0, 1fr);
  }
  .rp-sidebar nav a {
    font-size: 12px;
    gap: 8px;
  }
  .rp-hero blockquote {
    display: none;
  }
  .rp-hero > div {
    max-width: 85%;
  }
  .rp-hero {
    padding: 25px;
    min-height: 150px;
  }
  .rp-hero h1 {
    font-size: 30px;
  }
  .rp-page-body {
    padding: 12px;
  }
  .rp-top {
    padding-right: 10px;
    gap: 12px;
  }
  .rp-user > span:nth-child(2),
  .rp-user > svg {
    display: none;
  }
  .rp-search {
    max-width: none;
  }
  .rp-editor-grid,
  .rp-student-grid,
  .rp-student-welcome {
    grid-template-columns: 1fr;
  }
  .rp-editor-grid > aside {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
  }
  .rp-editor-grid > aside > .rp-panel {
    margin-bottom: 0;
  }
  .rp-dashboard-grid {
    grid-template-columns: 1fr 1fr;
  }
  .rp-dashboard-grid > .rp-main-panel {
    grid-column: 1/-1;
  }
  .rp-dashboard-grid > .rp-panel:last-child {
    grid-column: auto;
  }
  .rp-dashboard-grid > .rp-panel:last-child:has(.rp-activity) {
    display: block;
  }
  .rp-fields.three {
    grid-template-columns: 1fr 1fr;
  }
  .rp-three-columns {
    grid-template-columns: 1fr 1fr;
  }
  .rp-three-columns > .rp-panel:last-child {
    grid-column: 1/-1;
  }
  .rp-content .category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .rp-content .course-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rp-learning-paths {
    grid-template-columns: 1fr;
  }
  .rp-content .course-detail,
  .rp-content .lesson-layout {
    grid-template-columns: 1fr;
  }
  .rp-content > .page {
    padding: 16px;
  }
  .rp-exam-layout {
    grid-template-columns: 1fr;
  }
  .rp-exam-layout > aside {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .rp-exam-layout > aside > .rp-panel {
    margin: 0;
  }
  .rp-exam-layout > aside > .rp-panel:last-of-type {
    grid-column: 1/-1;
  }
  .rp-explorer {
    grid-template-columns: 1fr 1fr;
  }
  .rp-explorer > .rp-panel:nth-child(3) {
    grid-column: 1/-1;
  }
  .rp-explorer > .rp-panel:last-child {
    grid-column: 1/-1;
  }
  .rp-auth-page {
    grid-template-columns: 1fr 400px;
    padding: 20px;
    border-width: 13px;
  }
  .rp-auth-page > aside {
    padding: 25px;
  }
  .rp-auth-page > aside h1 {
    font-size: 32px;
  }
  .rp-content .filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .rp-shell {
    border-width: 5px;
    border-image-width: 6px;
    min-height: 100vh;
  }
  .rp-top {
    min-height: 76px;
    padding: 5px 7px;
    gap: 6px;
    justify-content: space-between;
    position: sticky;
    top: 0;
  }
  .rp-brand {
    gap: 6px;
  }
  .rp-brand .ag-crest {
    width: 53px;
    height: 53px;
  }
  .rp-brand > span:last-child {
    font-size: 14px;
  }
  .rp-brand strong {
    font-size: 10px;
  }
  .rp-brand small {
    font-size: 8px;
    letter-spacing: 2px;
  }
  .rp-search {
    display: none;
  }
  .rp-user-tools {
    gap: 0;
    margin: 0;
  }
  .rp-user-tools .ag-gold-button {
    padding: 5px 9px;
    font-size: 12px;
    min-height: 32px;
  }
  .rp-avatar {
    width: 30px;
    height: 30px;
  }
  .rp-bell {
    padding: 4px;
  }
  .rp-bell svg {
    width: 19px;
  }
  .rp-menu-button {
    display: grid;
    place-items: center;
    width: 28px;
    height: 38px;
    padding: 2px;
    border: 0;
    background: none;
    color: #ffeac0;
  }
  .rp-body {
    display: block;
    min-height: calc(100vh - 140px);
  }
  .rp-sidebar {
    position: fixed;
    top: 76px;
    left: 5px;
    bottom: 66px;
    z-index: 45;
    width: 248px;
    max-width: 80vw;
    overflow-y: auto;
    display: none;
    box-shadow: 10px 0 35px #26000040;
  }
  .rp-sidebar.is-open {
    display: block;
  }
  .rp-sidebar nav a {
    font-size: 15px;
    padding: 12px 9px;
  }
  .rp-drawer-shade {
    display: block;
    position: fixed;
    inset: 76px 0 65px;
    z-index: 40;
    background: #23000070;
    border: 0;
    border-radius: 0;
  }
  .rp-sidebar-art {
    height: 130px;
  }
  .rp-page-body {
    padding: 10px;
  }
  .rp-hero {
    min-height: 164px;
    padding: 22px 15px;
    border-width: 5px;
    border-image-width: 6px;
    background-position: 72% center;
  }
  .rp-hero > div {
    max-width: 89%;
    padding: 5px 0;
    text-shadow:
      0 1px #fff8dc,
      0 0 8px #fff3cb;
  }
  .rp-hero h1 {
    font-size: 27px;
  }
  .rp-hero p {
    font-size: 14px;
    line-height: 1.35;
    max-width: 80%;
  }
  .rp-hero > div > p[lang] {
    font-size: 15px;
  }
  .rp-footer {
    display: block;
    text-align: center;
    padding: 15px;
    font-size: 10px;
  }
  .rp-footer span {
    display: block;
    margin: 4px 0;
  }
  .rp-mobile-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 60;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    background: linear-gradient(#780900, #480000);
    color: #fff2cf;
    border-top: 2px solid #d9b057;
    padding: 7px 3px calc(7px + env(safe-area-inset-bottom, 0px));
    border-radius: 13px 13px 0 0;
    box-shadow: 0 -2px 9px #3a000033;
  }
  .rp-mobile-nav a {
    display: grid;
    justify-items: center;
    gap: 4px;
    font-size: 10px;
    line-height: 1.2;
    padding: 4px 0;
    min-height: 44px;
    color: #fff1c7;
  }
  .rp-mobile-nav a.active {
    color: #ffdc63;
  }
  .rp-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 12px;
  }
  .rp-metric {
    padding: 11px 8px;
    gap: 8px;
  }
  .rp-metric > span {
    width: 34px;
    height: 34px;
  }
  .rp-metric > span svg {
    width: 22px;
  }
  .rp-metric strong {
    font-size: 23px;
  }
  .rp-metric p {
    font-size: 11px;
  }
  .rp-panel {
    padding: 13px;
    margin-bottom: 12px;
  }
  .rp-panel-title {
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
  }
  .rp-panel-title h2 {
    font-size: 20px;
  }
  .rp-panel-title > a {
    font-size: 11px;
  }
  .rp-shell h1 {
    font-size: 27px;
  }
  .rp-shell h2 {
    font-size: 22px;
  }
  .rp-shell h3 {
    font-size: 18px;
  }
  .rp-shell .button {
    font-size: 14px;
    min-height: 42px;
    padding: 9px 13px;
  }
  .rp-shell .button.small {
    min-height: 32px;
    font-size: 12px;
    padding: 6px 10px;
  }
  .rp-dashboard-grid,
  .rp-three-columns,
  .rp-two-columns,
  .rp-student-grid,
  .rp-review-grid,
  .rp-editor-grid,
  .rp-exam-layout {
    display: block;
  }
  .rp-editor-grid > aside {
    display: block;
  }
  .rp-fields.two,
  .rp-fields.three {
    grid-template-columns: 1fr;
  }
  .rp-stepper {
    gap: 10px;
    padding-bottom: 12px;
    scrollbar-width: thin;
  }
  .rp-stepper button {
    min-width: 97px;
    font-size: 11px;
  }
  .rp-stepper button > span {
    width: 29px;
    height: 29px;
    font-size: 17px;
  }
  .rp-editor-status {
    align-items: flex-start;
  }
  .rp-editor-status p {
    font-size: 11px;
  }
  .rp-editor-actions {
    gap: 8px;
    justify-content: flex-start;
  }
  .rp-editor-actions .button {
    flex: 1;
    font-size: 12px;
    padding: 8px 10px;
    min-width: 115px;
  }
  .rp-editor-actions .rp-check {
    flex-basis: 100%;
    justify-content: center;
    order: 2;
  }
  .rp-editor-actions > .button:first-child {
    margin-right: 0;
  }
  .rp-thumbnail {
    height: 160px;
  }
  .rp-summary-list {
    font-size: 13px;
    gap: 11px;
  }
  .rp-course-row {
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px 0;
  }
  .rp-course-row > img {
    width: 72px;
    height: 64px;
  }
  .rp-course-row > div {
    flex-basis: calc(100% - 95px);
  }
  .rp-course-row h3 {
    font-size: 17px;
  }
  .rp-course-row > .rp-status {
    margin-left: 82px;
  }
  .rp-course-row > div p {
    font-size: 11px;
  }
  .rp-course-row .button {
    font-size: 11px;
    min-height: 29px;
  }
  .rp-empty {
    padding: 24px 10px;
  }
  .rp-empty h3 {
    font-size: 18px;
  }
  .rp-empty p {
    font-size: 13px;
  }
  .rp-action {
    font-size: 14px;
    padding: 13px;
  }
  .rp-toolbar {
    flex-wrap: wrap;
    gap: 9px;
  }
  .rp-toolbar input {
    max-width: none;
  }
  .rp-toolbar .rp-tabs {
    width: 100%;
    margin-bottom: 5px;
  }
  .rp-tabs {
    margin: 10px 0;
  }
  .rp-tabs button,
  .rp-tabs > span {
    padding: 9px 12px;
    font-size: 12px;
  }
  .rp-department-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0;
  }
  .rp-department {
    font-size: 12px;
    padding: 12px 8px;
  }
  .rp-module-editor {
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px;
  }
  .rp-module-editor .rp-field {
    flex-basis: 100%;
  }
  .rp-saved-record {
    flex-wrap: wrap;
    font-size: 13px;
  }
  .rp-saved-record strong {
    min-width: 50%;
  }
  .rp-content-type {
    gap: 7px;
  }
  .rp-content-type > span,
  .rp-content-type > .rp-check {
    flex-basis: 42%;
    min-width: 0;
    font-size: 12px;
    padding: 11px 7px;
  }
  .rp-shell input,
  .rp-shell select,
  .rp-shell textarea {
    font-size: 16px;
    padding: 10px;
    min-height: 42px;
  }
  .rp-shell input[type="checkbox"],
  .rp-shell input[type="radio"] {
    min-height: 0;
  }
  .rp-shell table {
    font-size: 12px;
  }
  .rp-shell td,
  .rp-shell th {
    padding: 7px;
  }
  .rp-table-wrap td:first-child {
    white-space: nowrap;
  }
  .rp-review-content {
    max-height: 500px;
  }
  .rp-review-actions {
    grid-template-columns: 1fr;
  }
  .rp-learning-paths {
    gap: 11px;
    margin-bottom: 12px;
  }
  .rp-learning-paths > a {
    min-height: 122px;
    border-width: 5px;
    border-image-width: 7px;
  }
  .rp-learning-paths h2 {
    font-size: 20px;
  }
  .rp-learning-paths p {
    font-size: 10px;
    margin: 6px 0;
  }
  .rp-learning-paths .button,
  .rp-learning-paths .ag-gold-button {
    font-size: 11px;
    min-height: 28px;
    padding: 5px 10px;
  }
  .rp-continue {
    gap: 12px;
  }
  .rp-continue img {
    width: 102px;
    height: 86px;
  }
  .rp-continue h3 {
    font-size: 17px;
  }
  .rp-continue p {
    font-size: 12px;
  }
  .rp-continue small {
    font-size: 10px;
  }
  .rp-shortcut-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
  .rp-shortcut-row a {
    font-size: 11px;
    padding: 12px 4px;
  }
  .rp-result-row {
    gap: 12px;
    flex-wrap: wrap;
    padding: 15px 0;
  }
  .rp-result-row > div {
    flex-basis: 70%;
  }
  .rp-result-row > strong {
    font-size: 18px;
  }
  .rp-result-row h3 {
    font-size: 18px;
  }
  .rp-result-row > span:last-child {
    margin-left: auto;
    font-size: 13px;
  }
  .rp-result-row > svg {
    width: 26px;
  }
  .rp-question-text {
    font-size: 23px !important;
  }
  .rp-answer {
    font-size: 16px !important;
    padding: 16px 12px;
    gap: 10px;
  }
  .rp-question-palette {
    grid-template-columns: repeat(6, 1fr);
  }
  .rp-exam-layout > aside {
    display: block;
  }
  .rp-exam-layout > aside > .rp-panel {
    margin-bottom: 12px;
  }
  .rp-result-banner {
    gap: 12px;
    padding: 17px;
  }
  .rp-result-banner h2 {
    font-size: 24px;
  }
  .rp-result-banner p {
    font-size: 13px;
  }
  .rp-explorer {
    display: block;
  }
  .rp-explorer .rp-panel {
    margin-bottom: 12px;
  }
  .rp-explorer > .rp-panel:last-child {
    display: block;
    padding: 13px;
  }
  .rp-explorer .rp-panel:last-child .rp-panel-title {
    margin: -13px -13px 13px;
  }
  .rp-explorer .rp-panel:last-child .rp-thumbnail {
    margin-bottom: 12px;
  }
  .rp-explorer-row {
    font-size: 15px;
    padding: 12px;
  }
  .rp-explorer .rp-panel:first-child {
    max-height: 300px;
    overflow-y: auto;
  }
  .rp-explorer .rp-panel:nth-child(2) {
    max-height: 245px;
    overflow-y: auto;
  }
  .rp-explorer-steps {
    margin-bottom: 14px;
    gap: 2px;
  }
  .rp-explorer-steps span {
    font-size: 11px;
    padding: 9px;
  }
  .rp-content > .page {
    padding: 13px;
    background: #fffcf1;
  }
  .rp-content > .page.narrow {
    margin: 0;
    max-width: none;
  }
  .rp-content .category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .rp-content .category-card h3 {
    font-size: 17px;
  }
  .rp-content .category-card > div:last-child {
    padding: 10px;
  }
  .rp-content .category-card span {
    font-size: 11px;
  }
  .rp-content .course-grid {
    grid-template-columns: 1fr;
    gap: 13px;
  }
  .rp-content .course-card h3 {
    font-size: 22px;
  }
  .rp-content .page-banner,
  .rp-content .category-heading,
  .rp-content .reading-banner {
    padding: 22px 14px;
    margin-bottom: 15px;
    min-height: 147px;
    border-width: 5px;
  }
  .rp-content .page-banner h1,
  .rp-content .category-heading h1,
  .rp-content .reading-banner h1 {
    font-size: 27px;
  }
  .rp-content .filter-grid {
    grid-template-columns: 1fr;
  }
  .rp-content .lesson-text {
    padding: 15px;
  }
  .rp-content .lesson-layout video {
    border-width: 4px;
  }
  .rp-content .course-banner {
    border-width: 5px;
    display: block;
  }
  .rp-content .course-banner h1 {
    font-size: 28px;
  }
  .rp-content .admin-layout {
    grid-template-columns: 1fr;
  }
  .rp-content .member-row {
    flex-wrap: wrap;
  }
  .rp-certificate {
    padding: 22px 12px;
    border-width: 12px;
    border-image-width: 16px;
  }
  .rp-certificate .ag-crest {
    width: 76px;
    height: 76px;
  }
  .rp-certificate h1 {
    font-size: 28px;
  }
  .rp-certificate h2 {
    font-size: 29px;
    margin: 18px 0;
  }
  .rp-certificate h3 {
    font-size: 18px;
  }
  .rp-certificate p {
    font-size: 14px;
  }
  .rp-certificate > small {
    font-size: 10px;
    overflow-wrap: anywhere;
  }
  .rp-auth-page {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .rp-auth-page > aside {
    min-height: 180px;
    background: url("/images/gurukul-portal-banner.png") 83% center/cover;
    padding: 0;
    border-bottom: 5px solid #c6963e;
  }
  .rp-auth-page > aside > * {
    display: none;
  }
  .rp-auth-page > section {
    padding: 24px 20px;
    border-radius: 0;
    border: 5px solid transparent;
    border-image: url("/images/royal-temple-frame-reference.png") 125/7px
      stretch;
    background: linear-gradient(#fff9e4, #fff4cf);
  }
  .rp-auth-page > section > .ag-crest {
    width: 80px;
    height: 80px;
  }
  .rp-auth-page h1 {
    font-size: 30px;
  }
  .rp-auth-page > section > h3 {
    font-size: 17px;
  }
  .rp-auth-page input {
    font-size: 16px;
  }
  .rp-auth-page .button {
    font-size: 15px;
  }
  .rp-preview-logins .button {
    font-size: 11px;
  }
  .rp-auth-page .rp-auth-tabs button {
    padding: 10px;
    font-size: 14px;
  }
}
@media (max-width: 370px) {
  .rp-brand .ag-crest {
    width: 43px;
    height: 43px;
  }
  .rp-brand > span:last-child {
    font-size: 12px;
  }
  .rp-brand strong {
    font-size: 9px;
  }
  .rp-brand small {
    font-size: 7px;
  }
  .rp-top {
    gap: 3px;
    padding-inline: 3px;
  }
  .rp-bell {
    display: none;
  }
  .rp-hero h1 {
    font-size: 24px;
  }
  .rp-metric strong {
    font-size: 21px;
  }
  .rp-metric > span {
    width: 29px;
    height: 29px;
  }
  .rp-metric p {
    font-size: 10px;
  }
  .rp-explorer-steps span {
    padding: 8px;
    font-size: 10px;
  }
  .rp-panel-title h2 {
    font-size: 19px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rp-shell * {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}
@media print {
  body {
    padding: 0;
    background: white;
  }
  .rp-top,
  .rp-sidebar,
  .rp-footer,
  .rp-mobile-nav,
  .rp-hero,
  .rp-toolbar,
  .rp-tabs,
  .rp-editor-actions,
  .rp-shell .button,
  .ag-header,
  .ag-footer,
  .ag-bottom-nav {
    display: none !important;
  }
  .rp-shell {
    border: 0;
    max-width: none;
  }
  .rp-body,
  .rp-exam-layout {
    display: block;
  }
  .rp-content {
    background: white;
  }
  .rp-certificate {
    margin: 0;
    box-shadow: none;
    max-width: none;
    break-inside: avoid;
    print-color-adjust: exact;
  }
  .rp-exam-layout > aside {
    display: none;
  }
  .rp-panel {
    break-inside: avoid;
  }
  .rp-page-body {
    padding: 0;
  }
}

/* Super Admin dashboard: compact burgundy and ivory layout based on the
   supplied dashboard reference. All displayed totals remain database-backed. */
.rp-shell:has(.rp-admin-dashboard) {
  --admin-wine: #59070b;
  --admin-wine-deep: #390306;
  --admin-gold: #d6a648;
  max-width: 1900px;
  border-image: none;
  border: 0;
  background: #fffaf0;
}
.rp-shell:has(.rp-admin-dashboard) .rp-top {
  min-height: 76px;
  padding: 5px 18px 5px 12px;
  background: linear-gradient(105deg, #65090c, #450306 58%, #65090c);
  border-bottom: 3px solid var(--admin-gold);
}
.rp-shell:has(.rp-admin-dashboard) .rp-body {
  grid-template-columns: 205px minmax(0, 1fr);
  background: #fffaf1;
}
.rp-shell:has(.rp-admin-dashboard) .rp-sidebar {
  background: linear-gradient(180deg, #4b0508, #310205);
  border-right: 2px solid #a97827;
}
.rp-shell:has(.rp-admin-dashboard) .rp-sidebar nav { gap: 4px; }
.rp-shell:has(.rp-admin-dashboard) .rp-sidebar nav a {
  min-height: 39px;
  padding: 8px 9px;
  border-radius: 5px;
  font: 600 13px/1.25 Arial, sans-serif;
}
.rp-shell:has(.rp-admin-dashboard) .rp-sidebar nav a.active {
  background: linear-gradient(100deg, #ffe9a7, #f4d17a);
  color: #4d0708;
}
.rp-shell:has(.rp-admin-dashboard) .rp-content { background: #fffaf1; }
.rp-admin-dashboard .rp-hero {
  min-height: 78px;
  padding: 14px 20px;
  border: 0;
  border-bottom: 1px solid #ead8b3;
  border-radius: 0;
  background: linear-gradient(105deg, #fffdf8, #fff6df);
  box-shadow: none;
}
.rp-admin-dashboard .rp-hero > div { max-width: 72%; }
.rp-admin-dashboard .rp-hero h1 {
  margin: 0;
  color: #54080b;
  font: 700 25px/1.2 Georgia, "Times New Roman", serif;
}
.rp-admin-dashboard .rp-hero p {
  margin: 4px 0 0;
  color: #766047;
  font: 12px/1.4 Arial, sans-serif;
}
.rp-admin-welcome {
  border-color: #ead7ae;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 2px 8px #4211070b;
  font: 600 13px Arial, sans-serif;
}
.rp-admin-welcome small { margin-top: 3px; font: 11px Arial, sans-serif; }
.rp-admin-dashboard .rp-page-body { padding: 13px 15px 22px; }
.rp-admin-metrics {
  gap: 10px;
  margin: 0 0 13px;
}
.rp-admin-stat {
  min-height: 88px;
  padding: 12px;
  border-color: #e9dfcf;
  border-radius: 9px;
  background: linear-gradient(135deg, #fff, #fffdf9);
  box-shadow: 0 3px 10px #482b1510;
}
.rp-admin-stat > span { width: 48px; height: 48px; }
.rp-admin-stat small {
  color: #34364a;
  font: 600 12px/1.3 Arial, sans-serif;
}
.rp-admin-stat strong {
  margin-top: 4px;
  color: #52080c;
  font: 700 24px/1.1 Georgia, "Times New Roman", serif;
}
.rp-admin-analytics {
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 11px;
}
.rp-admin-analytics > .rp-panel,
.rp-admin-tables > .rp-panel {
  padding: 12px;
  border-color: #e7ddce;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 8px #41250e0c;
}
.rp-admin-dashboard .rp-panel-title { margin-bottom: 9px; }
.rp-admin-dashboard .rp-panel-title h2,
.rp-admin-departments > h2 {
  margin: 0;
  color: #59090d;
  font: 700 16px/1.3 Georgia, "Times New Roman", serif;
}
.rp-admin-dashboard .rp-panel-title > a {
  color: #174d9a;
  font: 600 11px Arial, sans-serif;
}
.rp-admin-bars { height: 152px; }
.rp-admin-bar i { background: linear-gradient(#a51c2a, #61080d); }
.rp-admin-rank { padding: 8px 0; font: 12px Arial, sans-serif; }
.rp-admin-rank i em { background: linear-gradient(90deg, #8c1019, #c46a54); }
.rp-admin-top-course { padding: 8px 0; font-family: Arial, sans-serif; }
.rp-admin-departments { margin: 13px 0; }
.rp-admin-departments > h2 { margin: 0 0 8px; }
.rp-admin-departments .rp-department-grid {
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 8px;
}
.rp-admin-departments .rp-department {
  min-height: 95px;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 4px 7px;
  padding: 10px 8px;
  border: 1px solid #e5d8c3;
  border-radius: 7px;
  box-shadow: 0 2px 5px #482b1508;
  font-family: Arial, sans-serif;
}
.rp-admin-departments .rp-department > svg { width: 25px; height: 25px; }
.rp-admin-departments .rp-department strong { font-size: 12px; line-height: 1.2; }
.rp-admin-departments .rp-department b { grid-column: 2; font-size: 16px; }
.rp-admin-departments .rp-department > span {
  grid-column: 2;
  font: 600 11px Arial, sans-serif;
}
.rp-admin-departments .rp-department:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 13px #482b1518;
}
.rp-admin-tables {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}
.rp-admin-tables .rp-panel-title h2 { font-size: 15px; }
.rp-admin-row {
  grid-template-columns: minmax(75px, 1fr) minmax(70px, 1.2fr) minmax(55px, .8fr) auto;
  gap: 6px;
  padding: 8px 0;
  border-color: #f0e9df;
  font: 11px Arial, sans-serif;
}
.rp-admin-row > b { color: #25334f; }
.rp-admin-tools a {
  border-color: #e7d9bd;
  background: #fff8e9;
  color: #59090d;
  font-family: Arial, sans-serif;
}
@media (max-width: 1350px) {
  .rp-admin-departments .rp-department-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rp-admin-tables { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .rp-admin-dashboard .rp-admin-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rp-admin-dashboard .rp-admin-analytics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .rp-shell:has(.rp-admin-dashboard) .rp-body { grid-template-columns: 1fr; }
  .rp-admin-dashboard .rp-hero { min-height: 66px; padding: 12px 14px; }
  .rp-admin-dashboard .rp-hero h1 { font-size: 21px; }
  .rp-admin-dashboard .rp-page-body { padding: 10px; }
  .rp-admin-dashboard .rp-admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rp-admin-dashboard .rp-admin-analytics,
  .rp-admin-dashboard .rp-admin-tables { grid-template-columns: 1fr; }
  .rp-admin-dashboard .rp-admin-departments .rp-department-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rp-admin-dashboard .rp-admin-stat { min-height: 76px; }
  .rp-admin-dashboard .rp-admin-stat strong { font-size: 20px; }
}

/* Dashboard composition follows the supplied four-panel / three-table layout. */
.rp-admin-dashboard .rp-admin-analytics {
  grid-template-columns: 1.12fr 1fr 1fr 1fr;
  align-items: stretch;
}
.rp-admin-donut-layout {
  display: grid;
  grid-template-columns: minmax(95px, 1fr) minmax(90px, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 145px;
}
.rp-admin-donut {
  display: grid;
  place-items: center;
  width: min(150px, 100%);
  aspect-ratio: 1;
  margin: auto;
  border-radius: 50%;
  background: var(--state-data);
  position: relative;
}
.rp-admin-donut::before {
  content: "";
  position: absolute;
  inset: 24%;
  border: 1px solid #f0e8dc;
  border-radius: 50%;
  background: #fff;
}
.rp-admin-donut > span {
  position: relative;
  z-index: 1;
  color: #4b0a0d;
  text-align: center;
  font: 700 20px/1.1 Georgia, "Times New Roman", serif;
}
.rp-admin-donut > span small {
  display: block;
  margin-top: 4px;
  font: 11px Arial, sans-serif;
}
.rp-admin-legend { display: grid; gap: 8px; }
.rp-admin-legend > div {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  color: #33384b;
  font: 11px Arial, sans-serif;
}
.rp-admin-legend i { width: 10px; height: 10px; border-radius: 2px; background: var(--legend-color); }
.rp-admin-legend b { color: #31364a; }
.rp-admin-status-chart {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
  gap: 6px;
  min-height: 145px;
  padding: 4px 2px 0;
  border-bottom: 1px solid #ded8ce;
}
.rp-admin-status-chart > div {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 5px;
  text-align: center;
}
.rp-admin-status-chart span,
.rp-admin-status-chart small { color: #655c54; font: 10px/1.2 Arial, sans-serif; }
.rp-admin-status-chart i {
  display: block;
  width: min(28px, 76%);
  min-height: 4px;
  border-radius: 4px 4px 0 0;
  background: linear-gradient(#bd4546, #710c16);
}
.rp-admin-status-chart small { min-height: 24px; }
.rp-admin-primary-tables { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 11px; }
.rp-admin-table-wrap { max-width: 100%; overflow-x: auto; }
.rp-admin-table {
  width: 100%;
  border-collapse: collapse;
  color: #292c38;
  font: 11px/1.35 Arial, sans-serif;
}
.rp-admin-table th {
  padding: 7px 6px;
  color: #27344d;
  background: #faf7f0;
  border: 1px solid #e9e1d5;
  text-align: left;
  white-space: nowrap;
}
.rp-admin-table td { padding: 7px 6px; border: 1px solid #eee8df; vertical-align: middle; }
.rp-admin-table td b { display: block; color: #243047; font-size: 11px; }
.rp-admin-table td small { display: block; margin-top: 2px; font-size: 10px; overflow-wrap: anywhere; }
.rp-admin-table td a { color: #1453a0; font-weight: 700; white-space: nowrap; }
.rp-admin-bottom {
  display: grid;
  grid-template-columns: 1.05fr 1fr 1.15fr 1fr;
  gap: 11px;
  margin-top: 11px;
}
.rp-admin-bottom > .rp-panel {
  min-width: 0;
  padding: 12px;
  border: 1px solid #e7ddce;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 8px #41250e0c;
}
.rp-admin-progress { display: block; width: 100%; height: 9px; overflow: hidden; border-radius: 5px; background: #e6e8eb; }
.rp-admin-progress i { display: block; height: 100%; background: #720d17; }
.rp-admin-summary { display: grid; gap: 0; }
.rp-admin-summary > div { display: flex; justify-content: space-between; gap: 8px; padding: 11px 3px; border-bottom: 1px solid #eee7dd; font: 12px Arial, sans-serif; }
.rp-admin-summary > div:last-child { border: 0; }
.rp-admin-summary b { color: #56080c; font-size: 14px; }
.rp-admin-summary b.is-positive { color: #16844a; }
.rp-admin-summary b.is-muted { color: #92544e; }
.rp-admin-activity { list-style: none; padding: 0; margin: 0; }
.rp-admin-activity li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: start; gap: 7px; padding: 8px 0; border-bottom: 1px solid #eee7dd; font: 11px Arial, sans-serif; }
.rp-admin-activity li:last-child { border: 0; }
.rp-admin-activity li > i { width: 9px; height: 9px; margin-top: 3px; border-radius: 50%; background: #971722; }
.rp-admin-activity li > span b,
.rp-admin-activity li > span small { display: block; }
.rp-admin-activity li > span b { color: #33394b; }
.rp-admin-activity li > span small { margin-top: 2px; overflow-wrap: anywhere; }
.rp-admin-activity time { color: #746d65; font-size: 10px; white-space: nowrap; }
.rp-admin-bottom .rp-admin-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1450px) {
  .rp-admin-dashboard .rp-admin-analytics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rp-admin-bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .rp-admin-dashboard .rp-admin-analytics,
  .rp-admin-dashboard .rp-admin-primary-tables,
  .rp-admin-dashboard .rp-admin-bottom { grid-template-columns: 1fr; }
  .rp-admin-donut-layout { grid-template-columns: minmax(120px, .9fr) 1.1fr; max-width: 380px; margin: auto; }
}

/* Course creator upload form */
.course-builder { max-width: 980px; margin: 22px auto; }
.course-builder > p { color: #65584b; line-height: 1.65; }
.course-builder-form { display: grid; gap: 16px; }
.course-builder-form > label, .course-builder-lesson label { display: grid; gap: 7px; color: #4b1715; font-weight: 700; }
.course-builder-form input:not([type="file"]), .course-builder-form textarea,
.course-builder-lesson input:not([type="file"]), .course-builder-lesson input[type="file"] {
  width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #d9cbb5; border-radius: 8px;
  background: #fffdf8; color: #251d1a; font: inherit;
}
.course-builder-form textarea { resize: vertical; }
.course-builder-lessons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.course-builder-lessons > h3 { grid-column: 1 / -1; margin: 2px 0; color: #68111a; }
.course-builder-lesson { min-width: 0; display: grid; gap: 13px; padding: 14px; border: 1px solid #e5d9c7; border-radius: 10px; background: #fffaf0; }
.course-builder-lesson legend { padding: 0 7px; color: #71121b; font-weight: 800; }
.course-builder-lesson label { font-size: 14px; }
.course-builder-lesson input[type="file"] { padding: 8px; font-size: 13px; }
.field-hint { color: #75685c; font-size: 12px; font-weight: 500; }
.course-builder-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.course-builder-actions button { min-height: 44px; }
.google-signin { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; margin-top: 14px; padding: 10px 16px; border: 1px solid #d9cbb5; border-radius: 8px; background: #fff; color: #28211e; font-weight: 700; text-decoration: none; }
.google-signin:hover { border-color: #8e1822; box-shadow: 0 3px 12px #3a1a1010; }
@media (max-width: 640px) { .course-builder-lessons { grid-template-columns: 1fr; } }
