/* ==========================================================================
   Theme Tokens
   ========================================================================== */

:root {
  --vp-font: 'Inter', 'Roboto', system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --vp-primary: #2563eb;
  --vp-primary-hover: #1d4ed8;
  --vp-primary-active: #1e3a8a;
  --vp-primary-light: rgba(37, 99, 235, 0.12);
  --vp-surface: #ffffff;
  --vp-surface-alt: #f8fafc;
  --vp-surface-hover: #eff6ff;
  --vp-border: #dbe4f0;
  --vp-text: #0f172a;
  --vp-text-muted: #64748b;
  --vp-danger: #ef4444;
  --vp-shadow: 0 15px 35px rgba(15, 23, 42, 0.10);
  --vp-focus-ring: rgba(37, 99, 235, 0.22);
  --bs-primary: var(--vp-primary);
  --bs-primary-rgb: 37, 99, 235;
  --bs-border-color: var(--vp-border);
  --bs-body-bg: var(--vp-surface-alt);
  --bs-body-color: var(--vp-text);
}

[data-bs-theme="dark"] {
  --vp-primary: #60a5fa;
  --vp-primary-hover: #93c5fd;
  --vp-primary-active: #bfdbfe;
  --vp-primary-light: rgba(96, 165, 250, 0.18);
  --vp-surface: #0f172a;
  --vp-surface-alt: #020617;
  --vp-surface-hover: #172554;
  --vp-border: #243041;
  --vp-text: #e2e8f0;
  --vp-text-muted: #94a3b8;
  --vp-danger: #f87171;
  --vp-shadow: 0 16px 40px rgba(2, 6, 23, 0.42);
  --vp-focus-ring: rgba(96, 165, 250, 0.22);
  --bs-body-bg: var(--vp-surface-alt);
  --bs-body-color: var(--vp-text);
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem var(--vp-surface), 0 0 0 0.25rem var(--vp-focus-ring);
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--vp-surface-alt);
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.sidebar {
  width: 240px;
  background: var(--vp-surface);
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  z-index: 100;
  transition: width .25s ease;
  overflow: hidden;
  flex-shrink: 0;
  border-right: 1px solid var(--vp-border);
  box-shadow: 0 1px 4px rgba(15, 23, 42, .07);
}

.sidebar.collapsed {
  width: 60px;
}

.sidebar .brand {
  padding: 1.1rem 1rem;
  border-bottom: 1px solid var(--vp-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  white-space: nowrap;
  background: var(--vp-surface-hover);
}

.sidebar .brand-text h5 {
  color: var(--vp-text);
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
}

.sidebar .brand-text small {
  color: var(--vp-text-muted);
  font-size: .72rem;
}

.sidebar.collapsed .brand-text {
  display: none;
}

.sidebar.collapsed .brand {
  justify-content: center;
}

.sidebar-toggle {
  background: none;
  border: none;
  color: var(--vp-text-muted);
  padding: 2px 4px;
  cursor: pointer;
  flex-shrink: 0;
  line-height: 1;
  transition: color .15s;
}

.sidebar-toggle:hover {
  color: var(--vp-primary);
}

.nav-icon-wrapper {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}

.nav-icon-wrapper .badge-dot {
  position: absolute;
  top: -4px;
  right: -8px;
  font-size: .5rem;
  min-width: .7rem;
  padding: .1em .25em;
  line-height: 1;
}

.sidebar .nav-link {
  color: var(--vp-text-muted);
  padding: .45rem .75rem;
  border-radius: 6px;
  font-size: .85rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  white-space: nowrap;
  overflow: hidden;
  border-left: 2px solid transparent;
  transition: background .15s, color .15s;
}

.sidebar .nav-link:hover {
  background: var(--vp-primary-light);
  color: var(--vp-primary);
}

.sidebar .nav-link.active {
  background: var(--vp-primary-light);
  color: var(--vp-primary);
  font-weight: 600;
  border-left-color: var(--vp-primary);
  padding-left: calc(.75rem - 2px);
}

.sidebar .nav-link.sidebar-danger-link {
  color: var(--vp-danger);
}

.sidebar .nav-link.sidebar-danger-link:hover,
.sidebar .nav-link.sidebar-danger-link.active {
  background: color-mix(in srgb, var(--vp-danger) 10%, transparent);
  color: var(--vp-danger);
  border-left-color: var(--vp-danger);
}

.sidebar.collapsed .nav-link {
  justify-content: center;
  padding: .45rem 0;
  border-left: none;
}

.sidebar.collapsed .nav-link .nav-label {
  display: none;
}

.sidebar .nav-section {
  color: var(--vp-text-muted);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .75rem 1rem .3rem;
  white-space: nowrap;
}

.sidebar.collapsed .nav-section,
.sidebar.collapsed .school-name-display,
.sidebar.collapsed .sidebar-footer .footer-text,
.sidebar.collapsed .sidebar-footer .logout-btn span {
  display: none;
}

.sidebar-divider {
  border-color: var(--vp-border);
  margin: .4rem .5rem;
}

.sidebar.collapsed .sidebar-divider {
  display: none;
}

.sidebar .sidebar-footer {
  border-top: 1px solid var(--vp-border);
  padding: .75rem 1rem;
}

.sidebar.collapsed .sidebar-footer {
  padding: .75rem 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sidebar.collapsed .sidebar-footer .logout-btn {
  padding: 0;
}

.sidebar nav::-webkit-scrollbar {
  width: 4px;
}

.sidebar nav::-webkit-scrollbar-track {
  background: var(--vp-surface);
}

.sidebar nav::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--vp-text-muted) 24%, transparent);
  border-radius: 2px;
}

.school-name-display {
  color: var(--vp-text-muted);
  font-size: .78rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-user-avatar {
  width: 32px;
  height: 32px;
  font-size: .75rem;
  font-weight: 700;
  color: var(--vp-surface);
  background: var(--vp-primary);
}

.footer-text {
  overflow: hidden;
}

.sidebar-user-name {
  color: var(--vp-text);
  font-size: .8rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-user-meta {
  color: var(--vp-text-muted);
  font-size: .7rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.logout-btn-sidebar {
  color: var(--vp-text-muted);
  background: none;
  border: none;
  padding: 0 0 0 2px;
  font-size: .78rem;
}

.main-content {
  flex: 1;
  min-width: 0;
  margin-left: 240px;
  transition: margin-left .25s ease;
  min-height: 100vh;
}

#sidebar.collapsed ~ .main-content {
  margin-left: 60px;
}

.topbar {
  background: var(--vp-surface);
  border-bottom: 1px solid var(--vp-border);
  padding: .6rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.topbar-title {
  color: var(--vp-text-muted);
}

.page-area {
  padding: 1.5rem;
}

.notif-badge-label {
  font-size: .65rem;
}

.card {
  border: none;
  box-shadow: 0 1px 4px rgba(0,0,0,.07);
}

.login-body {
  font-family: var(--vp-font);
  background-color: var(--vp-surface-alt);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
}

.login-container {
  width: 100%;
  max-width: 1000px;
  min-height: 600px;
  display: flex;
  overflow: hidden;
  border-radius: 1.25rem;
  background: var(--vp-surface);
  box-shadow: var(--vp-shadow);
}

.login-sidebar {
  width: 45%;
  background: linear-gradient(135deg, var(--vp-primary), var(--vp-primary-active));
  color: var(--vp-surface);
  padding: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}

.login-sidebar::before,
.login-sidebar::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}

.login-sidebar::before {
  width: 12rem;
  height: 12rem;
  top: -3rem;
  left: -3rem;
  background: rgba(255, 255, 255, 0.08);
}

.login-sidebar::after {
  width: 16rem;
  height: 16rem;
  right: -5rem;
  bottom: -5rem;
  background: rgba(255, 255, 255, 0.08);
}

.brand-logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  position: relative;
  z-index: 1;
}

.brand-logo .brand-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.14);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.sidebar-content,
.login-sidebar .small {
  position: relative;
  z-index: 1;
}

.login-form-area {
  width: 55%;
  padding: 3.75rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

.login-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--vp-text);
  margin-bottom: 0.5rem;
  letter-spacing: -0.03em;
}

.login-subtitle {
  color: var(--vp-text-muted);
  margin-bottom: 2rem;
}

.form-control-modern {
  border: 1.5px solid var(--vp-border);
  border-radius: 0.75rem;
  padding: 0.85rem 1rem;
  font-size: 0.95rem;
  background: var(--vp-surface-alt);
  color: var(--vp-text);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.form-control-modern:focus {
  border-color: var(--vp-primary);
  background: var(--vp-surface);
  box-shadow: 0 0 0 0.25rem var(--vp-focus-ring);
}

.btn-modern {
  border-radius: 0.75rem;
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 600;
}

.divider {
  display: flex;
  align-items: center;
  text-align: center;
  margin: 25px 0;
  color: var(--vp-text-muted);
  font-size: 0.9rem;
  font-weight: 500;
}

.divider::before,
.divider::after {
  content: "";
  flex: 1;
  border-bottom: 1px solid var(--vp-border);
}

.divider:not(:empty)::before { margin-right: .5em; }
.divider:not(:empty)::after { margin-left: .5em; }

.social-btn {
  border: 1.5px solid var(--vp-border);
  background: var(--vp-surface);
  color: var(--vp-text-muted);
  font-weight: 600;
}

.social-btn:hover {
  background: var(--vp-surface-alt);
  border-color: color-mix(in srgb, var(--vp-text-muted) 35%, var(--vp-border));
  color: var(--vp-text);
}

.page-controls {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  z-index: 1050;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.theme-toggle-btn {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--vp-border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--vp-surface) 88%, transparent);
  color: var(--vp-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.theme-toggle-btn:hover {
  color: var(--vp-primary);
  border-color: color-mix(in srgb, var(--vp-primary) 35%, var(--vp-border));
  transform: translateY(-1px);
}

.theme-toggle-btn .fa-sun,
.theme-toggle-btn .fa-moon {
  position: absolute;
  transition: opacity .2s ease, transform .2s ease;
}

.theme-toggle-btn .fa-sun {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

.theme-toggle-btn .fa-moon {
  opacity: 0;
  transform: scale(.65) rotate(-90deg);
}

[data-bs-theme="dark"] .theme-toggle-btn .fa-sun {
  opacity: 0;
  transform: scale(.65) rotate(90deg);
}

[data-bs-theme="dark"] .theme-toggle-btn .fa-moon {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

.login-password-group {
  position: relative;
}

.login-password-input {
  padding-right: 3rem;
}

.login-password-toggle {
  position: absolute;
  top: 50%;
  right: 0.875rem;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--vp-text-muted);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.login-password-toggle:hover {
  color: var(--vp-primary);
}

/* Consentimento LGPD */
.consent-layout { font-family: var(--vp-font); min-height: 100vh; padding: 3rem 1.25rem; background: var(--vp-surface-alt); }
.consent-shell { width: 100%; max-width: 780px; margin: 0 auto; }
.consent-shell-sm { max-width: 560px; }
.consent-brand { margin-bottom: 2rem; }
.consent-brand .brand-logo { color: var(--vp-text); }
.consent-brand p { margin: .5rem 0 0; color: var(--vp-text-muted); font-size: .9rem; }
.consent-panel { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--vp-border); border-radius: 1.25rem; background: var(--vp-surface); box-shadow: var(--vp-shadow); }
.consent-panel-heading { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.75rem; }
.consent-heading-icon, .consent-revoked-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 2.75rem; height: 2.75rem; border-radius: .85rem; background: var(--vp-primary-light); color: var(--vp-primary); font-size: 1.1rem; }
.consent-eyebrow { margin: 0 0 .2rem; color: var(--vp-primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.consent-panel h1 { margin: 0; color: var(--vp-text); font-size: clamp(1.25rem, 3vw, 1.55rem); font-weight: 700; letter-spacing: -.02em; }
.consent-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-bottom: .75rem; color: var(--vp-text-muted); font-size: .8rem; }
.consent-meta strong { color: var(--vp-text); }
.consent-document-title { margin: 0 0 1rem; color: var(--vp-text); font-size: 1.05rem; font-weight: 700; }
.termo-content { max-height: min(46vh, 440px); overflow-y: auto; margin-bottom: 1.5rem; padding: 1rem 1.1rem; border: 1px solid var(--vp-border); border-radius: .75rem; background: var(--vp-surface-alt); color: var(--vp-text); line-height: 1.6; }
.termo-content > :last-child { margin-bottom: 0; }
.consent-form { border-top: 1px solid var(--vp-border); padding-top: 1.25rem; }
.consent-check { display: flex; gap: .7rem; align-items: flex-start; margin-bottom: 1.25rem; color: var(--vp-text); }
.consent-check .form-check-input { flex: 0 0 auto; margin: .2rem 0 0; }
.consent-check .form-check-input:checked { background-color: var(--vp-primary); border-color: var(--vp-primary); }
.consent-actions { display: flex; flex-wrap: wrap-reverse; justify-content: flex-end; gap: .75rem; }
.consent-actions .btn, .consent-revoked .btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; font-weight: 600; }
.consent-empty-state { max-width: 390px; margin: 2rem auto; text-align: center; }
.consent-empty-state .consent-heading-icon { margin-bottom: 1rem; }
.consent-empty-state h2 { color: var(--vp-text); font-size: 1.15rem; font-weight: 700; }
.consent-empty-state p, .consent-footer { color: var(--vp-text-muted); }
.consent-footer { margin: 1rem 0 0; text-align: center; font-size: .8rem; }
.consent-revoked { padding-block: 3rem; }
.consent-revoked-icon { width: 4rem; height: 4rem; margin-bottom: 1.25rem; background: color-mix(in srgb, var(--vp-danger) 12%, transparent); color: var(--vp-danger); font-size: 1.6rem; }
.consent-revoked-copy { margin: 1rem 0 1.75rem; color: var(--vp-text-muted); }
.consent-revoked-copy .lead { color: var(--vp-text); font-size: 1.05rem; font-weight: 600; }

/* Dashboard do professor */
.dashboard-welcome { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.dashboard-eyebrow { margin: 0 0 .25rem; color: var(--vp-primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-welcome h1, .dashboard-section-heading h2 { margin: 0; color: var(--vp-text); font-weight: 700; letter-spacing: -.02em; }
.dashboard-welcome h1 { font-size: clamp(1.45rem, 3vw, 1.9rem); }.dashboard-welcome p:not(.dashboard-eyebrow) { max-width: 680px; margin: .4rem 0 0; color: var(--vp-text-muted); }.dashboard-header-action { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .45rem; }
.dashboard-kpis { margin-bottom: 2rem; }.dashboard-card-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.dashboard-stat-card { position: relative; display: flex; align-items: center; gap: 1rem; padding: 1.2rem; overflow: hidden; border: 1px solid var(--vp-border); border-left: .25rem solid currentColor; border-radius: .9rem; background: var(--vp-surface); color: var(--vp-primary); box-shadow: 0 2px 7px rgba(15,23,42,.05); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.dashboard-card-link:hover .dashboard-stat-card { border-color: color-mix(in srgb, currentColor 40%, var(--vp-border)); box-shadow: var(--vp-shadow); transform: translateY(-2px); }.dashboard-stat-card > div { min-width: 0; }.dashboard-stat-card strong, .dashboard-stat-card span:not(.dashboard-stat-icon) { display: block; }.dashboard-stat-card strong { color: var(--vp-text); font-size: 1.65rem; line-height: 1; }.dashboard-stat-card span:not(.dashboard-stat-icon) { margin-top: .35rem; color: var(--vp-text-muted); font-size: .82rem; }
.dashboard-stat-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.9rem; height: 2.9rem; border-radius: .8rem; background: color-mix(in srgb, currentColor 12%, transparent); font-size: 1.1rem; flex: 0 0 auto; }.dashboard-stat-arrow { position: absolute; top: 1rem; right: 1rem; color: var(--vp-text-muted); font-size: .72rem; }.dashboard-stat--success { color: var(--bs-success); }.dashboard-stat--warning { color: var(--bs-warning); }.dashboard-stat--danger { color: var(--vp-danger); }.dashboard-stat--muted { color: var(--vp-text-muted); }
.dashboard-section { margin-top: 2rem; }.dashboard-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }.dashboard-section-heading h2 { font-size: 1.1rem; }.dashboard-section-heading-danger h2 { color: var(--vp-danger); }.dashboard-text-link, .dashboard-card-action { display: inline-flex; align-items: center; gap: .4rem; color: var(--vp-primary); font-size: .84rem; font-weight: 600; text-decoration: none; }.dashboard-text-link:hover, .dashboard-card-action:hover { color: var(--vp-primary-hover); }.dashboard-section-count { color: var(--vp-text-muted); font-size: .8rem; }
.dashboard-alert-list { display: flex; flex-direction: column; gap: .65rem; }.dashboard-alert-card { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border: 1px solid color-mix(in srgb, var(--vp-danger) 28%, var(--vp-border)); border-radius: .8rem; background: var(--vp-surface); }.dashboard-alert-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 999px; background: color-mix(in srgb, var(--vp-danger) 12%, transparent); color: var(--vp-danger); font-size: .85rem; flex: 0 0 auto; }.dashboard-alert-content { flex: 1; min-width: 0; }.dashboard-alert-content h3 { margin: 0 0 .2rem; color: var(--vp-text); font-size: .9rem; font-weight: 700; }.dashboard-alert-content p { margin: 0; color: var(--vp-text-muted); font-size: .84rem; }.dashboard-alert-action { display: flex; align-items: center; gap: .8rem; flex: 0 0 auto; }.dashboard-alert-action time { color: var(--vp-text-muted); font-size: .72rem; white-space: nowrap; }
.dashboard-class-card, .dashboard-empty-card { padding: 1.2rem; border: 1px solid var(--vp-border); border-radius: .9rem; background: var(--vp-surface); box-shadow: 0 2px 7px rgba(15,23,42,.05); }.dashboard-class-card { display: flex; flex-direction: column; }.dashboard-class-header { display: flex; align-items: center; gap: .8rem; }.dashboard-class-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: .7rem; background: var(--vp-primary-light); color: var(--vp-primary); flex: 0 0 auto; }.dashboard-class-header h3, .dashboard-empty-card h3 { margin: 0; color: var(--vp-text); font-size: 1rem; font-weight: 700; }.dashboard-class-header p { margin: .15rem 0 0; color: var(--vp-text-muted); font-size: .8rem; }.dashboard-class-metrics { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.25rem 0; color: var(--vp-text-muted); font-size: .8rem; }.dashboard-class-metrics span { display: inline-flex; align-items: center; gap: .35rem; }.dashboard-class-cases { color: var(--bs-warning); }.dashboard-card-action { margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--vp-border); }.dashboard-empty-card { padding: 3rem 1.25rem; text-align: center; }.dashboard-empty-card > span { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; margin-bottom: 1rem; border-radius: 1rem; background: var(--vp-primary-light); color: var(--vp-primary); font-size: 1.2rem; }.dashboard-empty-card p { max-width: 420px; margin: .5rem auto 0; color: var(--vp-text-muted); }
@media (max-width: 575.98px) { .dashboard-welcome { align-items: flex-start; flex-direction: column; }.dashboard-header-action { width: 100%; justify-content: center; }.dashboard-alert-card { align-items: flex-start; flex-wrap: wrap; }.dashboard-alert-action { width: 100%; justify-content: space-between; margin-left: 3.25rem; }.dashboard-section-heading { align-items: flex-start; } }

/* Layout autenticado: sidebar, topo e rodapé */
/* Páginas de acompanhamento, alunos e perfil */
.prof-page-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.prof-page-heading h1{margin:0;color:var(--vp-text);font-size:clamp(1.35rem,3vw,1.8rem);font-weight:700;letter-spacing:-.02em}.prof-page-heading h1>i{color:var(--vp-primary);font-size:.9em}.prof-page-heading p:not(.prof-eyebrow){margin:.35rem 0 0;color:var(--vp-text-muted);font-size:.88rem}.prof-page-heading-stack{align-items:start}.prof-student-heading{align-items:center;justify-content:start}.prof-eyebrow{margin:0 0 .25rem;color:var(--vp-primary);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.prof-eyebrow-danger{color:var(--vp-danger)}
.prof-filter-pills{display:flex;flex-wrap:wrap;gap:.45rem}.prof-filter-pills a{padding:.42rem .7rem;border:1px solid var(--vp-border);border-radius:.55rem;color:var(--vp-text-muted);font-size:.8rem;font-weight:600;text-decoration:none}.prof-filter-pills a:hover,.prof-filter-pills a.active{border-color:var(--vp-primary);background:var(--vp-primary-light);color:var(--vp-primary)}
.prof-icon-action{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:0;border-radius:.5rem;background:transparent;font-size:.85rem;line-height:1;text-decoration:none;transition:background-color .15s,color .15s}.prof-icon-action:hover:not(:disabled),.prof-icon-action:focus-visible{background:var(--vp-surface-hover);color:var(--vp-primary)!important}.prof-icon-action:disabled{opacity:.38;cursor:not-allowed}
.prof-report-list,.prof-notification-list{display:flex;flex-direction:column;gap:.7rem}.prof-report-card,.prof-notification-card{display:flex;align-items:flex-start;gap:1rem;padding:1.1rem 1.2rem;border:1px solid var(--vp-border);border-radius:.85rem;background:var(--vp-surface);box-shadow:0 2px 7px rgba(15,23,42,.05)}.prof-report-icon,.prof-notification-icon{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:.75rem;background:var(--vp-primary-light);font-size:1rem;flex:0 0 auto}.prof-report-content,.prof-notification-content{flex:1;min-width:0}.prof-report-content h2,.prof-notification-content h2{margin:0;color:var(--vp-text);font-size:.98rem;font-weight:700}.prof-report-meta,.prof-notification-content time{margin:.25rem 0 0;color:var(--vp-text-muted);font-size:.8rem}.prof-report-meta span{margin:0 .4rem}.prof-report-observation{margin:.75rem 0 0;padding-top:.75rem;border-top:1px solid var(--vp-border);color:var(--vp-text-muted);font-size:.84rem;white-space:pre-wrap}.prof-notification-card{position:relative;border-left:4px solid var(--vp-primary)}.prof-notification-warning{border-left-color:var(--bs-warning)}.prof-notification-danger{border-left-color:var(--vp-danger)}.prof-notification-card:not(.is-unread){opacity:.78}.prof-notification-icon{color:var(--vp-primary)}.prof-notification-warning .prof-notification-icon{background:color-mix(in srgb,var(--bs-warning) 14%,transparent);color:var(--bs-warning)}.prof-notification-danger .prof-notification-icon{background:color-mix(in srgb,var(--vp-danger) 12%,transparent);color:var(--vp-danger)}.prof-notification-content p{margin:.3rem 0;color:var(--vp-text);font-size:.88rem}
.prof-panel,.prof-table-card,.prof-case-hero,.prof-turma-card{padding:1.25rem;border:1px solid var(--vp-border);border-radius:.9rem;background:var(--vp-surface);box-shadow:0 2px 7px rgba(15,23,42,.05)}.prof-panel{display:flex;flex-direction:column;gap:1.1rem}.prof-panel-title{display:flex;align-items:center;gap:.55rem;padding-bottom:.9rem;border-bottom:1px solid var(--vp-border);color:var(--vp-text);font-weight:700}.prof-panel-list{margin:-1.25rem}.prof-readonly-field{min-height:2.4rem;padding:.5rem .75rem;border:1px solid var(--vp-border);border-radius:.55rem;background:var(--vp-surface-alt);color:var(--vp-text-muted)}.prof-table-card{padding:0;overflow:hidden}.prof-table thead th{padding:.8rem 1rem;border-bottom:1px solid var(--vp-border);background:var(--vp-surface-alt);color:var(--vp-text-muted);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.prof-table tbody td{border-color:var(--vp-border)}.prof-table tbody tr:hover{background:var(--vp-surface-hover)}.prof-table-compact{font-size:.85rem}.prof-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:var(--vp-primary-light);color:var(--vp-primary);font-size:.75rem;font-weight:700;flex:0 0 auto}.prof-avatar-warning{background:color-mix(in srgb,var(--bs-warning) 16%,transparent);color:var(--bs-warning)}.prof-avatar-lg{width:46px;height:46px;font-size:1.1rem}
.prof-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;padding:2.5rem 1.25rem;border:1px dashed var(--vp-border);border-radius:.9rem;background:var(--vp-surface);color:var(--vp-text-muted);text-align:center}.prof-empty-state>span{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin-bottom:.85rem;border-radius:.85rem;background:var(--vp-primary-light);color:var(--vp-primary);font-size:1.1rem}.prof-empty-state h2{margin:0;color:var(--vp-text);font-size:1rem;font-weight:700}.prof-empty-state p{margin:.4rem 0 0;font-size:.85rem}
.prof-content-narrow{max-width:860px;margin:0 auto}.prof-panel-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.8rem;background:var(--vp-primary-light);color:var(--vp-primary);flex:0 0 auto}.prof-export-panel,.prof-danger-panel,.prof-status-card{display:flex;align-items:flex-start;gap:1rem}.prof-panel h2,.prof-status-card h2{margin:0;color:var(--vp-text);font-size:1.05rem;font-weight:700}.prof-panel p,.prof-status-card p{margin:.45rem 0 1rem;color:var(--vp-text-muted)}.prof-danger-panel{border-color:color-mix(in srgb,var(--vp-danger) 38%,var(--vp-border))}.prof-danger-panel .prof-panel-icon{background:color-mix(in srgb,var(--vp-danger) 12%,transparent);color:var(--vp-danger)}.prof-inline-action{align-items:center;justify-content:space-between}.prof-confirm-action{margin-top:1rem}.prof-status-card{padding:1.25rem;border:1px solid var(--vp-border);border-radius:.9rem;background:var(--vp-surface)}.prof-status-card>i{margin-top:.15rem;font-size:1.3rem}.prof-status-warning{border-color:color-mix(in srgb,var(--bs-warning) 42%,var(--vp-border))}.prof-status-warning>i{color:var(--bs-warning)}.prof-status-danger{border-color:color-mix(in srgb,var(--vp-danger) 42%,var(--vp-border))}.prof-status-danger>i{color:var(--vp-danger)}.prof-consent-active,.prof-document-panel{margin-bottom:1rem}.prof-data-list{display:grid;grid-template-columns:minmax(130px,.45fr) 1fr;gap:.75rem 1rem;margin:0}.prof-data-list dt{color:var(--vp-text-muted);font-size:.84rem;font-weight:600}.prof-data-list dd{margin:0;color:var(--vp-text)}.prof-document-content{max-height:500px;overflow-y:auto;padding:1rem;border:1px solid var(--vp-border);border-radius:.65rem;background:var(--vp-surface-alt);color:var(--vp-text);line-height:1.6}
.prof-case-detail{margin-bottom:1.5rem}.prof-case-hero{margin-bottom:1rem}.prof-timeline-item{display:flex;gap:1rem}.prof-timeline-rail{display:flex;flex:0 0 32px;flex-direction:column;align-items:center}.prof-timeline-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;font-size:.75rem}.prof-timeline-line{width:2px;min-height:12px;margin-top:4px;background:var(--vp-border);flex:1}.prof-timeline-card{min-width:0;flex:1;border:1px solid var(--vp-border);border-radius:.75rem;background:var(--vp-surface);box-shadow:0 2px 7px rgba(15,23,42,.05)}.anotacao-alvo:target{border-color:var(--bs-warning);background:color-mix(in srgb,var(--bs-warning) 8%,var(--vp-surface))}
.prof-turma-card{padding:0;overflow:hidden}.prof-turma-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--vp-border);background:var(--vp-surface-alt)}.prof-turma-title{display:flex;align-items:center;gap:.75rem;min-width:0}.prof-turma-title>span{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.7rem;background:var(--vp-primary-light);color:var(--vp-primary);flex:0 0 auto}.prof-turma-title h2{margin:0;color:var(--vp-text);font-size:1rem;font-weight:700}.prof-turma-title p{margin:.15rem 0 0;color:var(--vp-text-muted);font-size:.78rem}.prof-turma-summary{display:flex;flex-wrap:wrap;gap:.5rem}.prof-turma-summary span{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .55rem;border:1px solid var(--vp-border);border-radius:.5rem;color:var(--vp-text-muted);font-size:.76rem;background:var(--vp-surface)}.prof-turma-summary span.is-positive{border-color:color-mix(in srgb,var(--bs-success) 40%,var(--vp-border));color:var(--bs-success)}.prof-turma-card-body{padding:1.25rem}.prof-turma-students{min-width:0}.prof-turma-radar{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding-left:1.25rem;border-left:1px solid var(--vp-border)}.prof-turma-radar-title{width:100%;margin-bottom:.5rem;color:var(--vp-text-muted);font-size:.8rem;font-weight:700;text-align:center}.prof-radar{width:100%;max-width:360px;height:280px}.prof-radar-empty{display:flex;align-items:center;justify-content:center;height:260px;flex-direction:column;gap:.5rem;color:var(--vp-text-muted);font-size:.83rem}.prof-tabs{gap:.25rem;border-bottom-color:var(--vp-border)}.prof-tabs .nav-link{border:0;border-bottom:2px solid transparent;border-radius:.5rem .5rem 0 0;color:var(--vp-text-muted);font-size:.875rem;font-weight:600}.prof-tabs .nav-link:hover,.prof-tabs .nav-link.active{border-bottom-color:var(--vp-primary);background:var(--vp-primary-light);color:var(--vp-primary)}.prof-student-profile .tab-pane{padding-top:1.25rem}.prof-student-profile .card{border:1px solid var(--vp-border);border-radius:.85rem;box-shadow:0 2px 7px rgba(15,23,42,.05)}.prof-student-profile .card-header{border-bottom-color:var(--vp-border);background:var(--vp-surface-alt)}.prof-student-profile .resp-preview{padding:.6rem .8rem;border-radius:.5rem;background:var(--vp-surface-alt);font-size:.83rem}
@media(max-width:767.98px){.prof-page-heading{align-items:flex-start;flex-direction:column}.prof-filter-pills{width:100%}.prof-turma-card-header,.prof-inline-action{align-items:flex-start;flex-direction:column}.prof-data-list{grid-template-columns:1fr;gap:.2rem}.prof-data-list dd{margin-bottom:.55rem}.prof-timeline-item{gap:.65rem}.prof-timeline-rail{flex-basis:28px}}
@media(max-width:991.98px){.prof-turma-radar{margin-top:1.25rem;padding:1.25rem 0 0;border-top:1px solid var(--vp-border);border-left:0}.prof-turma-summary{width:100%}}

:root { --vp-sidebar-width: 248px; --vp-sidebar-width-collapsed: 64px; --vp-topbar-height: 56px; --vp-overlay: rgba(15, 23, 42, .48); }
.vp-layout { display: flex; min-height: 100vh; }
.vp-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 1040; display: flex; flex-direction: column; width: var(--vp-sidebar-width); height: 100vh; background: var(--vp-surface); border-right: 1px solid var(--vp-border); transition: width .25s ease, transform .25s ease; }
.vp-main { display: flex; flex: 1; flex-direction: column; min-width: 0; min-height: 100vh; margin-left: var(--vp-sidebar-width); transition: margin-left .25s ease; }
.vp-sidebar-header { position: relative; display: flex; align-items: center; height: var(--vp-topbar-height); padding: 0 12px; border-bottom: 1px solid var(--vp-border); flex-shrink: 0; }
.vp-sidebar-brand, .vp-mobile-brand { display: flex; align-items: center; gap: 10px; min-width: 0; color: var(--vp-text) !important; font-weight: 800; text-decoration: none; white-space: nowrap; }
.vp-sidebar-brand { flex: 1; font-size: 1.05rem; overflow: hidden; }
.vp-sidebar-brand > i { width: 22px; color: var(--vp-primary); font-size: 1.2rem; text-align: center; }
.vp-sidebar-logo { width: 22px; height: 22px; object-fit: contain; flex-shrink: 0; }
.vp-sidebar-brand-text span, .vp-mobile-brand span, .vp-footer-title span { color: var(--vp-primary); }
/* Marca da barra de cima em mobile, no mesmo tamanho e peso dos outros quatro portais.
   Aqui ela era .vp-mobile-brand, menor, e o "IA" vinha colorido pelo seletor de span
   acima em vez de por uma classe própria. */
.brand-logo-modern { display: flex; align-items: center; gap: 8px; color: var(--vp-text) !important; font-family: var(--vp-font); font-weight: 800; font-size: 1.45rem; letter-spacing: 0; text-decoration: none; transition: opacity .2s ease; }
.brand-logo-modern:hover { opacity: .85; }
.brand-logo-modern .brand-accent, .brand-accent { color: var(--vp-primary) !important; font-weight: 800; }
.vp-sidebar-collapse-btn { position: absolute; top: 50%; right: -15px; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 1px solid var(--vp-border); border-radius: 999px; background: var(--vp-surface); color: var(--vp-text-muted); box-shadow: 0 2px 6px rgba(15,23,42,.12); transform: translateY(-50%); }
.vp-sidebar-collapse-btn:hover, .vp-sidebar-collapse-btn:focus-visible { background: var(--vp-surface-hover); color: var(--vp-primary); }
.vp-sidebar-nav { display: flex; flex: 1; flex-direction: column; gap: 1px; padding: 10px 8px; overflow-y: auto; overflow-x: hidden; }
.vp-sidebar-item { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 9px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--vp-text) !important; cursor: pointer; font-size: .875rem; font-weight: 500; text-align: left; text-decoration: none !important; white-space: nowrap; overflow: hidden; transition: background .15s, color .15s; }
.vp-sidebar-item:hover, .vp-sidebar-item:focus-visible { background: var(--vp-surface-hover); color: var(--vp-primary) !important; }
.vp-sidebar-item.active { background: var(--vp-primary-light); color: var(--vp-primary) !important; }
.vp-sidebar-item.text-danger, .vp-sidebar-item.text-danger .vp-sidebar-item-label, .vp-sidebar-logout .vp-sidebar-item-label { color: var(--vp-danger) !important; }
.vp-sidebar-item > i:first-child, .vp-sidebar-icon-wrap { width: 20px; flex: 0 0 20px; text-align: center; }
.vp-sidebar-icon-wrap { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.vp-sidebar-icon-wrap .badge-dot { position: absolute; top: -5px; right: -7px; min-width: .75rem; padding: .15em .25em; font-size: .5rem; line-height: 1; }
.vp-sidebar-item-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.vp-sidebar-arrow { margin-left: auto; color: var(--vp-text-muted); font-size: .68rem; transition: transform .2s; }
.vp-sidebar-group-btn[aria-expanded="true"] .vp-sidebar-arrow { color: var(--vp-primary); transform: rotate(90deg); }
.vp-sidebar-submenu { display: flex; flex-direction: column; gap: 1px; margin-top: 1px; padding-left: 12px; }
.vp-sidebar-submenu .vp-sidebar-item { min-height: 34px; padding: 7px 10px; color: var(--vp-text-muted) !important; font-size: .825rem; }
.vp-sidebar-divider { height: 1px; margin: 6px 4px; background: var(--vp-border); flex-shrink: 0; }
.vp-sidebar-caption { display: flex; align-items: center; gap: 10px; min-height: 34px; padding: 7px 10px; overflow: hidden; color: var(--vp-text-muted); font-size: .78rem; white-space: nowrap; }
.vp-sidebar-footer { padding: 8px; border-top: 1px solid var(--vp-border); flex-shrink: 0; }
.vp-sidebar-user { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 10px; overflow: hidden; }
.vp-sidebar-user-link { border-radius: 8px; color: var(--vp-text) !important; text-decoration: none !important; }
.vp-sidebar-user-link:hover { background: var(--vp-surface-hover); color: var(--vp-primary) !important; }
.vp-sidebar-user-info { display: flex; flex: 1; flex-direction: column; min-width: 0; gap: 2px; overflow: hidden; }
.vp-sidebar-user-name, .vp-sidebar-user-school { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vp-sidebar-user-name { color: var(--vp-text); font-size: .8rem; font-weight: 600; }.vp-sidebar-user-school { color: var(--vp-text-muted); font-size: .72rem; }
.vp-sidebar-user-arrow { margin-left: auto; color: var(--vp-text-muted); font-size: .75rem; }
.vp-sidebar-overlay { display: none; position: fixed; inset: 0; z-index: 1039; background: var(--vp-overlay); }.vp-sidebar-overlay.active { display: block; }
.vp-topbar { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; gap: 10px; height: var(--vp-topbar-height); padding: 0 16px; border-bottom: 1px solid var(--vp-border); background: var(--vp-surface); flex-shrink: 0; }
.vp-mobile-toggle, .vp-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 8px; background: transparent; color: var(--vp-text); text-decoration: none; }.vp-mobile-toggle { display: none; flex-direction: column; gap: 5px; padding: 7px; }.vp-mobile-toggle .bar { display: block; height: 2px; border-radius: 2px; background: var(--vp-text); }.vp-mobile-toggle .bar:nth-child(1) { width: 20px; }.vp-mobile-toggle .bar:nth-child(2) { width: 15px; }.vp-mobile-toggle .bar:nth-child(3) { width: 10px; }.vp-mobile-toggle:hover, .vp-icon-btn:hover { background: var(--vp-surface-hover); color: var(--vp-primary); }
.vp-topbar-user-name { max-width: 160px; overflow: hidden; color: var(--vp-text); font-size: .8rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }.vp-topbar-user-role { color: var(--vp-primary); font-size: .68rem; font-weight: 600; }
.vp-footer { position: relative; overflow: hidden; padding: 1.5rem 0 1rem; border-top: 1px solid var(--vp-border); background: var(--vp-surface); color: var(--vp-text-muted); box-shadow: 0 -12px 32px rgba(15,23,42,.05); }.vp-footer::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 1px; background: var(--vp-primary); }.vp-footer-content, .vp-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.vp-footer-content { padding-bottom: 1rem; }.vp-footer-brand { display: flex; align-items: center; gap: .85rem; min-width: 0; }.vp-footer-mark { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid color-mix(in srgb, var(--vp-primary) 32%, var(--vp-border)); border-radius: .75rem; background: var(--vp-primary-light); color: var(--vp-primary); }.vp-footer-title { color: var(--vp-text); font-weight: 800; }.vp-footer-subtitle { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: .25rem; font-size: .875rem; }.vp-footer-dot { width: 4px; height: 4px; border-radius: 999px; background: var(--vp-primary); }.vp-footer-links { display: flex; flex-wrap: wrap; gap: .5rem; }.vp-footer-links a { display: inline-flex; align-items: center; gap: .45rem; min-height: 38px; padding: .45rem .75rem; border-radius: .6rem; color: var(--vp-text-muted); font-size: .875rem; font-weight: 600; text-decoration: none; }.vp-footer-links a:hover { background: var(--vp-primary-light); color: var(--vp-primary); }.vp-footer-bottom { padding-top: .9rem; border-top: 1px solid var(--vp-border); font-size: .8125rem; }.vp-footer-bottom-meta { text-align: right; }
@media (min-width: 768px) { .sidebar-pre-collapsed .vp-sidebar, .vp-layout.sidebar-collapsed .vp-sidebar { width: var(--vp-sidebar-width-collapsed); }.sidebar-pre-collapsed .vp-main, .vp-layout.sidebar-collapsed .vp-main { margin-left: var(--vp-sidebar-width-collapsed); }.sidebar-pre-collapsed .vp-sidebar-item-label, .sidebar-pre-collapsed .vp-sidebar-arrow, .sidebar-pre-collapsed .vp-sidebar-brand-text, .sidebar-pre-collapsed .vp-sidebar-user-info, .sidebar-pre-collapsed .vp-sidebar-user-arrow, .vp-layout.sidebar-collapsed .vp-sidebar-item-label, .vp-layout.sidebar-collapsed .vp-sidebar-arrow, .vp-layout.sidebar-collapsed .vp-sidebar-brand-text, .vp-layout.sidebar-collapsed .vp-sidebar-user-info, .vp-layout.sidebar-collapsed .vp-sidebar-user-arrow { width: 0; opacity: 0; overflow: hidden; pointer-events: none; }.sidebar-pre-collapsed .vp-sidebar-item, .vp-layout.sidebar-collapsed .vp-sidebar-item, .sidebar-pre-collapsed .vp-sidebar-user, .vp-layout.sidebar-collapsed .vp-sidebar-user { justify-content: center; gap: 0; padding: 10px; }.sidebar-pre-collapsed .vp-sidebar-header, .vp-layout.sidebar-collapsed .vp-sidebar-header, .sidebar-pre-collapsed .vp-sidebar-brand, .vp-layout.sidebar-collapsed .vp-sidebar-brand { justify-content: center; }.sidebar-pre-collapsed .vp-sidebar-submenu, .vp-layout.sidebar-collapsed .vp-sidebar-submenu { display: none !important; }.sidebar-pre-collapsed .vp-sidebar-collapse-btn, .vp-layout.sidebar-collapsed .vp-sidebar-collapse-btn { transform: translateY(-50%) rotate(180deg); } }
@media (max-width: 767.98px) { .vp-sidebar-collapse-btn { display: none; }.vp-sidebar { width: min(var(--vp-sidebar-width), 86vw) !important; transform: translateX(-100%); box-shadow: 4px 0 20px rgba(15,23,42,.15); }.vp-sidebar.mobile-open { transform: translateX(0); }.vp-main { margin-left: 0 !important; }.vp-mobile-toggle { display: inline-flex; }.vp-mobile-brand { font-size: .95rem; }.vp-main > main, .vp-footer .container-fluid { padding-right: 1rem !important; padding-left: 1rem !important; }.vp-footer-content, .vp-footer-bottom { align-items: flex-start; flex-direction: column; }.vp-footer-bottom-meta { text-align: left; } }

@media (max-width: 575.98px) {
  .consent-layout { padding: 1.25rem .75rem; }
  .consent-panel { border-radius: 1rem; }
  .consent-actions .btn { width: 100%; }
  .page-controls { top: .75rem; right: .75rem; }
}

.high-contrast {
  --vp-surface: #000000;
  --vp-surface-alt: #000000;
  --vp-surface-hover: #1a1a1a;
  --vp-border: #ffffff;
  --vp-text: #ffffff;
  --vp-text-muted: #ffffff;
  --vp-primary: #ffff00;
  --vp-primary-hover: #facc15;
  --vp-primary-active: #eab308;
  --vp-primary-light: rgba(255, 255, 0, 0.2);
  --vp-focus-ring: rgba(255, 255, 255, 0.4);
  --bs-body-bg: #000000;
  --bs-body-color: #ffffff;
  --bs-emphasis-color: #ffffff;
  --bs-secondary-color: #ffffff;
  --bs-tertiary-bg: #000000;
  --bs-secondary-bg: #000000;
  --bs-border-color: #ffffff;
  color-scheme: dark;
}

body.high-contrast,
.high-contrast .vp-main,
.high-contrast .vp-sidebar,
.high-contrast .vp-topbar,
.high-contrast .vp-footer,
.high-contrast .card,
.high-contrast .modal-content,
.high-contrast .dropdown-menu,
.high-contrast .list-group-item,
.high-contrast .table,
.high-contrast .table > :not(caption) > * > *,
.high-contrast .form-control,
.high-contrast .form-select,
.high-contrast .input-group-text,
.high-contrast .accordion-item {
  background-color: #000000 !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}

.high-contrast :is(p, h1, h2, h3, h4, h5, h6, dt, dd, td, th, label, small, span, li, a:not(.btn), .text-muted, .text-body-secondary, .form-text) {
  color: #ffffff !important;
}

.high-contrast .btn-primary,
.high-contrast .btn-warning {
  background: #ffff00 !important;
  border-color: #ffff00 !important;
  color: #000000 !important;
}

.high-contrast .btn-outline-primary,
.high-contrast .btn-outline-secondary,
.high-contrast .btn-outline-danger,
.high-contrast .btn-outline-success,
.high-contrast .btn-outline-warning,
.high-contrast .btn-outline-info {
  border-color: #ffffff !important;
  color: #ffffff !important;
}

.high-contrast .alert {
  background: #000000 !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}

.high-contrast :is(.bg-primary, .bg-secondary, .bg-success, .bg-danger, .bg-warning, .bg-info,
  .bg-light, .bg-dark, .bg-primary-subtle, .bg-secondary-subtle, .bg-success-subtle,
  .bg-danger-subtle, .bg-warning-subtle, .bg-info-subtle, .badge) {
  background-color: #000000 !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}

.high-contrast .form-check-input {
  background-color: #000000;
  border-color: #ffffff;
}

.high-contrast .form-check-input:checked {
  background-color: #ffff00;
  border-color: #ffff00;
}

@media (max-width: 768px) {
  .login-body {
    padding: 0;
  }

  .login-container {
    max-width: 100%;
    min-height: 100vh;
    border-radius: 0;
    box-shadow: none;
    flex-direction: column;
  }

  .login-sidebar,
  .login-form-area {
    width: 100%;
  }

  .login-sidebar {
    padding: 2.5rem 2rem;
  }

  .login-form-area {
    padding: 2.5rem 2rem;
  }
}
