.vti-student-portal,
.vti-student-portal * {
  box-sizing: border-box;
}

.vti-student-portal {
  --vti-sp-text: #102033;
  --vti-sp-muted: #53657a;
  --vti-sp-border: #d8e2ee;
  --vti-sp-border-strong: #c5d4e5;
  --vti-sp-surface: #ffffff;
  --vti-sp-soft: #f5f8fb;
  --vti-sp-soft-2: #edf4fb;
  --vti-sp-blue: #174f90;
  --vti-sp-blue-dark: #103b6b;
  --vti-sp-green: #176f47;
  --vti-sp-orange: #d45d13;
  --vti-sp-red: #b42318;
  --vti-sp-purple: #6941c6;
  --vti-sp-teal: #047481;
  --vti-sp-cyan: #075985;
  --vti-sp-shadow: 0 14px 34px rgba(16, 32, 51, .08);
  --vti-sp-radius: 8px;
  --vti-sp-accent: var(--vti-sp-blue);
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px 0;
  color: var(--vti-sp-text);
  font-family: Inter, Arial, Helvetica, sans-serif;
}

.vti-student-portal[dir="rtl"] {
  direction: rtl;
}

.vti-student-portal[dir="rtl"] input,
.vti-student-portal[dir="rtl"] select,
.vti-student-portal[dir="rtl"] textarea {
  direction: rtl;
  text-align: right;
}

.vti-student-portal[dir="rtl"] .vti-student-portal__header::before {
  left: auto;
  right: 0;
}

.vti-student-portal a,
.vti-student-portal p,
.vti-student-portal h2,
.vti-student-portal h3,
.vti-student-portal h4,
.vti-student-portal span,
.vti-student-portal strong,
.vti-student-portal small,
.vti-student-portal li,
.vti-student-portal div,
.vti-student-portal label,
.vti-student-portal legend,
.vti-student-portal input,
.vti-student-portal select,
.vti-student-portal textarea,
.vti-student-portal button {
  font-family: Inter, Arial, Helvetica, sans-serif;
}

.vti-student-portal select {
  position: relative;
  z-index: 1;
  pointer-events: auto;
  appearance: auto;
}

.vti-student-portal input,
.vti-student-portal select,
.vti-student-portal textarea,
.vti-student-portal button {
  max-width: 100%;
  min-width: 0;
}

.vti-student-portal__header,
.vti-student-portal__section,
.vti-student-portal__login-card,
.vti-student-portal__empty {
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-surface);
  box-shadow: var(--vti-sp-shadow);
}

.vti-student-portal__section,
.vti-student-portal__card,
.vti-student-portal__mini-form,
.vti-student-portal__staff-panel {
  overflow: visible;
}

.vti-student-portal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
  padding: 22px;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 96% 0%, rgba(23, 111, 71, .12), transparent 30%),
    linear-gradient(135deg, #ffffff 0%, #f3f8fd 100%);
}

.vti-student-portal__header::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 7px;
  height: 100%;
  background: linear-gradient(180deg, var(--vti-sp-blue), var(--vti-sp-green));
}

.vti-student-portal__header > * {
  position: relative;
  z-index: 1;
}

.vti-student-portal__notice {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #bfe7cd;
  border-radius: var(--vti-sp-radius);
  background: linear-gradient(90deg, #eefaf2 0%, #ffffff 100%);
  color: var(--vti-sp-green);
  font-weight: 800;
}

.vti-student-portal__notice--error {
  border-color: #fecaca;
  background: #fff1f2;
  color: #b42318;
}

.vti-student-portal__notice--warning {
  border-color: #fedf89;
  background: #fff8e8;
  color: #92400e;
}

.vti-student-portal__eyebrow,
.vti-student-portal__section-head p {
  margin: 0 0 6px;
  color: var(--vti-sp-green);
  font-size: .8rem;
  font-weight: 800;
  text-transform: uppercase;
}

.vti-student-portal h2,
.vti-student-portal h3,
.vti-student-portal h4 {
  margin: 0;
  color: var(--vti-sp-text);
  font-weight: 850;
  line-height: 1.2;
}

.vti-student-portal h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.vti-student-portal h3 {
  font-size: 1.35rem;
}

.vti-student-portal h4 {
  font-size: 1.05rem;
}

.vti-student-portal p {
  color: var(--vti-sp-muted);
  line-height: 1.6;
}

.vti-student-portal__header p {
  margin: 8px 0 0;
}

.vti-student-portal__logout,
.vti-student-portal__button,
.vti-student-portal .login-submit .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  border: 0;
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-blue);
  color: #ffffff;
  text-decoration: none;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 10px 20px rgba(23, 79, 144, .16);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.vti-student-portal__logout:hover,
.vti-student-portal__button:hover,
.vti-student-portal .login-submit .button:hover {
  background: #113f73;
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 14px 24px rgba(23, 79, 144, .22);
}

.vti-student-portal__header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.vti-student-portal__button--secondary {
  border: 1px solid var(--vti-sp-border);
  background: #ffffff;
  color: var(--vti-sp-blue);
  box-shadow: 0 8px 18px rgba(16, 32, 51, .06);
}

.vti-student-portal__button--secondary:hover {
  background: var(--vti-sp-soft);
  color: var(--vti-sp-blue);
}

.vti-student-portal__button--small {
  min-height: 36px;
  padding: 8px 12px;
  font-size: .9rem;
}

.vti-student-portal a:focus-visible,
.vti-student-portal button:focus-visible,
.vti-student-portal input:focus-visible,
.vti-student-portal select:focus-visible,
.vti-student-portal textarea:focus-visible {
  outline: 3px solid rgba(23, 79, 144, .28);
  outline-offset: 2px;
}

.vti-student-portal__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  position: sticky;
  top: 32px;
  z-index: 5;
  padding: 8px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 24px rgba(16, 32, 51, .06);
}

.vti-student-portal__tabs a {
  position: relative;
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  padding: 8px 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-soft);
  color: var(--vti-sp-text);
  text-decoration: none;
  font-weight: 750;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.vti-student-portal__tabs a::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 5px;
  height: 3px;
  border-radius: 999px;
  background: transparent;
}

.vti-student-portal__tabs a:hover,
.vti-student-portal__tabs a.is-active {
  border-color: var(--vti-sp-blue);
  background: #eaf2fb;
  color: var(--vti-sp-blue-dark);
  transform: translateY(-1px);
}

.vti-student-portal__tabs a.is-active::after {
  background: linear-gradient(90deg, var(--vti-sp-blue), var(--vti-sp-green));
}

.vti-student-portal__tabs--staff a {
  min-height: 42px;
  padding-inline: 13px;
}

.vti-student-portal__tabs--staff a:first-child {
  background: #ffffff;
  border-color: #cfe0f3;
}

.vti-student-portal--staff-app {
  width: min(1280px, calc(100% - 32px));
}

.vti-student-portal__header--staff-app {
  align-items: flex-start;
  padding: 20px 22px;
}

.vti-student-portal__app-tabs {
  position: sticky;
  top: 24px;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: thin;
}

.vti-student-portal__app-tabs a {
  flex: 0 0 auto;
  min-width: max-content;
}

.vti-student-portal__app-tabs a[aria-selected="true"] {
  border-color: var(--vti-sp-blue);
  background: linear-gradient(135deg, #eaf2fb 0%, #edf8f2 100%);
  color: var(--vti-sp-blue-dark);
}

.vti-student-portal__tab-panel {
  display: block;
}

.vti-student-portal__subtabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 8px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(16, 32, 51, .05);
}

.vti-student-portal__subtabs a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid transparent;
  border-radius: var(--vti-sp-radius);
  color: var(--vti-sp-muted);
  background: var(--vti-sp-soft);
  text-decoration: none;
  font-weight: 800;
}

.vti-student-portal__subtabs a:hover,
.vti-student-portal__subtabs a.is-active,
.vti-student-portal__subtabs a[aria-selected="true"] {
  border-color: var(--vti-sp-blue);
  background: #eaf2fb;
  color: var(--vti-sp-blue-dark);
}

.vti-student-portal__overview--staff-dashboard {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vti-student-portal__overview {
  display: grid;
  grid-template-columns: 1.55fr repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}

.vti-student-portal__overview.vti-student-portal__overview--staff-dashboard {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vti-student-portal__summary-card {
  position: relative;
  min-height: 142px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(16, 32, 51, .05);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.vti-student-portal__summary-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: var(--vti-sp-accent);
}

.vti-student-portal__summary-card::after {
  content: "";
  position: absolute;
  right: -34px;
  top: -34px;
  width: 92px;
  height: 92px;
  border-radius: 999px;
  background: rgba(23, 79, 144, .07);
}

.vti-student-portal__summary-card:hover {
  transform: translateY(-2px);
  border-color: #b7c9dd;
  box-shadow: 0 16px 30px rgba(16, 32, 51, .09);
}

.vti-student-portal__summary-card:nth-child(5n+1) {
  --vti-sp-accent: var(--vti-sp-blue);
}

.vti-student-portal__summary-card:nth-child(5n+2) {
  --vti-sp-accent: var(--vti-sp-green);
}

.vti-student-portal__summary-card:nth-child(5n+3) {
  --vti-sp-accent: var(--vti-sp-purple);
}

.vti-student-portal__summary-card:nth-child(5n+4) {
  --vti-sp-accent: var(--vti-sp-orange);
}

.vti-student-portal__summary-card:nth-child(5n+5) {
  --vti-sp-accent: var(--vti-sp-teal);
}

.vti-student-portal__summary-card--primary {
  background: linear-gradient(135deg, var(--vti-sp-blue-dark) 0%, var(--vti-sp-blue) 100%);
  border-color: transparent;
}

.vti-student-portal__summary-card--primary::before {
  background: linear-gradient(180deg, #4ade80, #93c5fd);
}

.vti-student-portal__summary-card span {
  position: relative;
  z-index: 1;
  display: block;
  margin-bottom: 8px;
  color: var(--vti-sp-muted);
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__summary-card strong {
  position: relative;
  z-index: 1;
  display: block;
  color: var(--vti-sp-text);
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1.1;
}

.vti-student-portal__summary-card p {
  position: relative;
  z-index: 1;
  margin: 8px 0 0;
  font-size: .92rem;
}

.vti-student-portal__summary-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.vti-student-portal__summary-row div {
  position: relative;
  padding: 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-soft);
  overflow: hidden;
}

.vti-student-portal__summary-row div::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--vti-sp-blue), var(--vti-sp-green));
}

.vti-student-portal__summary-row span {
  display: block;
  margin-bottom: 5px;
  color: var(--vti-sp-muted);
  font-size: .74rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__summary-row strong {
  display: block;
  color: var(--vti-sp-text);
  font-size: 1.35rem;
}

.vti-student-portal__summary-card--primary span,
.vti-student-portal__summary-card--primary strong,
.vti-student-portal__summary-card--primary p {
  color: #ffffff;
}

.vti-student-portal__mini-meter {
  height: 10px;
  margin-top: 14px;
  overflow: hidden;
  border-radius: 999px;
  background: #dce6f1;
}

.vti-student-portal__mini-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--vti-sp-green), #20a56c);
}

.vti-student-portal__section {
  margin: 0 0 16px;
  padding: 20px;
  scroll-margin-top: 100px;
  border-top: 4px solid rgba(23, 79, 144, .16);
}

.vti-student-portal__auth-shell {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(360px, .58fr);
  gap: 18px;
  align-items: stretch;
}

.vti-student-portal__auth-intro,
.vti-student-portal__auth-panel {
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  box-shadow: var(--vti-sp-shadow);
  padding: 24px;
}

.vti-student-portal__auth-intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 96% 8%, rgba(255, 255, 255, .18), transparent 28%),
    linear-gradient(135deg, var(--vti-sp-blue-dark) 0%, var(--vti-sp-blue) 100%);
}

.vti-student-portal__auth-intro::after {
  content: "";
  position: absolute;
  right: -42px;
  bottom: -42px;
  width: 140px;
  height: 140px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
}

.vti-student-portal__auth-intro > * {
  position: relative;
  z-index: 1;
}

.vti-student-portal__auth-intro h2,
.vti-student-portal__auth-intro p,
.vti-student-portal__auth-intro .vti-student-portal__eyebrow {
  color: #ffffff;
}

.vti-student-portal__auth-benefits {
  display: grid;
  gap: 9px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.vti-student-portal__auth-benefits li {
  position: relative;
  padding: 10px 12px 10px 38px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: var(--vti-sp-radius);
  background: rgba(255, 255, 255, .1);
  color: #ffffff;
  font-weight: 750;
}

.vti-student-portal__auth-benefits li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 14px;
  width: 12px;
  height: 7px;
  border: solid #ffffff;
  border-width: 0 0 2px 2px;
  transform: translateY(-60%) rotate(-45deg);
}

.vti-student-portal__auth-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}

.vti-student-portal__auth-tabs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-soft);
  color: var(--vti-sp-text);
  text-decoration: none;
  font-weight: 800;
}

.vti-student-portal__auth-tabs a.is-active {
  border-color: var(--vti-sp-blue);
  background: #eaf2fb;
  color: var(--vti-sp-blue);
}

.vti-student-portal__auth-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 14px;
}

.vti-student-portal__auth-links a {
  color: var(--vti-sp-blue);
  font-weight: 800;
  text-decoration: none;
}

.vti-student-portal__auth-links a:hover {
  color: var(--vti-sp-blue-dark);
  text-decoration: underline;
}

.vti-student-portal__section:focus {
  outline: none;
}

.vti-student-portal__section-head {
  margin-bottom: 14px;
}

.vti-student-portal__section-head span {
  display: block;
  max-width: 780px;
  margin-top: 8px;
  color: var(--vti-sp-muted);
  line-height: 1.55;
}

.vti-student-portal__section-head--actions,
.vti-student-portal__preferences {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.vti-student-portal__section--compact {
  padding: 16px 20px;
}

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

.vti-student-portal__quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.vti-student-portal__quick-actions .vti-student-portal__button {
  min-width: 142px;
}

.vti-student-portal__staff-toolbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  align-items: end;
  margin: 0 0 12px;
  padding: 14px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: linear-gradient(180deg, #ffffff 0%, var(--vti-sp-soft) 100%);
}

.vti-student-portal__staff-toolbar label {
  display: grid;
  gap: 5px;
  margin: 0;
  min-width: 0;
  color: var(--vti-sp-text);
  font-weight: 850;
}

.vti-student-portal__staff-toolbar label span {
  color: var(--vti-sp-muted);
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__staff-toolbar input,
.vti-student-portal__staff-toolbar select {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-text);
  padding: 10px 12px;
}

.vti-student-portal__staff-toolbar input:focus,
.vti-student-portal__staff-toolbar select:focus {
  border-color: var(--vti-sp-blue);
  box-shadow: 0 0 0 3px rgba(23, 79, 144, .14);
  outline: none;
}

.vti-student-portal__staff-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: end;
}

.vti-student-portal__result-count {
  margin: 0 0 12px;
  color: var(--vti-sp-muted);
  font-weight: 750;
}

.vti-student-portal__action-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.vti-student-portal__action-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-blue);
  text-decoration: none;
  font-size: .86rem;
  font-weight: 850;
}

.vti-student-portal__action-list a:hover,
.vti-student-portal__action-list a:focus-visible {
  border-color: var(--vti-sp-blue);
  background: #eaf2fb;
  color: var(--vti-sp-blue-dark);
}

.vti-student-portal__staff-action-panel {
  min-width: 260px;
}

.vti-student-portal__staff-action-panel summary {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-blue);
  font-weight: 900;
}

.vti-student-portal__staff-action-panel summary:focus-visible {
  outline: 3px solid rgba(23, 79, 144, .2);
  outline-offset: 2px;
}

.vti-student-portal__staff-action-stack {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}

.vti-student-portal__mini-form {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #f8fbff;
}

.vti-student-portal__mini-form h4 {
  margin: 0;
  color: var(--vti-sp-text);
  font-size: .98rem;
}

.vti-student-portal__mini-form label,
.vti-student-portal__mini-checklist {
  display: grid;
  gap: 5px;
  margin: 0;
  min-width: 0;
  color: var(--vti-sp-text);
  font-size: .88rem;
  font-weight: 850;
}

.vti-student-portal__mini-form input,
.vti-student-portal__mini-form select,
.vti-student-portal__mini-form textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--vti-sp-border);
  border-radius: 10px;
  background: #ffffff;
  color: var(--vti-sp-text);
  padding: 10px 12px;
  font: inherit;
}

.vti-student-portal__mini-form textarea {
  min-height: 72px;
  resize: vertical;
}

.vti-student-portal__mini-form input:focus,
.vti-student-portal__mini-form select:focus,
.vti-student-portal__mini-form textarea:focus {
  border-color: var(--vti-sp-blue);
  box-shadow: 0 0 0 3px rgba(23, 79, 144, .14);
  outline: none;
}

.vti-sp-select {
  position: relative;
  width: 100%;
  min-width: 0;
  z-index: 10;
}

.vti-sp-select.is-open {
  z-index: 80;
}

.vti-sp-native-select-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.vti-sp-select__button {
  position: relative;
  width: 100%;
  min-height: 44px;
  padding: 10px 38px 10px 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: 10px;
  background: #ffffff;
  color: var(--vti-sp-text);
  font: inherit;
  font-weight: 750;
  text-align: left;
  box-shadow: none;
}

.vti-sp-select__button::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--vti-sp-muted);
  border-bottom: 2px solid var(--vti-sp-muted);
  transform: translateY(-65%) rotate(45deg);
}

.vti-sp-select__button:hover,
.vti-sp-select__button:focus-visible,
.vti-sp-select.is-open .vti-sp-select__button {
  border-color: var(--vti-sp-blue);
  background: #ffffff;
  color: var(--vti-sp-text);
  outline: none;
  box-shadow: 0 0 0 3px rgba(23, 79, 144, .14);
  transform: none;
}

.vti-sp-select__dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 90;
  display: grid;
  gap: 8px;
  min-width: 100%;
  max-width: min(540px, calc(100vw - 32px));
  padding: 10px;
  border: 1px solid var(--vti-sp-border-strong);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 38px rgba(16, 32, 51, .18);
}

.vti-sp-select__search {
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--vti-sp-border);
  border-radius: 10px;
  background: #fafdff;
  color: var(--vti-sp-text);
  font: inherit;
}

.vti-sp-select__list {
  display: grid;
  gap: 2px;
  max-height: 260px;
  overflow-y: auto;
  outline: none;
}

.vti-sp-select__option,
.vti-sp-select__empty {
  padding: 9px 10px;
  border-radius: 8px;
  color: var(--vti-sp-text);
  font-weight: 750;
  cursor: pointer;
}

.vti-sp-select__option:hover,
.vti-sp-select__option.is-active,
.vti-sp-select__option[aria-selected="true"] {
  background: #eaf2fb;
  color: var(--vti-sp-blue-dark);
}

.vti-sp-select__option[aria-disabled="true"],
.vti-sp-select__empty {
  color: var(--vti-sp-muted);
  cursor: default;
}

.vti-sp-select__count {
  color: var(--vti-sp-muted);
  font-size: .76rem;
  font-weight: 800;
}

.vti-student-portal__mini-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  align-items: start;
}

.vti-student-portal__form-section {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #f8fbff;
}

.vti-student-portal__form-section h5 {
  margin: 0;
  color: var(--vti-sp-blue-dark);
  font-size: .92rem;
  font-weight: 900;
  letter-spacing: 0;
}

.vti-student-portal__inline-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.vti-student-portal__inline-form select,
.vti-student-portal__inline-form input {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--vti-sp-border);
  border-radius: 10px;
  background: #ffffff;
  color: var(--vti-sp-text);
  padding: 8px 10px;
}

.vti-student-portal__settings-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.vti-student-portal__settings-grid label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-text);
  font-size: .88rem;
  font-weight: 800;
}

.vti-student-portal__settings-grid input {
  width: auto;
  min-height: auto;
  margin-top: 2px;
}

.vti-student-portal__status-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.vti-student-portal__status-card {
  display: grid;
  gap: 5px;
  min-height: 112px;
  padding: 14px;
  border: 1px solid var(--vti-sp-border);
  border-left: 4px solid var(--vti-sp-orange);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(16, 32, 51, .045);
}

.vti-student-portal__status-card.is-ok {
  border-left-color: var(--vti-sp-green);
}

.vti-student-portal__status-card span {
  color: var(--vti-sp-muted);
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__status-card strong {
  color: var(--vti-sp-text);
  font-size: 1rem;
}

.vti-student-portal__status-card.needs-review strong {
  color: var(--vti-sp-orange);
}

.vti-student-portal__status-card small {
  color: var(--vti-sp-muted);
  line-height: 1.45;
}

.vti-student-portal__settings-panel {
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: linear-gradient(180deg, #ffffff 0%, var(--vti-sp-soft) 100%);
  box-shadow: 0 10px 22px rgba(16, 32, 51, .05);
}

.vti-student-portal__report-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.vti-student-portal__report-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 180px;
  padding: 15px;
  border: 1px solid var(--vti-sp-border);
  border-left: 4px solid var(--vti-sp-blue);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(16, 32, 51, .045);
}

.vti-student-portal__report-card h4,
.vti-student-portal__report-card p {
  margin: 0;
}

.vti-student-portal__report-card h4 {
  color: var(--vti-sp-text);
  font-size: 1rem;
}

.vti-student-portal__report-card p {
  color: var(--vti-sp-muted);
  line-height: 1.55;
}

.vti-student-portal__report-card .vti-student-portal__button {
  margin-top: auto;
  align-self: flex-start;
}

.vti-student-portal__action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 10px 0 12px;
}

.vti-student-portal__inline-action {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.vti-student-portal__inline-action label {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  margin: 0;
  color: var(--vti-sp-muted);
  font-size: .88rem;
  font-weight: 800;
}

.vti-student-portal__inline-action input[type="checkbox"] {
  width: auto;
  min-height: auto;
}

.vti-student-portal__pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
}

.vti-student-portal__pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  padding: 6px 10px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-blue);
  text-decoration: none;
  font-weight: 850;
}

.vti-student-portal__pagination span {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  color: var(--vti-sp-muted);
  font-weight: 850;
}

.vti-student-portal__pagination a.is-active,
.vti-student-portal__pagination a:hover {
  border-color: var(--vti-sp-blue);
  background: #eaf2fb;
  color: var(--vti-sp-blue-dark);
}

.vti-student-portal__admin-tool-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

.vti-student-portal__admin-tool-grid--quick-create .vti-student-portal__mini-form {
  min-width: 0;
}

.vti-student-portal__mini-form--wide {
  grid-column: 1 / -1;
}

.vti-student-portal__grid-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.vti-student-portal__finance-account {
  display: grid;
  gap: 16px;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--vti-sp-border);
}

.vti-student-portal__application-detail {
  display: grid;
  gap: 16px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--vti-sp-border);
}

.vti-student-portal__agreement-reader {
  display: grid;
  gap: 16px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--vti-sp-border);
}

.vti-student-portal__agreement-content {
  padding: 18px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: #24364b;
  line-height: 1.68;
}

.vti-student-portal__agreement-content p {
  margin: 0 0 12px;
}

.vti-student-portal__agreement-content p:last-child {
  margin-bottom: 0;
}

.vti-student-portal__radio-group {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #f8fbff;
}

.vti-student-portal__radio-group legend {
  color: var(--vti-sp-text);
  font-weight: 900;
}

.vti-student-portal__radio-group label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.vti-student-portal__application-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.vti-student-portal__application-summary div {
  padding: 14px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #f8fbff;
}

.vti-student-portal__application-summary span,
.vti-student-portal__requirement-item span,
.vti-student-portal__history-list span {
  display: block;
  color: var(--vti-sp-muted);
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__application-summary strong {
  display: block;
  margin-top: 4px;
  color: var(--vti-sp-text);
  font-size: 1rem;
  font-weight: 900;
}

.vti-student-portal__requirement-list {
  display: grid;
  gap: 10px;
}

.vti-student-portal__requirement-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
}

.vti-student-portal__requirement-item strong {
  display: block;
  margin-top: 3px;
  color: var(--vti-sp-text);
}

.vti-student-portal__requirement-item small {
  display: block;
  margin-top: 4px;
  color: var(--vti-sp-orange);
  font-weight: 800;
}

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

.vti-student-portal__history-list {
  display: grid;
  gap: 10px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.vti-student-portal__history-list li {
  padding: 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: 12px;
  background: #ffffff;
}

.vti-student-portal__history-list strong {
  display: block;
  color: var(--vti-sp-text);
}

.vti-student-portal__history-list p {
  margin: 6px 0 0;
  color: #33465c;
}

.vti-student-portal__table textarea {
  width: 100%;
  min-height: 58px;
  border: 1px solid var(--vti-sp-border);
  border-radius: 10px;
  background: #ffffff;
  color: var(--vti-sp-text);
  padding: 8px 10px;
  font: inherit;
  resize: vertical;
}

.vti-student-portal__mini-checklist {
  padding: 10px;
  border: 1px solid var(--vti-sp-border);
  border-radius: 12px;
  background: #ffffff;
}

.vti-student-portal__mini-checklist legend {
  padding: 0 4px;
  color: var(--vti-sp-muted);
  font-size: .78rem;
  font-weight: 900;
}

.vti-student-portal__mini-checklist label,
.vti-student-portal__checkline {
  display: flex;
  align-items: center;
  gap: 8px;
}

.vti-student-portal__mini-checklist input,
.vti-student-portal__checkline input {
  width: auto;
  min-height: auto;
}

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

.vti-student-portal__support-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: linear-gradient(180deg, #ffffff 0%, var(--vti-sp-soft) 100%);
  box-shadow: 0 8px 18px rgba(16, 32, 51, .045);
}

.vti-student-portal__support-card header {
  display: grid;
  gap: 4px;
}

.vti-student-portal__support-card header span {
  width: max-content;
  max-width: 100%;
  padding: 5px 9px;
  border-radius: 999px;
  background: #eaf2fb;
  color: var(--vti-sp-blue);
  font-size: .76rem;
  font-weight: 900;
}

.vti-student-portal__support-card h4,
.vti-student-portal__support-card p {
  margin: 0;
}

.vti-student-portal__support-card p {
  color: var(--vti-sp-muted);
  line-height: 1.55;
}

.vti-student-portal__task-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.vti-student-portal__task-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  min-height: 168px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: linear-gradient(180deg, #ffffff 0%, var(--vti-sp-soft) 100%);
  box-shadow: 0 8px 18px rgba(16, 32, 51, .045);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.vti-student-portal__task-card:hover {
  transform: translateY(-1px);
  border-color: #b7c9dd;
  box-shadow: 0 14px 26px rgba(16, 32, 51, .08);
}

.vti-student-portal__task-card h4 {
  margin-bottom: 8px;
}

.vti-student-portal__task-card p {
  margin: 0;
  font-size: .94rem;
}

.vti-student-portal__task-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  min-height: 36px;
  padding: 8px 12px;
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-blue);
  color: #ffffff;
  text-decoration: none;
  font-size: .9rem;
  font-weight: 850;
}

.vti-student-portal__task-card a:hover,
.vti-student-portal__task-card a:focus-visible {
  background: var(--vti-sp-blue-dark);
  color: #ffffff;
}

.vti-student-portal__profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
  gap: 14px;
  align-items: start;
}

.vti-student-portal__profile-summary {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
}

.vti-student-portal__profile-summary div {
  position: relative;
  padding: 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-soft);
  overflow: hidden;
}

.vti-student-portal__profile-summary div::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--vti-sp-blue);
}

.vti-student-portal__profile-summary span {
  display: block;
  margin-bottom: 5px;
  color: var(--vti-sp-muted);
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__profile-summary strong {
  display: block;
  color: var(--vti-sp-text);
  overflow-wrap: anywhere;
}

.vti-student-portal__table-wrap {
  width: 100%;
  overflow: hidden;
  overflow-x: auto;
  border: 1px solid var(--vti-sp-border-strong);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(16, 32, 51, .045);
}

.vti-student-portal__table-wrap--spaced {
  margin-top: 14px;
}

.vti-student-portal__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 720px;
}

.vti-student-portal__profile-table {
  min-width: 0;
  table-layout: fixed;
}

.vti-student-portal__profile-table td {
  overflow-wrap: anywhere;
}

.vti-student-portal__table th,
.vti-student-portal__table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--vti-sp-border);
  color: var(--vti-sp-text);
  text-align: left;
  vertical-align: top;
  transition: background .16s ease;
}

.vti-student-portal__table th {
  background: linear-gradient(180deg, #f9fbfe 0%, var(--vti-sp-soft-2) 100%);
  color: #27445f;
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.vti-student-portal__table tbody tr:nth-child(even) td {
  background: #fbfdff;
}

.vti-student-portal__table tbody tr:hover td {
  background: #f1f7fd;
}

.vti-student-portal__table tbody tr:hover td:first-child {
  box-shadow: inset 4px 0 0 var(--vti-sp-blue);
}

.vti-student-portal__table tr:last-child td {
  border-bottom: 0;
}

.vti-student-portal__form {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-soft);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .75);
}

.vti-student-portal__form label {
  display: grid;
  gap: 5px;
  color: var(--vti-sp-text);
  font-weight: 800;
}

.vti-student-portal__form .vti-student-portal__checkline {
  display: flex;
  align-items: center;
  gap: 9px;
  width: max-content;
  max-width: 100%;
  color: var(--vti-sp-muted);
  font-weight: 750;
}

.vti-student-portal__form .vti-student-portal__checkline input {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.vti-student-portal__form input,
.vti-student-portal__form select,
.vti-student-portal__form textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-text);
  padding: 10px 12px;
}

.vti-student-portal__form input:focus,
.vti-student-portal__form select:focus,
.vti-student-portal__form textarea:focus,
.vti-student-portal__login-card input[type="text"]:focus,
.vti-student-portal__login-card input[type="email"]:focus,
.vti-student-portal__login-card input[type="password"]:focus {
  border-color: var(--vti-sp-blue);
  box-shadow: 0 0 0 3px rgba(23, 79, 144, .14);
  outline: none;
}

.vti-student-portal__form textarea {
  min-height: 120px;
  resize: vertical;
}

.vti-student-portal__form--login {
  background: #ffffff;
}

.vti-student-portal__program-options {
  margin: 0;
  padding: 0;
  border: 0;
}

.vti-student-portal__language-options {
  margin: 0;
  padding: 0;
  border: 0;
}

.vti-student-portal__program-options legend,
.vti-student-portal__language-options legend {
  margin: 0 0 5px;
  color: var(--vti-sp-text);
  font-weight: 850;
}

.vti-student-portal__program-options p,
.vti-student-portal__language-options p {
  margin: 0 0 10px;
  font-size: .92rem;
}

.vti-student-portal__program-grid,
.vti-student-portal__language-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.vti-student-portal__form .vti-student-portal__program-option,
.vti-student-portal__program-option,
.vti-student-portal__form .vti-student-portal__language-option,
.vti-student-portal__language-option {
  position: relative;
  display: block;
  margin: 0;
  cursor: pointer;
  font-weight: 400;
}

.vti-student-portal__program-option input,
.vti-student-portal__language-option input {
  position: absolute;
  inset: 12px auto auto 12px;
  width: 18px;
  height: 18px;
  opacity: 0;
}

.vti-student-portal__program-option span {
  display: grid;
  gap: 4px;
  min-height: 82px;
  padding: 13px 13px 13px 42px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-text);
  overflow: hidden;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.vti-student-portal__program-option span::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: transparent;
}

.vti-student-portal__program-option span::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 14px;
  width: 16px;
  height: 16px;
  border: 2px solid #9db0c4;
  border-radius: 999px;
  background: #ffffff;
}

.vti-student-portal__program-option strong {
  color: var(--vti-sp-text);
  font-size: .96rem;
  line-height: 1.25;
}

.vti-student-portal__program-option small {
  color: var(--vti-sp-muted);
  line-height: 1.4;
}

.vti-student-portal__program-option input:checked + span {
  border-color: var(--vti-sp-blue);
  background: #eaf2fb;
  box-shadow: 0 0 0 2px rgba(23, 79, 144, .12);
}

.vti-student-portal__program-option input:checked + span::after {
  background: linear-gradient(180deg, var(--vti-sp-blue), var(--vti-sp-green));
}

.vti-student-portal__program-option:hover span {
  transform: translateY(-1px);
  border-color: #b7c9dd;
  box-shadow: 0 10px 22px rgba(16, 32, 51, .07);
}

.vti-student-portal__program-option input:checked + span::before {
  border-color: var(--vti-sp-blue);
  background:
    radial-gradient(circle, var(--vti-sp-blue) 0 42%, #ffffff 46% 100%);
}

.vti-student-portal__program-option input:focus-visible + span {
  outline: 3px solid rgba(23, 79, 144, .28);
  outline-offset: 2px;
}

.vti-student-portal__language-option span {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 54px;
  padding: 12px 12px 12px 42px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-text);
  font-weight: 850;
  line-height: 1.25;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.vti-student-portal__language-option span::before {
  content: "";
  position: absolute;
  top: 18px;
  left: 14px;
  width: 16px;
  height: 16px;
  border: 2px solid #9db0c4;
  border-radius: 999px;
  background: #ffffff;
}

.vti-student-portal__language-option span::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: transparent;
}

.vti-student-portal__language-option input:checked + span {
  border-color: var(--vti-sp-blue);
  background: #eaf2fb;
  box-shadow: 0 0 0 2px rgba(23, 79, 144, .12);
}

.vti-student-portal__language-option input:checked + span::before {
  border-color: var(--vti-sp-blue);
  background:
    radial-gradient(circle, var(--vti-sp-blue) 0 42%, #ffffff 46% 100%);
}

.vti-student-portal__language-option input:checked + span::after {
  background: linear-gradient(180deg, var(--vti-sp-blue), var(--vti-sp-green));
}

.vti-student-portal__language-option:hover span {
  transform: translateY(-1px);
  border-color: #b7c9dd;
  box-shadow: 0 10px 22px rgba(16, 32, 51, .07);
}

.vti-student-portal__language-option input:focus-visible + span {
  outline: 3px solid rgba(23, 79, 144, .28);
  outline-offset: 2px;
}

.vti-student-portal__hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.vti-student-portal__card,
.vti-student-portal__list-item {
  position: relative;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-soft);
  padding: 16px;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.vti-student-portal__card::before,
.vti-student-portal__list-item::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--vti-sp-blue), var(--vti-sp-green));
  opacity: .78;
}

.vti-student-portal__card:hover,
.vti-student-portal__list-item:hover {
  transform: translateY(-1px);
  border-color: #b7c9dd;
  box-shadow: 0 12px 26px rgba(16, 32, 51, .07);
}

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

.vti-student-portal__details div {
  padding: 10px;
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
}

.vti-student-portal__details dt {
  color: var(--vti-sp-muted);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.vti-student-portal__details dd {
  margin: 3px 0 0;
  color: var(--vti-sp-text);
  font-weight: 750;
}

.vti-student-portal__deadlines {
  margin-top: 14px;
  padding: 12px;
  border-left: 4px solid var(--vti-sp-orange);
  background: #fff8f1;
}

.vti-student-portal__deadlines ul,
.vti-student-portal__checklist,
.vti-student-portal__requirements {
  margin: 10px 0 0;
  padding-left: 18px;
}

.vti-student-portal__deadlines li,
.vti-student-portal__requirements li {
  margin-bottom: 7px;
  color: #33465c;
  line-height: 1.5;
}

.vti-student-portal__list {
  display: grid;
  gap: 10px;
}

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

.vti-student-portal__subject,
.vti-student-portal__timeline-item {
  position: relative;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: var(--vti-sp-soft);
  padding: 16px;
  overflow: hidden;
}

.vti-student-portal__subject::before,
.vti-student-portal__timeline-item::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--vti-sp-teal);
}

.vti-student-portal__subject p:last-child,
.vti-student-portal__timeline-item p:last-child {
  margin-bottom: 0;
}

.vti-student-portal__pill {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin: 0 0 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eaf2fb;
  color: var(--vti-sp-blue);
  font-size: .75rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__status {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  padding: 4px 8px;
  border-radius: 999px;
  background: #edf2f7;
  color: #53657a;
  font-size: .75rem;
  font-weight: 850;
  text-transform: uppercase;
}

.vti-student-portal__status-pill {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid #d8e2ee;
  border-radius: 999px;
  background: #f2f5f9;
  color: #53657a;
  font-size: .75rem;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.vti-student-portal__status-pill--active,
.vti-student-portal__status-pill--published,
.vti-student-portal__status-pill--present,
.vti-student-portal__status-pill--pass,
.vti-student-portal__status-pill--completed,
.vti-student-portal__status-pill--approved {
  border-color: #bfe7cd;
  background: #eaf7ef;
  color: var(--vti-sp-green);
}

.vti-student-portal__status-pill--completed {
  border-color: #bcd7ff;
  background: #eaf2fb;
  color: var(--vti-sp-blue);
}

.vti-student-portal__status-pill--pending,
.vti-student-portal__status-pill--draft,
.vti-student-portal__status-pill--review,
.vti-student-portal__status-pill--tardy,
.vti-student-portal__status-pill--makeup,
.vti-student-portal__status-pill--in-progress,
.vti-student-portal__status-pill--open {
  border-color: #fedf89;
  background: #fff8e8;
  color: var(--vti-sp-orange);
}

.vti-student-portal__status-pill--makeup {
  border-color: #b9e6fe;
  background: #eef9ff;
  color: var(--vti-sp-cyan);
}

.vti-student-portal__status-pill--in-progress {
  border-color: #d6bbfb;
  background: #f4efff;
  color: var(--vti-sp-purple);
}

.vti-student-portal__status-pill--absent,
.vti-student-portal__status-pill--withdrawn,
.vti-student-portal__status-pill--closed,
.vti-student-portal__status-pill--archived,
.vti-student-portal__status-pill--bad {
  border-color: #fecaca;
  background: #fff1f2;
  color: var(--vti-sp-red);
}

.vti-student-portal__status.is-pass {
  background: #eaf7ef;
  color: var(--vti-sp-green);
}

.vti-student-portal__status.is-review {
  background: #fff8f1;
  color: var(--vti-sp-orange);
}

.vti-student-portal__hours {
  display: inline-flex;
  margin-top: 8px;
  color: var(--vti-sp-green);
  font-weight: 850;
}

.vti-student-portal__timeline {
  display: grid;
  gap: 10px;
}

.vti-student-portal__timeline-item {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 16px;
}

.vti-student-portal__timeline-date {
  padding: 12px;
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
}

.vti-student-portal__timeline-date strong,
.vti-student-portal__timeline-date span,
.vti-student-portal__location {
  display: block;
}

.vti-student-portal__timeline-date span,
.vti-student-portal__location {
  margin-top: 4px;
  color: var(--vti-sp-muted);
  font-size: .92rem;
  font-weight: 700;
}

.vti-student-portal__list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.vti-student-portal__list-item--stacked {
  display: block;
}

.vti-student-portal__date {
  margin: 0 0 4px;
  font-size: .85rem;
  font-weight: 750;
}

.vti-student-portal__message p:last-child {
  margin-bottom: 0;
}

.vti-student-portal__news-board {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.vti-student-portal__news-item {
  display: grid;
  gap: 8px;
  min-height: 100%;
  padding: 14px;
  border: 1px solid var(--vti-sp-border);
  border-left: 4px solid var(--vti-sp-blue);
  border-radius: var(--vti-sp-radius);
  background:
    linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  box-shadow: 0 8px 18px rgba(16, 32, 51, .055);
}

.vti-student-portal__news-item h4 {
  margin: 0;
}

.vti-student-portal__news-panel {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
}

.vti-student-portal__news-board--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vti-student-portal__forum-layout {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.4fr);
  gap: 16px;
  align-items: start;
}

.vti-student-portal__forum-form {
  position: sticky;
  top: 112px;
}

.vti-student-portal__forum-form--staff {
  position: static;
  margin-bottom: 16px;
  border-left: 4px solid var(--vti-sp-green);
}

.vti-student-portal__file-note,
.vti-student-portal__forum-empty {
  margin: -2px 0 0;
  color: var(--vti-sp-muted);
  font-size: .9rem;
  line-height: 1.5;
}

.vti-student-portal__forum-list {
  display: grid;
  gap: 14px;
}

.vti-student-portal__forum-list--staff {
  gap: 16px;
}

.vti-student-portal__forum-filter {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, .45fr) minmax(140px, .35fr) auto;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(16, 32, 51, .045);
}

.vti-student-portal__forum-filter label {
  display: grid;
  gap: 5px;
  color: var(--vti-sp-text);
  font-weight: 850;
}

.vti-student-portal__forum-filter input,
.vti-student-portal__forum-filter select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-text);
  padding: 9px 11px;
}

.vti-student-portal__forum-filter input:focus,
.vti-student-portal__forum-filter select:focus,
.vti-student-portal__forum-reply-form textarea:focus,
.vti-student-portal__forum-reply-form input[type="file"]:focus {
  border-color: var(--vti-sp-blue);
  outline: 3px solid rgba(23, 79, 144, .16);
  outline-offset: 1px;
}

.vti-student-portal__forum-filter-count {
  margin: 0;
  color: var(--vti-sp-muted);
  font-size: .86rem;
  font-weight: 800;
  white-space: nowrap;
}

.vti-student-portal__char-count {
  margin-top: -2px;
  color: var(--vti-sp-muted);
  font-size: .78rem;
  font-weight: 800;
  text-align: right;
}

.vti-student-portal__char-count.is-near-limit {
  color: var(--vti-sp-orange);
}

.vti-student-portal__forum-topic {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background:
    linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
  box-shadow: 0 10px 24px rgba(16, 32, 51, .06);
}

.vti-student-portal__forum-topic-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.vti-student-portal__forum-topic h4 {
  margin-bottom: 6px;
}

.vti-student-portal__forum-topic-stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.vti-student-portal__forum-title-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
}

.vti-student-portal__forum-title-line h4 {
  margin: 0;
}

.vti-student-portal__forum-type,
.vti-student-portal__forum-role {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .02em;
}

.vti-student-portal__forum-type {
  background: #eaf2ff;
  color: #174f90;
}

.vti-student-portal__forum-type--study_group {
  background: #f2eaff;
  color: #6941c6;
}

.vti-student-portal__forum-type--skills_practice,
.vti-student-portal__forum-type--clinical_prep {
  background: #e8f8f0;
  color: #176f47;
}

.vti-student-portal__forum-type--exam_prep {
  background: #fff4e8;
  color: #a4490f;
}

.vti-student-portal__forum-type--resource {
  background: #e6f7fa;
  color: #047481;
}

.vti-student-portal__forum-type--reminder {
  background: #fff8db;
  color: #7a4a00;
}

.vti-student-portal__forum-role {
  background: #102033;
  color: #ffffff;
}

.vti-student-portal__forum-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
}

.vti-student-portal__forum-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #edf4fb;
  color: #415a73;
  font-size: .78rem;
  font-weight: 800;
}

.vti-student-portal__forum-meta .vti-student-portal__forum-role {
  background: #102033;
  color: #ffffff;
}

.vti-student-portal__forum-message {
  color: #33465c;
  font-size: .98rem;
  line-height: 1.62;
  overflow-wrap: anywhere;
}

.vti-student-portal__forum-figure {
  margin: 0;
}

.vti-student-portal__forum-image {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 360px;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  object-fit: contain;
  background: #ffffff;
}

.vti-student-portal__forum-replies {
  display: grid;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--vti-sp-border);
}

.vti-student-portal__forum-reply {
  display: grid;
  gap: 7px;
  padding: 12px;
  border: 1px solid #e1e9f2;
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
}

.vti-student-portal__forum-reply-form {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px dashed var(--vti-sp-border-strong);
  border-radius: var(--vti-sp-radius);
  background: #f6f9fc;
}

.vti-student-portal__forum-reply-form label {
  display: grid;
  gap: 5px;
  color: var(--vti-sp-text);
  font-weight: 800;
}

.vti-student-portal__forum-reply-form textarea,
.vti-student-portal__forum-reply-form input[type="file"] {
  width: 100%;
  border: 1px solid var(--vti-sp-border);
  border-radius: var(--vti-sp-radius);
  background: #ffffff;
  color: var(--vti-sp-text);
  padding: 10px 12px;
}

.vti-student-portal__forum-reply-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.vti-student-portal__meter {
  margin-top: 14px;
}

.vti-student-portal__meter-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}

.vti-student-portal__meter-track {
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #dce6f1;
}

.vti-student-portal__meter-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--vti-sp-green), #20a56c);
}

.vti-student-portal__checklist {
  display: grid;
  gap: 8px;
  list-style: none;
  padding-left: 0;
}

.vti-student-portal__checklist li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: #33465c;
  padding: 6px 0;
}

.vti-student-portal__checklist li span {
  flex: 0 0 auto;
  min-width: 68px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #fff8e8;
  color: var(--vti-sp-orange);
  font-size: .75rem;
  font-weight: 800;
  text-align: center;
}

.vti-student-portal__checklist .is-complete span {
  background: #eaf7ef;
  color: var(--vti-sp-green);
}

.vti-student-portal__login-card {
  max-width: 520px;
  margin: 0 auto;
  padding: 24px;
}

.vti-student-portal--template-card .vti-student-portal__auth-shell,
.vti-student-portal--template-compact .vti-student-portal__auth-shell {
  display: block;
  max-width: 620px;
  margin: 0 auto;
}

.vti-student-portal--template-card .vti-student-portal__auth-intro,
.vti-student-portal--template-compact .vti-student-portal__auth-intro {
  margin-bottom: 14px;
}

.vti-student-portal--template-compact {
  max-width: 980px;
}

.vti-student-portal--template-compact .vti-student-portal__overview {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.vti-student-portal--template-clinical .vti-student-portal__header,
.vti-student-portal--template-clinical .vti-student-portal__summary-card--primary {
  background: linear-gradient(135deg, #14532d 0%, #176f47 100%);
}

.vti-student-portal__login-card input[type="text"],
.vti-student-portal__login-card input[type="password"] {
  width: 100%;
  min-height: 44px;
}

.vti-student-portal__empty {
  padding: 18px;
}

.vti-student-portal__preferences p {
  margin: 6px 0 0;
}

.vti-student-portal__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  color: var(--vti-sp-text);
  font-weight: 800;
}

.vti-student-portal__header::before,
.vti-student-portal__tabs a::after,
.vti-student-portal__summary-card::before,
.vti-student-portal__summary-card::after,
.vti-student-portal__summary-row div::before,
.vti-student-portal__profile-summary div::before,
.vti-student-portal__program-option span::before,
.vti-student-portal__program-option span::after,
.vti-student-portal__language-option span::before,
.vti-student-portal__language-option span::after,
.vti-student-portal__card::before,
.vti-student-portal__list-item::before,
.vti-student-portal__subject::before,
.vti-student-portal__timeline-item::before {
  pointer-events: none;
}

.vti-student-portal--compact-widget {
  padding: 14px 0;
}

.vti-student-portal--compact-widget .vti-student-portal__section {
  margin-bottom: 0;
}

.vti-student-portal--compact-widget .vti-student-portal__overview {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.vti-student-portal--compact-widget .vti-student-portal__summary-card {
  min-height: 132px;
}

@media (prefers-reduced-motion: reduce) {
  .vti-student-portal *,
  .vti-student-portal *::before,
  .vti-student-portal *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }

  .vti-student-portal__button:hover,
  .vti-student-portal__logout:hover,
  .vti-student-portal__tabs a:hover,
  .vti-student-portal__summary-card:hover,
  .vti-student-portal__program-option:hover span,
  .vti-student-portal__language-option:hover span,
  .vti-student-portal__card:hover,
  .vti-student-portal__task-card:hover,
  .vti-student-portal__list-item:hover {
    transform: none;
  }
}

@media (max-width: 767px) {
  .vti-student-portal {
    width: min(100% - 24px, 1180px);
    padding: 24px 0;
  }

  .vti-student-portal__header,
  .vti-student-portal__section-head--actions,
  .vti-student-portal__preferences,
  .vti-student-portal__list-item {
    align-items: stretch;
    flex-direction: column;
  }

  .vti-student-portal__grid,
  .vti-student-portal__details,
  .vti-student-portal__program-grid,
  .vti-student-portal__language-grid,
  .vti-student-portal__overview,
  .vti-student-portal__profile-grid,
  .vti-student-portal__forum-layout,
  .vti-student-portal__forum-filter,
  .vti-student-portal__news-board,
  .vti-student-portal__news-board--compact,
  .vti-student-portal__staff-toolbar,
  .vti-student-portal__support-grid,
  .vti-student-portal__mini-form-grid,
  .vti-student-portal__inline-form,
  .vti-student-portal__settings-grid,
  .vti-student-portal__status-grid,
  .vti-student-portal__report-grid,
  .vti-student-portal__admin-tool-grid,
  .vti-student-portal__grid-two,
  .vti-student-portal__application-summary,
  .vti-student-portal__application-columns,
  .vti-student-portal__summary-row,
  .vti-student-portal__subjects,
  .vti-student-portal__task-grid,
  .vti-student-portal__timeline-item,
  .vti-student-portal__auth-shell {
    grid-template-columns: 1fr;
  }

  .vti-student-portal__tabs {
    position: static;
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .vti-student-portal__app-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .vti-student-portal__subtabs {
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .vti-student-portal__overview.vti-student-portal__overview--staff-dashboard {
    grid-template-columns: 1fr;
  }

  .vti-student-portal__button,
  .vti-student-portal__logout {
    width: 100%;
  }

  .vti-student-portal__header-actions {
    width: 100%;
  }

  .vti-student-portal__staff-toolbar-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .vti-student-portal__forum-form {
    position: static;
  }

  .vti-student-portal__forum-filter-count {
    white-space: normal;
  }

  .vti-student-portal__forum-topic-head,
  .vti-student-portal__forum-reply-actions,
  .vti-student-portal__requirement-item {
    grid-template-columns: 1fr;
    display: grid;
  }

  .vti-student-portal__forum-topic-stats {
    justify-content: flex-start;
  }

  .vti-student-portal__table {
    min-width: 0;
  }

  .vti-student-portal__table thead {
    display: none;
  }

  .vti-student-portal__table,
  .vti-student-portal__table tbody,
  .vti-student-portal__table tr,
  .vti-student-portal__table td {
    display: block;
    width: 100%;
  }

  .vti-student-portal__table tr {
    padding: 10px 0;
    border-bottom: 1px solid var(--vti-sp-border);
  }

  .vti-student-portal__table tr:last-child {
    border-bottom: 0;
  }

  .vti-student-portal__table td {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 10px;
    border-bottom: 0;
    padding: 7px 12px;
  }

  .vti-student-portal__table td::before {
    content: attr(data-label);
    color: var(--vti-sp-muted);
    font-size: .75rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .vti-student-portal__profile-table td strong {
    display: none;
  }

  .vti-student-portal__table th {
    display: none;
  }
}

.vti-sp-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.vti-role-admin-table {
  min-width: 980px;
}

.vti-role-admin-table th:last-child,
.vti-role-admin-table__action {
  min-width: 340px;
}

.vti-role-admin-table__email {
  overflow-wrap: anywhere;
  white-space: normal;
}

.vti-role-admin-table__roles {
  white-space: normal;
  overflow-wrap: anywhere;
}

.vti-role-action-form {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  width: 100%;
  min-width: 320px;
  position: static;
}

.vti-role-action-select {
  flex: 1 1 220px;
  min-width: 220px;
  width: auto;
  max-width: 100%;
  height: 44px;
  position: static;
}

.vti-role-action-submit {
  flex: 0 0 auto;
  min-width: 96px;
  white-space: nowrap;
  position: static;
}

@media (max-width: 767px) {
  .vti-role-admin-table {
    min-width: 760px;
  }

  .vti-role-action-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
  }

  .vti-role-action-select,
  .vti-role-action-submit {
    width: 100%;
    min-width: 0;
  }
}

.vti-executive-reports {
  display: grid;
  gap: 22px;
}

.vti-executive-filter-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  align-items: end;
  padding: 18px;
  border: 1px solid #d7e3f1;
  border-radius: 8px;
  background: #f7fafc;
}

.vti-executive-filter-bar .vti-sp-field {
  min-width: 0;
}

.vti-executive-kpi-grid,
.vti-executive-section-grid,
.vti-executive-export-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}

.vti-executive-kpi-card,
.vti-executive-section {
  min-width: 0;
  border: 1px solid #d7e3f1;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(15, 35, 56, 0.06);
}

.vti-executive-kpi-card {
  display: grid;
  gap: 8px;
  padding: 18px;
  color: inherit;
  text-decoration: none;
}

.vti-executive-kpi-card:hover,
.vti-executive-kpi-card:focus {
  border-color: #1c5d99;
  box-shadow: 0 12px 28px rgba(28, 93, 153, 0.14);
  outline: none;
}

.vti-executive-kpi-card__label {
  color: #3d5878;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.vti-executive-kpi-card__value {
  color: #071d36;
  font-size: 30px;
  font-weight: 800;
  line-height: 1.1;
}

.vti-executive-kpi-card__description {
  margin: 0;
  color: #49627f;
  font-size: 14px;
}

.vti-executive-section {
  padding: 18px;
}

.vti-executive-section__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.vti-executive-section__head h4 {
  margin: 2px 0 0;
}

.vti-executive-section__table {
  width: 100%;
  border-collapse: collapse;
}

.vti-executive-section__table th,
.vti-executive-section__table td {
  padding: 10px 0;
  border-top: 1px solid #e8eef6;
  text-align: left;
  vertical-align: middle;
}

.vti-executive-section__table th:last-child,
.vti-executive-section__table td:last-child {
  width: 80px;
  text-align: right;
}

.vti-executive-bar {
  display: block;
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #e7edf5;
}

.vti-executive-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #157f65, #1c5d99);
}

@media (max-width: 640px) {
  .vti-executive-filter-bar,
  .vti-executive-kpi-grid,
  .vti-executive-section-grid,
  .vti-executive-export-grid {
    grid-template-columns: 1fr;
  }

  .vti-executive-section__head {
    display: grid;
  }

  .vti-executive-kpi-card__value {
    font-size: 26px;
  }
}

@media print {
  .vti-student-portal {
    width: 100%;
    padding: 0;
    color: #000000;
  }

  .vti-student-portal__tabs,
  .vti-student-portal__header-actions,
  .vti-student-portal__preferences,
  .vti-student-portal__auth-tabs {
    display: none;
  }

  .vti-student-portal__header,
  .vti-student-portal__section,
  .vti-student-portal__summary-card,
  .vti-student-portal__card,
  .vti-student-portal__table-wrap {
    box-shadow: none;
    break-inside: avoid;
  }

  .vti-student-portal__table-wrap {
    overflow: visible;
  }

  .vti-student-portal__table {
    min-width: 0;
  }

  .vti-student-portal a {
    color: #000000;
    text-decoration: underline;
  }
}
