
.content-placeholder[data-v-0986ca11] {
  --bg-color: #f0f0f0;
  --shimmer-color: #e0e0e0;
  --border-radius: 4px;
  
  position: relative;
  overflow: hidden;
  background: transparent;
}

/* Animation keyframes */
@keyframes shimmer-0986ca11 {
0% { transform: translateX(-100%);
}
100% { transform: translateX(100%);
}
}
@keyframes pulse-0986ca11 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.6;
}
}
@keyframes fadeIn-0986ca11 {
0% { opacity: 0; transform: translateY(10px);
}
100% { opacity: 1; transform: translateY(0);
}
}

/* Variants */
.placeholder-default[data-v-0986ca11] {
  --bg-color: rgba(240, 240, 240, 0.171);
  --shimmer-color: #e0e0e0;
}
.placeholder-light[data-v-0986ca11] {
  --bg-color: rgba(248, 249, 250, 0.219);
  --shimmer-color: #e9ecef;
}
.placeholder-dark[data-v-0986ca11] {
  --bg-color: rgba(52, 58, 64, 0.315);
  --shimmer-color: #495057;
}
.placeholder-gradient[data-v-0986ca11] {
  --bg-color: linear-gradient(90deg, #f0f0f0 0%, #e0e0e0 50%, #f0f0f0 100%);
}

/* Base placeholder styling */
.content-placeholder > div[data-v-0986ca11] {
  background: var(--bg-color);
  border-radius: var(--border-radius);
  opacity: 0.7;
}

/* Shimmer effect */
.animate .content-placeholder > div[data-v-0986ca11]:not(.custom-shape)::before,
.animate .text-line[data-v-0986ca11]::before,
.animate .table-cell[data-v-0986ca11]::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--shimmer-color) 50%,
    transparent 100%
  );
  animation: shimmer-0986ca11 2s infinite;
  border-radius: inherit;
}

/* Text Lines */
.text-lines[data-v-0986ca11] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.text-line[data-v-0986ca11] {
  height: 16px;
  background: var(--bg-color);
  border-radius: var(--border-radius);
  position: relative;
  overflow: hidden;
  opacity: 0.7;
}
.animate .text-line[data-v-0986ca11] {
  animation: fadeIn-0986ca11 0.6s ease-out forwards;
  opacity: 0;
}

/* Card Layout */
.card-layout[data-v-0986ca11] {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px;
  background: transparent;
}
.avatar-placeholder[data-v-0986ca11] {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--shimmer-color);
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  opacity: 0.7;
}
.card-content[data-v-0986ca11] {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.card-title[data-v-0986ca11] {
  height: 20px;
  background: var(--shimmer-color);
  border-radius: var(--border-radius);
  position: relative;
  overflow: hidden;
  opacity: 0.7;
}
.card-subtitle[data-v-0986ca11] {
  height: 16px;
  background: var(--bg-color);
  border-radius: var(--border-radius);
  position: relative;
  overflow: hidden;
  opacity: 0.7;
}
.card-description[data-v-0986ca11] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
}
.description-line[data-v-0986ca11] {
  height: 14px;
  background: var(--bg-color);
  border-radius: var(--border-radius);
  position: relative;
  overflow: hidden;
  opacity: 0.7;
}

/* Image Placeholder */
.image-placeholder[data-v-0986ca11] {
  width: 100%;
  min-height: 200px;
  background: var(--bg-color);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.image-icon[data-v-0986ca11] {
  color: var(--shimmer-color);
  opacity: 0.5;
}
.animate .image-placeholder[data-v-0986ca11] {
  animation: pulse-0986ca11 2s infinite;
}

/* Custom Shape */
.custom-shape[data-v-0986ca11] {
  width: 100%;
  height: 100%;
}
.default-custom[data-v-0986ca11] {
  width: 100%;
  height: 120px;
  background: var(--bg-color);
  border-radius: var(--border-radius);
  position: relative;
  overflow: hidden;
}

/* Table Layout */
.table-layout[data-v-0986ca11] {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--shimmer-color);
  border-radius: var(--border-radius);
  overflow: hidden;
}
.table-header[data-v-0986ca11] {
  display: flex;
  gap: 1px;
}
.table-row[data-v-0986ca11] {
  display: flex;
  gap: 1px;
}
.table-cell[data-v-0986ca11] {
  flex: 1;
  height: 40px;
  background: var(--bg-color);
  position: relative;
  overflow: hidden;
  opacity: 0.7;
}
.header-cell[data-v-0986ca11] {
  height: 48px;
  background: var(--shimmer-color);
  opacity: 0.7;
}
.animate .table-cell[data-v-0986ca11] {
  animation: fadeIn-0986ca11 0.6s ease-out forwards;
  opacity: 0;
}

/* Responsive adjustments */
@media (max-width: 768px) {
.card-layout[data-v-0986ca11] {
    padding: 12px;
    gap: 12px;
}
.avatar-placeholder[data-v-0986ca11] {
    width: 40px;
    height: 40px;
}
.table-cell[data-v-0986ca11] {
    height: 35px;
}
.header-cell[data-v-0986ca11] {
    height: 40px;
}
}

:root {
    --shadow1: var(--gray-900);
    --shadow2: var(--gray-800);
    --shadow3: var(--gray-700);
    --highlight1: var(--gray-200);
    --highlight2: var(--gray-300);
    --highlight3: var(--gray-400);
    --color1: linear-gradient(180deg, var(--primary-800) 10%, var(--primary-500)  100%); /* lighter color from the theme */
    --color2: var(--primary); /* darker color from the theme */
    --yellow: #d1d126;
    --blue: #63b3e9;
    --green: #64bb64;
    --red: #db2a2a;
    --purple: #e547a1;
    --muted: #eaecf4;
    --color3: var(--primary-700);
    --shade1: var(--primary-900);
    --shade2: var(--primary-200);
    --shade3: var(--primary-100);
    --gradient-text: radial-gradient(ellipse farthest-corner at center center, var(--primary-600) 0%, #e547a1 100%);
}

/* @media (prefers-color-scheme: dark) {
    :root {
        --shadow1: #fff;
        --shadow2: #dbdbdb;
        --shadow3: #bdbdbd;
        --highlight1: #222020;
        --highlight2: #292525;
        --highlight3: #323133;
        --muted: #403f41;
        --color1: linear-gradient(180deg,#7822be 10%,#4b2e64 100%);
        --color2: #fce6fc;
        --color3: #f5c9f8;
        --shade1: #4b2e64;
        --shade2: #473355;
        --shade3: #34223d;
        --yellow: #d1d126;
        --blue: #63b3e9;
        --green: #64bb64;
        --red: #f77575;
        --gradient-text: radial-gradient(ellipse farthest-corner at center center, #b98b2e 0%, #d1d126 100%);
    }
} */
.limit[data-v-32325046]{background:rgba(0,0,0,0);border:1px solid #e1dede;border-radius:5px;padding:1px 10px}.tools[data-v-32325046]{display:flex;justify-content:space-between}.tools .controls div[data-v-32325046]{margin-bottom:5px}
.alert-container[data-v-41fcb61b]{position:fixed;z-index:1000;max-width:300px}.TopRight[data-v-41fcb61b]{right:8px;top:92px}.TopLeft[data-v-41fcb61b]{left:8px;top:92px}.TopCenter[data-v-41fcb61b]{left:50%;top:92px;transform:translateX(-50%)}.CenterRight[data-v-41fcb61b]{top:50%;right:8px;transform:translateY(-50%)}.CenterLeft[data-v-41fcb61b]{top:50%;left:8px;transform:translateY(-50%)}.CenterCenter[data-v-41fcb61b]{top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.BottomRight[data-v-41fcb61b]{right:8px;bottom:92px}.BottomLeft[data-v-41fcb61b]{left:8px;bottom:92px}.BottomCenter[data-v-41fcb61b]{left:50%;bottom:92px;transform:translateX(-50%)}.alert[data-v-41fcb61b]{display:block;width:100%;cursor:pointer}
/* Role dashboards. Colours come from the portal's theme tokens (BTSTheme portal.css), so light and dark both work;
   the fallbacks keep a dashboard readable if those tokens are missing. Calm by design: one accent, soft shadows,
   generous spacing, gentle motion (none for people who ask the system for reduced motion). */

.dash {
  --dash-pad: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: var(--dash-gap, 1.25rem);
  padding-bottom: 2rem;
  color: var(--app-text, #1d1b26);
}

/* ---- Header band: the home page's indigo over its mountain backdrop ---------------------------- */

.dash-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 22px;
  padding: 1.75rem 1.75rem 1.6rem;
  color: #fff;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(164, 91, 224, 0.45) 0%, rgba(164, 91, 224, 0) 55%),
    linear-gradient(135deg, rgba(24, 11, 66, 0.92) 0%, rgba(36, 17, 94, 0.88) 45%, rgba(93, 22, 152, 0.82) 100%),
    url(/Public/dist/images/d6d664229b947673e71b.jpg) center 60% / cover no-repeat;
  box-shadow: 0 24px 48px -28px rgba(24, 11, 66, 0.65);
}
/* The home page's soft curve, as a quiet light arc */
.dash-hero::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 520px;
  height: 520px;
  right: -180px;
  bottom: -380px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0) 70%);
}
.dash-hero__body { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem; }
.dash-hero__who { display: flex; align-items: center; gap: 1.1rem; min-width: 0; flex: 1 1 360px; }
.dash-hero__avatar {
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid rgba(255, 255, 255, 0.85);
  box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.12);
}
.dash-hero__date { margin: 0 0 0.15rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; color: rgba(255, 255, 255, 0.7); }
.dash-hero__greeting {
  margin: 0;
  font-family: var(--fraunces-font, 'Fraunces', serif) !important;
  font-weight: 600;
  font-size: clamp(1.45rem, 2.4vw, 2.05rem);
  line-height: 1.15;
  color: #fff;
  letter-spacing: -0.01em;
}
.dash-hero__name {
  background: linear-gradient(90deg, #f2eafe 0%, #d7b6f4 45%, #bc82ea 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.dash-hero__meta { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.7rem; }
.dash-hero__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* Chips: glass on the header band, tinted elsewhere */
.dash-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.74rem;
  font-weight: 600;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  white-space: nowrap;
  text-decoration: none !important;
  color: var(--app-accent-ink, #5d1698);
  background: var(--app-accent-soft, #f2eafe);
  border: 1px solid transparent;
}
.dash-hero .dash-chip {
  color: rgba(255, 255, 255, 0.92);
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.16);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.dash-hero .dash-chip i { opacity: 0.75; }
.dash-hero a.dash-chip:hover, .dash-chip--button:hover { background: rgba(255, 255, 255, 0.18); }
.dash-chip--warn, .dash-hero .dash-chip--warn { background: rgba(251, 191, 36, 0.18); border-color: rgba(251, 191, 36, 0.35); color: #fde68a; }
.dash-chip--off { opacity: 0.85; }
.dash-chip--button { cursor: pointer; font-family: inherit; }

/* Header buttons: one solid pill, the rest glass */
.dash-action {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  height: 2.6rem;
  padding: 0 1.05rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #fff !important;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  text-decoration: none !important;
  transition: background-color 0.2s var(--app-ease, ease), transform 0.2s var(--app-ease, ease), box-shadow 0.2s var(--app-ease, ease);
}
.dash-action i { font-size: 0.85rem; opacity: 0.85; }
.dash-action:hover { background: rgba(255, 255, 255, 0.2); transform: translateY(-1px); }
.dash-action--primary {
  color: #24115e !important;
  background: #fff;
  border-color: #fff;
  box-shadow: 0 10px 24px -12px rgba(0, 0, 0, 0.55);
}
.dash-action--primary i { color: #7822be; opacity: 1; }
.dash-action--primary:hover { background: #f6f0ff; }
.dash-action:focus-visible { outline: 3px solid rgba(255, 255, 255, 0.6); outline-offset: 2px; }

/* ---- Grid: rows line up, cards in a row share their height ------------------------------------ */

.dash-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--dash-gap, 1.25rem);
  align-items: stretch;
  grid-auto-flow: row dense;
}
.dash-grid > div { display: flex; flex-direction: column; min-width: 0; }
.dash-grid > div > .dash-card, .dash-grid > div > section { flex: 1 1 auto; }
.dash-grid > div:empty { display: none; }
.dash-span-sm { grid-column: span 4; }
.dash-span-md { grid-column: span 6; }
.dash-span-lg { grid-column: span 8; }
.dash-span-full { grid-column: 1 / -1; }
@media (max-width: 1199.98px) {
  .dash-span-sm { grid-column: span 6; }
  .dash-span-lg { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
  .dash-span-sm, .dash-span-md, .dash-span-lg { grid-column: 1 / -1; }
}

/* ---- Cards ----------------------------------------------------------------------------------- */

.dash-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--app-surface, #fff);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: var(--app-radius, 16px);
  padding: var(--dash-pad);
  box-shadow: var(--app-shadow, 0 8px 24px -16px rgba(36, 17, 94, 0.18));
  min-width: 0;
  transition: box-shadow 0.25s var(--app-ease, ease), transform 0.25s var(--app-ease, ease), border-color 0.25s var(--app-ease, ease);
}
.dash-card__head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1rem; }
.dash-card__title {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--sans-font, 'Quicksand', sans-serif) !important;
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--app-text, #1d1b26);
}
.dash-card__icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  font-size: 0.85rem;
  color: var(--app-accent, #7822be);
  background: var(--app-accent-soft, #f2eafe);
}
.dash-card__link {
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
  color: var(--app-accent, #7822be) !important;
  text-decoration: none !important;
  padding: 0.3rem 0.6rem;
  border-radius: 999px;
  transition: background-color 0.2s var(--app-ease, ease);
}
.dash-card__link i { transition: transform 0.2s var(--app-ease, ease); }
.dash-card__link:hover { background: var(--app-accent-soft, #f2eafe); }
.dash-card__link:hover i { transform: translateX(2px); }
.dash-muted { color: var(--app-muted, #6b6880); font-size: 0.85rem; }

/* Clickable cards and tiles lift a little */
a.dash-card:hover, a.dash-kpi:hover, .dash-shortcut:hover {
  transform: translateY(-2px);
  box-shadow: var(--app-shadow-hover, 0 16px 32px -18px rgba(36, 17, 94, 0.32));
  border-color: color-mix(in srgb, var(--app-accent, #7822be) 35%, var(--app-border, #e9e6f2));
}

/* Loading shimmer */
.dash-skeleton {
  background: linear-gradient(90deg, var(--app-surface-2, #faf9fd) 25%, var(--app-border, #e9e6f2) 50%, var(--app-surface-2, #faf9fd) 75%);
  background-size: 200% 100%;
  animation: dash-shimmer 1.6s ease-in-out infinite;
  border-radius: 8px;
  height: 0.85rem;
  margin-bottom: 0.6rem;
}
@keyframes dash-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* ---- Headline numbers ------------------------------------------------------------------------- */

.dash-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--dash-gap, 1.25rem); }
.dash-kpi { color: inherit; text-decoration: none !important; padding: 1.1rem 1.2rem; }
.dash-kpi__top { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.dash-kpi__label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--app-muted, #6b6880); }
.dash-kpi__icon {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  color: var(--dash-accent, var(--app-accent, #7822be));
  background: color-mix(in srgb, var(--dash-accent, var(--app-accent, #7822be)) 12%, transparent);
}
.dash-kpi__value {
  font-family: var(--sans-font, 'Quicksand', sans-serif) !important;
  font-size: 1.65rem;
  font-weight: 700;
  line-height: 1.15;
  margin-top: 0.55rem;
  color: var(--app-text, #1d1b26);
  word-break: break-word;
  font-variant-numeric: tabular-nums;
}
.dash-kpi__hint { font-size: 0.78rem; color: var(--app-muted, #6b6880); margin-top: 0.2rem; }

/* Progress bars fill smoothly */
.dash-bar { height: 6px; border-radius: 999px; background: var(--app-surface-2, #f1eef8); overflow: hidden; margin-top: 0.65rem; }
.dash-bar > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #a45be0 0%, var(--dash-accent, #7822be) 100%);
  transition: width 0.9s var(--app-ease, ease);
  animation: dash-fill 1s var(--app-ease, ease) both;
  transform-origin: left center;
}
@keyframes dash-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---- Needs your attention --------------------------------------------------------------------- */

.dash-attention { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.dash-attention li {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 0.8rem;
  border-radius: 12px;
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  transition: border-color 0.2s var(--app-ease, ease), background-color 0.2s var(--app-ease, ease);
}
.dash-attention li:hover { border-color: color-mix(in srgb, var(--app-accent, #7822be) 30%, var(--app-border, #e9e6f2)); }
.dash-attention__icon {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.9rem;
}
.dash-sev-danger { background: var(--dash-danger-bg, #fff1eb); color: var(--dash-danger, #c2410c); }
.dash-sev-warning { background: var(--dash-warning-bg, #fef6e4); color: var(--dash-warning, #a16207); }
.dash-sev-info { background: var(--dash-info-bg, #eef0ff); color: var(--dash-info, #4338ca); }
.dash-attention__text { flex: 1; min-width: 0; font-size: 0.88rem; line-height: 1.4; color: var(--app-text, #1d1b26); }
.dash-attention__cta { white-space: nowrap; }
.dash-allclear {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.9rem 1rem;
  border-radius: 12px;
  background: var(--dash-success-bg, #ecfaf1);
  color: var(--dash-success, #15803d);
  font-weight: 600;
}
.dash-allclear i { font-size: 1.2rem; }

/* ---- Shortcuts -------------------------------------------------------------------------------- */

.dash-shortcuts { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 0.75rem; }
.dash-shortcut {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 96px;
  padding: 0.85rem 0.5rem;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--app-text, #1d1b26) !important;
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 14px;
  background: var(--app-surface-2, #faf9fd);
  text-decoration: none !important;
  transition: transform 0.22s var(--app-ease, ease), box-shadow 0.22s var(--app-ease, ease), border-color 0.22s var(--app-ease, ease), background-color 0.22s var(--app-ease, ease);
}
.dash-shortcut i {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  color: var(--app-accent, #7822be);
  background: var(--app-accent-soft, #f2eafe);
  transition: transform 0.22s var(--app-ease, ease);
}
.dash-shortcut:hover { background: var(--app-surface, #fff); }
.dash-shortcut:hover i { transform: scale(1.06); }
.dash-shortcut--locked { opacity: 0.55; }
.dash-shortcut--locked i { color: var(--app-muted, #6b6880); background: var(--app-surface-2, #f1eef8); }
.dash-shortcut--locked:hover { transform: none; box-shadow: none; }

/* ---- Small stats inside cards ----------------------------------------------------------------- */

.dash-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 0.9rem; }
.dash-stat__value { font-size: 1.2rem; font-weight: 700; color: var(--app-text, #1d1b26); font-variant-numeric: tabular-nums; line-height: 1.2; }
.dash-stat__label { font-size: 0.74rem; color: var(--app-muted, #6b6880); margin-top: 0.1rem; }
.dash-stats a.text-reset { border-radius: 10px; padding: 0.25rem 0.35rem; margin: -0.25rem -0.35rem; transition: background-color 0.2s var(--app-ease, ease); }
.dash-stats a.text-reset:hover { background: var(--app-accent-soft, #f2eafe); text-decoration: none; }

/* ---- Buttons inside dashboards: pills, one accent, gentle hover ------------------------------- */

.dash .btn {
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.82rem;
  padding: 0.45rem 1rem;
  letter-spacing: 0.01em;
  transition: transform 0.2s var(--app-ease, ease), box-shadow 0.2s var(--app-ease, ease), background-color 0.2s var(--app-ease, ease), color 0.2s var(--app-ease, ease), border-color 0.2s var(--app-ease, ease);
}
.dash .btn-sm { padding: 0.35rem 0.85rem; font-size: 0.78rem; }
.dash .btn-lg { border-radius: 18px; }
.dash .btn-primary {
  border: 0;
  color: #fff;
  background: linear-gradient(135deg, #8e3dd3 0%, #5c36c2 100%);
  box-shadow: 0 8px 18px -10px rgba(120, 34, 190, 0.75);
}
.dash .btn-primary:hover, .dash .btn-primary:focus { color: #fff; transform: translateY(-1px); box-shadow: 0 12px 24px -12px rgba(120, 34, 190, 0.85); }
.dash .btn-outline-primary {
  color: var(--app-accent-ink, #5d1698);
  background: var(--app-accent-soft, #f2eafe);
  border: 1px solid transparent;
}
.dash .btn-outline-primary:hover, .dash .btn-outline-primary:focus {
  color: #fff;
  background: var(--app-accent, #7822be);
  border-color: var(--app-accent, #7822be);
  transform: translateY(-1px);
}
.dash .btn-link { color: var(--app-accent, #7822be); font-weight: 700; border-radius: 8px; }
.dash .btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--app-accent, #7822be) 40%, transparent); outline-offset: 2px; box-shadow: none; }
.dash .badge { border-radius: 999px; font-weight: 700; padding: 0.3em 0.65em; }
.dash .badge-light { background: var(--app-surface-2, #f1eef8); color: var(--app-muted, #6b6880); }
.dash .form-control { border-radius: 12px; border-color: var(--app-border, #e9e6f2); background: var(--app-surface-2, #faf9fd); color: var(--app-text, #1d1b26); }
.dash .form-control:focus { border-color: var(--app-accent, #7822be); box-shadow: 0 0 0 4px var(--app-accent-soft, #f2eafe); }
.dash .table { color: var(--app-text, #1d1b26); }
.dash .table th, .dash .table td { border-color: var(--app-border, #e9e6f2); }
.dash .alert { border-radius: 14px; border: 0; }
.dash a:not(.btn):not(.dash-action):not(.dash-chip):not(.dash-shortcut):not(.dash-card__link):not(.dash-kpi):not(.text-reset) { color: var(--app-accent, #7822be); font-weight: 600; }

/* Older Bootstrap cards placed in the grid */
.dash-grid > div > .card {
  margin-bottom: 0 !important;
  flex: 1 1 auto;
  border-radius: var(--app-radius, 16px);
  border: 1px solid var(--app-border, #e9e6f2);
  background: var(--app-surface, #fff);
  box-shadow: var(--app-shadow, none);
}
.min-w-0 { min-width: 0; }

/* ---- Gentle entrance: sections rise in turn ---------------------------------------------------- */

.dash > *, .dash-grid > div, .dash-kpis > * { animation: dash-rise 0.55s var(--app-ease, ease) both; }
.dash > :nth-child(2) { animation-delay: 0.05s; }
.dash > :nth-child(3) { animation-delay: 0.1s; }
.dash > :nth-child(4) { animation-delay: 0.15s; }
.dash > :nth-child(5) { animation-delay: 0.2s; }
.dash-kpis > :nth-child(2) { animation-delay: 0.08s; }
.dash-kpis > :nth-child(3) { animation-delay: 0.12s; }
.dash-kpis > :nth-child(4) { animation-delay: 0.16s; }
.dash-kpis > :nth-child(5) { animation-delay: 0.2s; }
.dash-kpis > :nth-child(6) { animation-delay: 0.24s; }
.dash-grid > div:nth-child(2) { animation-delay: 0.08s; }
.dash-grid > div:nth-child(3) { animation-delay: 0.12s; }
.dash-grid > div:nth-child(4) { animation-delay: 0.16s; }
.dash-grid > div:nth-child(5) { animation-delay: 0.2s; }
.dash-grid > div:nth-child(6) { animation-delay: 0.24s; }
.dash-grid > div:nth-child(n+7) { animation-delay: 0.28s; }
@keyframes dash-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .dash *, .dash { animation: none !important; transition: none !important; }
}

/* ---- Phones ----------------------------------------------------------------------------------- */

@media (max-width: 575.98px) {
  .dash { --dash-pad: 1rem; gap: 1rem; }
  .dash-hero { padding: 1.25rem; border-radius: 18px; }
  .dash-hero__avatar { width: 52px; height: 52px; flex-basis: 52px; }
  .dash-hero__actions { width: 100%; }
  .dash-action { height: 2.4rem; padding: 0 0.9rem; font-size: 0.8rem; }
  .dash-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
  .dash-kpi { padding: 0.9rem; }
  .dash-kpi__value { font-size: 1.25rem; }
  .dash-kpi__icon { width: 30px; height: 30px; font-size: 0.8rem; }
  .dash-shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
  .dash-shortcut { min-height: 86px; font-size: 0.72rem; }
}

/* Notices shown above a dashboard (plan banner, promotion progress): calm cards, not grey boxes */
.dash .plan-note, .dash .alert {
  background: var(--app-surface, #fff);
  color: var(--app-text, #1d1b26);
  border: 1px solid var(--app-border, #e9e6f2);
  border-left: 4px solid var(--app-accent, #7822be);
  border-radius: 14px;
  padding: 0.9rem 1.1rem;
  box-shadow: var(--app-shadow, none);
  margin-bottom: 0;
}
.dash .plan-note--warn, .dash .alert-warning { border-left-color: var(--dash-warning, #a16207); }
.dash .alert-info { border-left-color: var(--dash-info, #4338ca); }
.dash .alert-success { border-left-color: var(--dash-success, #15803d); }
.dash .alert-danger { border-left-color: var(--dash-danger, #c2410c); }
.dash .plan-note strong, .dash .alert strong { color: var(--app-text, #1d1b26); }

/*
 * Plan & billing styles. Built only from the theme's colour variables (colors-size.css), which flip in dark mode.
 * Bootstrap's alert-*, bg-light, btn-light, badge-light and badge-warning are hard-coded light colours in
 * sb-admin-2, so these screens avoid them.
 */

.plan-note {
    background: var(--gray-200);
    color: var(--text);
    border: 1px solid var(--border-dark);
    border-left: 4px solid var(--primary);
    border-radius: .35rem;
    padding: .75rem 1rem;
}
.plan-note--warn { border-left-color: var(--orange-500); }
.plan-note--off { border-left-color: var(--gray-500); }
.plan-note strong { color: var(--text); }

.plan-muted { color: var(--text-muted); }
.plan-star { color: var(--orange-500); }

/* Expanded payments row under an invoice */
.plan-subrow > td {
    background: var(--gray-100) !important;
    color: var(--text);
}
.plan-payment {
    border-bottom: 1px solid var(--border-dark);
}

/* Status badges: fixed pairs with enough contrast in both themes, or theme variables that flip together */
.plan-badge {
    display: inline-block;
    padding: .3em .55em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    border-radius: .35rem;
    white-space: nowrap;
}
.plan-badge--draft { background: var(--gray-300); color: var(--gray-900); }
.plan-badge--issued { background: #2559A8; color: #fff; }
.plan-badge--part_paid { background: #F59E0B; color: #1a1a1a; }
.plan-badge--paid { background: #0F8B5F; color: #fff; }
.plan-badge--void { background: transparent; color: var(--text-muted); border: 1px solid var(--gray-500); }


.dash-exam-select[data-v-5a7f091f] { max-width: 100%; width: auto; min-width: 0; flex: 1 1 220px;
}
.dash-results[data-v-5a7f091f] { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.25rem;
}
@media (max-width: 991.98px) {
.dash-results[data-v-5a7f091f] { grid-template-columns: minmax(0, 1fr);
}
}
.dash-results__row[data-v-5a7f091f] { border-top: 1px solid var(--dash-border, #e3e6f0);
}
.dash-results__row[data-v-5a7f091f]:first-child { border-top: 0;
}
.dash-results__head[data-v-5a7f091f] {
  display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 0.55rem 0;
  background: none; border: 0; color: inherit; text-align: left;
}
.dash-results__name[data-v-5a7f091f] { flex: 0 0 9rem; font-weight: 600; font-size: 0.875rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dash-results__pct[data-v-5a7f091f] { flex: 0 0 2.75rem; text-align: right; font-size: 0.8rem; font-weight: 600;
}
.dash-results__cells[data-v-5a7f091f] { padding: 0 0 0.75rem;
}
.dash-cell[data-v-5a7f091f] { font-size: 0.75rem; padding: 0.2rem 0.5rem; border: 1px solid; border-left-width: 4px; border-radius: 0.375rem;
}
@media (max-width: 575.98px) {
.dash-results__name[data-v-5a7f091f] { flex-basis: 6.5rem;
}
}


.dash-steps[data-v-de3e9944] { list-style: none; padding: 0; margin: 0;
}
.dash-steps li[data-v-de3e9944] { display: flex; gap: 0.65rem; align-items: flex-start; padding: 0.45rem 0; border-top: 1px solid var(--dash-border, #e3e6f0); font-size: 0.875rem;
}
.dash-steps li[data-v-de3e9944]:first-child { border-top: 0;
}
.dash-steps i[data-v-de3e9944] { margin-top: 0.2rem;
}
.dash-step--done i[data-v-de3e9944] { color: var(--dash-success, #1a7f4b);
}
.dash-step--default i[data-v-de3e9944] { color: var(--dash-warning, #9a5b00);
}
.dash-step--todo i[data-v-de3e9944], .dash-step--optional i[data-v-de3e9944] { color: var(--gray-500, #b7b9cc);
}
.dash-step__label[data-v-de3e9944] { font-weight: 600;
}
.dash-step--done .dash-step__label[data-v-de3e9944] { color: var(--gray-700, #505363);
}


.dash-tasks[data-v-46ac5ee2] { list-style: none; padding: 0; margin: 0;
}
.dash-tasks li[data-v-46ac5ee2] { display: flex; gap: 0.65rem; align-items: flex-start; padding: 0.45rem 0; border-top: 1px solid var(--dash-border, #e3e6f0); font-size: 0.875rem;
}
.dash-tasks li[data-v-46ac5ee2]:first-child { border-top: 0;
}
.dash-tasks i[data-v-46ac5ee2] { margin-top: 0.2rem; color: var(--gray-500, #b7b9cc);
}
.dash-tasks .is-done i[data-v-46ac5ee2] { color: var(--dash-success, #1a7f4b);
}
.dash-tasks .is-done a[data-v-46ac5ee2] { color: var(--gray-700, #505363); text-decoration: line-through;
}


.dash-annual[data-v-6b9c6224] { color: inherit; font-size: 0.85rem;
}
.dash-annual th[data-v-6b9c6224], .dash-annual td[data-v-6b9c6224] { border-color: var(--dash-border, #e3e6f0);
}


.dash-features[data-v-1d09341f] { list-style: none; padding: 0; margin: 0; columns: 2 16rem; column-gap: 1.5rem;
}
.dash-features li[data-v-1d09341f] { display: flex; align-items: center; gap: 0.75rem; padding: 0.45rem 0; border-bottom: 1px solid var(--dash-border, #e3e6f0); break-inside: avoid; font-size: 0.875rem;
}


.dash-myscores[data-v-7e6d99f9] { list-style: none; margin: 0; padding: 0;
}
.dash-myscores li[data-v-7e6d99f9] { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0; border-top: 1px solid var(--dash-border, #e3e6f0); font-size: 0.875rem;
}
.dash-myscores li[data-v-7e6d99f9]:first-child { border-top: 0;
}


.dash-myclass[data-v-1b296ec4] { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.5rem;
}
@media (max-width: 991.98px) {
.dash-myclass[data-v-1b296ec4] { grid-template-columns: minmax(0, 1fr);
}
}


.dash-duty + .dash-duty[data-v-cc60d538] { border-top: 1px solid var(--dash-border, #e3e6f0); padding-top: 0.75rem; margin-top: 0.75rem;
}
.dash-duty__title[data-v-cc60d538] { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--gray-600, #6e707e); margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.4rem;
}
.dash-swatch[data-v-cc60d538] { width: 0.75rem; height: 0.75rem; border-radius: 50%; display: inline-block;
}


.dash-cols[data-v-701c98d8] { display: flex; align-items: flex-end; gap: 4px; height: 110px; border-bottom: 1px solid var(--dash-border, #e3e6f0);
}
.dash-cols__col[data-v-701c98d8] { flex: 1; height: 100%; display: flex; align-items: flex-end;
}
.dash-cols__bar[data-v-701c98d8] { display: block; width: 100%; border-radius: 3px 3px 0 0; background: var(--dash-accent, var(--primary, #4e73df)); opacity: 0.55;
}
.dash-cols__bar.is-today[data-v-701c98d8] { opacity: 1;
}


.dash-feetable[data-v-602eb021] { color: inherit; font-size: 0.85rem;
}
.dash-feetable th[data-v-602eb021], .dash-feetable td[data-v-602eb021] { border-color: var(--dash-border, #e3e6f0); vertical-align: middle;
}
.dash-feetable__bar[data-v-602eb021] { min-width: 8rem;
}


.dash-canteen[data-v-8f66dd1e] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem;
}
@media (max-width: 575.98px) {
.dash-canteen[data-v-8f66dd1e] { grid-template-columns: minmax(0, 1fr);
}
}


.dash-day[data-v-3f38d60e] { list-style: none; margin: 0; padding: 0;
}
.dash-day li[data-v-3f38d60e] { display: flex; align-items: center; gap: 0.75rem; padding: 0.4rem 0.5rem; border-radius: 0.5rem; font-size: 0.875rem;
}
.dash-day__time[data-v-3f38d60e] { flex: 0 0 6.5rem; font-variant-numeric: tabular-nums; color: var(--gray-600, #6e707e); font-size: 0.8rem;
}
.dash-day__what[data-v-3f38d60e] { flex: 1; min-width: 0;
}
.dash-day .is-lesson .dash-day__what[data-v-3f38d60e] { font-weight: 600;
}
.dash-day .is-break[data-v-3f38d60e] { opacity: 0.7;
}
.dash-day .is-now[data-v-3f38d60e] { background: var(--dash-info-bg, #e8f1fd);
}

/* Section pages (Students, Examinations, Attendance, Fees): a compact version of the dashboard banner, then the
   dashboard grid and cards (dashboard.css). Colours from the portal tokens, so light and dark both work. */

.section-hero {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    padding: 1.4rem 1.5rem;
    margin-bottom: var(--dash-gap, 1.25rem);
    color: #fff;
    border-radius: 20px;
    overflow: hidden;
    background:
        radial-gradient(110% 160% at 100% 0%, rgba(164, 91, 224, 0.42) 0%, rgba(164, 91, 224, 0) 55%),
        linear-gradient(135deg, var(--brand-deep, #180b42) 0%, var(--brand-ink, #24115e) 45%, var(--brand-violet, #5d1698) 100%);
    box-shadow: 0 22px 46px -30px rgba(24, 11, 66, 0.8);
    animation: dash-rise 0.4s var(--app-ease, ease) both;
}
.section-hero::after {
    content: '';
    position: absolute;
    right: -70px;
    bottom: -110px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    border: 34px solid rgba(255, 255, 255, 0.05);
    pointer-events: none;
}
.section-hero__icon {
    position: relative;
    z-index: 1;
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    font-size: 1.25rem;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 16px;
}
.section-hero__text { position: relative; z-index: 1; flex: 1 1 260px; min-width: 0; }
.section-hero__eyebrow { margin: 0 0 0.15rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); }
.section-hero__title { margin: 0; font-family: 'Fraunces', serif; font-size: clamp(1.4rem, 2.6vw, 1.85rem); font-weight: 600; line-height: 1.15; color: #fff !important; }
.section-hero__lead { margin: 0.35rem 0 0; max-width: 46rem; font-size: 0.9rem; line-height: 1.5; color: rgba(255, 255, 255, 0.78); }
.section-hero__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.65rem; }
.section-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
}
.section-chip i { font-size: 0.72rem; opacity: 0.8; }
/* Links in the banner stay white (dashboard.css colours links in the accent) */
.section-hero a.section-chip { color: rgba(255, 255, 255, 0.92) !important; font-weight: 600; }
a.section-chip:hover, button.section-chip:hover { color: #fff !important; text-decoration: none; background: rgba(255, 255, 255, 0.2); }
button.section-chip { cursor: pointer; font: inherit; font-size: 0.78rem; font-weight: 600; }
.section-chip.is-on { color: var(--brand-ink, #24115e); background: #fff; border-color: transparent; }
.section-hero__actions { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 0.5rem; }
@media (max-width: 575.98px) {
    .section-hero { padding: 1.15rem; }
    .section-hero__icon { flex-basis: 44px; width: 44px; height: 44px; font-size: 1.05rem; }
    .section-hero__actions { width: 100%; }
}

/* ---- Pieces used inside the cards ------------------------------------------------------------- */

/* Horizontal bars with a label and a count (students by class, attendance) */
.section-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.section-bars li { display: grid; grid-template-columns: minmax(5rem, 9rem) minmax(0, 1fr) auto; align-items: center; gap: 0.75rem; font-size: 0.86rem; }
.section-bars__label { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.section-bars__track { height: 8px; border-radius: 99px; background: var(--app-surface-2, #f1eef8); overflow: hidden; }
.section-bars__track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #8e3dd3, #5c36c2); animation: section-fill 0.8s var(--app-ease, ease) both; transform-origin: left; }
.section-bars__track span.is-good { background: linear-gradient(90deg, #22a35a, #15803d); }
.section-bars__track span.is-warn { background: linear-gradient(90deg, #fbbf24, #d97706); }
.section-bars__track span.is-bad { background: linear-gradient(90deg, #f87171, #c2410c); }
.section-bars__value { font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; min-width: 3rem; }

/* A list of people or records inside a card */
.section-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.section-list li { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.5rem 0.4rem; border-radius: 10px; }
.section-list li + li { border-top: 1px solid var(--app-border, #e9e6f2); }
.section-list__meta { flex: 0 0 auto; font-size: 0.78rem; color: var(--app-muted, #6b6880); text-align: right; white-space: nowrap; }

/* Status pills */
.section-pill { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.18rem 0.6rem; font-size: 0.74rem; font-weight: 700; border-radius: 999px; white-space: nowrap;
    color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe); }
.section-pill--good { color: var(--dash-success, #15803d); background: var(--dash-success-bg, #ecfaf1); }
.section-pill--warn { color: var(--dash-warning, #a16207); background: var(--dash-warning-bg, #fef6e4); }
.section-pill--bad { color: var(--dash-danger, #c2410c); background: var(--dash-danger-bg, #fff1eb); }
.section-pill--muted { color: var(--app-muted, #6b6880); background: var(--app-surface-2, #faf9fd); }

@keyframes section-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .section-hero, .section-bars__track span { animation: none; } }


.dash a.exam-link[data-v-75bae2cf], .dash a.exam-chip[data-v-75bae2cf] { color: var(--app-text, #1d1b26) !important; font-weight: 400;
}
.exam-link[data-v-75bae2cf] { display: flex; align-items: center; gap: 0.7rem; min-width: 0;
}
.dash a.exam-link[data-v-75bae2cf]:hover, .dash a.exam-link[data-v-75bae2cf]:focus { color: var(--app-accent, #7822be) !important; text-decoration: none;
}
.exam-link__icon[data-v-75bae2cf] { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; color: var(--app-accent, #7822be); background: var(--app-accent-soft, #f2eafe); border-radius: 10px;
}
.exam-link__text[data-v-75bae2cf] { display: flex; flex-direction: column; min-width: 0;
}
.exam-link__text strong[data-v-75bae2cf] { font-size: 0.9rem;
}
.exam-link__text small[data-v-75bae2cf] { font-size: 0.76rem; color: var(--app-muted, #6b6880);
}
.exam-session[data-v-75bae2cf] { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.75rem; align-items: start; padding: 0.6rem 0;
}
.exam-session + .exam-session[data-v-75bae2cf] { border-top: 1px solid var(--app-border, #e9e6f2);
}
.exam-session__year[data-v-75bae2cf] { padding-top: 0.45rem; font-weight: 800; font-size: 0.86rem; font-variant-numeric: tabular-nums;
}
.exam-session__list[data-v-75bae2cf] { display: flex; flex-wrap: wrap; gap: 0.45rem;
}
.exam-chip[data-v-75bae2cf] {
  display: inline-flex;
  flex-direction: column;
  padding: 0.4rem 0.8rem;
  line-height: 1.25;
  color: var(--app-text, #1d1b26);
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 12px;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.exam-chip span[data-v-75bae2cf] { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--app-muted, #6b6880);
}
.exam-chip strong[data-v-75bae2cf] { font-size: 0.84rem;
}
.dash a.exam-chip[data-v-75bae2cf]:hover, .dash a.exam-chip[data-v-75bae2cf]:focus { color: var(--app-accent-ink, #5d1698) !important; text-decoration: none; background: var(--app-accent-soft, #f2eafe); border-color: color-mix(in srgb, var(--app-accent, #7822be) 30%, transparent);
}
.exam-chip.is-active[data-v-75bae2cf] { border-color: color-mix(in srgb, var(--app-accent, #7822be) 55%, transparent); box-shadow: inset 3px 0 0 var(--app-accent, #7822be);
}
@media (max-width: 575.98px) {
.exam-session[data-v-75bae2cf] { grid-template-columns: 1fr; gap: 0.35rem;
}
.exam-session__year[data-v-75bae2cf] { padding-top: 0;
}
}

input[type=color][data-v-63c286c2]{padding:.15rem;border-radius:0}
.k-input-group[data-v-54fa65ea]{display:flex;flex-direction:column}.button-group[data-v-54fa65ea]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.button-option[data-v-54fa65ea]{display:inline-flex}.hidden-input[data-v-54fa65ea]{display:none}
input[type=color][data-v-3cef0a93]{padding:.15rem;border-radius:0}
[data-v-4247b12c]{padding:0;margin:0}@keyframes swing-4247b12c{0%{left:50%}30%{left:52%}50%{left:50%}75%{left:48%}}.main-report-header[data-v-4247b12c]{display:flex}.main-report-header .header-img[data-v-4247b12c]{width:83px;z-index:1;height:83px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;border:10px solid var(--shade2);position:relative;left:10px}.header-img img[data-v-4247b12c]{width:100%;transform:scale(1.05)}.header-title[data-v-4247b12c]{display:flex;align-items:center;width:calc(100% - 83px);text-overflow:ellipsis;position:relative}.header-title h3[data-v-4247b12c]{width:calc(100% + 10px);background:var(--highlight1);padding:10px 30px 8.5px;position:relative;left:-10px;border-radius:0 50px 50px 0;color:var(--shadow3);text-wrap:nowrap;font-size:1.2rem;text-transform:uppercase;box-shadow:0px 3px 10px -10px var(--shadow2);font-weight:700}.report-title[data-v-4247b12c]{position:relative}.report-title h3[data-v-4247b12c]{text-align:center;margin:12px 0;font-size:1.4rem}.report-title[data-v-4247b12c]::before{content:"";width:130px;height:1px;background:var(--color1);display:block;position:absolute;bottom:0px;left:50%;transform:translate(-50%)}.report-title[data-v-4247b12c]::after{content:"";width:23px;height:6px;background:var(--color1);display:block;position:absolute;bottom:-2px;left:50%;transform:translate(-50%);border-radius:17px;animation:infinite 10s swing-4247b12c}.header-title[data-v-4247b12c]::before{content:"";display:block;width:80px;position:absolute;height:20px;background:var(--color1);top:17px;right:57px;border-radius:7px}@media only screen and (min-width: 768px){.main-report-header .header-img[data-v-4247b12c]{width:134px;height:134px}.header-title[data-v-0e379932][data-v-4247b12c]{width:calc(100% - 134px)}.header-title h3[data-v-4247b12c]{width:calc(100% + 10px);padding:14px 30px 11.5px;border-radius:0 50px 50px 0;font-size:1.9rem;box-shadow:0px 5px 10px -10px var(--shadow2)}.header-title[data-v-4247b12c]::before{width:117px;height:20px;top:31px;border-radius:8px}.report-title h3[data-v-4247b12c]{font-size:1.6rem}}@media only screen and (min-width: 992px){.report-title h3[data-v-4247b12c]{font-size:1.8rem}}
@supports(-webkit-appearance: none) or (-moz-appearance: none){input[type=checkbox][data-v-615af99e],input[type=radio][data-v-615af99e]{--active: var(--32b2088a);--active-inner: var(--659b714e);--focus: 2px var(--32b2088b);--border: var(--659b714a);--border-hover: var(--32b2088a);--background: var(--659b714e);--disabled: var(--659b714c);--disabled-inner: var(--659b714a);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:21px;outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;cursor:pointer;border:1px solid var(--bc, var(--border));background:var(--b, var(--background));transition:background .3s,border-color .3s,box-shadow .2s;justify-content:center;align-items:center}input[type=checkbox][data-v-615af99e]:after,input[type=radio][data-v-615af99e]:after{content:"";display:block;left:0;top:0;position:absolute;transition:transform var(--d-t, 0.3s) var(--d-t-e, ease),opacity var(--d-o, 0.2s)}input[type=checkbox][data-v-615af99e]:checked,input[type=radio][data-v-615af99e]:checked{--b: var(--active);--bc: var(--active);--d-o: .3s;--d-t: .6s;--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}input[type=checkbox][data-v-615af99e]:disabled,input[type=radio][data-v-615af99e]:disabled{--b: var(--disabled);cursor:not-allowed;opacity:.9}input[type=checkbox][data-v-615af99e]:disabled:checked,input[type=radio][data-v-615af99e]:disabled:checked{--b: var(--disabled-inner);--bc: var(--border)}input[type=checkbox]:disabled+label[data-v-615af99e],input[type=radio]:disabled+label[data-v-615af99e]{cursor:not-allowed}input[type=checkbox][data-v-615af99e]:hover:not(:checked):not(:disabled),input[type=radio][data-v-615af99e]:hover:not(:checked):not(:disabled){--bc: var(--border-hover)}input[type=checkbox][data-v-615af99e]:focus,input[type=radio][data-v-615af99e]:focus{box-shadow:0 0 0 var(--focus)}input[type=checkbox][data-v-615af99e]:not(.switch),input[type=radio][data-v-615af99e]:not(.switch){width:21px}input[type=checkbox][data-v-615af99e]:not(.switch):after,input[type=radio][data-v-615af99e]:not(.switch):after{opacity:var(--o, 0)}input[type=checkbox][data-v-615af99e]:not(.switch):checked,input[type=radio][data-v-615af99e]:not(.switch):checked{--o: 1}input[type=checkbox]+label[data-v-615af99e],input[type=radio]+label[data-v-615af99e]{font-size:14px;line-height:21px;display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}input[type=checkbox][data-v-615af99e]:not(.switch){border-radius:7px}input[type=checkbox][data-v-615af99e]:not(.switch):after{width:5px;height:9px;border:2px solid var(--active-inner);border-top:0;border-left:0;left:7px;top:4px;transform:rotate(var(--r, 20deg))}input[type=checkbox][data-v-615af99e]:not(.switch):checked{--r: 43deg}input[type=checkbox].switch[data-v-615af99e]{width:38px;border-radius:11px}input[type=checkbox].switch[data-v-615af99e]:after{left:2px;top:2px;border-radius:50%;width:15px;height:15px;background:var(--ab, var(--border));transform:translateX(var(--x, 0))}input[type=checkbox].switch[data-v-615af99e]:checked{--ab: var(--active-inner);--x: 17px}input[type=checkbox].switch[data-v-615af99e]:disabled:not(:checked):after{opacity:.6}input[type=radio][data-v-615af99e]{border-radius:50%}input[type=radio][data-v-615af99e]:after{width:19px;height:19px;border-radius:50%;background:var(--active-inner);opacity:0;transform:scale(var(--s, 0.7))}input[type=radio][data-v-615af99e]:checked{--s: .5}}
@supports(-webkit-appearance: none) or (-moz-appearance: none){input[type=checkbox][data-v-0820d5b1],input[type=radio][data-v-0820d5b1]{--active: var(--fe3e44ec);--active-inner: var(--0dee9c59);--focus: 2px var(--fe3e44ea);--border: var(--0dee9c5b);--border-hover: var(--fe3e44ec);--background: var(--0dee9c59);--disabled: var(--0dee9c5a);--disabled-inner: var(--0dee9c5b);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:21px;outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;cursor:pointer;border:1px solid var(--bc, var(--border));background:var(--b, var(--background));transition:background .3s,border-color .3s,box-shadow .2s;justify-content:center;align-items:center}input[type=checkbox][data-v-0820d5b1]:after,input[type=radio][data-v-0820d5b1]:after{content:"";display:block;left:0;top:0;position:absolute;transition:transform var(--d-t, 0.3s) var(--d-t-e, ease),opacity var(--d-o, 0.2s)}input[type=checkbox][data-v-0820d5b1]:checked,input[type=radio][data-v-0820d5b1]:checked{--b: var(--active);--bc: var(--active);--d-o: .3s;--d-t: .6s;--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}input[type=checkbox][data-v-0820d5b1]:disabled,input[type=radio][data-v-0820d5b1]:disabled{--b: var(--disabled);cursor:not-allowed;opacity:.9}input[type=checkbox][data-v-0820d5b1]:disabled:checked,input[type=radio][data-v-0820d5b1]:disabled:checked{--b: var(--disabled-inner);--bc: var(--border)}input[type=checkbox]:disabled+label[data-v-0820d5b1],input[type=radio]:disabled+label[data-v-0820d5b1]{cursor:not-allowed}input[type=checkbox][data-v-0820d5b1]:hover:not(:checked):not(:disabled),input[type=radio][data-v-0820d5b1]:hover:not(:checked):not(:disabled){--bc: var(--border-hover)}input[type=checkbox][data-v-0820d5b1]:focus,input[type=radio][data-v-0820d5b1]:focus{box-shadow:0 0 0 var(--focus)}input[type=checkbox][data-v-0820d5b1]:not(.switch),input[type=radio][data-v-0820d5b1]:not(.switch){width:21px}input[type=checkbox][data-v-0820d5b1]:not(.switch):after,input[type=radio][data-v-0820d5b1]:not(.switch):after{opacity:var(--o, 0)}input[type=checkbox][data-v-0820d5b1]:not(.switch):checked,input[type=radio][data-v-0820d5b1]:not(.switch):checked{--o: 1}input[type=checkbox]+label[data-v-0820d5b1],input[type=radio]+label[data-v-0820d5b1]{font-size:14px;line-height:21px;display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}input[type=checkbox][data-v-0820d5b1]:not(.switch){border-radius:7px}input[type=checkbox][data-v-0820d5b1]:not(.switch):after{width:5px;height:9px;border:2px solid var(--active-inner);border-top:0;border-left:0;left:7px;top:4px;transform:rotate(var(--r, 20deg))}input[type=checkbox][data-v-0820d5b1]:not(.switch):checked{--r: 43deg}input[type=checkbox].switch[data-v-0820d5b1]{width:38px;border-radius:11px}input[type=checkbox].switch[data-v-0820d5b1]:after{left:2px;top:2px;border-radius:50%;width:15px;height:15px;background:var(--ab, var(--border));transform:translateX(var(--x, 0))}input[type=checkbox].switch[data-v-0820d5b1]:checked{--ab: var(--active-inner);--x: 17px}input[type=checkbox].switch[data-v-0820d5b1]:disabled:not(:checked):after{opacity:.6}input[type=radio][data-v-0820d5b1]{border-radius:50%}input[type=radio][data-v-0820d5b1]:after{width:19px;height:19px;border-radius:50%;background:var(--active-inner);opacity:0;transform:scale(var(--s, 0.7))}input[type=radio][data-v-0820d5b1]:checked{--s: .5}}
.croppie-container label.cabinet {
    /*display: block;*/
    cursor: pointer;
    padding: 0;
    margin: auto;
    /*width: 200px;*/
    position: relative;
}

.croppie-container label.cabinet input.file {
    position: relative;
    height: 100%;
    width: auto;
    opacity: 0;
    -moz-opacity: 0;
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
    margin-top: -30px;
}

.croppie-container .croppie-preview {
    width: unset;
    height: unset;
    padding-bottom: 0;
    display: block;
    margin: auto;
}

.croppie-container figure figcaption {
	position: absolute;
	right: 10px;
	color: #fff;
	bottom: 16px;
	padding-left: 9px;
	padding-bottom: 5px;
	text-shadow: 0 0 10px #00000061;
	display: inline-block;
	opacity: 0.5;
}

.croppie-container .cabinet figure img {
    display: block;
    margin: auto;
}

.croppie-container .croppie-file {
    display: none;
}

.croppie-container .croppie-panel-footer label {
    font-weight: normal;
}

.croppie-controls .btn-group {
    margin: auto;
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.croppie-container .croppie-panel-content {
    position: relative;
    background-color: var(--secondaryColor);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
    border: 1px solid #999;
    border: 1px solid rgba(0, 0, 0, .2);
    border-radius: 6px;
    outline: 0;
    -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
    box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}

.croppie-controls .btn-group .btn-sm,
.croppie-controls .btn-group-sm>.btn {
    padding: 1px 9px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px;
}
img[data-v-01502504]{margin:0 !important}
.k-input-group[data-v-0a3c24f4]{position:relative}.k-input-group .password-btn[data-v-0a3c24f4]{position:absolute;right:13px;bottom:10px;opacity:.2;cursor:pointer}.k-input-group .password-btn[data-v-0a3c24f4]:hover{opacity:1}

.k-range[data-v-33b2eefc]{-webkit-appearance:none;appearance:none;width:100%;height:3px;background:var(--d57847fe);outline:none;opacity:.7;-webkit-transition:.2s;transition:opacity .2s}.k-range[data-v-33b2eefc]:hover{opacity:1}.k-range[data-v-33b2eefc]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:5px;height:25px;background:var(--62c3ee9c);cursor:pointer;border:none;border-radius:0}.k-range[data-v-33b2eefc]::-moz-range-thumb{width:5px;height:25px;background:var(--62c3ee9c);cursor:pointer;border:none;border-radius:0}
.currency-switch-buttons[data-v-5d0822d8]{border:none;border-radius:3px;background:var(--blue);color:var(--highlight1);display:inline-block;margin-right:5px;font-size:smaller}.note[data-v-5d0822d8]{color:var(--highlight3)}
.filters{padding:10px 10px 5px 10px;margin-top:15px;margin-bottom:20px;position:relative}.filters .filter-container{margin-bottom:5px}.filters .controls{position:absolute;right:22px;bottom:-11px;width:fit-content}.filters .controls a{font-size:.8em;color:var(--700cba2f);text-decoration:none;padding:5px}.filters .controls a:hover{color:var(--70a15b5e)}
html{scrollbar-width:thin}
.drawer-container[data-v-20be14de]{height:0vh;width:auto;position:fixed;top:0;overflow:hidden}.drawer[data-v-20be14de]{display:flex;box-sizing:border-box;position:fixed;height:100vh;width:100vw;top:0}.drawer>div[data-v-20be14de]{display:inline-block}.drawer .handle[data-v-20be14de]{box-sizing:border-box;position:relative;transform:translate(0%, 50%);top:0%;right:0px;width:20vw;transition:width 1s linear}.drawer .handle .caption[data-v-20be14de]{position:absolute;transform:translate(0%, -50%);background:var(--color1);cursor:pointer;text-transform:uppercase}.drawer .handle .caption svg[data-v-20be14de]{fill:var(--highlight1);width:15px;padding:30px 8px;box-sizing:content-box}.drawer .body[data-v-20be14de]{box-sizing:border-box;height:100vh;width:80vw;background-color:var(--highlight1);position:relative}.drawer .body .content[data-v-20be14de]{width:90%;height:90%;position:absolute;transform:translate(50%, -50%);right:50%;top:50%;overflow:auto;scrollbar-width:none}.drawer[data-v-20be14de]::-webkit-scrollbar{display:none}.drawer:not(.show) .handle[data-v-20be14de]{width:0}.drawer.right[data-v-20be14de]{left:100vw;transition:left .5s linear}.drawer.left[data-v-20be14de]{right:100vw;transition:right .5s linear;flex-direction:row-reverse}.drawer.right .handle .caption[data-v-20be14de]{right:-1px;border-radius:0 0 0px 10px}.drawer.left .handle .caption[data-v-20be14de]{left:-1px;border-radius:0 0 10px 0px}.drawer.right.show[data-v-20be14de]{left:0vw}.drawer.left.show[data-v-20be14de]{right:0vw}.drawer.left .handle .caption svg[data-v-20be14de],.drawer.show.right .handle .caption svg[data-v-20be14de]{transform:rotate(180deg)}.drawer.right .handle .caption svg[data-v-20be14de],.drawer.show.left .handle .caption svg[data-v-20be14de]{transform:rotate(0deg)}.drawer.right.show .body[data-v-20be14de]{box-shadow:-5px 10px 5px rgba(0,0,0,.1)}.drawer.left.show .body[data-v-20be14de]{box-shadow:5px 10px 5px rgba(0,0,0,.1)}
[data-v-4355d1d8]{padding:0;margin:0}.paperhead[data-v-4355d1d8]{padding:10px 0;background:var(--highlight1);position:relative}.logo img[data-v-4355d1d8]{width:80px;margin:auto;display:block;mix-blend-mode:darken}.school-details[data-v-4355d1d8]{text-align:center}.school-details h1[data-v-4355d1d8]{font-size:1.5em;font-weight:600;color:var(--16e0b2fd)}.school-details .motto[data-v-4355d1d8]{font-size:1.5rem;color:var(--red)}.paperhead .stripe[data-v-4355d1d8]{margin-top:10px;padding:5px;text-align:center;background-color:var(--gray-300)}.paperhead .stripe h2[data-v-4355d1d8]{font-size:.8rem;text-transform:uppercase;letter-spacing:2px;font-weight:600}.paperhead .no-letterhead[data-v-4355d1d8]{opacity:0;margin-bottom:var(--b2422a30)}.controls[data-v-4355d1d8]{width:80px;position:absolute;top:17px;right:0;display:flex;flex-direction:column;gap:37px;align-items:center;height:100px;opacity:0;transition:opacity .5s linear;z-index:1000}.paperhead:hover .controls[data-v-4355d1d8]{opacity:1}input[type=range][data-v-4355d1d8]{-webkit-appearance:none;appearance:none;width:100%;height:3px;background:var(--highlight2);outline:none;opacity:.7;-webkit-transition:.2s;transition:opacity .2s;transform:rotate(90deg)}input[type=range][data-v-4355d1d8]:hover{opacity:1}input[type=range][data-v-4355d1d8]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:5px;height:25px;background:var(--color2);cursor:pointer;border:none;border-radius:0}input[type=range][data-v-4355d1d8]::-moz-range-thumb{width:5px;height:25px;background:var(--color2);cursor:pointer;border:none;border-radius:0}@media only screen and (min-width: 768px),print{.paperhead[data-v-4355d1d8]{padding:20px}.paperhead .top-head[data-v-4355d1d8]{display:flex}.school-details[data-v-4355d1d8]{width:70%}.logo[data-v-4355d1d8],.blank[data-v-4355d1d8]{width:15%}.logo img[data-v-4355d1d8]{margin-left:0}}@media print{.controls[data-v-4355d1d8],.paperhead:hover .controls[data-v-4355d1d8]{opacity:0 !important}}@media only screen and (prefers-color-scheme: dark){.logo img[data-v-4355d1d8]{mix-blend-mode:lighten}}
th.rotate[data-v-8abbfa66]{height:193px;white-space:nowrap}th.rotate>div[data-v-8abbfa66]{transform:translate(50%, 50%) rotate(270deg);width:10px}th.rotate>div>span[data-v-8abbfa66]{padding:5px 10px}.broadsheet-body[data-v-8abbfa66]{padding:20px;background:var(--highlight1)}#buttons[data-v-8abbfa66]{position:fixed;bottom:67px;right:10px;opacity:.4;transform:scale(0.9);transition:.4s linear}#buttons[data-v-8abbfa66]:hover{opacity:1;transform:scale(1)}@media print{.table td[data-v-8abbfa66],.table th[data-v-8abbfa66]{padding:.5rem !important}}
.please-wait[data-v-8b4a2332]{width:100%;height:100vh;max-height:300px;display:flex;justify-content:center;align-items:center}
th.rotate[data-v-5d5c2bb4]{height:193px;white-space:nowrap}th.rotate>div[data-v-5d5c2bb4]{transform:translate(50%, 50%) rotate(270deg);width:10px}th.rotate>div>span[data-v-5d5c2bb4]{padding:5px 10px}.broadsheet-body[data-v-5d5c2bb4]{padding:20px;background:var(--highlight1)}#buttons[data-v-5d5c2bb4]{position:fixed;bottom:67px;right:10px;opacity:.4;transform:scale(0.9);transition:.4s linear}#buttons[data-v-5d5c2bb4]:hover{opacity:1;transform:scale(1)}
.k-input-group>label~div[data-v-af122786]:not(:last-of-type){padding:4px 10px;border-left:1px dotted;margin-bottom:10px}.collection-btns button[data-v-af122786]{border:none;background:none;font-size:12px;color:var(--blue);margin-right:4px}.collection-btns button.remove[data-v-af122786]{color:var(--red)}.collection-row[data-v-af122786]{display:grid;grid-template-columns:repeat(12, 1fr);grid-template-rows:1fr;grid-column-gap:4px;grid-row-gap:0px}.col1[data-v-af122786]{grid-column:span 1}.col2[data-v-af122786]{grid-column:span 2}.col3[data-v-af122786]{grid-column:span 3}.col4[data-v-af122786]{grid-column:span 4}.col5[data-v-af122786]{grid-column:span 5}.col6[data-v-af122786]{grid-column:span 6}.col7[data-v-af122786]{grid-column:span 7}.col8[data-v-af122786]{grid-column:span 8}.col9[data-v-af122786]{grid-column:span 9}.col10[data-v-af122786]{grid-column:span 10}.col11[data-v-af122786]{grid-column:span 11}.col12[data-v-af122786]{grid-column:span 12}@media screen and (max-width: 840px){.collection-row[data-v-af122786]{display:grid;grid-column-gap:2px}.col1[data-v-af122786],.col2[data-v-af122786],.col3[data-v-af122786]{grid-column:span 3}.col4[data-v-af122786],.col5[data-v-af122786],.col6[data-v-af122786]{grid-column:span 6}.col7[data-v-af122786],.col8[data-v-af122786],.col9[data-v-af122786],.col10[data-v-af122786],.col11[data-v-af122786],.col12[data-v-af122786]{grid-column:span 12}}@media screen and (max-width: 590px){.collection-row[data-v-af122786]{display:grid;grid-column-gap:2px}.col1[data-v-af122786],.col2[data-v-af122786],.col3[data-v-af122786],.col4[data-v-af122786],.col5[data-v-af122786]{grid-column:span 6}.col6[data-v-af122786],.col7[data-v-af122786],.col8[data-v-af122786],.col9[data-v-af122786],.col10[data-v-af122786],.col11[data-v-af122786],.col12[data-v-af122786]{grid-column:span 12}}@media screen and (max-width: 380px){.collection-row[data-v-af122786]{display:grid;grid-column-gap:0px}.col1[data-v-af122786],.col2[data-v-af122786],.col3[data-v-af122786],.col4[data-v-af122786],.col5[data-v-af122786],.col6[data-v-af122786],.col7[data-v-af122786],.col8[data-v-af122786],.col9[data-v-af122786],.col10[data-v-af122786],.col11[data-v-af122786],.col12[data-v-af122786]{grid-column:span 12}}
.k-input-group>label~div:nth-child(2n+1) .collection-row .form-control{background-color:rgba(0,0,0,0)}
.fr-wrapper>div:not(.fr-element){display:none !important}
.filepond--credits{display:none}.filepond--panel-root{background-color:var(--highlight2)}
img.Male[data-v-4caefc8a],img.male[data-v-4caefc8a]{border:2px solid var(--blue)}img.Female[data-v-4caefc8a],img.female[data-v-4caefc8a]{border:2px solid var(--purple)}
:root{--vs-controls-size: 0.7;--vs-selected-bg: var(--color3);--vs-selected-color: var(--highlight3);--vs-selected-border-color: var(--color2);--vs-actions-padding: 0}.form-control .vs__dropdown-toggle{padding:0 !important;border:none !important}.form-control .vs__search,.form-control .vs__search:focus{margin:0 !important;padding:0 !important}.form-control .vs__deselect{transition:.3s linear all}.form-control .vs__selected{--vs-controls-color: var(--muted);margin:0px 2px 2px !important;background-image:var(--color1);--vs-selected-color: #fff}.form-control .vs__selected:hover{--vs-controls-color: var(--highlight1)}.form-control .vs__clear{line-height:normal;display:flex;opacity:.3}.form-control .vs__dropdown-menu{border:none;box-shadow:0px 2px 5px rgba(0,0,0,.2);background-color:var(--highlight2)}.form-control .vs__dropdown-menu .vs__dropdown-option{padding:5px 10px}.form-control .vs__dropdown-menu .vs__dropdown-option.vs__dropdown-option--highlight{background-color:var(--highlight1);color:var(--shadow1)}.v-select.vs--multiple.form-control{height:auto}
@supports(-webkit-appearance: none) or (-moz-appearance: none){input[type=checkbox][data-v-065c979c],input[type=radio][data-v-065c979c]{--active: var(--36999de0);--active-inner: var(--83f97ca2);--focus: 2px var(--36999de1);--border: var(--83f97c9e);--border-hover: var(--36999de0);--background: var(--83f97ca2);--disabled: var(--83f97ca0);--disabled-inner: var(--83f97c9e);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:21px;outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;cursor:pointer;border:1px solid var(--bc, var(--border));background:var(--b, var(--background));transition:background .3s,border-color .3s,box-shadow .2s;justify-content:center;align-items:center}input[type=checkbox][data-v-065c979c]:after,input[type=radio][data-v-065c979c]:after{content:"";display:block;left:0;top:0;position:absolute;transition:transform var(--d-t, 0.3s) var(--d-t-e, ease),opacity var(--d-o, 0.2s)}input[type=checkbox][data-v-065c979c]:checked,input[type=radio][data-v-065c979c]:checked{--b: var(--active);--bc: var(--active);--d-o: .3s;--d-t: .6s;--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}input[type=checkbox][data-v-065c979c]:disabled,input[type=radio][data-v-065c979c]:disabled{--b: var(--disabled);cursor:not-allowed;opacity:.9}input[type=checkbox][data-v-065c979c]:disabled:checked,input[type=radio][data-v-065c979c]:disabled:checked{--b: var(--disabled-inner);--bc: var(--border)}input[type=checkbox]:disabled+label[data-v-065c979c],input[type=radio]:disabled+label[data-v-065c979c]{cursor:not-allowed}input[type=checkbox][data-v-065c979c]:hover:not(:checked):not(:disabled),input[type=radio][data-v-065c979c]:hover:not(:checked):not(:disabled){--bc: var(--border-hover)}input[type=checkbox][data-v-065c979c]:focus,input[type=radio][data-v-065c979c]:focus{box-shadow:0 0 0 var(--focus)}input[type=checkbox][data-v-065c979c]:not(.switch),input[type=radio][data-v-065c979c]:not(.switch){width:21px}input[type=checkbox][data-v-065c979c]:not(.switch):after,input[type=radio][data-v-065c979c]:not(.switch):after{opacity:var(--o, 0)}input[type=checkbox][data-v-065c979c]:not(.switch):checked,input[type=radio][data-v-065c979c]:not(.switch):checked{--o: 1}input[type=checkbox]+label[data-v-065c979c],input[type=radio]+label[data-v-065c979c]{font-size:14px;line-height:21px;display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}input[type=checkbox][data-v-065c979c]:not(.switch){border-radius:7px}input[type=checkbox][data-v-065c979c]:not(.switch):after{width:5px;height:9px;border:2px solid var(--active-inner);border-top:0;border-left:0;left:7px;top:4px;transform:rotate(var(--r, 20deg))}input[type=checkbox][data-v-065c979c]:not(.switch):checked{--r: 43deg}input[type=checkbox].switch[data-v-065c979c]{width:38px;border-radius:11px}input[type=checkbox].switch[data-v-065c979c]:after{left:2px;top:2px;border-radius:50%;width:15px;height:15px;background:var(--ab, var(--border));transform:translateX(var(--x, 0))}input[type=checkbox].switch[data-v-065c979c]:checked{--ab: var(--active-inner);--x: 17px}input[type=checkbox].switch[data-v-065c979c]:disabled:not(:checked):after{opacity:.6}input[type=radio][data-v-065c979c]{border-radius:50%}input[type=radio][data-v-065c979c]:after{width:19px;height:19px;border-radius:50%;background:var(--active-inner);opacity:0;transform:scale(var(--s, 0.7))}input[type=radio][data-v-065c979c]:checked{--s: .5}}
span[role=alert]{color:var(--red);font-size:12px;line-height:20px}.k-input-group{margin-top:10px;margin-bottom:10px}.k-input-group label{color:var(--shadow2)}.k-input-group.linear{display:flex}.k-input-group.linear .label{background:var(--highlight1);padding:10px;border-radius:.375rem 0 0 .375rem;line-height:1;font-size:15px;width:35%}.k-input-group.linear .form-control{width:65%;border-radius:0 .375rem .375rem 0}


.exam-scheme[data-v-02636b0e] { display: flex; gap: 3px; height: 10px; margin-bottom: 0.9rem; border-radius: 99px; overflow: hidden;
}
.exam-scheme__part[data-v-02636b0e] { flex-basis: 0; background: linear-gradient(90deg, #8e3dd3, #5c36c2);
}
.exam-scheme__part[data-v-02636b0e]:nth-child(2n) { background: linear-gradient(90deg, #a45be0, #7c4ddb);
}
.exam-scheme__part[data-v-02636b0e]:last-child { background: linear-gradient(90deg, #5c36c2, #3b1f8f);
}
.exam-num[data-v-02636b0e] { font-variant-numeric: tabular-nums;
}
.exam-grade[data-v-02636b0e] { display: inline-flex; align-items: center; gap: 0.65rem;
}
.exam-grade__letter[data-v-02636b0e] {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  font-weight: 800;
  color: var(--app-accent-ink, #5d1698);
  border: 2px solid var(--app-border, #e9e6f2);
  border-radius: 9px;
}
.exam-classes[data-v-02636b0e] { display: flex; flex-wrap: wrap; gap: 0.4rem;
}
.dash a.exam-class[data-v-02636b0e] {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.75rem;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--app-text, #1d1b26) !important;
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 999px;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.dash a.exam-class i[data-v-02636b0e] { font-size: 0.7rem; color: var(--app-accent, #7822be);
}
.dash a.exam-class[data-v-02636b0e]:hover, .dash a.exam-class[data-v-02636b0e]:focus { text-decoration: none; background: var(--app-accent-soft, #f2eafe); border-color: color-mix(in srgb, var(--app-accent, #7822be) 30%, transparent);
}

[data-v-dd5c35a8]{padding:0;margin:0}.d-flex[data-v-dd5c35a8]{gap:10px}.d-flex>div[data-v-dd5c35a8]{display:flex;flex-direction:column;justify-content:center}.img[data-v-dd5c35a8]{width:80px;border-radius:50%}h4[data-v-dd5c35a8]{font-size:1.2rem;margin-bottom:2px}p[data-v-dd5c35a8]{font-size:smaller;line-height:normal}.c-pointer[data-v-dd5c35a8]{cursor:pointer}
.grade>span[data-v-ef56235c],.grade[data-v-ef56235c]{position:relative}.grade .scale[data-v-ef56235c]{content:"";position:absolute;display:block;height:18px;background:var(--highlight2);z-index:0;top:3px}

.person-cell[data-v-060a845f] { display: flex; align-items: center; gap: 0.7rem; min-width: 12rem;
}
.person-cell__avatar[data-v-060a845f] {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  overflow: hidden;
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--app-accent-ink, #5d1698);
  background: var(--app-accent-soft, #f2eafe);
  border: 2px solid var(--app-border, #e9e6f2);
  border-radius: 50%;
}
.person-cell__avatar.male[data-v-060a845f] { border-color: color-mix(in srgb, #3b82f6 50%, transparent);
}
.person-cell__avatar.female[data-v-060a845f] { border-color: color-mix(in srgb, #ec4899 50%, transparent);
}
.person-cell__avatar img[data-v-060a845f] { width: 100%; height: 100%; object-fit: cover;
}
.person-cell__text[data-v-060a845f] { display: flex; flex-direction: column; min-width: 0;
}
.person-cell__name[data-v-060a845f] { font-weight: 700; color: var(--app-text, #1d1b26) !important; line-height: 1.3;
}
a.person-cell__name[data-v-060a845f]:hover, a.person-cell__name[data-v-060a845f]:focus { color: var(--app-accent, #7822be) !important; text-decoration: underline; text-underline-offset: 3px;
}
.person-cell__sub[data-v-060a845f] { font-size: 0.76rem; color: var(--app-muted, #6b6880); font-variant-numeric: tabular-nums;
}


.result-row[data-v-b3fa80b6] {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas:
    "pick who actions"
    "pick stats stats"
    "pick comment comment"
    "pick scores scores";
  gap: 0.6rem 0.9rem;
  align-items: center;
  padding: 0.9rem 1rem;
  background: var(--app-surface, #fff);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 14px;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.result-row[data-v-b3fa80b6]:hover { box-shadow: var(--app-shadow, none);
}
.result-row.is-picked[data-v-b3fa80b6] { background: color-mix(in srgb, var(--app-accent-soft, #f2eafe) 60%, var(--app-surface, #fff)); border-color: color-mix(in srgb, var(--app-accent, #7822be) 45%, transparent);
}
@media (min-width: 992px) {
.result-row[data-v-b3fa80b6] {
    grid-template-columns: auto minmax(13rem, 1.2fr) minmax(0, 2fr) auto;
    grid-template-areas:
      "pick who stats actions"
      "pick comment comment comment"
      "pick scores scores scores";
}
}
.result-row__pick[data-v-b3fa80b6] { grid-area: pick; align-self: start; margin: 0.45rem 0 0; cursor: pointer;
}
.result-row__pick input[data-v-b3fa80b6] { position: absolute; opacity: 0; width: 1px; height: 1px;
}
.result-row__pick span[data-v-b3fa80b6] {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  font-size: 0.65rem;
  color: transparent;
  border: 2px solid var(--app-border, #e9e6f2);
  border-radius: 7px;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.result-row__pick:hover span[data-v-b3fa80b6] { border-color: var(--app-accent, #7822be);
}
.result-row__pick input:checked + span[data-v-b3fa80b6] { color: #fff; background: var(--app-accent, #7822be); border-color: var(--app-accent, #7822be);
}
.result-row__pick input:focus-visible + span[data-v-b3fa80b6] { outline: 3px solid color-mix(in srgb, var(--app-accent, #7822be) 40%, transparent); outline-offset: 2px;
}
.result-row__who[data-v-b3fa80b6] { grid-area: who; min-width: 0;
}
.result-row__missing[data-v-b3fa80b6] { color: var(--app-muted, #6b6880); font-size: 0.85rem;
}
.result-row__stats[data-v-b3fa80b6] { grid-area: stats; display: grid; grid-template-columns: minmax(7rem, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 0.75rem; align-items: center;
}
.result-row__avg strong[data-v-b3fa80b6] { font-size: 1.05rem;
}
.result-row__bar[data-v-b3fa80b6] { height: 6px; margin-top: 0.3rem; border-radius: 99px; background: var(--app-surface-2, #f1eef8); overflow: hidden;
}
.result-row__bar span[data-v-b3fa80b6] { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #8e3dd3, #5c36c2);
}
.result-row__stat[data-v-b3fa80b6] { display: flex; flex-direction: column; min-width: 0;
}
.result-row__stat span[data-v-b3fa80b6] { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--app-muted, #6b6880);
}
.result-row__stat strong[data-v-b3fa80b6] { font-size: 0.95rem; white-space: nowrap;
}
.result-row__stat small[data-v-b3fa80b6] { color: var(--app-muted, #6b6880); font-weight: 600;
}
.result-row__actions[data-v-b3fa80b6] { grid-area: actions; display: flex; align-items: center; gap: 0.4rem; justify-self: end;
}
.result-row__icon[data-v-b3fa80b6] {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--app-muted, #6b6880);
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 10px;
  cursor: pointer;
}
.result-row__icon[data-v-b3fa80b6]:hover, .result-row__icon[aria-expanded="true"][data-v-b3fa80b6] { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.result-row__comment[data-v-b3fa80b6] { grid-area: comment; min-width: 0;
}
.result-row__comment-text[data-v-b3fa80b6] {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  width: 100%;
  padding: 0.5rem 0.7rem;
  text-align: left;
  font: inherit;
  font-size: 0.85rem;
  font-style: italic;
  color: var(--app-text, #1d1b26);
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: text;
}
.result-row__comment-text > i[data-v-b3fa80b6]:first-child { margin-top: 0.2rem; color: var(--app-muted, #6b6880);
}
.result-row__comment-text[data-v-b3fa80b6]:hover { border-color: var(--app-border, #e9e6f2);
}
.result-row__edit[data-v-b3fa80b6] { margin-left: auto; margin-top: 0.2rem; font-size: 0.7rem; color: var(--app-muted, #6b6880); opacity: 0; transition: opacity 0.15s ease;
}
.result-row__comment-text:hover .result-row__edit[data-v-b3fa80b6], .result-row__comment-text:focus-visible .result-row__edit[data-v-b3fa80b6] { opacity: 1;
}
.result-row__comment-bar[data-v-b3fa80b6] { display: flex; align-items: center; justify-content: space-between; margin-top: 0.4rem;
}
.result-row__muted[data-v-b3fa80b6] { color: var(--app-muted, #6b6880);
}
.result-row__scores[data-v-b3fa80b6] { grid-area: scores; display: flex; flex-wrap: wrap; gap: 0.35rem;
}
.result-row__score[data-v-b3fa80b6] {
  font-size: 0.76rem;
  padding: 0.22rem 0.6rem;
  color: var(--app-text, #1d1b26);
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 999px;
}
.result-row__score strong[data-v-b3fa80b6] { color: var(--app-accent-ink, #5d1698); margin-left: 0.2rem;
}
@media (max-width: 575.98px) {
.result-row__stats[data-v-b3fa80b6] { grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

/* Print results (class list) and view result (the sheets). Colours from the portal tokens (BTSTheme portal.css). */

.results-page { padding-bottom: 5rem; }
.results-page__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.25rem;
}
.results-page__eyebrow { margin: 0; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--app-accent, #7822be); }
.results-page__title { margin: 0.15rem 0 0; font-family: 'Fraunces', serif; font-size: 1.7rem; font-weight: 600; color: var(--app-text, #1d1b26); }
.results-page__sub { margin: 0.2rem 0 0; color: var(--app-muted, #6b6880); font-size: 0.9rem; }
.results-page__filters { flex: 1 1 340px; max-width: 560px; }
/* The shared filter widget gives each select a quarter-width grid column; here they share one flexible row
   and wrap instead of overlapping, with "Hide / Reset filters" underneath rather than floating over them */
.results-page__filters .filters { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0; padding: 0; }
.results-page__filters .filters .filter-container { flex: 1 1 10rem; max-width: none; width: auto; min-width: 0; padding: 0; margin: 0; }
.results-page__filters .filters select { width: 100%; min-width: 0; }
.results-page__filters .filters .controls { position: static; flex: 1 0 100%; display: flex; justify-content: flex-end; gap: 0.25rem; }

.results-empty {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 1.1rem 1.25rem;
    font-size: 0.92rem;
    color: var(--app-text, #1d1b26);
    background: var(--app-surface, #fff);
    border: 1px dashed var(--app-border, #e9e6f2);
    border-radius: var(--app-radius, 16px);
}
.results-empty > i { margin-top: 0.2rem; color: var(--app-accent, #7822be); }

.results-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin-bottom: 1rem; }
@media (min-width: 768px) { .results-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.results-summary > div {
    display: flex;
    flex-direction: column;
    padding: 0.85rem 1rem;
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 14px;
    box-shadow: var(--app-shadow, none);
}
.results-summary span { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--app-muted, #6b6880); }
.results-summary strong { font-size: 1.3rem; color: var(--app-text, #1d1b26); }
.results-summary small { font-size: 0.78rem; font-weight: 600; color: var(--app-muted, #6b6880); }

.results-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin-bottom: 0.75rem; }
.results-toolbar__all { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; font-weight: 700; font-size: 0.88rem; cursor: pointer; }
.results-toolbar__all input { width: 18px; height: 18px; accent-color: var(--app-accent, #7822be); }
.results-toolbar__sort { margin-left: auto; }
.results-toolbar__sort select { min-width: 9.5rem; }

.results-list { display: grid; gap: 0.6rem; }
.results-list-move, .results-list-enter-active, .results-list-leave-active { transition: transform 0.3s var(--app-ease, ease), opacity 0.3s var(--app-ease, ease); }
.results-list-enter-from, .results-list-leave-to { opacity: 0; transform: translateY(6px); }

.results-bar {
    position: fixed;
    left: 50%;
    bottom: 1.25rem;
    z-index: 1030;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: calc(100vw - 1.5rem);
    padding: 0.45rem 0.45rem 0.45rem 1.1rem;
    color: #fff;
    font-size: 0.88rem;
    background: linear-gradient(135deg, #2a1470 0%, #4a1c8c 100%);
    border-radius: 999px;
    box-shadow: 0 18px 44px -16px rgba(24, 11, 66, 0.65);
    transform: translateX(-50%);
}
.results-bar__clear, .results-bar__go { border: 0; border-radius: 999px; font-weight: 700; padding: 0.5rem 1rem; white-space: nowrap; cursor: pointer; }
.results-bar__clear { color: rgba(255, 255, 255, 0.85); background: transparent; }
.results-bar__clear:hover { color: #fff; background: rgba(255, 255, 255, 0.12); }
.results-bar__go { color: var(--brand-ink, #24115e); background: #fff; }
.results-bar__go:hover, .results-bar__go:focus { color: var(--brand-ink, #24115e); text-decoration: none; }
.results-bar-enter-active, .results-bar-leave-active { transition: opacity 0.25s ease, transform 0.25s ease; }
.results-bar-enter-from, .results-bar-leave-to { opacity: 0; transform: translate(-50%, 16px); }
@media (max-width: 767.98px) { .results-bar { bottom: 5rem; } }

/* ---- View result: the sheets on a grey desk, a toolbar above ---------------------------------- */
.result-viewer__bar {
    position: sticky;
    top: 5.5rem;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 1rem;
    margin-bottom: 1.25rem;
    padding: 0.65rem 0.75rem 0.65rem 1rem;
    background: color-mix(in srgb, var(--app-surface, #fff) 88%, transparent);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 16px;
    box-shadow: var(--app-shadow, none);
}
.result-viewer__title { display: flex; flex-direction: column; min-width: 0; margin-right: auto; }
.result-viewer__title strong { font-size: 0.95rem; }
.result-viewer__title span { font-size: 0.78rem; color: var(--app-muted, #6b6880); }
.result-viewer__desk { padding: 1rem 0; }
.result-viewer__desk .single-result {
    max-width: 900px;
    margin: 0 auto 1.5rem;
    border-radius: 6px;
    box-shadow: 0 18px 40px -24px rgba(24, 11, 66, 0.45), 0 1px 3px rgba(24, 11, 66, 0.08);
    overflow: hidden;
}
@media print {
    .result-viewer__bar { display: none !important; }
    .result-viewer__desk .single-result { box-shadow: none; border-radius: 0; margin: 0; }
}

[data-v-3d5afbdc]{padding:0;margin:0}.info[data-v-3d5afbdc]{padding-top:20px}.info h3[data-v-3d5afbdc]{font-size:.7rem;text-transform:uppercase;letter-spacing:2px;font-weight:400;color:var(--gray-500)}.info .data[data-v-3d5afbdc]{position:relative;left:10px}
[data-v-e3ed3674]{padding:0;margin:0}table[data-v-e3ed3674]{width:100%;border-collapse:collapse}table td[data-v-e3ed3674],table th[data-v-e3ed3674]{border:none}.result-details[data-v-e3ed3674]{background:var(--highlight1)}.result-details .result[data-v-e3ed3674]{overflow-x:auto;padding:10px 5px 10px 10px}.result-details .summary[data-v-e3ed3674]{overflow-x:auto;padding:10px 10px 10px 5px}.student-details[data-v-e3ed3674]{padding:0 0 10px}th.rotate[data-v-e3ed3674]{height:143px;white-space:nowrap}th.rotate>div[data-v-e3ed3674]{transform:translate(50%, 50%) rotate(270deg);width:10px}th.rotate>div>span[data-v-e3ed3674]{padding:5px 10px}.user-img img[data-v-e3ed3674]{width:83px;display:block;margin:0 20px 0 0;border-radius:50%}.user-img img.Male[data-v-e3ed3674],.user-img img.male[data-v-e3ed3674]{border:2px solid var(--blue)}.user-img img.Female[data-v-e3ed3674],.user-img img.female[data-v-e3ed3674]{border:2px solid var(--purple)}.student-data[data-v-e3ed3674]{display:flex}.student-details table[data-v-e3ed3674]{font-size:.8rem}@media only screen and (min-width: 768px),print{.result-details[data-v-e3ed3674]{display:flex}.result-details .result[data-v-e3ed3674]{width:75%}.result-details .summary[data-v-e3ed3674]{width:25%}.result-details .result[data-v-e3ed3674]{overflow-x:auto;padding:20px 10px 20px 20px}.result-details .summary[data-v-e3ed3674]{overflow-x:auto;padding:20px 20px 20px 10px}.student-details[data-v-e3ed3674]{display:flex;justify-content:space-between;padding:0 0 20px}}@media print{table td[data-v-e3ed3674],table th[data-v-e3ed3674]{padding:.3rem;border:1px solid var(--shadow1) !important;background-color:rgba(0,0,0,0) !important}}
[data-v-52036c3a]{margin:0;padding:0}.signatures[data-v-52036c3a]{background:var(--highlight1)}.signatures>div[data-v-52036c3a]{padding:10px;max-width:345px;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}.signatures div img[data-v-52036c3a]{width:70%;position:relative;bottom:-10px;mix-blend-mode:darken;max-height:63px}.signatures h3[data-v-52036c3a]{font-size:1.2rem;font-weight:700;border-top:1px dotted var(--muted)}.signatures p[data-v-52036c3a]{font-size:.8rem;font-style:italic}@media only screen and (min-width: 768px),print{.signatures[data-v-52036c3a]{display:flex;justify-content:space-between}.signatures>div[data-v-52036c3a]{padding:20px}}

/* Plain colours: this is part of the printed sheet, in both themes */
.result-verify[data-v-bc372d94] {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 10px 10px;
  padding: 10px 12px;
  color: #1d1b26;
  background: #ffffff;
  border: 1px dashed #c9c4d8;
  border-radius: 10px;
  break-inside: avoid;
  page-break-inside: avoid;
}
.result-verify__qr[data-v-bc372d94] { flex: 0 0 88px; width: 88px; height: 88px;
}
.result-verify__text[data-v-bc372d94] { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 11px; line-height: 1.35;
}
.result-verify__text strong[data-v-bc372d94] { font-size: 13px;
}
.result-verify__text small[data-v-bc372d94] { font-size: 10px; color: #6b6880; word-break: break-all;
}
@media print {
.result-verify[data-v-bc372d94] { border-color: #999;
}
}

td[data-v-b0879b50]{padding:.3rem;border:1px solid var(--shade3)}
[data-v-3e711248]{padding:0;margin:0}table[data-v-3e711248]{width:100%}table td[data-v-3e711248],table th[data-v-3e711248]{padding:.3rem;border:1px solid var(--shade3)}.result-details[data-v-3e711248]{background:var(--highlight1)}.result-details .result[data-v-3e711248]{overflow-x:auto;padding:10px 5px 10px 10px}.result-details .summary[data-v-3e711248]{overflow-x:auto;padding:10px 10px 10px 5px}.student-details[data-v-3e711248]{padding:0 0 10px}th.rotate[data-v-3e711248]{height:143px;white-space:nowrap}th.rotate>div[data-v-3e711248]{transform:translate(50%, 50%) rotate(270deg);width:10px}th.rotate>div>span[data-v-3e711248]{padding:5px 10px}.user-img img[data-v-3e711248]{width:83px;display:block;margin:0 20px 0 0;border-radius:50%}.user-img img.Male[data-v-3e711248],.user-img img.male[data-v-3e711248]{border:2px solid var(--blue)}.user-img img.Female[data-v-3e711248],.user-img img.female[data-v-3e711248]{border:2px solid var(--purple)}.student-data[data-v-3e711248]{display:flex}.student-details table[data-v-3e711248]{font-size:.8rem}@media only screen and (min-width: 768px),print{.result-details[data-v-3e711248]{display:flex}.result-details .result[data-v-3e711248]{width:75%}.result-details .summary[data-v-3e711248]{width:25%}.result-details .result[data-v-3e711248]{overflow-x:auto;padding:20px 10px 20px 20px}.result-details .summary[data-v-3e711248]{overflow-x:auto;padding:20px 20px 20px 10px}.student-details[data-v-3e711248]{display:flex;justify-content:space-between;padding:0 0 20px}}
.single-result[data-v-7744ed30]{background:var(--highlight1);margin-bottom:20px}
.single-result[data-v-383c3b82]{background:var(--highlight1);margin-bottom:20px}@media print{.result-container[data-v-383c3b82]{page-break-after:always}}
.action-btn[data-v-61498816]{background:var(--6d1edc4c);text-align:center;padding:4px;font-size:11px;color:var(--6d1edc50);text-decoration:none;border-radius:4px;border:1px solid var(--6d1edc4c);box-sizing:content-box;margin-right:2px;transition:all .4s linear}.action-btn[data-v-61498816]:hover{background:var(--787f6a8a);border:1px solid var(--787f6a8a)}.filters-container[data-v-61498816]{justify-content:end;gap:3px;margin-top:1px;margin-bottom:21px;display:flex;flex-wrap:wrap}.filters-container .filter-btn[data-v-61498816]{border:none;padding:1.4px 8px 5px;line-height:1;font-size:11px;text-transform:lowercase;border-radius:10px;background-color:var(--6d1edc4c);color:var(--shadow3)}.filters-container .filter-btn.active[data-v-61498816]{background-color:var(--787f6a8a);color:var(--6d1edc50)}@media only screen and (min-width: 768px){.tools[data-v-61498816]{flex-direction:row}}
table td[data-v-5e59f2ea]{vertical-align:middle}

table td > a {
        color: inherit;
}


.person-card[data-v-a6aab87a] {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  height: calc(100% - 1rem);
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  color: var(--app-text, #1d1b26);
  background: var(--app-surface, #fff);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: var(--app-radius, 16px);
  box-shadow: var(--app-shadow, none);
  transition: transform 0.2s var(--app-ease, ease), box-shadow 0.2s var(--app-ease, ease), border-color 0.2s var(--app-ease, ease);
  animation: person-card-in-a6aab87a 0.35s var(--app-ease, ease) both;
}
.person-card--linked[data-v-a6aab87a]:hover { transform: translateY(-2px); box-shadow: var(--app-shadow-hover, none); border-color: color-mix(in srgb, var(--app-accent, #7822be) 30%, transparent);
}
/* The whole card opens the profile; buttons inside stay clickable on top */
.person-card__cover[data-v-a6aab87a] { position: absolute; inset: 0; z-index: 1; border-radius: inherit;
}
.person-card__cover[data-v-a6aab87a]:focus-visible { outline: 3px solid color-mix(in srgb, var(--app-accent, #7822be) 45%, transparent); outline-offset: 2px;
}
.person-card__top[data-v-a6aab87a] { display: flex; align-items: center; gap: 0.85rem; min-width: 0;
}
.person-card__avatar[data-v-a6aab87a] {
  position: relative;
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  font-size: 1rem;
  font-weight: 800;
  color: var(--app-accent-ink, #5d1698);
  background: var(--app-accent-soft, #f2eafe);
  border-radius: 50%;
  border: 2px solid var(--app-border, #e9e6f2);
}
.person-card__avatar.male[data-v-a6aab87a] { border-color: color-mix(in srgb, #3b82f6 55%, transparent);
}
.person-card__avatar.female[data-v-a6aab87a] { border-color: color-mix(in srgb, #ec4899 55%, transparent);
}
.person-card__avatar img[data-v-a6aab87a] { width: 100%; height: 100%; object-fit: cover; border-radius: 50%;
}
.person-card__status[data-v-a6aab87a] {
  position: absolute;
  right: 0;
  bottom: 1px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 2px solid var(--app-surface, #fff);
  background: var(--app-muted, #6b6880);
}
.person-card__status.is-active[data-v-a6aab87a] { background: #22c55e;
}
.person-card__status.is-inactive[data-v-a6aab87a], .person-card__status.is-suspended[data-v-a6aab87a], .person-card__status.is-withdrawn[data-v-a6aab87a] { background: #ef4444;
}
.person-card__status.is-graduated[data-v-a6aab87a] { background: #3b82f6;
}
.person-card__who[data-v-a6aab87a] { min-width: 0; flex: 1 1 auto;
}
.person-card__name[data-v-a6aab87a] {
  margin: 0 0 0.35rem;
  font-family: inherit;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--app-text, #1d1b26);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.person-card__tags[data-v-a6aab87a] { display: flex; flex-wrap: wrap; gap: 0.3rem;
}
.person-card__tag[data-v-a6aab87a] {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.18rem 0.6rem;
  color: var(--app-muted, #6b6880);
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 999px;
  white-space: nowrap;
}
.person-card__tag--accent[data-v-a6aab87a] { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe); border-color: transparent;
}
.person-card__details[data-v-a6aab87a] {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding: 0.7rem 0 0;
  border-top: 1px dashed var(--app-border, #e9e6f2);
}
.person-card__detail[data-v-a6aab87a] { display: flex; align-items: center; gap: 0.55rem; min-width: 0; font-size: 0.8rem;
}
.person-card__detail dt[data-v-a6aab87a] { flex: 0 0 1rem; margin: 0; text-align: center; color: var(--app-muted, #6b6880); font-weight: 400;
}
.person-card__detail dd[data-v-a6aab87a] { margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--app-text, #1d1b26);
}
.person-card__extra[data-v-a6aab87a] { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: 0.82rem;
}
.person-card__foot[data-v-a6aab87a] {
  margin-top: auto;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--app-accent, #7822be);
  opacity: 0.85;
}
.person-card__foot i[data-v-a6aab87a] { font-size: 0.7rem; margin-left: 0.2rem; transition: transform 0.2s ease;
}
.person-card--linked:hover .person-card__foot i[data-v-a6aab87a] { transform: translateX(3px);
}
@keyframes person-card-in-a6aab87a {
from { opacity: 0; transform: translateY(6px);
}
to { opacity: 1; transform: none;
}
}
@media (prefers-reduced-motion: reduce) {
.person-card[data-v-a6aab87a] { animation: none; transition: none;
}
}

.input-group-text[data-v-f8e88ab6]{display:flex;align-items:center;padding:.01rem .75rem;border-radius:0 .35rem .35rem 0;transition:.3s linear;flex-wrap:nowrap}.input-group .btn[data-v-f8e88ab6]{border-radius:.35rem 0 0 .35rem;padding:.1rem 1rem;transition:.3s linear}.input-group.hidden .btn[data-v-f8e88ab6]{display:none}.input-group.hidden .input-group-text[data-v-f8e88ab6]{background:rgba(0,0,0,0);border-radius:.35rem}
.result[data-v-78cc0b3a]{margin-bottom:10px}.scores span[data-v-78cc0b3a]{border:1px solid var(--highlight3);display:inline-block;padding:3px 6px;margin-right:3px;background:var(--highlight1);color:var(--highlight3);margin-bottom:3px;border-radius:3px;font-size:small;font-style:italic;transition:.3s ease-in;cursor:pointer}.scores span[data-v-78cc0b3a]:hover{color:var(--shadow1);transform:scale(1.1);box-shadow:0px 3px 4px -3px #adadad}.scores span:hover+span[data-v-78cc0b3a]{color:var(--shadow2)}.summary>span[data-v-78cc0b3a]{font-size:14px;display:inline-block;padding-right:22px}.summary>span span[data-v-78cc0b3a]{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:5px}.summary[data-v-78cc0b3a]{padding-bottom:10px;cursor:pointer;border-top:2px solid var(--highlight2);padding-top:12px}.red[data-v-78cc0b3a]{background:var(--red)}.blue[data-v-78cc0b3a]{background:var(--blue)}.purple[data-v-78cc0b3a]{background:var(--purple)}.green[data-v-78cc0b3a]{background:var(--green)}.save-btn[data-v-78cc0b3a]{display:none}.comment-form[data-v-78cc0b3a]{position:relative}.close-btn[data-v-78cc0b3a]{position:absolute;top:0;right:0px;color:var(--red);cursor:pointer}.comment[data-v-78cc0b3a]{font-style:italic;cursor:pointer}
#print+button[data-v-4711e332]{position:fixed;bottom:67px;right:10px;opacity:.4;transform:scale(0.9);transition:.4s linear}#print+button[data-v-4711e332]:hover{opacity:1;transform:scale(1)}@media print{.result-container[data-v-4711e332]{page-break-after:always}}
.chart-wrap[data-v-43f5ecc3]{height:350px}.chart-info li[data-v-43f5ecc3]{display:block;padding:10px;border-bottom:1px solid var(--highlight3)}
.save-btn[data-v-9e1d4598]{display:none}

.eedu-result-entry .k-input-group {
    position: relative;
}
.eedu-result-entry .label {
    position: absolute;
    right: 5px;
    top: 12px;
    width: 50px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    font-size: 9px !important;
    text-align: right;
}
.eedu-result-entry .k-input-group input::placeholder {
    font-size: small;
    font-style: italic;
    opacity: 0.5;
    text-transform: lowercase;
}


.fees-term[data-v-5ca6c4d9] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem;
}
.fees-term select[data-v-5ca6c4d9] { width: auto; min-width: 9rem;
}
.fees-search[data-v-5ca6c4d9] { width: 10rem;
}
.fees-order[data-v-5ca6c4d9] { width: auto;
}
.fees-grid[data-v-5ca6c4d9] { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 0.85rem;
}
.fee-card[data-v-5ca6c4d9] {
  font-weight: 400 !important;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 1.05rem;
  color: var(--app-text, #1d1b26);
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 14px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
/* Cards are links: keep the normal text colour (dashboard.css colours links in the accent) */
.dash a.fee-card[data-v-5ca6c4d9] { color: var(--app-text, #1d1b26) !important;
}
.fee-card[data-v-5ca6c4d9]:hover, .fee-card[data-v-5ca6c4d9]:focus { color: var(--app-text, #1d1b26) !important; text-decoration: none; border-color: color-mix(in srgb, var(--app-accent, #7822be) 35%, transparent); box-shadow: var(--app-shadow-hover, none); transform: translateY(-2px);
}
.fee-card__head[data-v-5ca6c4d9] { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem;
}
.fee-card__class[data-v-5ca6c4d9] { display: block; font-size: 1rem;
}
.fee-card__name[data-v-5ca6c4d9] { font-size: 0.8rem; color: var(--app-muted, #6b6880);
}
.fee-card__amount[data-v-5ca6c4d9] { font-weight: 800; white-space: nowrap;
}
.fee-card__amount small[data-v-5ca6c4d9] { font-weight: 600; color: var(--app-muted, #6b6880);
}
.fee-card__counts[data-v-5ca6c4d9] { display: flex; flex-wrap: wrap; gap: 0.3rem;
}
.fee-card__go[data-v-5ca6c4d9] { color: var(--app-accent, #7822be) !important; margin-top: auto; font-size: 0.78rem; font-weight: 700; color: var(--app-accent, #7822be);
}
.fee-card__go i[data-v-5ca6c4d9] { font-size: 0.7rem; margin-left: 0.2rem; transition: transform 0.2s ease;
}
.fee-card:hover .fee-card__go i[data-v-5ca6c4d9] { transform: translateX(3px);
}
.fees-cols[data-v-5ca6c4d9] { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); align-items: end; gap: 0.4rem; height: 150px;
}
.fees-cols__col[data-v-5ca6c4d9] { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 0.3rem;
}
.fees-cols__bar[data-v-5ca6c4d9] { width: 100%; max-width: 28px; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, #8e3dd3, #5c36c2); animation: fees-grow-5ca6c4d9 0.7s var(--app-ease, ease) both; transform-origin: bottom;
}
.fees-cols__label[data-v-5ca6c4d9] { font-size: 0.68rem; color: var(--app-muted, #6b6880);
}
@keyframes fees-grow-5ca6c4d9 {
from { transform: scaleY(0);
}
to { transform: scaleY(1);
}
}
@media (prefers-reduced-motion: reduce) {
.fees-cols__bar[data-v-5ca6c4d9] { animation: none;
}
}


.fee-search[data-v-9bd17550] { width: 11rem;
}
.fee-filters[data-v-9bd17550] { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.9rem;
}
.fee-filter[data-v-9bd17550] {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.5rem 0.35rem 0.8rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--app-muted, #6b6880);
  background: var(--app-surface-2, #faf9fd);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 999px;
  cursor: pointer;
}
.fee-filter span[data-v-9bd17550] { min-width: 1.6rem; padding: 0.05rem 0.4rem; font-size: 0.72rem; text-align: center; background: var(--app-surface, #fff); border-radius: 999px;
}
.fee-filter[data-v-9bd17550]:hover { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.fee-filter.is-on[data-v-9bd17550] { color: #fff; background: var(--app-accent, #7822be); border-color: var(--app-accent, #7822be);
}
.fee-filter.is-on span[data-v-9bd17550] { color: var(--app-accent-ink, #5d1698);
}
.fee-num[data-v-9bd17550] { font-variant-numeric: tabular-nums; white-space: nowrap;
}
.fee-owed[data-v-9bd17550] { color: var(--dash-danger, #c2410c); font-weight: 700;
}
.fee-ref[data-v-9bd17550] { font-size: 0.78rem; color: var(--app-muted, #6b6880); background: transparent;
}
/* Phones: status and balance say enough; the amount paid drops out so the table fits */
@media (max-width: 575.98px) {
.fee-table th[data-v-9bd17550]:nth-child(3), .fee-table td[data-v-9bd17550]:nth-child(3) { display: none;
}
}
.fee-sms-enter-active[data-v-9bd17550], .fee-sms-leave-active[data-v-9bd17550] { transition: opacity 0.25s ease, transform 0.25s ease;
}
.fee-sms-enter-from[data-v-9bd17550], .fee-sms-leave-to[data-v-9bd17550] { opacity: 0; transform: translateY(-6px);
}

.card-body[data-v-9d838544]{padding:35px 20px}.heading[data-v-9d838544]{display:flex;gap:10px}.heading .student-data[data-v-9d838544]{width:55%;display:flex;gap:10px}.heading .student-data .user-img[data-v-9d838544]{width:100px}.heading .student-data .user-img img[data-v-9d838544]{width:100%}.heading .report-meta[data-v-9d838544]{width:45%}.heading .report-meta .meta[data-v-9d838544]{display:flex;justify-content:space-between;padding:5px 0px;border-bottom:1px solid var(--gray)}
.text-warning h5[data-v-9268f0e0]{color:var(--bs-text-warning)}.text-danger h5[data-v-9268f0e0]{color:var(--bs-text-danger)}.text-primary h5[data-v-9268f0e0]{color:var(--bs-text-primary)}.d-flex[data-v-9268f0e0]{gap:10px}
h1[data-v-16296ab2]{font-size:1.3rem}img[data-v-16296ab2]{width:60%;max-width:209px}@media(min-width: 576px){h1[data-v-16296ab2]{font-size:1.5rem}}@media(min-width: 768px){h1[data-v-16296ab2]{font-size:2rem}}@media(min-width: 992px){h1[data-v-16296ab2]{font-size:2.3rem}}
.report-body[data-v-463376f1]{padding:20px}
[data-v-24e8cab3]{padding:0;margin:0;line-height:normal}.list-item-container .list-item-flex[data-v-24e8cab3]{display:flex;justify-content:space-between;gap:5px}.list-item-container[data-v-24e8cab3]{padding:15px 10px;margin-bottom:15px;box-shadow:0px 8px 10px -10px rgba(97,89,89,0.3607843137);border-radius:3px;border:1px solid rgba(0,0,0,.031)}.list-item-container .list-right[data-v-24e8cab3]{text-align:right;justify-content:center;align-items:end;display:flex;flex-direction:column}.pointer[data-v-24e8cab3]{cursor:pointer}
.image-column[data-v-fa703128]{width:100%;background-size:cover;background-position:center}.info-column[data-v-fa703128]{width:100%}.image-column[data-v-fa703128]::after{content:"";display:block;width:100%;height:100%;background:var(--shade1);opacity:.7;min-height:80px}@media screen and (min-width: 768px){.image-column[data-v-fa703128]{width:30%}.info-column[data-v-fa703128]{width:70%}}
/* People picker (bulk SMS, ID cards): quick-select chips, a list of people to tick, and a selection bar.
   Colours come from the portal tokens (BTSTheme portal.css), so light and dark both work. */

.picker { padding-bottom: 5.5rem; }
.picker__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem 1.5rem; margin-bottom: 1.25rem; }
.picker__title { margin: 0; font-family: 'Fraunces', serif; font-size: 1.7rem; font-weight: 600; color: var(--app-text, #1d1b26); }
.picker__sub { margin: 0.25rem 0 0; font-size: 0.9rem; color: var(--app-muted, #6b6880); }
.picker__total {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--app-muted, #6b6880);
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
}

.picker__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; }
@media (min-width: 992px) {
    .picker__layout { grid-template-columns: minmax(0, 1fr) 300px; }
    .picker__quick { order: 2; position: sticky; top: 6.5rem; max-height: calc(100vh - 8rem); overflow-y: auto; }
    .picker__people { order: 1; }
}

/* Quick select */
.picker__quick {
    padding: 1.1rem 1.1rem 0.4rem;
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: var(--app-radius, 16px);
    box-shadow: var(--app-shadow, none);
}
.picker__group { margin-bottom: 1rem; }
.picker__group-title { display: block; margin-bottom: 0.55rem; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--app-muted, #6b6880); }
.picker__group-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 0; background: none; border: 0; color: var(--app-muted, #6b6880); cursor: pointer; }
.picker__group-toggle i { font-size: 0.7rem; margin-bottom: 0.55rem; transition: transform 0.2s ease; }
.picker__group-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.picker__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }

.picker-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.38rem 0.45rem 0.38rem 0.8rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--app-text, #1d1b26);
    background: var(--app-surface-2, #faf9fd);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 999px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.picker-chip:hover:not(:disabled) { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe); border-color: color-mix(in srgb, var(--app-accent, #7822be) 30%, transparent); }
.picker-chip:active:not(:disabled) { transform: scale(0.97); }
.picker-chip:disabled { opacity: 0.45; cursor: default; }
.picker-chip:focus-visible { outline: 3px solid color-mix(in srgb, var(--app-accent, #7822be) 40%, transparent); outline-offset: 2px; }
.picker-chip__count {
    min-width: 1.6rem;
    padding: 0.05rem 0.4rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-align: center;
    color: var(--app-muted, #6b6880);
    background: var(--app-surface, #fff);
    border-radius: 999px;
}
.picker-chip.is-partial { border-color: color-mix(in srgb, var(--app-accent, #7822be) 45%, transparent); }
.picker-chip.is-on { color: #fff; background: linear-gradient(135deg, #8e3dd3 0%, #5c36c2 100%); border-color: transparent; }
.picker-chip.is-on .picker-chip__count { color: #fff; background: rgba(255, 255, 255, 0.2); }
.picker-chip.is-on:hover { color: #fff; filter: brightness(1.06); }
.picker-chip > i { font-size: 0.7rem; }

/* People */
.picker__people {
    padding: 1.1rem;
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: var(--app-radius, 16px);
    box-shadow: var(--app-shadow, none);
}
.picker__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
@media (min-width: 1200px) { .picker__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.picker-person {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.6rem 0.75rem;
    text-align: left;
    font: inherit;
    color: var(--app-text, #1d1b26);
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 14px;
    cursor: pointer;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
    animation: picker-in 0.3s var(--app-ease, ease) both;
}
.picker-person:hover { border-color: color-mix(in srgb, var(--app-accent, #7822be) 35%, transparent); box-shadow: var(--app-shadow, none); }
.picker-person:focus-visible { outline: 3px solid color-mix(in srgb, var(--app-accent, #7822be) 40%, transparent); outline-offset: 2px; }
.picker-person.is-picked { background: var(--app-accent-soft, #f2eafe); border-color: color-mix(in srgb, var(--app-accent, #7822be) 45%, transparent); }

.picker-person__avatar {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    overflow: hidden;
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--app-accent-ink, #5d1698);
    background: var(--app-accent-soft, #f2eafe);
    border-radius: 50%;
    border: 2px solid transparent;
}
.picker-person__avatar.male, .picker-person__avatar.Male { border-color: color-mix(in srgb, #3b82f6 45%, transparent); }
.picker-person__avatar.female, .picker-person__avatar.Female { border-color: color-mix(in srgb, #ec4899 45%, transparent); }
.picker-person__avatar img { width: 100%; height: 100%; object-fit: cover; }
.picker-person.is-picked .picker-person__avatar { background: var(--app-surface, #fff); }

.picker-person__text { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.picker-person__name { font-size: 0.9rem; font-weight: 700; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.picker-person__meta { font-size: 0.76rem; color: var(--app-muted, #6b6880); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.picker-person__tick {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    font-size: 0.7rem;
    color: transparent;
    border: 2px solid var(--app-border, #e9e6f2);
    border-radius: 50%;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.picker-person:hover .picker-person__tick { border-color: var(--app-accent, #7822be); }
.picker-person.is-picked .picker-person__tick { color: #fff; background: var(--app-accent, #7822be); border-color: var(--app-accent, #7822be); transform: scale(1.05); }

/* Selection bar */
.picker__bar {
    position: fixed;
    left: 50%;
    bottom: 1.25rem;
    z-index: 1030;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: calc(100vw - 1.5rem);
    padding: 0.45rem 0.45rem 0.45rem 1.1rem;
    color: #fff;
    background: linear-gradient(135deg, #2a1470 0%, #4a1c8c 100%);
    border-radius: 999px;
    box-shadow: 0 18px 44px -16px rgba(24, 11, 66, 0.65);
    transform: translateX(-50%);
}
.picker__bar-count { font-size: 0.88rem; margin-right: 0.25rem; white-space: nowrap; }
.picker__bar-clear, .picker__bar-go {
    border: 0;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
    padding: 0.5rem 1rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.2s ease, transform 0.2s ease;
}
.picker__bar-clear { color: rgba(255, 255, 255, 0.85); background: transparent; }
.picker__bar-clear:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }
.picker__bar-go { color: var(--brand-ink, #24115e); background: #fff; }
.picker__bar-go:hover { transform: translateX(2px); }
.picker-bar-enter-active, .picker-bar-leave-active { transition: opacity 0.25s var(--app-ease, ease), transform 0.25s var(--app-ease, ease); }
.picker-bar-enter-from, .picker-bar-leave-to { opacity: 0; transform: translate(-50%, 16px); }
@media (max-width: 767.98px) { .picker__bar { bottom: 5rem; } }

/* Message step (bulk SMS): who it's going to */
.picker-recipients { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 1rem; }
.picker-recipient {
    font-size: 0.76rem;
    font-weight: 600;
    padding: 0.25rem 0.65rem;
    color: var(--app-accent-ink, #5d1698);
    background: var(--app-accent-soft, #f2eafe);
    border-radius: 999px;
}
.picker-recipient--more { color: var(--app-muted, #6b6880); background: var(--app-surface-2, #faf9fd); border: 1px solid var(--app-border, #e9e6f2); }

@keyframes picker-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
    .picker-person, .picker-chip, .picker-person__tick, .picker-bar-enter-active, .picker-bar-leave-active { animation: none; transition: none; }
}


.list-item-container .left {
        word-wrap: anywhere;
        overflow: clip;
        max-width: 500px;
}
.list-item-container .small {
        font-size: 0.8rem;
}

.link[data-v-977dacf2]{color:var(--shadow2);text-decoration:none}.link[data-v-977dacf2]:hover{color:var(--shadow2)}.card[data-v-977dacf2]{background:rgba(0,0,0,0)}
.receipt-table th[data-v-7b68b932]{width:45%;font-weight:500;color:var(--bs-secondary-color, #6c757d)}.amount-row th[data-v-7b68b932],.amount-row td[data-v-7b68b932]{font-size:1.1rem;font-weight:700;color:inherit}@media print{.no-print[data-v-7b68b932]{display:none !important}}
.card[data-v-672f0afe]{min-height:244px;width:100%;background:var(--shade3);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:8px;box-shadow:1px 1px 5px rgba(0,0,0,.1);margin-top:1;border:none;align-items:center}small.badge[data-v-672f0afe]{width:80%;position:relative;top:-5px}.card-img[data-v-672f0afe]{height:120px;width:120px;background-color:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:50%;position:absolute;margin:30px auto 20px auto;left:0;right:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.card-img img[data-v-672f0afe]{height:58%;margin:7%}h6[data-v-672f0afe]{margin:0}.desc[data-v-672f0afe]{width:100%;text-align:center;position:absolute;top:160px;padding-left:20px;padding-right:20px}.primary-text[data-v-672f0afe]{color:var(--shadow2);font-size:16px;font-weight:600;letter-spacing:.7px;margin:5px 0}.secondary-text[data-v-672f0afe]{color:var(--shadow2);font-weight:400;font-size:14px;letter-spacing:1px;margin:5px 0}a.button[data-v-672f0afe]{background-color:hsla(0,0%,100%,.06);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:none;text-align:center;text-decoration:none}.details[data-v-672f0afe]{display:-ms-grid;display:grid;width:100%;height:70px;padding:5px 0;-ms-grid-columns:auto auto;grid-template-columns:auto auto;background-color:hsla(0,0%,100%,.06);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:absolute;bottom:0;border-radius:0 0 8px 8px}.details>div[data-v-672f0afe]{text-align:center}.details>div[data-v-672f0afe]:first-child{border-right:2px solid hsla(0,0%,100%,.08)}a.button[data-v-672f0afe]{width:80%;padding:15px 0;position:absolute;left:10%;top:240px;outline:none}

[data-v-420054ad]{padding:0;margin:0}a[data-v-420054ad]{text-decoration:none}.user-card[data-v-420054ad]{display:flex;max-width:411px;background:var(--highlight1);padding:13px 20px;border-radius:9px;margin-bottom:10px;box-shadow:0px 7px 7px -8px var(--highlight3)}.user-info h2[data-v-420054ad]{font-size:17px;margin-top:10px;margin-bottom:5px;color:var(--shadow2)}.user-img[data-v-420054ad]{width:38%}.user-info[data-v-420054ad]{width:62%}.user-img img[data-v-420054ad]{margin:0 !important;border-radius:50%;width:80%}.user-info .email[data-v-420054ad]{white-space:nowrap;width:100%;max-width:178px;overflow:hidden;text-overflow:ellipsis}.user-img img.Male[data-v-420054ad],.user-img img.male[data-v-420054ad]{border:2px solid var(--blue)}.user-img img.Female[data-v-420054ad],.user-img img.female[data-v-420054ad]{border:2px solid var(--purple)}.user-info>div[data-v-420054ad]{color:var(--shadow2);margin:0;font-size:15px}.status-indicator[data-v-420054ad]{display:inline-block;width:10px;height:10px;border-radius:50%}.status-indicator.active[data-v-420054ad]{background-color:var(--green)}.status-indicator.inactive[data-v-420054ad]{background-color:var(--red)}
/* Student and staff lists in table view (the general table look is in BTSTheme pages.css) */
.people-table__row { cursor: pointer; }
.people-table__n { width: 3rem; color: var(--app-muted, #6b6880); font-variant-numeric: tabular-nums; }
.people-table__go { width: 1%; text-align: right; white-space: nowrap; }
.people-table__tag {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
    color: var(--app-accent-ink, #5d1698);
    background: var(--app-accent-soft, #f2eafe);
    border-radius: 999px;
}
.people-table__email { max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* "View" stays quiet until the row is hovered or focused */
.people-table__go .btn { opacity: 0.75; }
.people-table__row:hover .people-table__go .btn, .people-table__go .btn:focus-visible { opacity: 1; }

[data-v-2555efff]{font-size:1em}.field[data-v-2555efff]{display:flex;gap:10px;margin-bottom:21px}.field div[data-v-2555efff]{width:100%;text-align:center;border-bottom:1px dashed}.field label[data-v-2555efff]{text-transform:uppercase;font-size:.9em;font-style:italic;height:100%;display:ruby;text-wrap:nowrap;margin-bottom:0}
.save-btn[data-v-23f9328d]{display:none}.gap2[data-v-23f9328d]{gap:10px}
[data-v-28dd24a6]{margin:0;padding:0}
/* Messages: a header with the Inbox / Compose switch, then calm message rows.
   Colours come from the portal tokens (BTSTheme portal.css), so light and dark both work. */

.messages-page { max-width: 920px; }
.messages-page__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.messages-page__title { font-family: 'Fraunces', serif; font-size: 1.7rem; font-weight: 600; margin: 0; color: var(--app-text, #1d1b26); }
.messages-page__sub { margin: 0.2rem 0 0; color: var(--app-muted, #6b6880); font-size: 0.88rem; }
.messages-page__body > .row > [class*="col"] > .card > .card-body > .card-title { display: none; }

/* One message in the inbox or a thread */
.chat-item-container {
    cursor: pointer;
    margin-bottom: 0.6rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 14px;
    background: var(--app-surface, #fff);
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
    --animate-duration: 0.45s;
}
.chat-item-container:hover {
    border-color: color-mix(in srgb, var(--app-accent, #7822be) 30%, transparent);
    box-shadow: var(--app-shadow, 0 8px 24px -16px rgba(36, 17, 94, 0.18));
    transform: translateY(-1px);
}
.chat-item-container.bg-unread {
    background: var(--app-accent-soft, #f2eafe);
    border-color: transparent;
    box-shadow: inset 3px 0 0 var(--app-accent, #7822be);
}
.chat-item-container .img-container { flex: 0 0 44px; width: 44px; max-width: 44px; }
.chat-item-container .message-body { flex: 1 1 0; min-width: 0; width: auto; color: var(--app-text, #1d1b26); font-size: 0.9rem; line-height: 1.5; }
.chat-item-container .img-container img { width: 44px; height: 44px; object-fit: cover; border-radius: 50%; }
.chat-item-container h5 { font-size: 0.95rem; font-weight: 700; color: var(--app-text, #1d1b26); }
.chat-item-container h5 em, .chat-item-container em { color: var(--app-muted, #6b6880); font-weight: 500; font-size: 0.8rem; }
.chat-item-container small.text-muted { font-size: 0.75rem; }
.chat-item-container small.text-muted i { opacity: 0.7; margin-right: 0.15rem; }
.chat-item-container .badge.bg-success, .chat-item-container .badge.bg-info {
    background: var(--app-accent-soft, #f2eafe) !important;
    color: var(--app-accent-ink, #5d1698) !important;
    border-radius: 999px;
    font-weight: 700;
    padding: 0.3em 0.7em;
}
.chat-item-container.bg-unread .badge.bg-success, .chat-item-container.bg-unread .badge.bg-info { background: var(--app-surface, #fff) !important; }
.chat-item-container .action-buttons .btn { color: var(--app-accent, #7822be); background: transparent; }
.chat-item-container .action-buttons .btn:hover { background: var(--app-accent-soft, #f2eafe); }

/* Replies: soft bubbles under the message */
.reply-container .chat-item-container {
    font-size: 0.85em;
    background: var(--app-surface-2, #faf9fd);
    padding: 0.7rem 0.85rem;
    border-radius: 12px;
    margin-bottom: 0.5rem;
    box-shadow: none;
}
.reply-container .chat-item-container:hover { transform: none; }
.reply-container .chat-item-container.bg-unread { background: var(--app-accent-soft, #f2eafe); box-shadow: inset 3px 0 0 var(--app-accent, #7822be); }
.reply-container .chat-item-container .img-container { flex-basis: 34px; width: 34px; max-width: 34px; }
.reply-container .chat-item-container .img-container img { width: 34px; height: 34px; }

@media (max-width: 575.98px) {
    .messages-page__head { align-items: stretch; }
    .messages-page__head .btn-group { width: 100%; }
    .messages-page__head .btn-group > .btn { flex: 1 1 0; }
}

@media (prefers-reduced-motion: reduce) {
    .chat-item-container { animation: none !important; transition: none; }
}

.w-90[data-v-099f2b02]{width:90%}
.k-menu-item{position:relative;z-index:0;margin-bottom:6px}.k-menu-item::after{content:"";display:block;width:0%;background:var(--color2);height:100%;position:absolute;top:0;z-index:-1;transition:width 1s}.k-menu-item:hover .k-menu-icon>svg{font-size:27px}.k-menu-item>a{display:flex}.k-menu-item .k-menu-icon{background:var(--color2);color:var(--highlight1);border-radius:50%;width:60px;height:60px;text-align:center;position:relative}.k-menu-item .k-menu-icon>svg{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:20px;transition:font-size 1s}.k-menu-label{position:relative;height:60px;padding-left:10px;width:calc(100% - 60px)}.k-menu-item .k-menu-label h2{font-size:14px;text-transform:uppercase;position:absolute;top:50%;transform:translate(0%, -50%);color:var(--shadow2);transition:color 1s}

.tt-grid table[data-v-f193dbd8] { min-width: 640px;
}
.tt-grid th[data-v-f193dbd8], .tt-grid td[data-v-f193dbd8] { vertical-align: middle; text-align: center; font-size: .85rem;
}
.tt-day[data-v-f193dbd8] { text-align: left !important; white-space: nowrap; position: sticky; left: 0; background: var(--white, #fff); z-index: 1;
}
.tt-break[data-v-f193dbd8] { background: rgba(128, 128, 128, .12) !important;
}
.tt-clickable[data-v-f193dbd8] { cursor: pointer;
}
.tt-clickable[data-v-f193dbd8]:hover { background: rgba(13, 110, 253, .07);
}
.tt-warn[data-v-f193dbd8] { box-shadow: inset 0 -3px 0 #f6c23e;
}
.tt-today > td[data-v-f193dbd8] { background: rgba(28, 200, 138, .08);
}
.tt-today > th[data-v-f193dbd8] { color: #1cc88a;
}
.tt-time[data-v-f193dbd8] { width: 4.5rem; flex-shrink: 0;
}
.tt-narrow[data-v-f193dbd8] { display: none;
}
@media (max-width: 767.98px) {
.tt-wide[data-v-f193dbd8] { display: none;
}
.tt-narrow[data-v-f193dbd8] { display: block;
}
}
@media print {
.tt-wide[data-v-f193dbd8] { display: block !important;
}
.tt-narrow[data-v-f193dbd8] { display: none !important;
}
.tt-grid table[data-v-f193dbd8] { min-width: 0;
}
}


.plain-text[data-v-407b7f76] { white-space: pre-wrap; word-break: break-word;
}

.user-img[data-v-068d2184]{position:relative;margin-bottom:24px;background:var(--highlight1);padding:11px}.user-img img[data-v-068d2184]{margin:0 auto !important;border-radius:50%;width:40%;min-width:150px;display:block}.user-img h3[data-v-068d2184]{text-align:center;position:absolute;padding:2px 12px;font-size:.72em;color:var(--highlight1);bottom:2px;left:50%;transform:translate(-50%);border-radius:30px;background:var(--color1);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:151px}.user-img img.Male+h3[data-v-068d2184],.user-img img.male+h3[data-v-068d2184]{background:var(--blue);color:var(--highlight1)}.user-img img.Female+h3[data-v-068d2184],.user-img img.female+h3[data-v-068d2184]{background:var(--purple);color:var(--highlight1)}.user-img img.Male[data-v-068d2184],.user-img img.male[data-v-068d2184]{border:2px solid var(--blue)}.user-img img.Female[data-v-068d2184],.user-img img.female[data-v-068d2184]{border:2px solid var(--purple)}
.search-menu[data-v-25d8d506]{border:1px solid var(--highlight2);background:var(--highlight1);padding:5px 10px;width:100%;max-width:300px;border-radius:5px}.search-menu[data-v-25d8d506]::placeholder{font-style:italic;color:#c6c6c6;font-size:14px}
.main-body[data-v-01e8fe3f]{padding:15px}.card[data-v-01e8fe3f]{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.card[data-v-01e8fe3f]{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:0 solid rgba(0,0,0,.125);border-radius:.25rem}.card-body[data-v-01e8fe3f]{flex:1 1 auto;min-height:1px;padding:1rem}.gutters-sm[data-v-01e8fe3f]{margin-right:-8px;margin-left:-8px}.gutters-sm>.col[data-v-01e8fe3f],.gutters-sm>[class*=col-][data-v-01e8fe3f]{padding-right:8px;padding-left:8px}.h-100[data-v-01e8fe3f]{height:100% !important}
/* Student and staff profiles (admin end): hero, overview cards, details, records and pass.
   Colours come from the portal tokens (BTSTheme portal.css), so light and dark both work. */

.profile { --profile-gap: 1.25rem; }

/* ---- Hero: the person, on the brand indigo -------------------------------------------------- */
.profile-hero {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem 1.5rem;
    padding: 1.75rem;
    margin-bottom: var(--profile-gap);
    color: #fff;
    border-radius: 22px;
    overflow: hidden;
    background:
        radial-gradient(120% 140% at 100% 0%, rgba(164, 91, 224, 0.45) 0%, rgba(164, 91, 224, 0) 55%),
        linear-gradient(135deg, var(--brand-deep, #180b42) 0%, var(--brand-ink, #24115e) 45%, var(--brand-violet, #5d1698) 100%);
    box-shadow: 0 24px 50px -30px rgba(24, 11, 66, 0.8);
    animation: profile-rise 0.4s var(--app-ease, ease) both;
}
.profile-hero::after {
    content: '';
    position: absolute;
    right: -80px;
    bottom: -120px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    border: 40px solid rgba(255, 255, 255, 0.05);
    pointer-events: none;
}
.profile-hero__avatar {
    position: relative;
    z-index: 1;
    flex: 0 0 96px;
    width: 96px;
    height: 96px;
    display: grid;
    place-items: center;
    font-size: 1.8rem;
    font-weight: 800;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border: 3px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.6);
    overflow: hidden;
}
.profile-hero__avatar.male { border-color: rgba(96, 165, 250, 0.85); }
.profile-hero__avatar.female { border-color: rgba(244, 114, 182, 0.85); }
.profile-hero__avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-hero__who { position: relative; z-index: 1; flex: 1 1 260px; min-width: 0; }
.profile-hero__kind { margin: 0 0 0.2rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); }
.profile-hero__name { margin: 0 0 0.65rem; font-family: 'Fraunces', serif; font-size: clamp(1.45rem, 3vw, 2rem); font-weight: 600; line-height: 1.15; color: #fff; }
.profile-hero__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.profile-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.7rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
.profile-chip i { font-size: 0.72rem; opacity: 0.8; }
.profile-chip--strong { color: var(--brand-ink, #24115e); background: #fff; border-color: transparent; }
.profile-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, 0.6); }
.profile-chip--active .profile-dot { background: #4ade80; }
.profile-chip--inactive .profile-dot, .profile-chip--suspended .profile-dot, .profile-chip--withdrawn .profile-dot { background: #f87171; }
.profile-chip--graduated .profile-dot { background: #60a5fa; }

.profile-hero__actions { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.profile-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.6rem 1.1rem;
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}
.profile-btn:hover, .profile-btn:focus { color: #fff; text-decoration: none; background: rgba(255, 255, 255, 0.22); transform: translateY(-1px); }
.profile-btn--primary { color: var(--brand-ink, #24115e); background: #fff; border-color: transparent; }
.profile-btn--primary:hover, .profile-btn--primary:focus { color: var(--brand-ink, #24115e); background: #fff; }
.profile-btn--icon { width: 40px; height: 40px; padding: 0; justify-content: center; }

/* ---- Layout -------------------------------------------------------------------------------- */
.profile-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--profile-gap); align-items: start; }
@media (min-width: 1100px) { .profile-grid { grid-template-columns: minmax(0, 1fr) 340px; } }
.profile-main, .profile-side { display: flex; flex-direction: column; gap: var(--profile-gap); min-width: 0; }
.profile .profile-section-title { font-family: 'Quicksand', sans-serif !important; margin: 0 0 -0.25rem; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--app-muted, #6b6880); }

.profile-card {
    padding: 1.15rem 1.25rem;
    color: var(--app-text, #1d1b26);
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: var(--app-radius, 16px);
    box-shadow: var(--app-shadow, none);
    animation: profile-rise 0.4s var(--app-ease, ease) both;
}
.profile-card__head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.85rem; }
.profile-card__head .profile-card__title { margin-bottom: 0; }
.profile-card__title { display: flex; align-items: center; gap: 0.55rem; margin: 0 0 0.85rem; font-family: inherit; font-size: 0.95rem; font-weight: 700; letter-spacing: 0; color: var(--app-text, #1d1b26); }
.profile-card__title i {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    font-size: 0.8rem;
    color: var(--app-accent, #7822be);
    background: var(--app-accent-soft, #f2eafe);
    border-radius: 9px;
}
.profile-card__link { font-size: 0.8rem; font-weight: 700; color: var(--app-accent, #7822be); white-space: nowrap; }
.profile-muted { color: var(--app-muted, #6b6880); }
.profile-empty { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.9rem; }
.profile-empty > i { color: var(--dash-info, #4338ca); margin-top: 0.2rem; }

/* ---- Overview ------------------------------------------------------------------------------- */
.profile-overview { display: flex; flex-direction: column; gap: var(--profile-gap); }
.profile-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
@media (min-width: 768px) { .profile-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.profile-stat {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.95rem 1rem;
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: var(--app-radius, 16px);
    box-shadow: var(--app-shadow, none);
    animation: profile-rise 0.4s var(--app-ease, ease) both;
}
.profile-stat:nth-child(2) { animation-delay: 0.04s; }
.profile-stat:nth-child(3) { animation-delay: 0.08s; }
.profile-stat:nth-child(4) { animation-delay: 0.12s; }
.profile-stat__label { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--app-muted, #6b6880); }
.profile-stat__value { font-size: 1.35rem; font-weight: 800; line-height: 1.2; color: var(--app-text, #1d1b26); overflow-wrap: anywhere; }
@media (max-width: 575.98px) { .profile-stat__value { font-size: 1.15rem; } }
.profile-stat__value small { font-size: 0.8rem; font-weight: 600; color: var(--app-muted, #6b6880); }
.profile-stat__hint { font-size: 0.75rem; color: var(--app-muted, #6b6880); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-stat__hint.is-up { color: var(--dash-success, #15803d); }
.profile-stat__hint.is-down { color: var(--dash-danger, #c2410c); }
.profile-stat--loading span { display: block; height: 0.8rem; border-radius: 6px; background: var(--app-surface-2, #faf9fd); animation: profile-pulse 1.2s ease-in-out infinite; }
.profile-stat--loading span + span { height: 1.4rem; width: 60%; margin-top: 0.4rem; }

.profile-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--profile-gap); }
@media (min-width: 768px) {
    .profile-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .profile-card--wide { grid-column: 1 / -1; }
}

.profile-bar { height: 7px; border-radius: 99px; background: var(--app-surface-2, #f1eef8); overflow: hidden; }
.profile-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #8e3dd3, #5c36c2); animation: profile-fill 0.8s var(--app-ease, ease) both; transform-origin: left; }
.profile-bar.is-done span { background: linear-gradient(90deg, #22a35a, #15803d); }

.profile-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
@media (min-width: 992px) { .profile-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.profile-result { padding: 0.85rem 0.95rem; border: 1px solid var(--app-border, #e9e6f2); border-radius: 14px; background: var(--app-surface-2, #faf9fd); }
.profile-result__top { display: flex; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.55rem; }
.profile-result__exam { font-weight: 700; font-size: 0.9rem; }
.profile-result__score { display: flex; flex-direction: column; align-items: flex-end; }
.profile-result__score strong { font-size: 1.15rem; line-height: 1.1; }
.profile-result__subjects { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.6rem; }

.profile-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--app-text, #1d1b26);
    background: var(--app-surface-2, #faf9fd);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 999px;
}
.profile-pill i { font-size: 0.65rem; }
.profile-pill--good { color: var(--dash-success, #15803d); background: var(--dash-success-bg, #ecfaf1); border-color: transparent; }
.profile-pill--weak { color: var(--dash-warning, #a16207); background: var(--dash-warning-bg, #fef6e4); border-color: transparent; }
.profile-pill--accent { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe); border-color: transparent; }

.profile-mini-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.profile-mini-stats div { display: flex; flex-direction: column; }
.profile-mini-stats span { font-weight: 800; font-size: 0.95rem; }
.profile-mini-stats small { font-size: 0.72rem; color: var(--app-muted, #6b6880); }
.profile-wallet {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 1rem;
    padding: 0.65rem 0.8rem;
    font-size: 0.85rem;
    background: var(--app-accent-soft, #f2eafe);
    border-radius: 12px;
}
.profile-wallet i { color: var(--app-accent, #7822be); }
.profile-wallet strong { margin-left: auto; }

.profile-timeline { list-style: none; margin: 0; padding: 0 0 0 0.9rem; border-left: 2px solid var(--app-border, #e9e6f2); display: grid; gap: 0.65rem; }
.profile-timeline li { position: relative; display: flex; justify-content: space-between; gap: 0.75rem; font-size: 0.86rem; }
.profile-timeline li::before { content: ''; position: absolute; left: calc(-0.9rem - 6px); top: 0.35rem; width: 10px; height: 10px; border-radius: 50%; background: var(--app-border, #e9e6f2); border: 2px solid var(--app-surface, #fff); }
.profile-timeline li.is-now::before { background: var(--app-accent, #7822be); }

.profile-teaching { display: grid; gap: 0.6rem; }
.profile-teaching__row { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 0.6rem; align-items: start; }
.profile-teaching__class { font-size: 0.85rem; padding-top: 0.15rem; }
.profile-teaching__subjects { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.profile-subhead { margin: 1.1rem 0 0.6rem; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--app-muted, #6b6880); }
.profile-progress { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
@media (min-width: 992px) { .profile-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; } }
.profile-more { margin-top: 0.75rem; padding: 0; font-size: 0.8rem; font-weight: 700; color: var(--app-accent, #7822be); background: none; border: 0; cursor: pointer; }
.profile-schools { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.profile-schools li { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.55rem 0.7rem; font-size: 0.86rem; border: 1px solid var(--app-border, #e9e6f2); border-radius: 12px; }
.profile-schools li.is-here { border-color: color-mix(in srgb, var(--dash-success, #15803d) 40%, transparent); }

/* ---- Side: details, records, pass ----------------------------------------------------------- */
.profile-details { margin: 0; display: grid; gap: 0; }
.profile-details__row { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 0.75rem; padding: 0.5rem 0; border-bottom: 1px dashed var(--app-border, #e9e6f2); font-size: 0.85rem; }
.profile-details__row:last-child { border-bottom: 0; }
.profile-details__row dt { margin: 0; font-weight: 600; color: var(--app-muted, #6b6880); }
.profile-details__row dd { margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--app-text, #1d1b26); }

.profile-links { display: grid; gap: 0.35rem; }
.profile-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.6rem;
    color: var(--app-text, #1d1b26);
    border-radius: 12px;
    transition: background-color 0.18s ease;
}
.profile-link:hover, .profile-link:focus { color: var(--app-text, #1d1b26); text-decoration: none; background: var(--app-accent-soft, #f2eafe); }
.profile-link__icon { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; font-size: 0.85rem; color: var(--app-accent, #7822be); background: var(--app-surface-2, #faf9fd); border: 1px solid var(--app-border, #e9e6f2); border-radius: 10px; }
.profile-link__text { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.profile-link__label { font-size: 0.88rem; font-weight: 700; }
.profile-link__hint { font-size: 0.74rem; color: var(--app-muted, #6b6880); }
.profile-link__go { font-size: 0.7rem; color: var(--app-muted, #6b6880); transition: transform 0.18s ease; }
.profile-link:hover .profile-link__go { transform: translateX(3px); color: var(--app-accent, #7822be); }

.profile-pass { display: flex; align-items: center; gap: 1rem; }
.profile-pass > :first-child { flex: 0 0 96px; width: 96px; padding: 6px; background: #fff; border-radius: 12px; border: 1px solid var(--app-border, #e9e6f2); }
.profile-pass > :first-child :is(img, canvas, svg) { width: 100% !important; height: auto !important; display: block; }
.profile-pass__code { font-weight: 800; font-size: 1.05rem; letter-spacing: 0.04em; word-break: break-all; }

@keyframes profile-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes profile-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes profile-pulse { 50% { opacity: 0.5; } }
@media (max-width: 575.98px) {
    .profile-hero { padding: 1.25rem; gap: 1rem; }
    .profile-hero__avatar { flex-basis: 72px; width: 72px; height: 72px; font-size: 1.4rem; }
    .profile-hero__actions { width: 100%; }
    .profile-hero__actions .profile-btn--primary { flex: 1 1 auto; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
    .profile-hero, .profile-card, .profile-stat, .profile-bar span { animation: none; }
}


.p-modal[data-v-3fccbb42] { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1060; display: flex; align-items: center; justify-content: center; padding: 16px;
}
.p-modal-card[data-v-3fccbb42] { width: 100%; max-height: calc(100vh - 32px); overflow-y: auto;
}


.house-badge[data-v-cbce9162] { color: #fff; text-shadow: 0 0 2px rgba(0, 0, 0, .6);
}


.add-staff-layer[data-v-7643df31] {
  position: fixed;
  inset: 0;
  z-index: 1055;
  display: grid;
  place-items: center;
  padding: 1rem;
  overflow-y: auto;
  background: rgba(18, 10, 46, 0.5);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  animation: add-staff-fade-7643df31 0.25s var(--app-ease, ease) both;
}
.add-staff-dialog[data-v-7643df31] {
  position: relative;
  width: 100%;
  max-width: 520px;
  padding: 2rem 2rem 1.75rem;
  color: var(--app-text, #1d1b26);
  background: var(--app-surface, #fff);
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 24px;
  box-shadow: 0 30px 80px -30px rgba(24, 11, 66, 0.55);
  animation: add-staff-rise-7643df31 0.35s var(--app-ease, ease) both;
}
.add-staff-dialog__close[data-v-7643df31] {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: var(--app-muted, #6b6880);
  background: var(--app-surface-2, #faf9fd);
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.add-staff-dialog__close[data-v-7643df31]:hover { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.add-staff-dialog__icon[data-v-7643df31] {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin-bottom: 1rem;
  font-size: 1.25rem;
  color: #fff;
  border-radius: 16px;
  background: linear-gradient(135deg, #8e3dd3 0%, #5c36c2 100%);
  box-shadow: 0 12px 24px -12px rgba(120, 34, 190, 0.8);
}
.add-staff-dialog__step[data-v-7643df31] {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--app-accent, #7822be);
}
.add-staff-dialog__title[data-v-7643df31] { margin: 0 2rem 0.5rem 0; font-family: 'Fraunces', serif; font-size: 1.5rem; font-weight: 600; line-height: 1.25; color: var(--app-text, #1d1b26);
}
.add-staff-dialog__lead[data-v-7643df31] { margin: 0 0 1.5rem; font-size: 0.9rem; line-height: 1.55; color: var(--app-muted, #6b6880);
}
.add-staff-dialog__label[data-v-7643df31] { display: block; margin-bottom: 0.4rem; font-size: 0.82rem; font-weight: 700; color: var(--app-text, #1d1b26);
}
.add-staff-dialog__field[data-v-7643df31] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem 0.3rem 0.3rem 0.9rem;
  border: 1px solid var(--app-border, #e9e6f2);
  border-radius: 14px;
  background: var(--app-surface-2, #faf9fd);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.add-staff-dialog__field[data-v-7643df31]:focus-within { border-color: var(--app-accent, #7822be); background: var(--app-surface, #fff); box-shadow: 0 0 0 4px var(--app-accent-soft, #f2eafe);
}
.add-staff-dialog__field.is-invalid[data-v-7643df31] { border-color: var(--dash-danger, #c2410c);
}
.add-staff-dialog__field > i[data-v-7643df31] { color: var(--app-muted, #6b6880);
}
.add-staff-dialog__field input[data-v-7643df31] {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.55rem 0;
  font-size: 0.95rem;
  color: var(--app-text, #1d1b26);
  background: transparent;
  border: 0;
  outline: 0;
  box-shadow: none;
}
.add-staff-dialog__check[data-v-7643df31] {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1.1rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: #fff;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(135deg, #8e3dd3 0%, #5c36c2 100%);
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.add-staff-dialog__check[data-v-7643df31]:not(:disabled):hover { transform: translateY(-1px);
}
.add-staff-dialog__check.is-waiting[data-v-7643df31] { opacity: 0.55;
}
.add-staff-dialog__check[data-v-7643df31]:disabled { opacity: 0.7; cursor: default;
}
.add-staff-dialog__status[data-v-7643df31] { min-height: 0.75rem; margin-top: 0.75rem;
}
.add-staff-note[data-v-7643df31] {
  display: flex;
  gap: 0.6rem;
  margin: 0;
  padding: 0.75rem 0.9rem;
  font-size: 0.85rem;
  line-height: 1.5;
  border-radius: 12px;
  animation: add-staff-fade-7643df31 0.25s ease both;
}
.add-staff-note > i[data-v-7643df31] { margin-top: 0.2rem;
}
.add-staff-note strong[data-v-7643df31] { display: block; color: var(--app-text, #1d1b26);
}
.add-staff-note--info[data-v-7643df31] { color: var(--app-text, #1d1b26); background: var(--dash-info-bg, #eef0ff);
}
.add-staff-note--info > i[data-v-7643df31] { color: var(--dash-info, #4338ca);
}
.add-staff-note--warn[data-v-7643df31] { color: var(--app-text, #1d1b26); background: var(--dash-warning-bg, #fef6e4);
}
.add-staff-note--warn > i[data-v-7643df31] { color: var(--dash-warning, #a16207);
}
.add-staff-note--error[data-v-7643df31] { color: var(--dash-danger, #c2410c); background: var(--dash-danger-bg, #fff1eb);
}
p.add-staff-note--error[data-v-7643df31] { padding: 0.5rem 0.75rem;
}
.add-staff-dialog__actions[data-v-7643df31] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin-top: 1.25rem;
}
.add-staff-btn[data-v-7643df31] {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.65rem 1.25rem;
  font-size: 0.88rem;
  font-weight: 700;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.add-staff-btn--primary[data-v-7643df31] { color: #fff; background: linear-gradient(135deg, #8e3dd3 0%, #5c36c2 100%); box-shadow: 0 10px 22px -12px rgba(120, 34, 190, 0.8);
}
.add-staff-btn--primary[data-v-7643df31]:hover { transform: translateY(-1px);
}
.add-staff-btn--ghost[data-v-7643df31] { color: var(--app-text, #1d1b26); background: var(--app-surface, #fff); border-color: var(--app-border, #e9e6f2);
}
.add-staff-btn--ghost[data-v-7643df31]:hover { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.add-staff-spinner[data-v-7643df31] {
  width: 0.85rem;
  height: 0.85rem;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: add-staff-spin-7643df31 0.7s linear infinite;
}
@keyframes add-staff-fade-7643df31 {
from { opacity: 0;
}
to { opacity: 1;
}
}
@keyframes add-staff-rise-7643df31 {
from { opacity: 0; transform: translateY(14px) scale(0.98);
}
to { opacity: 1; transform: none;
}
}
@keyframes add-staff-spin-7643df31 {
to { transform: rotate(360deg);
}
}
@media (max-width: 575.98px) {
.add-staff-layer[data-v-7643df31] { place-items: end center; padding: 0;
}
.add-staff-dialog[data-v-7643df31] { max-width: none; padding: 1.75rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0;
}
.add-staff-dialog__actions .add-staff-btn[data-v-7643df31] { flex: 1 1 100%; justify-content: center;
}
}
@media (prefers-reduced-motion: reduce) {
.add-staff-layer[data-v-7643df31], .add-staff-dialog[data-v-7643df31], .add-staff-note[data-v-7643df31] { animation: none;
}
.add-staff-spinner[data-v-7643df31] { animation-duration: 2s;
}
}


/* The live-chat bubble sits above everything; tuck it away while the dialog is open */
html.add-staff-open jdiv { visibility: hidden !important;
}

.school[data-v-f28fca10]{width:100%;display:flex;flex-direction:row;margin-top:10px}.logo[data-v-f28fca10]{padding:10px;max-width:112px}.logo img[data-v-f28fca10]{width:100%;max-width:50px}.details[data-v-f28fca10]{width:100%;display:flex;align-items:center;justify-content:space-between}.details h2[data-v-f28fca10]{font-size:1rem;color:var(--blue)}.details p[data-v-f28fca10]{font-size:12px}.close-btn[data-v-f28fca10]{color:var(--red);cursor:pointer}
[data-v-37c96235]{font-size:1em}.field[data-v-37c96235]{display:flex;gap:10px;margin-bottom:21px}.field div[data-v-37c96235]{width:100%;text-align:center;border-bottom:1px dashed}.field label[data-v-37c96235]{text-transform:uppercase;font-size:.9em;font-style:italic;height:100%;display:ruby;text-wrap:nowrap;margin-bottom:0}

.period-row[data-v-72ac92b2] { border-bottom: 1px solid rgba(128, 128, 128, .25);
}


.tt-modal[data-v-b2328cdc] { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1060; display: flex; align-items: center; justify-content: center; padding: 16px;
}
.tt-modal-card[data-v-b2328cdc] { width: 100%; max-width: 480px; max-height: calc(100vh - 32px); overflow-y: auto;
}
.tt-teachers[data-v-b2328cdc] { max-height: 240px; overflow-y: auto;
}
.print-only[data-v-b2328cdc] { display: none;
}
@media print {
.print-only[data-v-b2328cdc] { display: block;
}
.no-print[data-v-b2328cdc] { display: none !important;
}
}


.user-data-card > div {
  display: flex;
  padding: 3px 10px;
  margin-bottom: 5px;
  gap: 14px;
  background: var(--highlight1);
  border-radius: 5px;
  justify-content: space-between;
}
.user-data-card > div .label {
  width: 200px;
  max-width: 37%;
  font-size: 0.8em;
  text-transform: uppercase;
  color: var(--color2);
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.value {
  padding-left: 5px;
}

.stream[data-v-02c1e86d]{position:fixed !important;top:0;left:0;width:100vw;height:100vh;z-index:10000}.design[data-v-02c1e86d]{border:1px solid var(--highlight2);width:calc(100vw - 30px);height:calc(100vh - 30px);position:fixed;top:15px;left:15px;box-sizing:border-box;z-index:10001}.close-btn[data-v-02c1e86d]{position:fixed;z-index:10002;display:block;width:45px;top:25px;right:25px;cursor:pointer;height:45px}.note[data-v-02c1e86d]{position:fixed;z-index:10002;display:block;width:150px;color:var(--highlight2);border:1px solid;padding:10px;bottom:25px;left:25px}.note p[data-v-02c1e86d]{font-size:.6rem;line-height:normal}.close-btn[data-v-02c1e86d]::after{content:"";display:block;width:100%;height:1px;background-color:var(--highlight2);transform:rotate(-40deg) translate(-17px, 11px)}.close-btn[data-v-02c1e86d]::before{content:"";display:block;width:100%;height:1px;background-color:var(--highlight2);transform:rotate(40deg) translate(10px, 20px)}

.cbt-modal[data-v-2c810eaa] { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1060; display: flex; align-items: center; justify-content: center; padding: 16px;
}
.modal-card[data-v-2c810eaa] { width: 100%; max-width: 620px; max-height: calc(100vh - 32px); overflow-y: auto;
}


.cbt-modal[data-v-23f9f68e] { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1060; display: flex; align-items: center; justify-content: center; padding: 16px;
}
.receipt-card[data-v-23f9f68e] { width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow-y: auto;
}
.print-only[data-v-23f9f68e] { display: none;
}
@media print {
.print-only[data-v-23f9f68e] { display: block;
}
.no-print[data-v-23f9f68e] { display: none !important;
}
}


.book-list[data-v-0de75146] { max-height: 50vh; overflow-y: auto;
}
@media (min-width: 992px) {
.cart[data-v-0de75146] { position: sticky; top: 1rem;
}
}


.msg-bar[data-v-67f0e775] { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem;
}
.msg-seg[data-v-67f0e775] { display: inline-flex; padding: 4px; gap: 2px; border-radius: 999px; background: var(--app-surface, #fff); border: 1px solid var(--app-border, #e9e6f2);
}
.msg-seg button[data-v-67f0e775] { border: 0; background: transparent; padding: 0.4rem 1rem; border-radius: 999px; font-weight: 700; font-size: 0.85rem; color: var(--app-muted, #6b6880);
}
.msg-seg button.on[data-v-67f0e775] { background: var(--app-accent, #7822be); color: #fff;
}
.msg-seg--sm button[data-v-67f0e775] { padding: 0.25rem 0.7rem;
}
.msg-note[data-v-67f0e775] { display: flex; gap: 0.5rem; align-items: baseline; margin: 0; padding: 0.7rem 1rem; border-radius: 12px; font-size: 0.88rem;
  color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.msg-layout[data-v-67f0e775] { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: var(--dash-gap, 1.25rem); align-items: start;
}
.msg-list[data-v-67f0e775] { padding: 0.75rem; position: sticky; top: 1rem;
}
.msg-group + .msg-group[data-v-67f0e775] { margin-top: 0.75rem;
}
.msg-group__title[data-v-67f0e775] { margin: 0.25rem 0.5rem 0.35rem; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--app-muted, #6b6880);
}
.msg-item[data-v-67f0e775] { display: block; width: 100%; text-align: left; border: 0; background: transparent; padding: 0.6rem 0.7rem; border-radius: 12px; color: var(--app-text, #1d1b26);
}
.msg-item[data-v-67f0e775]:hover { background: var(--app-surface-2, #faf9fd);
}
.msg-item.on[data-v-67f0e775] { background: var(--app-accent-soft, #f2eafe);
}
.msg-item__label[data-v-67f0e775] { display: block; font-weight: 700; font-size: 0.9rem;
}
.msg-item__meta[data-v-67f0e775] { display: flex; align-items: center; gap: 0.45rem; margin-top: 0.2rem; font-size: 0.75rem; color: var(--app-muted, #6b6880);
}
.msg-pill[data-v-67f0e775] { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 999px; font-size: 0.68rem; font-weight: 700; vertical-align: middle;
  color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.msg-pill--off[data-v-67f0e775] { color: color-mix(in srgb, #c27a00 65%, var(--app-text, #1d1b26)) !important; background: rgba(245, 166, 35, 0.16);
}
.msg-work[data-v-67f0e775] { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--dash-gap, 1.25rem); min-width: 0;
}
@media (min-width: 1400px) {
.msg-work[data-v-67f0e775] { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: start;
}
.msg-preview[data-v-67f0e775] { position: sticky; top: 1rem;
}
}
@media (max-width: 991.98px) {
.msg-layout[data-v-67f0e775] { grid-template-columns: minmax(0, 1fr);
}
.msg-list[data-v-67f0e775] { position: static;
}
}
.msg-editor__head[data-v-67f0e775] { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start;
}
.msg-editor__title[data-v-67f0e775] { font-family: 'Fraunces', serif !important; font-weight: 600; font-size: 1.35rem; margin: 0 0 0.25rem; color: var(--app-text, #1d1b26);
}
.msg-chips[data-v-67f0e775] { display: flex; flex-wrap: wrap; gap: 0.35rem;
}
.msg-unsaved[data-v-67f0e775] { white-space: nowrap; font-size: 0.75rem; font-weight: 700; padding: 0.25rem 0.6rem; border-radius: 999px; color: color-mix(in srgb, #c27a00 65%, var(--app-text, #1d1b26)) !important; background: rgba(245, 166, 35, 0.16);
}
.msg-switches[data-v-67f0e775] { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; margin: 1.1rem 0 0.25rem;
  padding: 0.75rem 1rem; border-radius: 12px; background: var(--app-surface-2, #faf9fd); border: 1px solid var(--app-border, #e9e6f2);
}
.msg-channels[data-v-67f0e775] { display: flex; flex-wrap: wrap; gap: 0.4rem;
}
.msg-channel[data-v-67f0e775] { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; padding: 0.3rem 0.8rem; border-radius: 999px; cursor: pointer;
  font-size: 0.82rem; font-weight: 700; border: 1px solid var(--app-border, #e9e6f2); background: var(--app-surface, #fff); color: var(--app-muted, #6b6880);
}
.msg-channel input[data-v-67f0e775] { position: absolute; opacity: 0; pointer-events: none;
}
.msg-channel.on[data-v-67f0e775] { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe); border-color: transparent;
}
.msg-channel.muted.on[data-v-67f0e775] { color: color-mix(in srgb, #c27a00 65%, var(--app-text, #1d1b26)) !important; background: rgba(245, 166, 35, 0.16);
}
.msg-channel[data-v-67f0e775]:focus-within { outline: 2px solid var(--app-accent, #7822be); outline-offset: 2px;
}
.msg-tabs[data-v-67f0e775] { display: flex; gap: 0.25rem; margin: 1rem 0 0.75rem; border-bottom: 1px solid var(--app-border, #e9e6f2);
}
.msg-tabs button[data-v-67f0e775] { display: inline-flex; align-items: center; gap: 0.45rem; border: 0; background: transparent; padding: 0.55rem 0.9rem;
  font-weight: 700; font-size: 0.88rem; color: var(--app-muted, #6b6880); border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.msg-tabs button.on[data-v-67f0e775] { color: var(--app-accent, #7822be); border-bottom-color: var(--app-accent, #7822be);
}
.msg-fields[data-v-67f0e775] { display: flex; flex-direction: column;
}
.msg-label[data-v-67f0e775] { display: block; margin: 0.6rem 0 0.3rem; font-size: 0.8rem; font-weight: 700; color: var(--app-text, #1d1b26);
}
.msg-hint[data-v-67f0e775] { margin: 0.35rem 0 0; font-size: 0.78rem; color: var(--app-muted, #6b6880);
}
.msg-hint.warn[data-v-67f0e775] { color: color-mix(in srgb, #c27a00 65%, var(--app-text, #1d1b26));
}
.msg-rte[data-v-67f0e775] .trumbowyg-box { margin: 0; border-radius: 12px; border-color: var(--app-border, #e9e6f2); overflow: hidden;
}
.msg-rte[data-v-67f0e775] .trumbowyg-editor { min-height: 180px; font-size: 0.95rem; line-height: 1.6;
}
.msg-vars[data-v-67f0e775] { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px dashed var(--app-border, #e9e6f2);
}
.msg-var[data-v-67f0e775] { margin: 0 0.3rem 0.35rem 0; padding: 0.2rem 0.65rem; border-radius: 999px; font-size: 0.76rem; font-weight: 700;
  border: 1px dashed var(--app-accent, #7822be); background: transparent; color: var(--app-accent, #7822be);
}
.msg-var[data-v-67f0e775]:hover { background: var(--app-accent-soft, #f2eafe);
}
.msg-actions[data-v-67f0e775] { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 1rem;
}
.msg-actions .btn[data-v-67f0e775] { border-radius: 999px; font-weight: 700;
}
.msg-history[data-v-67f0e775] { margin-top: 0.75rem; border-top: 1px solid var(--app-border, #e9e6f2);
}
.msg-history__row[data-v-67f0e775] { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem; padding: 0.55rem 0; border-bottom: 1px solid var(--app-border, #e9e6f2); font-size: 0.86rem;
}
.msg-preview__head[data-v-67f0e775] { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; margin-bottom: 0.25rem;
}
.msg-subject[data-v-67f0e775] { margin: 0 0 0.6rem; font-weight: 700; font-size: 0.92rem;
}
.msg-subject span[data-v-67f0e775] { display: inline-block; margin-right: 0.5rem; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--app-muted, #6b6880);
}
.msg-frame[data-v-67f0e775] { margin: 0 auto; border-radius: 14px; overflow: hidden; border: 1px solid var(--app-border, #e9e6f2); background: #f4f2fa; transition: max-width 0.25s ease;
}
.msg-frame.desktop[data-v-67f0e775] { max-width: 100%;
}
.msg-frame.phone[data-v-67f0e775] { max-width: 390px;
}
.msg-frame iframe[data-v-67f0e775] { display: block; width: 100%; height: 720px; border: 0;
}
.msg-phone[data-v-67f0e775] { max-width: 340px; margin: 0 auto; padding: 1.25rem 1rem 2rem; border-radius: 28px; background: var(--app-surface-2, #faf9fd); border: 1px solid var(--app-border, #e9e6f2);
}
.msg-bubble[data-v-67f0e775] { max-width: 85%; padding: 0.7rem 0.9rem; border-radius: 18px 18px 18px 4px; background: #e9e6f2; color: #1d1b26; font-size: 0.9rem; line-height: 1.45; white-space: pre-wrap;
}
.msg-bell[data-v-67f0e775] { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.9rem 1rem; border-radius: 14px; border: 1px solid var(--app-border, #e9e6f2);
}
.msg-bell__icon[data-v-67f0e775] { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px;
  color: var(--app-accent, #7822be); background: var(--app-accent-soft, #f2eafe);
}
.msg-settings__grid[data-v-67f0e775] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0.5rem 1.5rem; margin-bottom: 1rem;
}
.msg-color[data-v-67f0e775] { width: 44px; height: 38px; padding: 2px; border-radius: 10px; border: 1px solid var(--app-border, #e9e6f2); background: transparent;
}


.msg-filters[data-v-fe29915a] { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem;
}
.msg-filters .form-control[data-v-fe29915a] { max-width: 220px; border-radius: 999px;
}
.msg-table[data-v-fe29915a] { margin: 0;
}
.msg-table th[data-v-fe29915a] { font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.07em; color: var(--app-muted, #6b6880); border-top: 0;
}
.msg-table td[data-v-fe29915a] { vertical-align: middle; font-size: 0.88rem;
}
.msg-error[data-v-fe29915a] { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.msg-limit[data-v-fe29915a] { width: 84px;
}
.msg-lanes[data-v-fe29915a] { display: flex; flex-wrap: wrap; gap: 0.4rem;
}
.msg-label[data-v-fe29915a] { display: block; margin: 0.6rem 0 0.3rem; font-size: 0.8rem; font-weight: 700;
}
.msg-hint[data-v-fe29915a] { margin: 0.35rem 0 0; font-size: 0.78rem; color: var(--app-muted, #6b6880);
}
.msg-settings__grid[data-v-fe29915a] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0.25rem 1.5rem; margin-bottom: 1rem;
}
.msg-pill[data-v-fe29915a] { display: inline-block; padding: 0.12rem 0.55rem; border-radius: 999px; font-size: 0.72rem; font-weight: 700; color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.msg-pill--success[data-v-fe29915a], .msg-pill--ok[data-v-fe29915a] { color: color-mix(in srgb, #1f9a46 65%, var(--app-text, #1d1b26)); background: rgba(31, 154, 70, 0.14);
}
.msg-pill--danger[data-v-fe29915a] { color: color-mix(in srgb, #d92d20 70%, var(--app-text, #1d1b26)); background: rgba(217, 45, 32, 0.13);
}
.msg-pill--info[data-v-fe29915a] { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe);
}
.msg-pill--secondary[data-v-fe29915a], .msg-pill--muted[data-v-fe29915a] { color: var(--app-muted, #6b6880); background: rgba(107, 104, 128, 0.14);
}
.msg-pill--off[data-v-fe29915a] { color: color-mix(in srgb, #c27a00 65%, var(--app-text, #1d1b26)) !important; background: rgba(245, 166, 35, 0.16);
}


.att-day[data-v-29813d48] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;
}
.att-day__input[data-v-29813d48] { width: auto; min-width: 11rem;
}
.att-search[data-v-29813d48] { width: 11rem;
}
.att-times[data-v-29813d48] { display: flex; flex-direction: column; align-items: flex-end; gap: 0.2rem;
}
.att-group + .att-group[data-v-29813d48] { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--app-border, #e9e6f2);
}
.att-group__head[data-v-29813d48] { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.55rem;
}
.att-group .section-bars li[data-v-29813d48] { grid-template-columns: 5.5rem minmax(0, 1fr) auto;
}

span.item[data-v-4eb17f4a]{padding:2px 10px;background-color:var(--shade3);border-radius:50px}span.item>span[data-v-4eb17f4a]{color:#fff;position:relative;right:-17px;padding:0px 10px;border-radius:50px;font-weight:600;bottom:5px}.items[data-v-4eb17f4a]{display:flex;justify-content:start;gap:15px;flex-wrap:wrap}

.print-only[data-v-39598004] { display: none;
}
@media print {
.print-only[data-v-39598004] { display: block;
}
}


.cbt-modal[data-v-392adcb8] { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1060; display: flex; align-items: center; justify-content: center; padding: 16px;
}
.cbt-modal-card[data-v-392adcb8] { width: 100%; max-width: 640px; max-height: calc(100vh - 32px); overflow-y: auto;
}


.question-body[data-v-07c808dd] { white-space: pre-wrap;
}


.question-body[data-v-e3ec4cb2] { white-space: pre-wrap;
}
.cbt-modal[data-v-e3ec4cb2] { position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1060; display: flex; align-items: center; justify-content: center; padding: 16px;
}
.cbt-modal-card[data-v-e3ec4cb2] { width: 100%; max-width: 680px; max-height: calc(100vh - 32px); overflow-y: auto;
}
.picker-list[data-v-e3ec4cb2] { max-height: 45vh; overflow-y: auto;
}


.question-body[data-v-29798cc1] { white-space: pre-wrap;
}
.print-only[data-v-29798cc1] { display: none;
}
@media print {
.print-only[data-v-29798cc1] { display: block;
}
.no-print[data-v-29798cc1] { display: none !important;
}
}


.yt-frame[data-v-cead2a4e] { position: relative; width: 100%; padding-top: 56.25%; background: #000; border-radius: .5rem; overflow: hidden;
}
.yt-frame iframe[data-v-cead2a4e], .yt-cover[data-v-cead2a4e] { position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
.yt-cover[data-v-cead2a4e] { padding: 0; background: #000; cursor: pointer;
}
.yt-cover img[data-v-cead2a4e] { width: 100%; height: 100%; object-fit: cover; opacity: .7;
}
.yt-play[data-v-cead2a4e] { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, .7); color: #fff; padding: .5rem 1rem; border-radius: 2rem;
}


.house-badge[data-v-8865d736] { color: #fff; text-shadow: 0 0 2px rgba(0, 0, 0, .6);
}
.print-only[data-v-8865d736] { display: none;
}
@media print {
.print-only[data-v-8865d736] { display: block;
}
}


.swatch[data-v-c3610f90] { display: inline-block; width: 12px; height: 12px; border-radius: 50%; vertical-align: middle;
}
.colour[data-v-c3610f90] { width: 44px; padding: 2px;
}
.print-only[data-v-c3610f90] { display: none;
}
@media print {
.print-only[data-v-c3610f90] { display: block;
}
}

.no-access[data-v-8637cb78]{margin-top:30px}.security-check[data-v-12176841][data-v-8637cb78]{position:fixed;width:100vw;height:100vh;background-color:hsla(0,0%,100%,.69);display:flex;flex-direction:column;top:0;left:0;justify-content:center;align-items:center}.security-check img[data-v-8637cb78]{display:block;width:80px}
.dropdown-actions [class*=fa-]::before{content:"...";font-size:1.8em;line-height:0}.dropdown-actions{text-align:center;position:relative}.dropdown-actions .actions-container{display:flex;flex-direction:column;display:none;transition:all 1s linear;position:absolute;background:var(--highlight2);border-radius:5px;right:0;z-index:2}.dropdown-actions .actions-container .action-btn{padding:8px 12px;color:var(--shadow2);text-decoration:none;display:block;transition:all 1s linear}.dropdown-actions .actions-container .action-btn:hover{color:var(--shadow1);background-color:var(--highlight1)}.dropdown-actions .actions-container.show{display:flex}.dropdown-actions .show-btn{cursor:pointer}
.table-responsive[data-v-6c9fae72]{overflow:visible !important;overflow-x:clip}
.card[data-v-25b3bdaf]{background-color:var(--highlight1)}

.move[data-v-15c94e2a] { max-width: 130px;
}
.print-only[data-v-15c94e2a] { display: none;
}
@media print {
.print-only[data-v-15c94e2a] { display: block;
}
.no-print[data-v-15c94e2a] { display: none !important;
}
.room[data-v-15c94e2a] { page-break-inside: avoid;
}
}


.cat-name[data-v-49fe80fc] { flex: 1 1 180px; min-width: 150px;
}
.cat-kind[data-v-49fe80fc] { flex: 0 1 150px;
}
.cat-points[data-v-49fe80fc] { flex: 0 0 80px;
}


/* A sheet of paper: the same colours in light and dark mode, and when printed */
.invoice-paper[data-v-6a863066] {
  background: #fff;
  color: #111;
  max-width: 820px;
  margin: 0 auto 2rem;
  padding: 40px 44px;
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .18);
  font-size: 14px;
  line-height: 1.45;
}
.inv-head[data-v-6a863066] { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 28px;
}
.inv-brand[data-v-6a863066] { display: flex; align-items: center; gap: 10px; font-size: 26px; font-weight: 700; color: #111; margin-bottom: 6px;
}
.inv-logo[data-v-6a863066] { width: 52px; height: 52px; object-fit: contain;
}
.inv-wordmark[data-v-6a863066] { display: flex; flex-direction: column; line-height: 1.1;
}
.inv-name[data-v-6a863066] { font-family: var(--fraunces-font) !important; color: #000;
}
.inv-tagline[data-v-6a863066] { font-family: var(--handwritten-font) !important; color: var(--indigo-300); font-size: 16px; font-weight: 400;
}
.inv-title[data-v-6a863066] { text-align: right;
}
.inv-word[data-v-6a863066] { font-size: 22px; font-weight: 700; letter-spacing: .08em; color: #111; margin-bottom: 6px;
}
.inv-meta[data-v-6a863066] { margin-left: auto;
}
.inv-meta th[data-v-6a863066] { color: #555; font-weight: 400; padding: 1px 12px 1px 0; text-align: left;
}
.inv-meta td[data-v-6a863066] { font-weight: 600; padding: 1px 0; text-align: right;
}
.inv-parties[data-v-6a863066] { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 24px;
}
.inv-label[data-v-6a863066] { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #555; margin-bottom: 4px;
}
.inv-school[data-v-6a863066] { font-size: 16px; font-weight: 700;
}
.inv-pre[data-v-6a863066] { white-space: pre-line;
}
.inv-sub[data-v-6a863066] { font-size: 12px; color: #555;
}
.inv-lines[data-v-6a863066] { width: 100%; border-collapse: collapse; margin-bottom: 20px;
}
.inv-lines th[data-v-6a863066], .inv-lines td[data-v-6a863066] { padding: 9px 8px; border-bottom: 1px solid #ddd; text-align: left; color: #111; background: #fff !important;
}
.inv-lines thead th[data-v-6a863066] { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #555; border-bottom: 2px solid #111;
}
.inv-lines .num[data-v-6a863066] { text-align: right; white-space: nowrap;
}
.inv-lines tfoot th[data-v-6a863066] { text-align: right; font-weight: 400; border-bottom: 0;
}
.inv-lines tfoot td[data-v-6a863066] { border-bottom: 0;
}
.inv-lines tfoot .total th[data-v-6a863066], .inv-lines tfoot .total td[data-v-6a863066] { font-weight: 700; border-top: 2px solid #111;
}
.inv-lines tfoot .due th[data-v-6a863066], .inv-lines tfoot .due td[data-v-6a863066] { font-weight: 700; font-size: 16px;
}
.inv-lines.compact td[data-v-6a863066] { padding: 5px 8px;
}
.inv-block[data-v-6a863066] { margin-bottom: 18px;
}
.inv-foot[data-v-6a863066] { margin-top: 28px; padding-top: 12px; border-top: 1px solid #ddd; color: #555; font-size: 12px; text-align: center;
}
@media (max-width: 575px) {
.invoice-paper[data-v-6a863066] { padding: 22px 16px;
}
.inv-title[data-v-6a863066] { text-align: left;
}
.inv-meta[data-v-6a863066] { margin-left: 0;
}
}


.overdue[data-v-78c7e2e0] { color: var(--orange-500); font-weight: 600;
}

/* School switcher: the sidebar card, the topbar button and the panel they open.
   Colours come from the portal tokens (BTSTheme portal.css), so light and dark both work. */

.school-switch {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    font: inherit;
    text-align: left;
    color: inherit;
    background: none;
    border: 0;
    cursor: pointer;
    transition: background-color 0.2s var(--app-ease, ease), border-color 0.2s var(--app-ease, ease), box-shadow 0.2s var(--app-ease, ease);
}
.school-switch.is-static { cursor: default; }
.school-switch:focus-visible { outline: 3px solid color-mix(in srgb, var(--brand-glow, #a45be0) 60%, transparent); outline-offset: 2px; }
.school-switch__mark, .school-row__mark { flex: 0 0 auto; display: grid; place-items: center; overflow: hidden; }
.school-switch__mark { width: 42px; height: 42px; border-radius: 12px; background: #fff; }
img.school-switch__mark, img.school-row__mark { object-fit: contain; padding: 3px; }
.school-mark-initials {
    font-weight: 800;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    color: #fff;
    background: linear-gradient(135deg, #8e3dd3 0%, #5c36c2 100%);
}
.school-switch__text { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.school-switch__name { font-weight: 700; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.school-switch__hint { font-size: 0.7rem; opacity: 0.7; margin-top: 0.15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.school-switch__caret { font-size: 0.7rem; opacity: 0.7; transition: transform 0.25s var(--app-ease, ease); }
.school-switch.is-open .school-switch__caret { transform: rotate(180deg); }

/* Sidebar card: glass on the indigo */
.school-switch--sidebar {
    padding: 0.65rem 0.75rem;
    margin: 0.35rem 0 0.6rem;
    border-radius: 16px;
    color: #fff;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.school-switch--sidebar .school-switch__name { font-size: 0.78rem; letter-spacing: 0.01em; }
.school-switch--sidebar:not(.is-static):hover, .school-switch--sidebar.is-open { background: rgba(255, 255, 255, 0.13); border-color: rgba(255, 255, 255, 0.2); }

/* Collapsed rail: just the logo */
@media (min-width: 768px) {
    #accordionSidebar.toggled .school-switch--sidebar { justify-content: center; padding: 0.45rem; gap: 0; }
    #accordionSidebar.toggled .school-switch--sidebar .school-switch__text,
    #accordionSidebar.toggled .school-switch--sidebar .school-switch__caret { display: none; }
    #accordionSidebar.toggled .school-switch--sidebar .school-switch__mark { width: 38px; height: 38px; }
}

/* Topbar button: a quiet pill */
.school-switch--topbar {
    width: auto;
    max-width: 260px;
    gap: 0.5rem;
    padding: 0.25rem 0.7rem 0.25rem 0.25rem;
    border-radius: 999px;
    color: var(--app-text, #1d1b26);
    background: var(--app-surface-2, #faf9fd);
    border: 1px solid var(--app-border, #e9e6f2);
}
.school-switch--topbar .school-switch__mark { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--app-border, #e9e6f2); }
.school-switch--topbar .school-switch__mark.school-mark-initials { font-size: 0.68rem; border: 0; }
.school-switch--topbar .school-switch__name { font-size: 0.8rem; -webkit-line-clamp: 1; white-space: nowrap; text-overflow: ellipsis; display: block; }
.school-switch--topbar:not(.is-static):hover, .school-switch--topbar.is-open { border-color: color-mix(in srgb, var(--app-accent, #7822be) 35%, transparent); background: var(--app-accent-soft, #f2eafe); }
@media (max-width: 1199.98px) {
    .school-switch--topbar { padding: 0.2rem; gap: 0; }
    .school-switch--topbar .school-switch__text, .school-switch--topbar .school-switch__caret { display: none; }
}

/* ---- Panel ---------------------------------------------------------------------------------- */

.school-panel-layer { position: fixed; inset: 0; z-index: 1060; }
.school-panel {
    position: fixed;
    display: flex;
    flex-direction: column;
    max-height: min(520px, calc(100vh - 24px));
    color: var(--app-text, #1d1b26);
    background: var(--app-surface, #fff);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 20px;
    box-shadow: 0 24px 60px -24px rgba(24, 11, 66, 0.45), 0 2px 6px rgba(24, 11, 66, 0.06);
    overflow: hidden;
    transform-origin: top left;
}
.school-panel--topbar { transform-origin: top right; }
.school-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem 0.6rem; }
.school-panel__title { font-weight: 800; font-size: 1rem; }
.school-panel__sub { font-size: 0.78rem; color: var(--app-muted, #6b6880); margin-top: 0.1rem; }
.school-panel__close {
    width: 32px; height: 32px; border-radius: 50%; border: 0;
    color: var(--app-muted, #6b6880); background: var(--app-surface-2, #faf9fd);
    display: grid; place-items: center; cursor: pointer;
}
.school-panel__close:hover { color: var(--app-accent-ink, #5d1698); background: var(--app-accent-soft, #f2eafe); }
.school-panel__search { position: relative; padding: 0 1.1rem 0.6rem; }
.school-panel__search i { position: absolute; left: 1.9rem; top: 0.72rem; font-size: 0.8rem; color: var(--app-muted, #6b6880); }
.school-panel .school-panel__search input[type="search"] {
    width: 100%;
    padding: 0.55rem 0.8rem 0.55rem 2.1rem !important;
    font-size: 0.86rem;
    color: var(--app-text, #1d1b26);
    background: var(--app-surface-2, #faf9fd);
    border: 1px solid var(--app-border, #e9e6f2);
    border-radius: 12px;
    outline: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.school-panel .school-panel__search input[type="search"]:focus { border-color: var(--app-accent, #7822be); box-shadow: 0 0 0 4px var(--app-accent-soft, #f2eafe); background: var(--app-surface, #fff); }
.school-panel__list { overflow-y: auto; padding: 0 0.55rem 0.7rem; overscroll-behavior: contain; }
.school-panel__group {
    padding: 0.7rem 0.6rem 0.3rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--app-muted, #6b6880);
}
.school-panel__empty { padding: 1.5rem 0.75rem; text-align: center; font-size: 0.85rem; color: var(--app-muted, #6b6880); }

.school-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.55rem 0.6rem;
    text-align: left;
    font: inherit;
    color: inherit;
    background: transparent;
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.school-row__mark { width: 38px; height: 38px; border-radius: 10px; background: #fff; border: 1px solid var(--app-border, #e9e6f2); }
.school-row__mark.school-mark-initials { border: 0; font-size: 0.75rem; }
/* Initials sit on the accent gradient wherever they appear (the white logo tile is for images only) */
.school-switch__mark.school-mark-initials, .school-row__mark.school-mark-initials { background: linear-gradient(135deg, #8e3dd3 0%, #5c36c2 100%); color: #fff; }
.school-row__text { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.school-row__name { font-weight: 700; font-size: 0.86rem; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.school-row__detail { font-size: 0.74rem; color: var(--app-muted, #6b6880); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 0.1rem; }
.school-row__go { font-size: 0.75rem; color: var(--app-accent, #7822be); opacity: 0; transform: translateX(-4px); transition: opacity 0.15s ease, transform 0.15s ease; }
.school-row:hover, .school-row.is-active, .school-row:focus-visible { background: var(--app-accent-soft, #f2eafe); outline: 0; }
.school-row:hover .school-row__go, .school-row.is-active .school-row__go { opacity: 1; transform: none; }
.school-row.is-current { cursor: default; background: var(--app-surface-2, #faf9fd); opacity: 1; }
.school-row__badge {
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    color: var(--dash-success, #15803d);
    background: var(--dash-success-bg, #ecfaf1);
}

/* Opening and closing */
.school-panel-enter-active, .school-panel-leave-active { transition: opacity 0.2s var(--app-ease, ease); }
.school-panel-enter-active .school-panel, .school-panel-leave-active .school-panel { transition: transform 0.22s var(--app-ease, ease), opacity 0.22s var(--app-ease, ease); }
.school-panel-enter-from, .school-panel-leave-to { opacity: 0; }
.school-panel-enter-from .school-panel, .school-panel-leave-to .school-panel { transform: translateY(-6px) scale(0.98); opacity: 0; }

/* Phones: a sheet that rises from the bottom, over a soft backdrop */
@media (max-width: 767.98px) {
    .school-panel-layer { background: rgba(18, 10, 46, 0.45); }
    .school-panel { left: 0 !important; right: 0; bottom: 0; top: auto !important; width: auto !important; max-height: 82vh; border-radius: 22px 22px 0 0; padding-bottom: env(safe-area-inset-bottom); }
    .school-panel::before { content: ''; display: block; width: 40px; height: 4px; border-radius: 4px; margin: 0.6rem auto 0; background: var(--app-border, #e9e6f2); }
    .school-panel-enter-from .school-panel, .school-panel-leave-to .school-panel { transform: translateY(40px); }
    .school-row { padding: 0.7rem 0.6rem; }
}

/* The live-chat bubble sits above everything; tuck it away while the panel is open */
html.school-panel-open jdiv { visibility: hidden !important; }

/* "Now working in …" */
.school-switch-toast {
    position: fixed;
    left: 50%;
    bottom: 1.5rem;
    z-index: 1070;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    max-width: calc(100vw - 2rem);
    padding: 0.7rem 1.1rem;
    font-size: 0.86rem;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #2a1470 0%, #4a1c8c 100%);
    border-radius: 999px;
    box-shadow: 0 16px 40px -16px rgba(24, 11, 66, 0.6);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 12px);
    transition: opacity 0.3s var(--app-ease, ease), transform 0.3s var(--app-ease, ease);
}
.school-switch-toast.is-shown { opacity: 1; transform: translate(-50%, 0); }
.school-switch-toast span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 767.98px) { .school-switch-toast { bottom: 5.5rem; } }

@media (prefers-reduced-motion: reduce) {
    .school-switch, .school-switch__caret, .school-row, .school-row__go, .school-switch-toast,
    .school-panel-enter-active, .school-panel-leave-active, .school-panel-enter-active .school-panel, .school-panel-leave-active .school-panel { transition: none !important; }
}


.school-switch-empty[data-v-1951eaa2] {
        font-size: 0.75rem;
        color: rgba(255, 255, 255, 0.75);
        padding: 0.5rem 0.25rem;
}

