/* =========================================================
   FILE: style_ui.css
   VERSION: v2.3.1
   UPDATED: 2026-02-05 America/Mexico_City
   AUTHOR: Steve
   CHANGE: Dedupe + normalización flat + orden (UI + Sidebar + Courses + FullCalendar) + móvil (workspace) + FullCalendar ultra-compact
   ========================================================= */

:root {
  --ui-border: rgba(0, 0, 0, 0.08);
  --ui-border-strong: rgba(0, 0, 0, 0.1);
  --ui-muted: #6b7280;
  --ui-ink: #111827;
  --ui-hover: rgba(17, 24, 39, 0.03);
  --ui-shadow: 0 1px 3px rgba(16, 24, 40, 0.08);
  --ui-shadow-hover: 0 2px 8px rgba(16, 24, 40, 0.1);

  --ui-mobile-pad: 12px;
  --ui-mobile-radius: 1rem;
  --ui-mobile-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
  --ui-mobile-shadow-hover: 0 2px 8px rgba(16, 24, 40, 0.08);
}

.hide {
  display: none !important;
}

/* =========================
   Base UI
========================= */

.ui-muted {
  color: var(--ui-muted);
}
.ui-title {
  letter-spacing: -0.01em;
}

.ui-divider {
  height: 1px;
  background: var(--ui-border);
  margin: 18px 0;
}

.ui-card {
  border: 1px solid var(--ui-border);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: var(--ui-shadow);
}
.ui-card:hover {
  box-shadow: var(--ui-shadow-hover);
}

body.academy-app .shadow-sm,
body.academy-app .card.shadow-sm,
body.academy-app .block_box.shadow-sm {
  box-shadow: var(--ui-shadow) !important;
}

.ui-statuswrap {
  border: 1px solid var(--ui-border);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: var(--ui-shadow);
  padding: 14px;
}
.ui-statushead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.ui-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--ui-border-strong);
  background: #fff;
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 0.85rem;
  color: var(--ui-muted);
}

.ui-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 0.65rem !important;
  border: 1px solid var(--ui-border-strong);
  background: #fff;
  color: var(--ui-muted);
}
.ui-pill-ok {
  background: rgba(34, 197, 94, 0.1);
  border-color: rgba(34, 197, 94, 0.25);
  color: #166534;
}
.ui-pill-no {
  background: rgba(148, 163, 184, 0.12);
  border-color: rgba(148, 163, 184, 0.25);
  color: #334155;
}

.ui-actions .btn {
  border-radius: 0.85rem;
}
.ui-tabs .btn {
  border-radius: 999px;
}
.ui-btn {
  border-radius: 0.9rem;
}

.btn-xs {
  padding: 0.2rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.2;
  border-radius: 0.85rem;
}

.ui-badge {
  font-size: 0.72rem;
  padding: 0.32rem 0.5rem;
  border-radius: 0.85rem;
}
.ui-tabcount {
  font-size: 0.7rem;
  padding: 0.28rem 0.48rem;
  border-radius: 999px;
}

.ui-rowlink {
  border: 1px solid var(--ui-border);
  border-radius: 1rem;
  background: #fff;
  padding: 14px;
  box-shadow: var(--ui-shadow);
}
.ui-rowlink:hover {
  background: var(--ui-hover);
  box-shadow: var(--ui-shadow-hover);
}

.nu,
.nu:hover {
  text-decoration: none;
  color: inherit;
}

.ui-kicker {
  font-size: 0.7rem;
  font-weight: 400;
  color: var(--ui-muted);
}

.ui-acc-btn {
  box-shadow: none !important;
}

.ui-exam-item {
  padding-top: 22px;
  padding-bottom: 22px;
}
.ui-exam-divider {
  height: 1px;
  background: var(--ui-border);
  margin: 18px 0;
}

/* =========================
   Steps / Plans / Live
========================= */

.ui-step-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 992px) {
  .ui-step-grid {
    grid-template-columns: 1fr;
  }
}

.ui-step-pill {
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: #fff;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  box-shadow: var(--ui-shadow);
}
.ui-step-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ui-step-name {
  font-weight: 800;
  letter-spacing: -0.01em;
}
.ui-step-ok {
  color: var(--bs-success);
}
.ui-step-no {
  color: var(--ui-muted);
}
.ui-step-right {
  color: var(--ui-muted);
}

.ui-step {
  border: 1px solid var(--ui-border);
  border-radius: 1rem;
  background: #fff;
  padding: 12px;
  box-shadow: var(--ui-shadow);
}
.ui-step:hover {
  box-shadow: var(--ui-shadow-hover);
}
.ui-step a {
  text-decoration: none;
  color: inherit;
}
.ui-step a:hover {
  text-decoration: underline;
}

.ui-plan-row {
  padding: 16px 18px;
}
.ui-plan-row .ui-plan-name {
  font-weight: 800;
  letter-spacing: -0.01em;
}

.ui-live-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 992px) {
  .ui-live-grid {
    grid-template-columns: 1fr;
  }
}

.ui-live-item {
  border: 1px solid var(--ui-border);
  border-radius: 1rem;
  background: #fff;
  padding: 14px;
  box-shadow: var(--ui-shadow);
}
.ui-live-item:hover {
  background: var(--ui-hover);
  box-shadow: var(--ui-shadow-hover);
}
.ui-live-kicker {
  font-size: 0.85rem;
  color: var(--ui-muted);
}
.ui-live-title {
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ui-ink);
}
.ui-live-meta {
  margin-top: 6px;
  color: var(--ui-muted);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

/* =========================
   Registry / Lists
========================= */

.ui-reglist {
  max-height: 260px;
  overflow: auto;
}
.ui-regitem {
  border: 1px solid var(--ui-border);
  border-radius: 1rem;
  background: #fff;
  padding: 12px;
  box-shadow: var(--ui-shadow);
}
.ui-regitem:hover {
  background: var(--ui-hover);
  box-shadow: var(--ui-shadow-hover);
}
.ui-regtitle {
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--ui-ink);
}
.ui-regmeta {
  font-size: 0.85rem;
  color: var(--ui-muted);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

/* =========================
   Class Cards
========================= */

.ui-class-card {
  border: 1px solid var(--ui-border);
  border-radius: 1.1rem;
  background: #fff;
  padding: 1.25rem;
  box-shadow: var(--ui-shadow);
}
.ui-class-card:hover {
  box-shadow: var(--ui-shadow-hover);
}
.ui-class-meta {
  color: var(--ui-muted);
  font-size: 0.85rem;
}
.ui-class-actions .btn {
  border-radius: 0.85rem;
}

/* =========================
   Sidebar
========================= */

.ui-side-card {
  border: 1px solid var(--ui-border);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: var(--ui-shadow);
}
.ui-side-card:hover {
  box-shadow: var(--ui-shadow-hover);
}
.ui-side-divider {
  height: 1px;
  background: var(--ui-border);
  margin: 14px 0;
}
.ui-side-muted {
  color: var(--ui-muted);
}
.ui-side-title {
  letter-spacing: -0.01em;
}

.ui-side-nav .nav-link {
  border-radius: 0.95rem;
  padding: 0.65rem 0.75rem;
  color: var(--ui-ink);
  display: flex;
  align-items: center;
  gap: 8px;
}
.ui-side-nav .nav-link:hover {
  background: var(--ui-hover);
}
.ui-side-nav .nav-link.active {
  background: rgba(13, 110, 253, 0.08);
  color: #0b5ed7;
  font-weight: 700;
  padding: 10px;
  border-radius: 10px;
}
.ui-side-nav .nav-link i {
  width: 20px;
  text-align: center;
}

/* =========================
   Courses
========================= */

.ui-course-wrap {
  border: 1px solid var(--ui-border);
  border-radius: 1.1rem;
  background: #fff;
  padding: 18px;
  margin-top: 18px;
  box-shadow: var(--ui-shadow);
}
.ui-course-title a {
  color: inherit;
  text-decoration: none;
}
.ui-course-title a:hover {
  text-decoration: underline;
}

.ui-progress {
  height: 10px;
  border-radius: 0.75rem;
  background: rgba(17, 24, 39, 0.08);
  overflow: hidden;
}
.ui-progress > div {
  height: 100%;
}

.ui-list .list-group-item {
  border-color: var(--ui-border);
}
.ui-list .list-group-item:hover {
  background: var(--ui-hover);
}

.ui-accordion .accordion-item {
  border: 0;
  background: transparent;
}
.ui-accordion .accordion-button {
  background: #fff;
  border: 1px solid var(--ui-border);
  border-radius: 1.1rem;
  box-shadow: none;
}
.ui-accordion .accordion-button:not(.collapsed) {
  box-shadow: var(--ui-shadow-hover);
}
.ui-accordion .accordion-body {
  padding: 0;
}

.ui-badges .badge {
  border-radius: 0.85rem;
}

.ui-mini {
  font-size: 0.92rem;
}

.ui-rec {
  border: 1px dashed var(--ui-border-strong);
  border-radius: 1rem;
  padding: 12px;
}
.ui-rec a {
  text-decoration: none;
  color: inherit;
}
.ui-rec a:hover {
  text-decoration: underline;
}

.ui-search .form-control,
.ui-search .btn {
  border-radius: 0.95rem;
}

.ui-recbtn {
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.1;
}
.ui-recbtn i {
  font-size: 0.9rem;
}

.ui-recmeta {
  color: var(--ui-muted);
  font-size: 0.82rem;
}

/* =========================
   FullCalendar (Base)
========================= */

.fc {
  background: transparent;
  padding: 0;
}
.fc .fc-scrollgrid {
  border: 0;
}

.fc .fc-toolbar.fc-header-toolbar {
  margin-bottom: 0.75rem;
}

.fc .fc-toolbar-chunk {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.fc .fc-toolbar-title {
  font-weight: 600;
  color: var(--bs-secondary);
  text-transform: uppercase !important;
  font-size: large !important;
}

.fc .fc-button {
  border-radius: 0.85rem !important;
}
.fc .fc-button-primary {
  box-shadow: none !important;
}

.fc .fc-button-group {
  gap: 0.35rem;
}
.fc .fc-button-group > .fc-button {
  margin: 0;
}

.fc .fc-list {
  border: 0;
}

.fc .fc-list-day-cushion {
  background: rgba(17, 24, 39, 0.03);
  border-radius: 0.85rem;
  margin-top: 0.75rem;
  padding: 0.6rem 0.75rem;
}

.fc .fc-list-event {
  border-radius: 0.85rem;
  overflow: hidden;
}
.fc .fc-list-event:hover {
  background: rgba(17, 24, 39, 0.03);
}
.fc .fc-list-event-title {
  font-weight: 700;
}

.fc-theme-standard td,
.fc-theme-standard th {
  border-color: rgba(0, 0, 0, 0.06);
}

/* =========================
   Mobile Workspace Helpers
   (para expandir a full-width y controlar padding)
========================= */

@media (max-width: 576px) {
  .ui-mobile-fluid {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .ui-mobile-edge {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .ui-mobile-edge .ui-card,
  .ui-mobile-edge .ui-class-card,
  .ui-mobile-edge .ui-course-wrap {
    border-radius: 0.9rem;
  }

  .ui-mobile-edge .ui-card {
    padding: 1rem !important;
  }

  .ui-mobile-edge .ui-card.p-4,
  .ui-mobile-edge .ui-card.p-5 {
    padding: 1rem !important;
  }

  .ui-mobile-edge .ui-class-card {
    padding: 1rem;
  }

  .ui-mobile-edge .ui-divider {
    margin: 12px 0;
  }
}

/* =========================================================
   Mobile Boost Pack (UI móvil: densidad, botones, workspace)
   ========================================================= */

@media (max-width: 576px) {
  body {
    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
  }

  .ui-mobile-work {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: var(--ui-mobile-pad) !important;
    padding-right: var(--ui-mobile-pad) !important;
  }

  .ui-mobile-edge {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .ui-mobile-edge .ui-mobile-work {
    padding-left: var(--ui-mobile-pad) !important;
    padding-right: var(--ui-mobile-pad) !important;
  }

  .ui-title,
  h1,
  h2,
  h3 {
    letter-spacing: -0.02em;
  }

  .h1,
  .h2,
  .h3,
  h1,
  h2,
  h3 {
    line-height: 1.05;
  }

  .ui-card,
  .ui-statuswrap,
  .ui-course-wrap,
  .ui-class-card,
  .ui-live-item,
  .ui-rowlink,
  .ui-regitem {
    border-radius: var(--ui-mobile-radius) !important;
    box-shadow: var(--ui-mobile-shadow) !important;
  }

  .ui-card {
    padding: 1rem !important;
  }
  .ui-card.p-4,
  .ui-card.p-5 {
    padding: 1rem !important;
  }

  .ui-class-card,
  .ui-course-wrap,
  .ui-live-item,
  .ui-rowlink,
  .ui-regitem {
    padding: 0.95rem !important;
  }

  .ui-divider {
    margin: 12px 0 !important;
  }

  .ui-actions {
    width: 100%;
  }
  .ui-actions .btn {
    border-radius: 999px !important;
    padding: 0.55rem 0.95rem !important;
    font-size: 0.9rem !important;
    line-height: 1.1;
  }

  .btn.btn-sm {
    padding: 0.5rem 0.9rem !important;
    font-size: 0.88rem !important;
    border-radius: 999px !important;
  }

  .btn-group,
  .ui-tabs {
    width: 100%;
  }

  .ui-tabs .btn {
    flex: 1 1 auto;
    white-space: nowrap;
    padding: 0.55rem 0.85rem !important;
    font-size: 0.9rem !important;
  }

  .badge,
  .ui-badge {
    border-radius: 999px !important;
    padding: 0.38rem 0.6rem !important;
    font-size: 0.78rem !important;
  }

  .ui-progress {
    height: 12px;
    border-radius: 999px;
  }

  .ui-live-meta,
  .ui-regmeta {
    gap: 6px !important;
  }

  .ui-step-grid {
    gap: 10px;
  }

  .ui-step-pill {
    padding: 12px 14px;
    border-radius: 999px;
    box-shadow: var(--ui-mobile-shadow) !important;
  }

  .ui-step {
    padding: 0.9rem;
    box-shadow: var(--ui-mobile-shadow) !important;
  }

  .ui-card .ui-card {
    box-shadow: none !important;
  }

  .fc .fc-toolbar-title {
    font-size: 1rem !important;
    letter-spacing: 0.04em;
  }
  .fc .fc-toolbar-chunk {
    gap: 0.4rem;
  }
  .fc .fc-button {
    padding: 0.45rem 0.7rem !important;
    font-size: 0.85rem !important;
    border-radius: 999px !important;
  }
}

/* =========================================================
   FullCalendar — Mobile Compact Mode
   ========================================================= */
@media (max-width: 576px) {
  .fc {
    padding: 8px !important;
    border-radius: 14px;
  }

  .fc .fc-toolbar.fc-header-toolbar {
    margin-bottom: 0.4rem;
  }

  .fc .fc-toolbar-title {
    font-size: 0.85rem !important;
    letter-spacing: 0.08em;
    font-weight: 600;
  }

  .fc .fc-toolbar-chunk {
    gap: 0.3rem;
  }

  .fc .fc-button {
    padding: 0.35rem 0.6rem !important;
    font-size: 0.75rem !important;
    line-height: 1;
    border-radius: 999px !important;
  }

  .fc .fc-button-group {
    gap: 0.25rem;
  }

  .fc-theme-standard th,
  .fc-theme-standard td {
    font-size: 0.65rem;
    padding: 2px !important;
  }

  .fc-daygrid-day {
    padding: 2px !important;
  }

  .fc-daygrid-day-frame {
    padding: 4px !important;
    border-radius: 10px;
  }

  .fc-daygrid-day-number {
    font-size: 0.65rem;
    padding: 2px 4px;
  }

  .fc-daygrid-event {
    margin-top: 2px;
    padding: 1px 4px;
    font-size: 0.6rem;
    line-height: 1.1;
    border-radius: 6px;
  }

  .fc-daygrid-event .fc-event-title {
    font-size: 0.6rem;
    font-weight: 600;
  }

  .fc .fc-list-day-cushion {
    padding: 0.4rem 0.5rem;
    margin-top: 0.4rem;
    border-radius: 10px;
    font-size: 0.65rem;
  }

  .fc .fc-list-event {
    padding: 0.35rem 0.45rem;
    font-size: 0.65rem;
  }

  .fc .fc-list-event-title {
    font-size: 0.65rem;
    font-weight: 600;
  }

  .fc .fc-list-event-time {
    font-size: 0.6rem;
  }

  .fc-scrollgrid-section-body table {
    border-spacing: 3px 3px !important;
    border-collapse: separate !important;
  }
}

/* =========================================================
   FullCalendar — Mobile ULTRA Compact (override final)
   ========================================================= */
@media (max-width: 576px) {
  .fc {
    padding: 6px !important;
    border-radius: 12px !important;
  }

  .fc .fc-toolbar.fc-header-toolbar {
    margin-bottom: 0.25rem !important;
  }

  .fc .fc-toolbar-title {
    font-size: 0.78rem !important;
    letter-spacing: 0.1em !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
  }

  .fc .fc-toolbar-chunk {
    gap: 0.22rem !important;
  }

  .fc .fc-button {
    padding: 0.28rem 0.5rem !important;
    font-size: 0.7rem !important;
    line-height: 1 !important;
    border-radius: 999px !important;
  }

  .fc .fc-button-group {
    gap: 0.18rem !important;
  }

  .fc-theme-standard th {
    font-size: 0.6rem !important;
    padding: 2px !important;
  }

  .fc-theme-standard td {
    font-size: 0.6rem !important;
    padding: 1px !important;
  }

  .fc .fc-daygrid-day {
    padding: 1px !important;
  }

  .fc .fc-daygrid-day-frame {
    padding: 2px !important;
    border-radius: 9px !important;
    min-height: 44px !important;
  }

  .fc .fc-daygrid-day-top {
    margin-bottom: 1px !important;
  }

  .fc .fc-daygrid-day-number {
    font-size: 0.58rem !important;
    padding: 1px 3px !important;
    line-height: 1 !important;
  }

  .fc .fc-daygrid-event {
    margin-top: 1px !important;
    padding: 0 3px !important;
    font-size: 0.56rem !important;
    line-height: 1.05 !important;
    border-radius: 6px !important;
  }

  .fc .fc-daygrid-event .fc-event-title {
    font-size: 0.56rem !important;
    font-weight: 600 !important;
    line-height: 1.05 !important;
  }

  .fc .fc-daygrid-event .fc-event-time {
    font-size: 0.54rem !important;
  }

  .fc .fc-list-day-cushion {
    padding: 0.28rem 0.4rem !important;
    margin-top: 0.25rem !important;
    border-radius: 9px !important;
    font-size: 0.6rem !important;
  }

  .fc .fc-list-event {
    padding: 0.22rem 0.35rem !important;
    font-size: 0.6rem !important;
  }

  .fc .fc-list-event-title {
    font-size: 0.6rem !important;
    font-weight: 600 !important;
  }

  .fc .fc-list-event-time {
    font-size: 0.56rem !important;
  }

  .fc-scrollgrid-section-body table {
    border-spacing: 2px 2px !important;
    border-collapse: separate !important;
  }

  .fc .fc-list-table td {
    padding: 6px 6px !important;
  }
}

@media (max-width: 360px) {
  .fc {
    padding: 5px !important;
  }
  .fc .fc-toolbar-title {
    font-size: 0.74rem !important;
  }
  .fc .fc-button {
    padding: 0.26rem 0.46rem !important;
    font-size: 0.68rem !important;
  }
}

.ui-owned {
  border-color: rgba(25, 135, 84, 0.25);
}
.ui-plan-cover {
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.06);
  background: #f8fafc;
  height: 180px;
}
.ui-plan-cover .cover {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}
.ui-courses {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  margin-top: 14px;
  padding-top: 14px;
}
.ui-course-item {
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 1rem;
  background: #fff;
  padding: 14px;
}
.ui-course-item:hover {
  background: rgba(17, 24, 39, 0.02);
}
.ui-course-meta {
  color: #6b7280;
  font-size: 0.9rem;
}

/* =========================================================
   Academy Visual System
   ========================================================= */

body.academy-app {
  --academy-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --academy-title: #1f2937;
  --academy-text: #4b5563;
  --academy-muted: #6b7280;
  --academy-border: rgba(100, 103, 105, 0.16);
  color: var(--academy-text);
  font-family: var(--academy-font);
}

body.academy-app,
body.academy-app * {
  font-family: var(--academy-font);
}

body.academy-app .fa,
body.academy-app .fas,
body.academy-app .far,
body.academy-app .fal,
body.academy-app .fad,
body.academy-app .fab {
  font-family: "Font Awesome 5 Free" !important;
}

body.academy-app .fab {
  font-family: "Font Awesome 5 Brands" !important;
}

body.academy-app .bi,
body.academy-app [class^="bi-"],
body.academy-app [class*=" bi-"] {
  font-family: "bootstrap-icons" !important;
}

body.academy-app h1,
body.academy-app h2,
body.academy-app h3,
body.academy-app .h1,
body.academy-app .h2,
body.academy-app .h3,
body.academy-app .ui-title,
body.academy-app .assessment-heading,
body.academy-app .titulo,
body.academy-app .font-max,
body.academy-app .display-1,
body.academy-app .display-2,
body.academy-app .display-3,
body.academy-app .display-4,
body.academy-app .display-5,
body.academy-app .display-6 {
  font-family: var(--academy-font) !important;
  color: var(--academy-title);
  font-weight: 700 !important;
  letter-spacing: -0.03em;
  line-height: 1.12;
}

body.academy-app h1,
body.academy-app .h1,
body.academy-app .display-4,
body.academy-app .display-5 {
  font-size: clamp(1.8rem, 1.35rem + 1vw, 2.25rem);
}

body.academy-app h2,
body.academy-app .h2,
body.academy-app .display-6 {
  font-size: clamp(1.45rem, 1.15rem + 0.7vw, 1.75rem);
}

body.academy-app h3,
body.academy-app .h3 {
  font-size: clamp(1.2rem, 1rem + 0.5vw, 1.4rem);
}

body.academy-app h4,
body.academy-app h5,
body.academy-app h6,
body.academy-app .h4,
body.academy-app .h5,
body.academy-app .h6,
body.academy-app .ui-section-title,
body.academy-app .ui-side-title {
  font-family: var(--academy-font) !important;
  color: var(--academy-title);
  font-weight: 600 !important;
  letter-spacing: -0.02em;
  line-height: 1.18;
}

body.academy-app h4,
body.academy-app .h4 {
  font-size: 1.08rem;
}

body.academy-app h5,
body.academy-app .h5 {
  font-size: 1rem;
}

body.academy-app h6,
body.academy-app .h6 {
  font-size: 0.92rem;
}

body.academy-app p,
body.academy-app li,
body.academy-app td,
body.academy-app th,
body.academy-app label,
body.academy-app input,
body.academy-app textarea,
body.academy-app select,
body.academy-app small,
body.academy-app .text-md,
body.academy-app .text-lector,
body.academy-app .fontLector,
body.academy-app .payments-note,
body.academy-app .report-note,
body.academy-app .ui-side-muted {
  font-family: var(--academy-font) !important;
  font-weight: 400 !important;
  color: var(--academy-text);
  line-height: 1.5;
}

body.academy-app p,
body.academy-app li {
  font-size: 0.95rem !important;
}

body.academy-app ul,
body.academy-app ol {
  padding-left: 1.15rem;
  margin-bottom: 1rem;
}

body.academy-app li {
  margin-bottom: 0.28rem;
}

body.academy-app .text-tip,
body.academy-app .text-tip a,
body.academy-app .ui-kicker,
body.academy-app .ui-kicker *,
body.academy-app .kicker,
body.academy-app .small.text-tip {
  font-family: var(--academy-font) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.45;
  color: var(--academy-muted) !important;
}

body.academy-app .ui-kicker,
body.academy-app .kicker {
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

body.academy-app .ui-card,
body.academy-app .ui-statuswrap,
body.academy-app .ui-rowlink,
body.academy-app .ui-class-card,
body.academy-app .ui-live-item,
body.academy-app .ui-regitem,
body.academy-app .ui-course-wrap {
  border-color: var(--academy-border);
}

body.academy-app .ui-chip,
body.academy-app .ui-pill,
body.academy-app .badge,
body.academy-app .ui-badge,
body.academy-app .ui-tabcount,
body.academy-app .report-badge {
  font-family: var(--academy-font) !important;
  font-size: 0.74rem !important;
  font-weight: 600 !important;
  line-height: 1.15;
  letter-spacing: 0.02em;
}

body.academy-app .badge,
body.academy-app .ui-badge,
body.academy-app .report-badge {
  border-radius: 999px;
}

body.academy-app .btn,
body.academy-app .btn.btn-sm,
body.academy-app .btn.btn-md,
body.academy-app .btn.btn-lg,
body.academy-app .btn.btn-xl,
body.academy-app .btn-xs,
body.academy-app .btn-sm,
body.academy-app .btn-md,
body.academy-app .btn-lg,
body.academy-app .btn-xl {
  font-family: var(--academy-font) !important;
  font-weight: 600 !important;
  letter-spacing: 0;
  line-height: 1.15;
}

body.academy-app .btn {
  font-size: 0.92rem !important;
  border-radius: 0.82rem !important;
  padding: 0.58rem 1rem !important;
}

body.academy-app .btn-xs {
  font-size: 0.72rem !important;
  padding: 0.3rem 0.52rem !important;
}

body.academy-app .btn-sm {
  font-size: 0.82rem !important;
  padding: 0.42rem 0.74rem !important;
}

body.academy-app .btn-md {
  font-size: 0.9rem !important;
  padding: 0.56rem 0.95rem !important;
}

body.academy-app .btn-lg {
  font-size: 0.96rem !important;
  padding: 0.64rem 1.08rem !important;
}

body.academy-app .btn-xl {
  font-size: 1rem !important;
  padding: 0.72rem 1.18rem !important;
}

body.academy-app .nav-hero .nav-link,
body.academy-app .nav-minimal .nav-link,
body.academy-app .navbar-nav .nav-item a,
body.academy-app .dropdown-item,
body.academy-app .ui-side-nav .nav-link,
body.academy-app .sidebar li,
body.academy-app .offcanvas .nav-link {
  font-family: var(--academy-font) !important;
}

body.academy-app .nav-hero .nav-link,
body.academy-app .nav-minimal .nav-link,
body.academy-app .navbar-nav .nav-item a,
body.academy-app .offcanvas .nav-link {
  font-size: 0.92rem !important;
  font-weight: 600 !important;
}

body.academy-app .dropdown-item {
  font-size: 0.9rem !important;
  font-weight: 500 !important;
}

body.academy-app .ui-side-nav .nav-link {
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  padding: 0.56rem 0.72rem;
}

body.academy-app .ui-side-nav .nav-link.active {
  font-weight: 600 !important;
}

body.academy-app .table thead th {
  font-family: var(--academy-font) !important;
  font-size: 0.76rem;
  font-weight: 600 !important;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--academy-muted);
}

body.academy-app .table td,
body.academy-app .table th {
  vertical-align: middle;
}

body.academy-app .table td {
  font-size: 0.92rem;
}

body.academy-app .list-group-item,
body.academy-app .accordion-button,
body.academy-app .dropdown-menu,
body.academy-app .modal-content {
  font-family: var(--academy-font) !important;
}

body.academy-app .fw-bold,
body.academy-app .fw-bolder,
body.academy-app .bold,
body.academy-app .bolder {
  font-weight: 700 !important;
}

body.academy-app .report-title,
body.academy-app .payments-toolbar h1,
body.academy-app .payments-toolbar h2,
body.academy-app .report-card h3 {
  font-weight: 700 !important;
}

@media (max-width: 576px) {
  body.academy-app h1,
  body.academy-app .h1,
  body.academy-app .display-4,
  body.academy-app .display-5 {
    font-size: 1.55rem;
  }

  body.academy-app h2,
  body.academy-app .h2 {
    font-size: 1.3rem;
  }

  body.academy-app h3,
  body.academy-app .h3 {
    font-size: 1.12rem;
  }

  body.academy-app p,
  body.academy-app li {
    font-size: 0.92rem !important;
  }
}

/* =========================================================
   Academy Mobile Typography Rebalance
   ========================================================= */
@media (max-width: 576px) {
  body.academy-app {
    font-size: 16px;
    line-height: 1.55;
  }

  body.academy-app h1,
  body.academy-app .h1,
  body.academy-app .display-4,
  body.academy-app .display-5,
  body.academy-app .ui-title,
  body.academy-app .assessment-heading,
  body.academy-app .titulo {
    font-size: 1.78rem !important;
    line-height: 1.12 !important;
  }

  body.academy-app h2,
  body.academy-app .h2,
  body.academy-app .display-6,
  body.academy-app .ui-section-title,
  body.academy-app .ui-side-title {
    font-size: 1.42rem !important;
    line-height: 1.16 !important;
  }

  body.academy-app h3,
  body.academy-app .h3,
  body.academy-app h4,
  body.academy-app .h4 {
    font-size: 1.16rem !important;
    line-height: 1.2 !important;
  }

  body.academy-app p,
  body.academy-app li,
  body.academy-app td,
  body.academy-app th,
  body.academy-app label,
  body.academy-app input,
  body.academy-app textarea,
  body.academy-app select,
  body.academy-app .text-md,
  body.academy-app .text-lector,
  body.academy-app .fontLector,
  body.academy-app .payments-note,
  body.academy-app .report-note,
  body.academy-app .ui-side-muted {
    font-size: 1rem !important;
    line-height: 1.58 !important;
  }

  body.academy-app small,
  body.academy-app .small,
  body.academy-app .text-tip,
  body.academy-app .text-tip a,
  body.academy-app .ui-kicker,
  body.academy-app .ui-kicker *,
  body.academy-app .kicker,
  body.academy-app .small.text-tip {
    font-size: 0.84rem !important;
    line-height: 1.45 !important;
  }

  body.academy-app .badge,
  body.academy-app .ui-badge,
  body.academy-app .ui-chip,
  body.academy-app .ui-pill,
  body.academy-app .ui-tabcount,
  body.academy-app .report-badge {
    font-size: 0.84rem !important;
    line-height: 1.18 !important;
    padding: 0.42rem 0.7rem !important;
  }

  body.academy-app .btn,
  body.academy-app .btn.btn-sm,
  body.academy-app .btn.btn-md,
  body.academy-app .btn.btn-lg,
  body.academy-app .btn.btn-xl,
  body.academy-app .btn-xs,
  body.academy-app .btn-sm,
  body.academy-app .btn-md,
  body.academy-app .btn-lg,
  body.academy-app .btn-xl,
  body.academy-app .ui-actions .btn,
  body.academy-app .ui-tabs .btn {
    font-size: 0.96rem !important;
    line-height: 1.18 !important;
  }

  body.academy-app .ui-side-nav .nav-link,
  body.academy-app .navbar-nav .nav-item a,
  body.academy-app .dropdown-item,
  body.academy-app .offcanvas .nav-link {
    font-size: 1rem !important;
    line-height: 1.28 !important;
  }

  body.academy-app .table thead th {
    font-size: 0.82rem !important;
    line-height: 1.22 !important;
  }

  body.academy-app .table td {
    font-size: 0.98rem !important;
    line-height: 1.5 !important;
  }

  body.academy-app .fc .fc-toolbar-title {
    font-size: 0.95rem !important;
    line-height: 1.12 !important;
    letter-spacing: 0.04em !important;
  }

  body.academy-app .fc .fc-button {
    font-size: 0.82rem !important;
    line-height: 1.08 !important;
    padding: 0.38rem 0.62rem !important;
  }

  body.academy-app .fc-theme-standard th,
  body.academy-app .fc-theme-standard td,
  body.academy-app .fc .fc-daygrid-day-number,
  body.academy-app .fc .fc-daygrid-event,
  body.academy-app .fc .fc-daygrid-event .fc-event-title,
  body.academy-app .fc .fc-list-day-cushion,
  body.academy-app .fc .fc-list-event,
  body.academy-app .fc .fc-list-event-title,
  body.academy-app .fc .fc-list-event-time {
    font-size: 0.72rem !important;
    line-height: 1.15 !important;
  }
}

@media (max-width: 360px) {
  body.academy-app {
    font-size: 15.5px;
  }

  body.academy-app h1,
  body.academy-app .h1,
  body.academy-app .display-4,
  body.academy-app .display-5,
  body.academy-app .ui-title,
  body.academy-app .assessment-heading,
  body.academy-app .titulo {
    font-size: 1.62rem !important;
  }

  body.academy-app h2,
  body.academy-app .h2,
  body.academy-app .display-6,
  body.academy-app .ui-section-title,
  body.academy-app .ui-side-title {
    font-size: 1.3rem !important;
  }
}

/* =========================================================
   Academy Global Type Scale (Adjusted -10%)
   ========================================================= */
body.academy-app {
  font-size: 15.12px;
  line-height: 1.58;
}

body.academy-app h1,
body.academy-app .h1,
body.academy-app .display-4,
body.academy-app .display-5 {
  font-size: clamp(1.94rem, 1.46rem + 1.08vw, 2.43rem) !important;
}

body.academy-app h2,
body.academy-app .h2,
body.academy-app .display-6 {
  font-size: clamp(1.57rem, 1.24rem + 0.76vw, 1.89rem) !important;
}

body.academy-app h3,
body.academy-app .h3 {
  font-size: clamp(1.3rem, 1.08rem + 0.54vw, 1.51rem) !important;
}

body.academy-app h4,
body.academy-app .h4 {
  font-size: 1.17rem !important;
}

body.academy-app h5,
body.academy-app .h5 {
  font-size: 1.08rem !important;
}

body.academy-app h6,
body.academy-app .h6 {
  font-size: 0.99rem !important;
}

body.academy-app p,
body.academy-app li {
  font-size: 1.03rem !important;
}

@media (min-width: 577px) {
  body.academy-app p {
    font-size: 0.72rem !important;
  }
}

body.academy-app td,
body.academy-app th,
body.academy-app label,
body.academy-app input,
body.academy-app textarea,
body.academy-app select,
body.academy-app small,
body.academy-app .text-md,
body.academy-app .text-lector,
body.academy-app .fontLector,
body.academy-app .payments-note,
body.academy-app .report-note,
body.academy-app .ui-side-muted {
  font-size: 0.97rem !important;
}

body.academy-app .text-tip,
body.academy-app .text-tip a,
body.academy-app .ui-kicker,
body.academy-app .ui-kicker *,
body.academy-app .kicker,
body.academy-app .small.text-tip {
  font-size: 13px !important;
}

body.academy-app .ui-chip,
body.academy-app .ui-pill,
body.academy-app .badge,
body.academy-app .ui-badge,
body.academy-app .ui-tabcount,
body.academy-app .report-badge {
  font-size: 0.8rem !important;
}

body.academy-app .btn {
  font-size: 0.99rem !important;
}

body.academy-app .btn-xs {
  font-size: 0.77rem !important;
}

body.academy-app .btn-sm {
  font-size: 0.88rem !important;
}

body.academy-app .btn-md {
  font-size: 0.97rem !important;
}

body.academy-app .btn-lg {
  font-size: 1.04rem !important;
}

body.academy-app .btn-xl {
  font-size: 1.08rem !important;
}

body.academy-app .nav-hero .nav-link,
body.academy-app .nav-minimal .nav-link,
body.academy-app .navbar-nav .nav-item a,
body.academy-app .offcanvas .nav-link {
  font-size: 0.99rem !important;
}

body.academy-app .dropdown-item {
  font-size: 0.97rem !important;
}

body.academy-app .ui-side-nav .nav-link {
  font-size: 1.03rem !important;
}

body.academy-app .table thead th {
  font-size: 0.82rem !important;
}

body.academy-app .table td {
  font-size: 0.99rem !important;
}

@media (max-width: 576px) {
  body.academy-app {
    font-size: 33.69px;
    line-height: 1.62;
  }

  body.academy-app h1,
  body.academy-app .h1,
  body.academy-app .display-4,
  body.academy-app .display-5,
  body.academy-app .ui-title,
  body.academy-app .assessment-heading,
  body.academy-app .titulo {
    font-size: 7.54rem !important;
  }

  body.academy-app h2,
  body.academy-app .h2,
  body.academy-app .display-6,
  body.academy-app .ui-section-title,
  body.academy-app .ui-side-title {
    font-size: 2.99rem !important;
  }

  body.academy-app h3,
  body.academy-app .h3,
  body.academy-app h4,
  body.academy-app .h4 {
    font-size: 2.45rem !important;
  }

  body.academy-app p,
  body.academy-app li,
  body.academy-app td,
  body.academy-app th,
  body.academy-app label,
  body.academy-app input,
  body.academy-app textarea,
  body.academy-app select,
  body.academy-app .text-md,
  body.academy-app .text-lector,
  body.academy-app .fontLector,
  body.academy-app .payments-note,
  body.academy-app .report-note,
  body.academy-app .ui-side-muted {
    font-size: 2.1rem !important;
  }

  body.academy-app small,
  body.academy-app .small,
  body.academy-app .text-tip,
  body.academy-app .text-tip a,
  body.academy-app .ui-kicker,
  body.academy-app .ui-kicker *,
  body.academy-app .kicker,
  body.academy-app .small.text-tip {
    font-size: 1.77rem !important;
  }

  body.academy-app .badge,
  body.academy-app .ui-badge,
  body.academy-app .ui-chip,
  body.academy-app .ui-pill,
  body.academy-app .ui-tabcount,
  body.academy-app .report-badge {
    font-size: 1.77rem !important;
  }

  body.academy-app .btn,
  body.academy-app .btn.btn-sm,
  body.academy-app .btn.btn-md,
  body.academy-app .btn.btn-lg,
  body.academy-app .btn.btn-xl,
  body.academy-app .btn-xs,
  body.academy-app .btn-sm,
  body.academy-app .btn-md,
  body.academy-app .btn-lg,
  body.academy-app .btn-xl,
  body.academy-app .ui-actions .btn,
  body.academy-app .ui-tabs .btn {
    font-size: 2.03rem !important;
  }

  body.academy-app .ui-side-nav .nav-link,
  body.academy-app .navbar-nav .nav-item a,
  body.academy-app .dropdown-item,
  body.academy-app .offcanvas .nav-link {
    font-size: 2.1rem !important;
  }

  body.academy-app .table thead th {
    font-size: 1.71rem !important;
  }

  body.academy-app .table td {
    font-size: 2.07rem !important;
  }

  body.academy-app .fc .fc-toolbar-title {
    font-size: 2.01rem !important;
  }

  body.academy-app .fc .fc-button {
    font-size: 1.71rem !important;
  }

  body.academy-app .fc-theme-standard th,
  body.academy-app .fc-theme-standard td,
  body.academy-app .fc .fc-daygrid-day-number,
  body.academy-app .fc .fc-daygrid-event,
  body.academy-app .fc .fc-daygrid-event .fc-event-title,
  body.academy-app .fc .fc-list-day-cushion,
  body.academy-app .fc .fc-list-event,
  body.academy-app .fc .fc-list-event-title,
  body.academy-app .fc .fc-list-event-time {
    font-size: 1.5rem !important;
  }
}

@media (max-width: 360px) {
  body.academy-app {
    font-size: 32.64px;
  }

  body.academy-app h1,
  body.academy-app .h1,
  body.academy-app .display-4,
  body.academy-app .display-5,
  body.academy-app .ui-title,
  body.academy-app .assessment-heading,
  body.academy-app .titulo {
    font-size: 6.84rem !important;
  }

  body.academy-app h2,
  body.academy-app .h2,
  body.academy-app .display-6,
  body.academy-app .ui-section-title,
  body.academy-app .ui-side-title {
    font-size: 2.73rem !important;
  }
}

/* =========================================================
   Academy Button Normalize
   ========================================================= */
body.academy-app .btn,
body.academy-app .btn.btn-sm,
body.academy-app .btn.btn-md,
body.academy-app .btn.btn-lg,
body.academy-app .btn.btn-xl,
body.academy-app .btn-xs,
body.academy-app .btn-sm,
body.academy-app .btn-md,
body.academy-app .btn-lg,
body.academy-app .btn-xl,
body.academy-app .ui-actions .btn,
body.academy-app .ui-tabs .btn,
body.academy-app .btn-group > .btn,
body.academy-app .btn-group-vertical > .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.55rem;
  border-radius: 12px !important;
}

body.academy-app .btn-xs,
body.academy-app .btn.btn-xs,
body.academy-app .btn-sm,
body.academy-app .btn.btn-sm,
body.academy-app .btn-group > .btn-sm,
body.academy-app .btn-group-vertical > .btn-sm {
  border-radius: 10px !important;
}

body.academy-app .btn-xs,
body.academy-app .btn.btn-xs {
  font-size: 0.68rem !important;
  line-height: 1.05 !important;
  padding: 0.2rem 0.48rem !important;
  min-height: 1.9rem;
}

body.academy-app .ui-actions,
body.academy-app .ui-tabs,
body.academy-app .btn-group,
body.academy-app .btn-group-vertical {
  gap: 0.65rem;
}

body.academy-app .btn-group,
body.academy-app .btn-group-vertical {
  display: inline-flex;
  flex-wrap: wrap;
}

body.academy-app .btn-group > .btn,
body.academy-app .btn-group-vertical > .btn {
  margin-left: 0 !important;
  margin-top: 0 !important;
}

body.academy-app .btn.w-100,
body.academy-app .btn.btn-sm.w-100 {
  width: 100%;
  justify-content: center;
}

/* =========================================================
   Menu Audit Final Overrides
   ========================================================= */

body.academy-app .ui-side-nav .nav-link {
  min-height: 24px;
  gap: 0.36rem;
  line-height: 1.1;
  padding: 0.36rem 0.9rem !important;
  border-radius: 12px !important;
  font-size: 0.95rem !important;
}

body.academy-app .ui-side-nav .nav-link.active {
  padding: 0.36rem 0.9rem !important;
  border-radius: 12px !important;
  background: rgba(13, 110, 253, 0.08) !important;
  color: #0b5ed7 !important;
  font-weight: 700 !important;
}

body.academy-app .ui-side-nav .nav-link i {
  width: 16px;
}

body.academy-app .navtools-btn {
  min-height: 2.25rem;
  padding: 0.42rem 0.72rem !important;
  border-radius: 10px !important;
  line-height: 1.1;
}

body.academy-app .navtools-btn.disabled {
  opacity: 0.7;
}

@media (max-width: 576px) {
  body.academy-app .ui-side-nav .nav-link {
    font-size: 0.98rem !important;
    line-height: 1.1 !important;
    padding: 0.39rem 0.82rem !important;
  }

  body.academy-app .ui-side-nav .nav-link.active {
    padding: 0.39rem 0.82rem !important;
  }

  body.academy-app .navtools-btn {
    font-size: 0.9rem !important;
  }
}

/* =========================================================
   Academy Font Reduce 10%
   ========================================================= */
body.academy-app h1,
body.academy-app .h1,
body.academy-app .display-4,
body.academy-app .display-5 {
  font-size: clamp(1.62rem, 1.215rem + 0.9vw, 2.025rem);
}

body.academy-app h2,
body.academy-app .h2,
body.academy-app .display-6 {
  font-size: clamp(1.305rem, 1.035rem + 0.63vw, 1.575rem);
}

body.academy-app h3,
body.academy-app .h3 {
  font-size: clamp(1.08rem, 0.9rem + 0.45vw, 1.26rem);
}

body.academy-app h4,
body.academy-app .h4 {
  font-size: 0.972rem;
}

body.academy-app h5,
body.academy-app .h5 {
  font-size: 0.9rem;
}

body.academy-app h6,
body.academy-app .h6 {
  font-size: 0.828rem;
}

body.academy-app p,
body.academy-app li,
body.academy-app td,
body.academy-app th,
body.academy-app label,
body.academy-app input,
body.academy-app textarea,
body.academy-app select,
body.academy-app small,
body.academy-app .text-md,
body.academy-app .text-lector,
body.academy-app .fontLector,
body.academy-app .payments-note,
body.academy-app .report-note,
body.academy-app .ui-side-muted {
  font-size: 0.855rem !important;
}

body.academy-app .text-tip,
body.academy-app .text-tip a,
body.academy-app .ui-kicker,
body.academy-app .ui-kicker *,
body.academy-app .kicker,
body.academy-app .small.text-tip {
  font-size: 10.8px !important;
}

body.academy-app .ui-chip,
body.academy-app .ui-pill,
body.academy-app .badge,
body.academy-app .ui-badge,
body.academy-app .ui-tabcount,
body.academy-app .report-badge {
  font-size: 0.666rem !important;
}

body.academy-app .btn {
  font-size: 0.828rem !important;
}

body.academy-app .btn-xs {
  font-size: 0.612rem !important;
}

body.academy-app .btn-sm {
  font-size: 0.738rem !important;
}

body.academy-app .btn-md {
  font-size: 0.81rem !important;
}

body.academy-app .btn-lg {
  font-size: 0.864rem !important;
}

body.academy-app .btn-xl {
  font-size: 0.9rem !important;
}

body.academy-app .nav-hero .nav-link,
body.academy-app .nav-minimal .nav-link,
body.academy-app .navbar-nav .nav-item a,
body.academy-app .offcanvas .nav-link {
  font-size: 0.828rem !important;
}

body.academy-app .dropdown-item {
  font-size: 0.81rem !important;
}

body.academy-app .ui-side-nav .nav-link {
  font-size: 0.855rem !important;
}

body.academy-app .table thead th {
  font-size: 0.684rem !important;
}

body.academy-app .table td {
  font-size: 0.828rem !important;
}

@media (max-width: 576px) {
  body.academy-app {
    font-size: 14.4px;
  }

  body.academy-app h1,
  body.academy-app .h1,
  body.academy-app .display-4,
  body.academy-app .display-5,
  body.academy-app .ui-title,
  body.academy-app .assessment-heading,
  body.academy-app .titulo {
    font-size: 1.602rem !important;
  }

  body.academy-app h2,
  body.academy-app .h2,
  body.academy-app .display-6,
  body.academy-app .ui-section-title,
  body.academy-app .ui-side-title {
    font-size: 1.278rem !important;
  }

  body.academy-app h3,
  body.academy-app .h3,
  body.academy-app h4,
  body.academy-app .h4 {
    font-size: 1.044rem !important;
  }

  body.academy-app p,
  body.academy-app li,
  body.academy-app td,
  body.academy-app th,
  body.academy-app label,
  body.academy-app input,
  body.academy-app textarea,
  body.academy-app select,
  body.academy-app .text-md,
  body.academy-app .text-lector,
  body.academy-app .fontLector,
  body.academy-app .payments-note,
  body.academy-app .report-note,
  body.academy-app .ui-side-muted {
    font-size: 0.9rem !important;
  }

  body.academy-app small,
  body.academy-app .small,
  body.academy-app .text-tip,
  body.academy-app .text-tip a,
  body.academy-app .ui-kicker,
  body.academy-app .ui-kicker *,
  body.academy-app .kicker,
  body.academy-app .small.text-tip {
    font-size: 0.756rem !important;
  }

  body.academy-app .badge,
  body.academy-app .ui-badge,
  body.academy-app .ui-chip,
  body.academy-app .ui-pill,
  body.academy-app .ui-tabcount,
  body.academy-app .report-badge {
    font-size: 0.756rem !important;
  }

  body.academy-app .btn,
  body.academy-app .btn.btn-sm,
  body.academy-app .btn.btn-md,
  body.academy-app .btn.btn-lg,
  body.academy-app .btn.btn-xl,
  body.academy-app .btn-xs,
  body.academy-app .btn-sm,
  body.academy-app .btn-md,
  body.academy-app .btn-lg,
  body.academy-app .btn-xl,
  body.academy-app .ui-actions .btn,
  body.academy-app .ui-tabs .btn {
    font-size: 0.864rem !important;
  }

  body.academy-app .ui-side-nav .nav-link,
  body.academy-app .navbar-nav .nav-item a,
  body.academy-app .dropdown-item,
  body.academy-app .offcanvas .nav-link {
    font-size: 0.9rem !important;
  }

  body.academy-app .table thead th {
    font-size: 0.738rem !important;
  }

  body.academy-app .table td {
    font-size: 0.882rem !important;
  }

  body.academy-app .fc .fc-toolbar-title {
    font-size: 0.855rem !important;
  }

  body.academy-app .fc .fc-button {
    font-size: 0.738rem !important;
  }

  body.academy-app .fc-theme-standard th,
  body.academy-app .fc-theme-standard td,
  body.academy-app .fc .fc-daygrid-day-number,
  body.academy-app .fc .fc-daygrid-event,
  body.academy-app .fc .fc-daygrid-event .fc-event-title,
  body.academy-app .fc .fc-list-day-cushion,
  body.academy-app .fc .fc-list-event,
  body.academy-app .fc .fc-list-event-title,
  body.academy-app .fc .fc-list-event-time {
    font-size: 0.648rem !important;
  }
}

@media (max-width: 360px) {
  body.academy-app {
    font-size: 13.95px;
  }

  body.academy-app h1,
  body.academy-app .h1,
  body.academy-app .display-4,
  body.academy-app .display-5,
  body.academy-app .ui-title,
  body.academy-app .assessment-heading,
  body.academy-app .titulo {
    font-size: 1.458rem !important;
  }

  body.academy-app h2,
  body.academy-app .h2,
  body.academy-app .display-6,
  body.academy-app .ui-section-title,
  body.academy-app .ui-side-title {
    font-size: 1.062rem !important;
  }
}
