/* src/styles.css */
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root,
  :host {
    --font-mono:
      ui-monospace,
      SFMono-Regular,
      Menlo,
      Monaco,
      Consolas,
      "Liberation Mono",
      "Courier New",
      monospace;
    --spacing: 0.25rem;
    --container-sm: 24rem;
    --container-md: 28rem;
    --container-2xl: 42rem;
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1 / 0.75);
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --tracking-tight: -0.025em;
    --tracking-wide: 0.025em;
    --leading-snug: 1.375;
    --leading-relaxed: 1.625;
    --radius-xl: 0.75rem;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font);
    --default-mono-font-family: var(--font-mono);
  }
}
@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html,
  :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b,
  strong {
    font-weight: bolder;
  }
  code,
  kbd,
  samp,
  pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring:where(:not(iframe)) {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    display: block;
    vertical-align: middle;
  }
  img,
  video {
    max-width: 100%;
    height: auto;
  }
  button,
  input,
  select,
  optgroup,
  textarea,
  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
    }
    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit,
  ::-webkit-datetime-edit-year-field,
  ::-webkit-datetime-edit-month-field,
  ::-webkit-datetime-edit-day-field,
  ::-webkit-datetime-edit-hour-field,
  ::-webkit-datetime-edit-minute-field,
  ::-webkit-datetime-edit-second-field,
  ::-webkit-datetime-edit-millisecond-field,
  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button,
  input:where([type=button], [type=reset], [type=submit]),
  ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden=until-found])) {
    display: none !important;
  }
}
@layer utilities {
  .visible {
    visibility: visible;
  }
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
  }
  .relative {
    position: relative;
  }
  .m-0 {
    margin: 0px;
  }
  .mx-auto {
    margin-inline: auto;
  }
  .mt-0 {
    margin-top: 0px;
  }
  .mt-0\.5 {
    margin-top: calc(var(--spacing) * 0.5);
  }
  .mt-1 {
    margin-top: var(--spacing);
  }
  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }
  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }
  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }
  .line-clamp-2 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .block {
    display: block;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline {
    display: inline;
  }
  .inline-flex {
    display: inline-flex;
  }
  .table {
    display: table;
  }
  .size-4 {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4);
  }
  .h-2 {
    height: calc(var(--spacing) * 2);
  }
  .h-4 {
    height: calc(var(--spacing) * 4);
  }
  .h-9 {
    height: calc(var(--spacing) * 9);
  }
  .h-12 {
    height: calc(var(--spacing) * 12);
  }
  .h-72 {
    height: calc(var(--spacing) * 72);
  }
  .h-full {
    height: 100%;
  }
  .w-4 {
    width: calc(var(--spacing) * 4);
  }
  .w-9 {
    width: calc(var(--spacing) * 9);
  }
  .w-12 {
    width: calc(var(--spacing) * 12);
  }
  .w-fit {
    width: fit-content;
  }
  .w-full {
    width: 100%;
  }
  .max-w-2xl {
    max-width: var(--container-2xl);
  }
  .max-w-md {
    max-width: var(--container-md);
  }
  .max-w-sm {
    max-width: var(--container-sm);
  }
  .min-w-0 {
    min-width: 0px;
  }
  .flex-1 {
    flex: 1;
  }
  .basis-full {
    flex-basis: 100%;
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .list-none {
    list-style-type: none;
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .items-center {
    align-items: center;
  }
  .items-end {
    align-items: flex-end;
  }
  .items-start {
    align-items: flex-start;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .gap-1 {
    gap: var(--spacing);
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-5 {
    gap: calc(var(--spacing) * 5);
  }
  .overflow-hidden {
    overflow: hidden;
  }
  .overflow-x-auto {
    overflow-x: auto;
  }
  .rounded-2xl {
    border-radius: var(--radius-panel);
  }
  .rounded-\[var\(--radius-panel\)\] {
    border-radius: var(--radius-panel);
  }
  .rounded-full {
    border-radius: calc(infinity * 1px);
  }
  .rounded-xl {
    border-radius: var(--radius-xl);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-dashed {
    --tw-border-style: dashed;
    border-style: dashed;
  }
  .border-\[color\:var\(--campus-border\)\] {
    border-color: var(--campus-border);
  }
  .border-line {
    border-color: var(--border);
  }
  .bg-\[color\:var\(--state-hover\)\] {
    background-color: var(--state-hover);
  }
  .bg-elevated {
    background-color: var(--elevated);
  }
  .bg-primary {
    background-color: var(--school-primary);
  }
  .object-contain {
    object-fit: contain;
  }
  .p-0 {
    padding: 0px;
  }
  .p-3 {
    padding: calc(var(--spacing) * 3);
  }
  .p-8 {
    padding: calc(var(--spacing) * 8);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }
  .py-10 {
    padding-block: calc(var(--spacing) * 10);
  }
  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }
  .text-center {
    text-align: center;
  }
  .text-left {
    text-align: left;
  }
  .text-right {
    text-align: right;
  }
  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }
  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }
  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .text-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }
  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }
  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }
  .leading-snug {
    --tw-leading: var(--leading-snug);
    line-height: var(--leading-snug);
  }
  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .font-normal {
    --tw-font-weight: var(--font-weight-normal);
    font-weight: var(--font-weight-normal);
  }
  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .tracking-tight {
    --tw-tracking: var(--tracking-tight);
    letter-spacing: var(--tracking-tight);
  }
  .tracking-wide {
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
  }
  .whitespace-nowrap {
    white-space: nowrap;
  }
  .whitespace-pre-wrap {
    white-space: pre-wrap;
  }
  .text-ink {
    color: var(--text);
  }
  .text-muted {
    color: var(--text-muted);
  }
  .text-primary {
    color: var(--school-primary);
  }
  .uppercase {
    text-transform: uppercase;
  }
  .underline {
    text-decoration-line: underline;
  }
  .accent-\[var\(--school-primary\)\] {
    accent-color: var(--school-primary);
  }
  .filter {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .transition-\[width\] {
    transition-property: width;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-colors {
    transition-property:
      color,
      background-color,
      border-color,
      outline-color,
      text-decoration-color,
      fill,
      stroke,
      --tw-gradient-from,
      --tw-gradient-via,
      --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  @media (width >= 40rem) {
    .sm\:min-w-\[12rem\] {
      min-width: 12rem;
    }
    .sm\:basis-auto {
      flex-basis: auto;
    }
    .sm\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sm\:text-2xl {
      font-size: var(--text-2xl);
      line-height: var(--tw-leading, var(--text-2xl--line-height));
    }
    .sm\:text-3xl {
      font-size: var(--text-3xl);
      line-height: var(--tw-leading, var(--text-3xl--line-height));
    }
  }
  @media (width >= 48rem) {
    .md\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (width >= 64rem) {
    .lg\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.1fr\)\] {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    }
  }
}
@layer keyframes {
  @keyframes enter {
    from {
      opacity: var(--p-enter-opacity, 1);
      transform: translate3d(var(--p-enter-translate-x, 0), var(--p-enter-translate-y, 0), 0) scale3d(var(--p-enter-scale, 1), var(--p-enter-scale, 1), var(--p-enter-scale, 1)) rotate(var(--p-enter-rotate, 0));
    }
  }
  @keyframes leave {
    to {
      opacity: var(--p-leave-opacity, 1);
      transform: translate3d(var(--p-leave-translate-x, 0), var(--p-leave-translate-y, 0), 0) scale3d(var(--p-leave-scale, 1), var(--p-leave-scale, 1), var(--p-leave-scale, 1)) rotate(var(--p-leave-rotate, 0));
    }
  }
  @keyframes fadein {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes fadeout {
    0% {
      opacity: 1;
    }
    100% {
      opacity: 0;
    }
  }
  @keyframes infinite-scroll {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(-100%);
    }
  }
  @keyframes scalein {
    0% {
      opacity: 0;
      transform: scaleY(0.8);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 1;
      transform: scaleY(1);
    }
  }
  @keyframes slidedown {
    0% {
      max-height: 0;
    }
    100% {
      max-height: auto;
    }
  }
  @keyframes slideup {
    0% {
      max-height: 1000px;
    }
    100% {
      max-height: 0;
    }
  }
  @keyframes fadeinleft {
    0% {
      opacity: 0;
      transform: translateX(-100%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 1;
      transform: translateX(0%);
    }
  }
  @keyframes fadeoutleft {
    0% {
      opacity: 1;
      transform: translateX(0%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 0;
      transform: translateX(-100%);
    }
  }
  @keyframes fadeinright {
    0% {
      opacity: 0;
      transform: translateX(100%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 1;
      transform: translateX(0%);
    }
  }
  @keyframes fadeoutright {
    0% {
      opacity: 1;
      transform: translateX(0%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 0;
      transform: translateX(100%);
    }
  }
  @keyframes fadeinup {
    0% {
      opacity: 0;
      transform: translateY(-100%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 1;
      transform: translateY(0%);
    }
  }
  @keyframes fadeoutup {
    0% {
      opacity: 1;
      transform: translateY(0%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 0;
      transform: translateY(-100%);
    }
  }
  @keyframes fadeindown {
    0% {
      opacity: 0;
      transform: translateY(100%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 1;
      transform: translateY(0%);
    }
  }
  @keyframes fadeoutdown {
    0% {
      opacity: 1;
      transform: translateY(0%);
      transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);
    }
    100% {
      opacity: 0;
      transform: translateY(100%);
    }
  }
  @keyframes width {
    0% {
      width: 0;
    }
    100% {
      width: 100%;
    }
  }
  @keyframes flip {
    from {
      transform: perspective(2000px) rotateX(-100deg);
    }
    to {
      transform: perspective(2000px) rotateX(0);
    }
  }
  @keyframes flipleft {
    from {
      transform: perspective(2000px) rotateY(-100deg);
      opacity: 0;
    }
    to {
      transform: perspective(2000px) rotateY(0);
      opacity: 1;
    }
  }
  @keyframes flipright {
    from {
      transform: perspective(2000px) rotateY(100deg);
      opacity: 0;
    }
    to {
      transform: perspective(2000px) rotateY(0);
      opacity: 1;
    }
  }
  @keyframes flipup {
    from {
      transform: perspective(2000px) rotateX(-100deg);
      opacity: 0;
    }
    to {
      transform: perspective(2000px) rotateX(0);
      opacity: 1;
    }
  }
  @keyframes zoomin {
    from {
      transform: scale3d(0.3, 0.3, 0.3);
      opacity: 0;
    }
    50% {
      opacity: 1;
    }
  }
  @keyframes zoomindown {
    from {
      transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
      opacity: 0;
    }
    60% {
      transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
      opacity: 1;
    }
  }
  @keyframes zoominleft {
    from {
      transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
      opacity: 0;
    }
    60% {
      transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
      opacity: 1;
    }
  }
}
@font-face {
  font-family: "primeicons";
  font-display: block;
  src: url("./media/primeicons.eot");
  src:
    url("./media/primeicons.eot?#iefix") format("embedded-opentype"),
    url("./media/primeicons.woff2") format("woff2"),
    url("./media/primeicons.woff") format("woff"),
    url("./media/primeicons.ttf") format("truetype"),
    url("./media/primeicons.svg?#primeicons") format("svg");
  font-weight: normal;
  font-style: normal;
}
.pi {
  font-family: "primeicons";
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.pi:before {
  --webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.pi-fw {
  width: 1.28571429em;
  text-align: center;
}
.pi-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@media (prefers-reduced-motion: reduce) {
  .pi-spin {
    -webkit-animation-delay: -1ms;
    animation-delay: -1ms;
    -webkit-animation-duration: 1ms;
    animation-duration: 1ms;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
  }
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.pi-eye-dropper:before {
  content: "\ea3c";
}
.pi-code-branch:before {
  content: "\ea3a";
}
.pi-signature:before {
  content: "\ea3b";
}
.pi-stamp:before {
  content: "\ea3d";
}
.pi-rectangle-xmark:before {
  content: "\ea3e";
}
.pi-note-sticky:before {
  content: "\ea3f";
}
.pi-sidebar:before {
  content: "\ea40";
}
.pi-slash:before {
  content: "\ea41";
}
.pi-grid-2:before {
  content: "\ea42";
}
.pi-columns-2:before {
  content: "\ea43";
}
.pi-rows-2:before {
  content: "\ea44";
}
.pi-square:before {
  content: "\ea45";
}
.pi-compress:before {
  content: "\ea46";
}
.pi-pen-line:before {
  content: "\ea47";
}
.pi-case-sensitive:before {
  content: "\ea48";
}
.pi-text-color:before {
  content: "\ea49";
}
.pi-list-tree:before {
  content: "\ea4a";
}
.pi-highlighter:before {
  content: "\ea4b";
}
.pi-text:before {
  content: "\ea4c";
}
.pi-heading-6:before {
  content: "\ea4d";
}
.pi-heading-5:before {
  content: "\ea4e";
}
.pi-heading-4:before {
  content: "\ea4f";
}
.pi-heading-3:before {
  content: "\ea50";
}
.pi-heading-2:before {
  content: "\ea51";
}
.pi-heading-1:before {
  content: "\ea52";
}
.pi-heading:before {
  content: "\ea53";
}
.pi-grip:before {
  content: "\ea54";
}
.pi-grip-horizontal:before {
  content: "\ea55";
}
.pi-grip-vertical:before {
  content: "\ea56";
}
.pi-paragraph-right:before {
  content: "\ea57";
}
.pi-paragraph-left:before {
  content: "\ea58";
}
.pi-arrow-u-turn-up-left:before {
  content: "\ea59";
}
.pi-arrow-u-turn-up-right:before {
  content: "\ea5a";
}
.pi-horizontal-rule:before {
  content: "\ea5b";
}
.pi-outdent:before {
  content: "\ea5c";
}
.pi-indent:before {
  content: "\ea5d";
}
.pi-list-ol:before {
  content: "\ea5e";
}
.pi-block-quote:before {
  content: "\ea5f";
}
.pi-superscript:before {
  content: "\ea60";
}
.pi-subscript:before {
  content: "\ea61";
}
.pi-strikethrough:before {
  content: "\ea62";
}
.pi-underline:before {
  content: "\ea63";
}
.pi-italic:before {
  content: "\ea64";
}
.pi-bold:before {
  content: "\ea65";
}
.pi-dot:before {
  content: "\ea66";
}
.pi-folder-plus:before {
  content: "\ea05";
}
.pi-receipt:before {
  content: "\ea06";
}
.pi-asterisk:before {
  content: "\ea07";
}
.pi-face-smile:before {
  content: "\ea08";
}
.pi-pinterest:before {
  content: "\ea09";
}
.pi-expand:before {
  content: "\ea0a";
}
.pi-pen-to-square:before {
  content: "\ea0b";
}
.pi-wave-pulse:before {
  content: "\ea0c";
}
.pi-turkish-lira:before {
  content: "\ea0d";
}
.pi-spinner-dotted:before {
  content: "\ea0e";
}
.pi-crown:before {
  content: "\ea0f";
}
.pi-pause-circle:before {
  content: "\ea10";
}
.pi-warehouse:before {
  content: "\ea11";
}
.pi-objects-column:before {
  content: "\ea12";
}
.pi-clipboard:before {
  content: "\ea13";
}
.pi-play-circle:before {
  content: "\ea14";
}
.pi-venus:before {
  content: "\ea15";
}
.pi-cart-minus:before {
  content: "\ea16";
}
.pi-file-plus:before {
  content: "\ea17";
}
.pi-microchip:before {
  content: "\ea18";
}
.pi-twitch:before {
  content: "\ea19";
}
.pi-building-columns:before {
  content: "\ea1a";
}
.pi-file-check:before {
  content: "\ea1b";
}
.pi-microchip-ai:before {
  content: "\ea1c";
}
.pi-trophy:before {
  content: "\ea1d";
}
.pi-barcode:before {
  content: "\ea1e";
}
.pi-file-arrow-up:before {
  content: "\ea1f";
}
.pi-mars:before {
  content: "\ea20";
}
.pi-tiktok:before {
  content: "\ea21";
}
.pi-arrow-up-right-and-arrow-down-left-from-center:before {
  content: "\ea22";
}
.pi-ethereum:before {
  content: "\ea23";
}
.pi-list-check:before {
  content: "\ea24";
}
.pi-thumbtack:before {
  content: "\ea25";
}
.pi-arrow-down-left-and-arrow-up-right-to-center:before {
  content: "\ea26";
}
.pi-equals:before {
  content: "\ea27";
}
.pi-lightbulb:before {
  content: "\ea28";
}
.pi-star-half:before {
  content: "\ea29";
}
.pi-address-book:before {
  content: "\ea2a";
}
.pi-chart-scatter:before {
  content: "\ea2b";
}
.pi-indian-rupee:before {
  content: "\ea2c";
}
.pi-star-half-fill:before {
  content: "\ea2d";
}
.pi-cart-arrow-down:before {
  content: "\ea2e";
}
.pi-calendar-clock:before {
  content: "\ea2f";
}
.pi-sort-up-fill:before {
  content: "\ea30";
}
.pi-sparkles:before {
  content: "\ea31";
}
.pi-bullseye:before {
  content: "\ea32";
}
.pi-sort-down-fill:before {
  content: "\ea33";
}
.pi-graduation-cap:before {
  content: "\ea34";
}
.pi-hammer:before {
  content: "\ea35";
}
.pi-bell-slash:before {
  content: "\ea36";
}
.pi-gauge:before {
  content: "\ea37";
}
.pi-shop:before {
  content: "\ea38";
}
.pi-headphones:before {
  content: "\ea39";
}
.pi-eraser:before {
  content: "\ea04";
}
.pi-stopwatch:before {
  content: "\ea01";
}
.pi-verified:before {
  content: "\ea02";
}
.pi-delete-left:before {
  content: "\ea03";
}
.pi-hourglass:before {
  content: "\e9fe";
}
.pi-truck:before {
  content: "\ea00";
}
.pi-wrench:before {
  content: "\e9ff";
}
.pi-microphone:before {
  content: "\e9fa";
}
.pi-megaphone:before {
  content: "\e9fb";
}
.pi-arrow-right-arrow-left:before {
  content: "\e9fc";
}
.pi-bitcoin:before {
  content: "\e9fd";
}
.pi-file-edit:before {
  content: "\e9f6";
}
.pi-language:before {
  content: "\e9f7";
}
.pi-file-export:before {
  content: "\e9f8";
}
.pi-file-import:before {
  content: "\e9f9";
}
.pi-file-word:before {
  content: "\e9f1";
}
.pi-gift:before {
  content: "\e9f2";
}
.pi-cart-plus:before {
  content: "\e9f3";
}
.pi-thumbs-down-fill:before {
  content: "\e9f4";
}
.pi-thumbs-up-fill:before {
  content: "\e9f5";
}
.pi-arrows-alt:before {
  content: "\e9f0";
}
.pi-calculator:before {
  content: "\e9ef";
}
.pi-sort-alt-slash:before {
  content: "\e9ee";
}
.pi-arrows-h:before {
  content: "\e9ec";
}
.pi-arrows-v:before {
  content: "\e9ed";
}
.pi-pound:before {
  content: "\e9eb";
}
.pi-prime:before {
  content: "\e9ea";
}
.pi-chart-pie:before {
  content: "\e9e9";
}
.pi-reddit:before {
  content: "\e9e8";
}
.pi-code:before {
  content: "\e9e7";
}
.pi-sync:before {
  content: "\e9e6";
}
.pi-shopping-bag:before {
  content: "\e9e5";
}
.pi-server:before {
  content: "\e9e4";
}
.pi-database:before {
  content: "\e9e3";
}
.pi-hashtag:before {
  content: "\e9e2";
}
.pi-bookmark-fill:before {
  content: "\e9df";
}
.pi-filter-fill:before {
  content: "\e9e0";
}
.pi-heart-fill:before {
  content: "\e9e1";
}
.pi-flag-fill:before {
  content: "\e9de";
}
.pi-circle:before {
  content: "\e9dc";
}
.pi-circle-fill:before {
  content: "\e9dd";
}
.pi-bolt:before {
  content: "\e9db";
}
.pi-history:before {
  content: "\e9da";
}
.pi-box:before {
  content: "\e9d9";
}
.pi-at:before {
  content: "\e9d8";
}
.pi-arrow-up-right:before {
  content: "\e9d4";
}
.pi-arrow-up-left:before {
  content: "\e9d5";
}
.pi-arrow-down-left:before {
  content: "\e9d6";
}
.pi-arrow-down-right:before {
  content: "\e9d7";
}
.pi-telegram:before {
  content: "\e9d3";
}
.pi-stop-circle:before {
  content: "\e9d2";
}
.pi-stop:before {
  content: "\e9d1";
}
.pi-whatsapp:before {
  content: "\e9d0";
}
.pi-building:before {
  content: "\e9cf";
}
.pi-qrcode:before {
  content: "\e9ce";
}
.pi-car:before {
  content: "\e9cd";
}
.pi-instagram:before {
  content: "\e9cc";
}
.pi-linkedin:before {
  content: "\e9cb";
}
.pi-send:before {
  content: "\e9ca";
}
.pi-slack:before {
  content: "\e9c9";
}
.pi-moon:before {
  content: "\e9c7";
}
.pi-sun:before {
  content: "\e9c8";
}
.pi-youtube:before {
  content: "\e9c5";
}
.pi-vimeo:before {
  content: "\e9c6";
}
.pi-flag:before {
  content: "\e9c4";
}
.pi-wallet:before {
  content: "\e9c3";
}
.pi-map:before {
  content: "\e9c2";
}
.pi-link:before {
  content: "\e9c1";
}
.pi-credit-card:before {
  content: "\e9bf";
}
.pi-discord:before {
  content: "\e9c0";
}
.pi-percentage:before {
  content: "\e9be";
}
.pi-euro:before {
  content: "\e9bd";
}
.pi-book:before {
  content: "\e9ba";
}
.pi-shield:before {
  content: "\e9b9";
}
.pi-paypal:before {
  content: "\e9bb";
}
.pi-amazon:before {
  content: "\e9bc";
}
.pi-phone:before {
  content: "\e9b8";
}
.pi-filter-slash:before {
  content: "\e9b7";
}
.pi-facebook:before {
  content: "\e9b4";
}
.pi-github:before {
  content: "\e9b5";
}
.pi-twitter:before {
  content: "\e9b6";
}
.pi-step-backward-alt:before {
  content: "\e9ac";
}
.pi-step-forward-alt:before {
  content: "\e9ad";
}
.pi-forward:before {
  content: "\e9ae";
}
.pi-backward:before {
  content: "\e9af";
}
.pi-fast-backward:before {
  content: "\e9b0";
}
.pi-fast-forward:before {
  content: "\e9b1";
}
.pi-pause:before {
  content: "\e9b2";
}
.pi-play:before {
  content: "\e9b3";
}
.pi-compass:before {
  content: "\e9ab";
}
.pi-id-card:before {
  content: "\e9aa";
}
.pi-ticket:before {
  content: "\e9a9";
}
.pi-file-o:before {
  content: "\e9a8";
}
.pi-reply:before {
  content: "\e9a7";
}
.pi-directions-alt:before {
  content: "\e9a5";
}
.pi-directions:before {
  content: "\e9a6";
}
.pi-thumbs-up:before {
  content: "\e9a3";
}
.pi-thumbs-down:before {
  content: "\e9a4";
}
.pi-sort-numeric-down-alt:before {
  content: "\e996";
}
.pi-sort-numeric-up-alt:before {
  content: "\e997";
}
.pi-sort-alpha-down-alt:before {
  content: "\e998";
}
.pi-sort-alpha-up-alt:before {
  content: "\e999";
}
.pi-sort-numeric-down:before {
  content: "\e99a";
}
.pi-sort-numeric-up:before {
  content: "\e99b";
}
.pi-sort-alpha-down:before {
  content: "\e99c";
}
.pi-sort-alpha-up:before {
  content: "\e99d";
}
.pi-sort-alt:before {
  content: "\e99e";
}
.pi-sort-amount-up:before {
  content: "\e99f";
}
.pi-sort-amount-down:before {
  content: "\e9a0";
}
.pi-sort-amount-down-alt:before {
  content: "\e9a1";
}
.pi-sort-amount-up-alt:before {
  content: "\e9a2";
}
.pi-palette:before {
  content: "\e995";
}
.pi-undo:before {
  content: "\e994";
}
.pi-desktop:before {
  content: "\e993";
}
.pi-sliders-v:before {
  content: "\e991";
}
.pi-sliders-h:before {
  content: "\e992";
}
.pi-search-plus:before {
  content: "\e98f";
}
.pi-search-minus:before {
  content: "\e990";
}
.pi-file-excel:before {
  content: "\e98e";
}
.pi-file-pdf:before {
  content: "\e98d";
}
.pi-check-square:before {
  content: "\e98c";
}
.pi-chart-line:before {
  content: "\e98b";
}
.pi-user-edit:before {
  content: "\e98a";
}
.pi-exclamation-circle:before {
  content: "\e989";
}
.pi-android:before {
  content: "\e985";
}
.pi-google:before {
  content: "\e986";
}
.pi-apple:before {
  content: "\e987";
}
.pi-microsoft:before {
  content: "\e988";
}
.pi-heart:before {
  content: "\e984";
}
.pi-mobile:before {
  content: "\e982";
}
.pi-tablet:before {
  content: "\e983";
}
.pi-key:before {
  content: "\e981";
}
.pi-shopping-cart:before {
  content: "\e980";
}
.pi-comments:before {
  content: "\e97e";
}
.pi-comment:before {
  content: "\e97f";
}
.pi-briefcase:before {
  content: "\e97d";
}
.pi-bell:before {
  content: "\e97c";
}
.pi-paperclip:before {
  content: "\e97b";
}
.pi-share-alt:before {
  content: "\e97a";
}
.pi-envelope:before {
  content: "\e979";
}
.pi-volume-down:before {
  content: "\e976";
}
.pi-volume-up:before {
  content: "\e977";
}
.pi-volume-off:before {
  content: "\e978";
}
.pi-eject:before {
  content: "\e975";
}
.pi-money-bill:before {
  content: "\e974";
}
.pi-images:before {
  content: "\e973";
}
.pi-image:before {
  content: "\e972";
}
.pi-sign-in:before {
  content: "\e970";
}
.pi-sign-out:before {
  content: "\e971";
}
.pi-wifi:before {
  content: "\e96f";
}
.pi-sitemap:before {
  content: "\e96e";
}
.pi-chart-bar:before {
  content: "\e96d";
}
.pi-camera:before {
  content: "\e96c";
}
.pi-dollar:before {
  content: "\e96b";
}
.pi-lock-open:before {
  content: "\e96a";
}
.pi-table:before {
  content: "\e969";
}
.pi-map-marker:before {
  content: "\e968";
}
.pi-list:before {
  content: "\e967";
}
.pi-eye-slash:before {
  content: "\e965";
}
.pi-eye:before {
  content: "\e966";
}
.pi-folder-open:before {
  content: "\e964";
}
.pi-folder:before {
  content: "\e963";
}
.pi-video:before {
  content: "\e962";
}
.pi-inbox:before {
  content: "\e961";
}
.pi-lock:before {
  content: "\e95f";
}
.pi-unlock:before {
  content: "\e960";
}
.pi-tags:before {
  content: "\e95d";
}
.pi-tag:before {
  content: "\e95e";
}
.pi-power-off:before {
  content: "\e95c";
}
.pi-save:before {
  content: "\e95b";
}
.pi-question-circle:before {
  content: "\e959";
}
.pi-question:before {
  content: "\e95a";
}
.pi-copy:before {
  content: "\e957";
}
.pi-file:before {
  content: "\e958";
}
.pi-clone:before {
  content: "\e955";
}
.pi-calendar-times:before {
  content: "\e952";
}
.pi-calendar-minus:before {
  content: "\e953";
}
.pi-calendar-plus:before {
  content: "\e954";
}
.pi-ellipsis-v:before {
  content: "\e950";
}
.pi-ellipsis-h:before {
  content: "\e951";
}
.pi-bookmark:before {
  content: "\e94e";
}
.pi-globe:before {
  content: "\e94f";
}
.pi-replay:before {
  content: "\e94d";
}
.pi-filter:before {
  content: "\e94c";
}
.pi-print:before {
  content: "\e94b";
}
.pi-align-right:before {
  content: "\e946";
}
.pi-align-left:before {
  content: "\e947";
}
.pi-align-center:before {
  content: "\e948";
}
.pi-align-justify:before {
  content: "\e949";
}
.pi-cog:before {
  content: "\e94a";
}
.pi-cloud-download:before {
  content: "\e943";
}
.pi-cloud-upload:before {
  content: "\e944";
}
.pi-cloud:before {
  content: "\e945";
}
.pi-pencil:before {
  content: "\e942";
}
.pi-users:before {
  content: "\e941";
}
.pi-clock:before {
  content: "\e940";
}
.pi-user-minus:before {
  content: "\e93e";
}
.pi-user-plus:before {
  content: "\e93f";
}
.pi-trash:before {
  content: "\e93d";
}
.pi-window-minimize:before {
  content: "\e93a";
}
.pi-window-maximize:before {
  content: "\e93b";
}
.pi-external-link:before {
  content: "\e93c";
}
.pi-refresh:before {
  content: "\e938";
}
.pi-user:before {
  content: "\e939";
}
.pi-exclamation-triangle:before {
  content: "\e922";
}
.pi-calendar:before {
  content: "\e927";
}
.pi-chevron-circle-left:before {
  content: "\e928";
}
.pi-chevron-circle-down:before {
  content: "\e929";
}
.pi-chevron-circle-right:before {
  content: "\e92a";
}
.pi-chevron-circle-up:before {
  content: "\e92b";
}
.pi-angle-double-down:before {
  content: "\e92c";
}
.pi-angle-double-left:before {
  content: "\e92d";
}
.pi-angle-double-right:before {
  content: "\e92e";
}
.pi-angle-double-up:before {
  content: "\e92f";
}
.pi-angle-down:before {
  content: "\e930";
}
.pi-angle-left:before {
  content: "\e931";
}
.pi-angle-right:before {
  content: "\e932";
}
.pi-angle-up:before {
  content: "\e933";
}
.pi-upload:before {
  content: "\e934";
}
.pi-download:before {
  content: "\e956";
}
.pi-ban:before {
  content: "\e935";
}
.pi-star-fill:before {
  content: "\e936";
}
.pi-star:before {
  content: "\e937";
}
.pi-chevron-left:before {
  content: "\e900";
}
.pi-chevron-right:before {
  content: "\e901";
}
.pi-chevron-down:before {
  content: "\e902";
}
.pi-chevron-up:before {
  content: "\e903";
}
.pi-caret-left:before {
  content: "\e904";
}
.pi-caret-right:before {
  content: "\e905";
}
.pi-caret-down:before {
  content: "\e906";
}
.pi-caret-up:before {
  content: "\e907";
}
.pi-search:before {
  content: "\e908";
}
.pi-check:before {
  content: "\e909";
}
.pi-check-circle:before {
  content: "\e90a";
}
.pi-times:before {
  content: "\e90b";
}
.pi-times-circle:before {
  content: "\e90c";
}
.pi-plus:before {
  content: "\e90d";
}
.pi-plus-circle:before {
  content: "\e90e";
}
.pi-minus:before {
  content: "\e90f";
}
.pi-minus-circle:before {
  content: "\e910";
}
.pi-circle-on:before {
  content: "\e911";
}
.pi-circle-off:before {
  content: "\e912";
}
.pi-sort-down:before {
  content: "\e913";
}
.pi-sort-up:before {
  content: "\e914";
}
.pi-sort:before {
  content: "\e915";
}
.pi-step-backward:before {
  content: "\e916";
}
.pi-step-forward:before {
  content: "\e917";
}
.pi-th-large:before {
  content: "\e918";
}
.pi-arrow-down:before {
  content: "\e919";
}
.pi-arrow-left:before {
  content: "\e91a";
}
.pi-arrow-right:before {
  content: "\e91b";
}
.pi-arrow-up:before {
  content: "\e91c";
}
.pi-bars:before {
  content: "\e91d";
}
.pi-arrow-circle-down:before {
  content: "\e91e";
}
.pi-arrow-circle-left:before {
  content: "\e91f";
}
.pi-arrow-circle-right:before {
  content: "\e920";
}
.pi-arrow-circle-up:before {
  content: "\e921";
}
.pi-info:before {
  content: "\e923";
}
.pi-info-circle:before {
  content: "\e924";
}
.pi-home:before {
  content: "\e925";
}
.pi-spinner:before {
  content: "\e926";
}
:root,
html[data-theme=dark] {
  --school-primary: #14b8a6;
  --school-accent: #2dd4bf;
  --on-primary: #042f2e;
  --surface: #09090b;
  --card: #18181b;
  --border: rgb(255 255 255 / 0.08);
  --text: #fafafa;
  --text-muted: #a1a1aa;
  --danger: #fb7185;
  --success: #34d399;
  --warning: #fbbf24;
  --elevated: var(--school-primary);
  --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.5), 0 12px 24px -4px rgb(0 0 0 / 0.5);
  --radius: 0.75rem;
  --radius-control: 0.5rem;
  --radius-panel: 1rem;
  --radius-pill: 9999px;
  --font:
    "Plus Jakarta Sans",
    ui-sans-serif,
    system-ui,
    sans-serif;
  --motion-micro: 120ms;
  --motion-ui: 200ms;
  --motion-enter: 280ms;
  --state-hover: var(--text);
  --state-focus: var(--school-primary);
  --state-press: var(--text);
  --state-hover-brand: var(--school-primary);
  --chart-primary: #818cf8;
  --chart-secondary: #34d399;
  --chart-tertiary: #fbbf24;
  --chart-danger: #fb7185;
  --chart-purple: #a78bfa;
  --chart-surface: #27272a;
  --chart-text: #fafafa;
  --chart-grid: rgb(255 255 255 / 0.06);
}
@supports (color: color-mix(in lab, red, red)) {
  :root,
  html[data-theme=dark] {
    --elevated: color-mix(in srgb, var(--school-primary) 5%, #18181b);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  :root,
  html[data-theme=dark] {
    --state-hover: color-mix(in srgb, var(--text) 6%, transparent);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  :root,
  html[data-theme=dark] {
    --state-focus: color-mix(in srgb, var(--school-primary) 15%, transparent);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  :root,
  html[data-theme=dark] {
    --state-press: color-mix(in srgb, var(--text) 10%, transparent);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  :root,
  html[data-theme=dark] {
    --state-hover-brand: color-mix( in srgb, var(--school-primary) 16%, var(--card) );
  }
}
html[data-theme=light] {
  --school-primary: #0f766e;
  --school-accent: #0d9488;
  --on-primary: #ffffff;
  --surface: #f4f4f5;
  --card: #ffffff;
  --border: rgb(9 9 11 / 0.08);
  --text: #09090b;
  --text-muted: #71717a;
  --danger: #dc2626;
  --success: #16a34a;
  --warning: #d97706;
  --elevated: var(--school-primary);
  --shadow: 0 4px 6px -1px rgb(9 9 11 / 0.05), 0 12px 36px -4px rgb(9 9 11 / 0.08);
  --state-hover: var(--text);
  --state-focus: var(--school-primary);
  --state-press: var(--text);
  --state-hover-brand: var(--school-primary);
  --chart-surface: #ffffff;
  --chart-text: #3f3f46;
  --chart-grid: rgb(9 9 11 / 0.06);
}
@supports (color: color-mix(in lab, red, red)) {
  html[data-theme=light] {
    --elevated: color-mix(in srgb, var(--school-primary) 2%, #ffffff);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  html[data-theme=light] {
    --state-hover: color-mix(in srgb, var(--text) 4%, transparent);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  html[data-theme=light] {
    --state-focus: color-mix(in srgb, var(--school-primary) 12%, transparent);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  html[data-theme=light] {
    --state-press: color-mix(in srgb, var(--text) 8%, transparent);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  html[data-theme=light] {
    --state-hover-brand: color-mix( in srgb, var(--school-primary) 12%, var(--card) );
  }
}
html[data-color-theme=ice-cream][data-theme=dark] {
  --school-primary: #c48a6a;
  --school-accent: #ffc5d9;
  --on-primary: #2a150c;
}
html[data-color-theme=ice-cream][data-theme=light] {
  --school-primary: #6b3e26;
  --school-accent: #ffc5d9;
  --on-primary: #ffffff;
}
html[data-color-theme=tangerine][data-theme=dark] {
  --school-primary: #ff9201;
  --school-accent: #ffa841;
  --on-primary: #3b1500;
}
html[data-color-theme=tangerine][data-theme=light] {
  --school-primary: #ff6d00;
  --school-accent: #ff9201;
  --on-primary: #ffffff;
}
html[data-color-theme=earth][data-theme=dark] {
  --school-primary: #6fa396;
  --school-accent: #b88464;
  --on-primary: #0f1f1c;
}
html[data-color-theme=earth][data-theme=light] {
  --school-primary: #4c7d72;
  --school-accent: #915a3c;
  --on-primary: #ffffff;
}
html[data-color-theme=fruity][data-theme=dark] {
  --school-primary: #f0a4b8;
  --school-accent: #c9d9a8;
  --on-primary: #3b1520;
}
html[data-color-theme=fruity][data-theme=light] {
  --school-primary: #e984a2;
  --school-accent: #b9cc95;
  --on-primary: #3b1520;
}
html[data-color-theme=calm-coastal][data-theme=dark] {
  --school-primary: #a8bcc7;
  --school-accent: #c4d0c8;
  --on-primary: #1a2429;
}
html[data-color-theme=calm-coastal][data-theme=light] {
  --school-primary: #8fa5b2;
  --school-accent: #c4d0c8;
  --on-primary: #ffffff;
}
html[data-color-theme=cove][data-theme=dark] {
  --school-primary: #30ade0;
  --school-accent: #ffc973;
  --on-primary: #00243f;
}
html[data-color-theme=cove][data-theme=light] {
  --school-primary: #006bb9;
  --school-accent: #30ade0;
  --on-primary: #ffffff;
}
html[data-color-theme=cornflower][data-theme=dark] {
  --school-primary: #a8ac8e;
  --school-accent: #eba91d;
  --on-primary: #1f2118;
}
html[data-color-theme=cornflower][data-theme=light] {
  --school-primary: #898d6f;
  --school-accent: #eba91d;
  --on-primary: #ffffff;
}
html[data-color-theme=gotham][data-theme=dark] {
  --school-primary: #6e61ca;
  --school-accent: #c282fa;
  --on-primary: #0f1524;
}
html[data-color-theme=gotham][data-theme=light] {
  --school-primary: #243d66;
  --school-accent: #6e61ca;
  --on-primary: #ffffff;
}
html[data-color-theme=baby][data-theme=dark] {
  --school-primary: #ffafb0;
  --school-accent: #ff9b99;
  --on-primary: #3b1516;
}
html[data-color-theme=baby][data-theme=light] {
  --school-primary: #ff9b99;
  --school-accent: #ffafb0;
  --on-primary: #3b1516;
}
html[data-color-theme=stromi][data-theme=dark] {
  --school-primary: #77bddf;
  --school-accent: #a4e2f9;
  --on-primary: #0f2430;
}
html[data-color-theme=stromi][data-theme=light] {
  --school-primary: #3f7396;
  --school-accent: #4f9eb5;
  --on-primary: #ffffff;
}
html[data-color-theme=blooming][data-theme=dark] {
  --school-primary: #ffa1b3;
  --school-accent: #b0e1a2;
  --on-primary: #3b1520;
}
html[data-color-theme=blooming][data-theme=light] {
  --school-primary: #ffa1b3;
  --school-accent: #b0e1a2;
  --on-primary: #3b1520;
}
html[data-color-theme=barbie][data-theme=dark] {
  --school-primary: #d4cce6;
  --school-accent: #f6cadd;
  --on-primary: #2a2438;
}
html[data-color-theme=barbie][data-theme=light] {
  --school-primary: #c0b6d7;
  --school-accent: #f6cadd;
  --on-primary: #2a2438;
}
html {
  font-family: var(--font);
  color: var(--text);
  background: var(--surface);
}
html:has(app-shell),
html:has(campus-shell),
html:has(app-campus-shell) {
  overflow: hidden;
  overflow-x: clip;
  height: 100dvh;
}
html:has(app-shell) body,
html:has(campus-shell) body,
html:has(app-campus-shell) body {
  overflow: hidden;
  overflow-x: clip;
  height: 100dvh;
  min-height: 0;
}
html:has(app-shell) app-root,
html:has(campus-shell) app-root,
html:has(app-campus-shell) app-root {
  display: block;
  height: 100dvh;
}
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(
      ellipse 80% 50% at 10% -10%,
      var(--school-primary),
      transparent 55%),
    radial-gradient(
      ellipse 60% 40% at 95% 5%,
      var(--school-accent),
      transparent 50%),
    var(--surface);
}
@supports (color: color-mix(in lab, red, red)) {
  body {
    background:
      radial-gradient(
        ellipse 80% 50% at 10% -10%,
        color-mix(in srgb, var(--school-primary) 22%, transparent),
        transparent 55%),
      radial-gradient(
        ellipse 60% 40% at 95% 5%,
        color-mix(in srgb, var(--school-accent) 16%, transparent),
        transparent 50%),
      var(--surface);
  }
}
* {
  box-sizing: border-box;
}
.campus-scroll-area {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
.campus-scroll-area:hover,
.campus-scroll-area.campus-scroll-area--active {
  scrollbar-color: var(--school-primary) transparent;
}
.campus-scroll-area::-webkit-scrollbar {
  width: 0.5rem;
  height: 0.5rem;
}
.campus-scroll-area::-webkit-scrollbar-track {
  background: transparent;
}
.campus-scroll-area::-webkit-scrollbar-thumb {
  background-color: transparent;
  border-radius: var(--radius-pill);
}
.campus-scroll-area:hover::-webkit-scrollbar-thumb,
.campus-scroll-area.campus-scroll-area--active::-webkit-scrollbar-thumb {
  background-color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-scroll-area:hover::-webkit-scrollbar-thumb,
  .campus-scroll-area.campus-scroll-area--active::-webkit-scrollbar-thumb {
    background-color: color-mix(in srgb, var(--school-primary) 82%, transparent);
  }
}
.campus-scroll-area:hover::-webkit-scrollbar-thumb:hover,
.campus-scroll-area.campus-scroll-area--active::-webkit-scrollbar-thumb:hover {
  background-color: var(--school-primary);
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 1000;
  border-radius: 0.75rem;
  border: 2px solid var(--school-primary);
  background: var(--card);
  color: var(--text);
  font-weight: 600;
  padding: 0.625rem 1rem;
  text-decoration: none;
  box-shadow: var(--shadow);
}
.skip-link:focus {
  top: 1rem;
}
@supports selector(:focus-visible) {
  :where(a, button, input, select, textarea, [tabindex], .p-button, .p-inputtext):focus-visible {
    outline: 2px solid var(--school-primary);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px var(--state-focus);
  }
  :where(a, button, input, select, textarea, [tabindex], .p-button, .p-inputtext):focus:not(:focus-visible) {
    outline: none;
    box-shadow: none;
  }
  #main-content:focus:not(:focus-visible),
  [data-page-focus]:focus:not(:focus-visible) {
    outline: none;
    box-shadow: none;
  }
  #main-content:focus-visible,
  [data-page-focus]:focus-visible {
    outline: 2px solid var(--school-primary);
    outline-offset: 4px;
    box-shadow: 0 0 0 4px var(--state-focus);
  }
}
@supports not selector(:focus-visible) {
  :where(a, button, input, select, textarea, [tabindex], .p-button, .p-inputtext):focus {
    outline: 2px solid var(--school-primary);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px var(--state-focus);
  }
}
@media (prefers-reduced-motion: reduce) {
  :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    transition: none;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .motion-fade {
    animation: motion-fade var(--motion-enter) ease-out both;
  }
  .motion-rise {
    animation: motion-rise var(--motion-enter) ease-out both;
  }
  .nav-link,
  .campus-panel,
  .ui-card,
  .campus-btn,
  .ui-btn,
  .row-action {
    transition:
      background-color var(--motion-micro) ease,
      color var(--motion-micro) ease,
      border-color var(--motion-micro) ease,
      box-shadow var(--motion-ui) ease,
      filter var(--motion-micro) ease;
  }
}
@media (prefers-reduced-motion: reduce) {
  .motion-fade,
  .motion-rise {
    animation: none;
  }
}
@keyframes motion-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes motion-rise {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.campus-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  min-width: 2.75rem;
  padding: 0.5rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
.campus-btn:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
.campus-btn--primary {
  background: var(--school-primary);
  color: var(--on-primary);
}
.campus-btn--primary:hover:not(:disabled) {
  filter: brightness(1.06);
}
.campus-btn--tonal {
  background: var(--school-primary);
  color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-btn--tonal {
    background: color-mix(in srgb, var(--school-primary) 18%, var(--card));
  }
}
.campus-btn--tonal:hover:not(:disabled) {
  background: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-btn--tonal:hover:not(:disabled) {
    background: color-mix(in srgb, var(--school-primary) 26%, var(--card));
  }
}
.campus-btn--outline {
  border-color: var(--border);
  background: transparent;
  color: var(--text);
}
.campus-btn--outline:hover:not(:disabled) {
  background: var(--state-hover);
  border-color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-btn--outline:hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--school-primary) 40%, var(--border));
  }
}
.campus-btn--ghost {
  background: transparent;
  color: var(--text-muted);
}
.campus-btn--ghost:hover:not(:disabled) {
  background: var(--state-hover);
  color: var(--text);
}
.campus-btn--ghost:hover:not(:disabled) .pi {
  color: inherit;
}
.campus-btn--icon {
  padding: 0;
  width: 2.75rem;
  height: 2.75rem;
}
.campus-btn--danger-ghost:hover:not(:disabled) {
  background: var(--danger);
  color: var(--danger);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-btn--danger-ghost:hover:not(:disabled) {
    background: color-mix(in srgb, var(--danger) 12%, var(--card));
  }
}
.campus-btn--danger-ghost:hover:not(:disabled) .pi {
  color: inherit;
}
.campus-field {
  display: grid;
  gap: 0.5rem;
}
.campus-field > label,
.campus-field__label {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
}
.campus-field__hint {
  display: block;
  margin-top: -0.25rem;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--text-muted);
}
.campus-field__error {
  display: block;
  font-size: 0.75rem;
  color: var(--danger);
}
.campus-form-section {
  display: grid;
  gap: 1rem;
}
.campus-form-section__title {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.campus-form-grid {
  display: grid;
  gap: 1rem;
}
@media (min-width: 640px) {
  .campus-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .campus-form-grid__full {
    grid-column: 1 / -1;
  }
}
.campus-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
}
.campus-btn-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.campus-btn-row--end {
  justify-content: flex-end;
}
.campus-field input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=range]),
.campus-field select,
.campus-field textarea,
.campus-control,
.campus-date-input,
.p-inputtext,
.p-textarea,
.p-password-input,
.p-password .p-inputtext,
.p-select {
  width: 100%;
  min-height: 2.75rem;
  padding: 0.625rem 0.875rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  color: var(--text);
  font: inherit;
  font-size: 0.875rem;
  line-height: 1.35;
  box-shadow: none;
  outline: none;
  transition:
    border-color var(--motion-micro) ease,
    background-color var(--motion-micro) ease,
    box-shadow var(--motion-ui) ease;
}
.p-select {
  display: inline-flex;
  align-items: center;
  padding-block: 0;
  padding-inline: 0.875rem;
}
.campus-date-input {
  min-height: 2.75rem;
  height: 2.75rem;
  padding-block: 0.5rem;
}
.campus-field textarea,
textarea.campus-control,
.p-textarea {
  min-height: 6rem;
  height: auto;
  resize: vertical;
}
.campus-field select,
select.campus-control,
select.campus-date-input {
  appearance: none;
  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      var(--text-muted) 50%),
    linear-gradient(
      135deg,
      var(--text-muted) 50%,
      transparent 50%);
  background-position: calc(100% - 1.1rem) calc(50% - 0.15rem), calc(100% - 0.75rem) calc(50% - 0.15rem);
  background-size: 0.35rem 0.35rem, 0.35rem 0.35rem;
  background-repeat: no-repeat;
  padding-inline-end: 2rem;
}
.campus-field input:not([type=checkbox]):not([type=radio]):hover:not(:disabled),
.campus-field select:hover:not(:disabled),
.campus-field textarea:hover:not(:disabled),
.campus-control:hover:not(:disabled),
.campus-date-input:hover:not(:disabled),
.p-inputtext:hover:not(:disabled),
.p-textarea:hover:not(:disabled),
.p-password-input:hover:not(:disabled),
.p-password .p-inputtext:hover:not(:disabled),
.p-select:not(.p-disabled):hover {
  border-color: var(--school-primary);
  background: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-field input:not([type=checkbox]):not([type=radio]):hover:not(:disabled),
  .campus-field select:hover:not(:disabled),
  .campus-field textarea:hover:not(:disabled),
  .campus-control:hover:not(:disabled),
  .campus-date-input:hover:not(:disabled),
  .p-inputtext:hover:not(:disabled),
  .p-textarea:hover:not(:disabled),
  .p-password-input:hover:not(:disabled),
  .p-password .p-inputtext:hover:not(:disabled),
  .p-select:not(.p-disabled):hover {
    border-color: color-mix(in srgb, var(--school-primary) 45%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-field input:not([type=checkbox]):not([type=radio]):hover:not(:disabled),
  .campus-field select:hover:not(:disabled),
  .campus-field textarea:hover:not(:disabled),
  .campus-control:hover:not(:disabled),
  .campus-date-input:hover:not(:disabled),
  .p-inputtext:hover:not(:disabled),
  .p-textarea:hover:not(:disabled),
  .p-password-input:hover:not(:disabled),
  .p-password .p-inputtext:hover:not(:disabled),
  .p-select:not(.p-disabled):hover {
    background: color-mix(in srgb, var(--school-primary) 3%, var(--card));
  }
}
.campus-field input:disabled,
.campus-field select:disabled,
.campus-field textarea:disabled,
.campus-control:disabled,
.campus-date-input:disabled,
.p-inputtext:disabled,
.p-textarea:disabled,
.p-password-input:disabled,
.p-password .p-inputtext:disabled,
.p-select.p-disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--text-muted);
  color: var(--text-muted);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-field input:disabled,
  .campus-field select:disabled,
  .campus-field textarea:disabled,
  .campus-control:disabled,
  .campus-date-input:disabled,
  .p-inputtext:disabled,
  .p-textarea:disabled,
  .p-password-input:disabled,
  .p-password .p-inputtext:disabled,
  .p-select.p-disabled {
    background: color-mix(in srgb, var(--text-muted) 10%, var(--card));
  }
}
.campus-field input[aria-invalid=true],
.campus-field select[aria-invalid=true],
.campus-field textarea[aria-invalid=true],
.campus-control[aria-invalid=true],
.campus-date-input[aria-invalid=true],
.p-inputtext.ng-invalid.ng-dirty,
.p-textarea.ng-invalid.ng-dirty {
  border-color: var(--danger);
}
.p-datepicker {
  width: 100%;
  max-width: 100%;
}
.p-datepicker .p-datepicker-input-icon-container {
  color: var(--text-muted);
  line-height: 1;
}
.p-datepicker .p-datepicker-input-icon,
.p-datepicker .p-datepicker-input-icon-container .pi {
  color: var(--text-muted);
  font-size: 0.95rem;
}
.p-datepicker:has(.p-datepicker-dropdown) .p-datepicker-input,
.p-datepicker:has(.p-datepicker-dropdown) .campus-date-input {
  border-start-end-radius: 0;
  border-end-end-radius: 0;
}
.p-datepicker-dropdown {
  background: var(--card);
  border: 1px solid var(--border);
  border-inline-start: 0 none;
  border-start-start-radius: 0;
  border-end-start-radius: 0;
  border-start-end-radius: var(--radius);
  border-end-end-radius: var(--radius);
  color: var(--text-muted);
  width: 2.75rem;
  min-height: 2.75rem;
  flex-shrink: 0;
  box-shadow: none;
}
.p-datepicker-dropdown:not(:disabled):hover {
  background: var(--school-primary);
  border-color: var(--school-primary);
  color: var(--text);
}
@supports (color: color-mix(in lab, red, red)) {
  .p-datepicker-dropdown:not(:disabled):hover {
    background: color-mix(in srgb, var(--school-primary) 3%, var(--card));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .p-datepicker-dropdown:not(:disabled):hover {
    border-color: color-mix(in srgb, var(--school-primary) 45%, var(--border));
  }
}
.p-datepicker:has(.p-datepicker-dropdown):hover .p-datepicker-input:not(:disabled),
.p-datepicker:has(.p-datepicker-dropdown):hover .campus-date-input:not(:disabled) {
  border-color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .p-datepicker:has(.p-datepicker-dropdown):hover .p-datepicker-input:not(:disabled),
  .p-datepicker:has(.p-datepicker-dropdown):hover .campus-date-input:not(:disabled) {
    border-color: color-mix(in srgb, var(--school-primary) 45%, var(--border));
  }
}
.p-datepicker-panel,
.p-select-overlay {
  border: 1px solid var(--border);
  border-radius: var(--radius-panel);
  background: var(--card);
  color: var(--text);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.p-select-overlay {
  border-radius: var(--radius);
  padding: 0.25rem;
  max-width: min(calc(100vw - 1rem), 28rem);
}
.p-datepicker-panel .p-datepicker-header,
.p-select-overlay .p-select-header {
  border-bottom: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
}
.p-select-overlay .p-select-option {
  border-radius: var(--radius);
}
.p-select-overlay .p-select-option.p-select-option-selected {
  background: var(--school-primary);
  color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .p-select-overlay .p-select-option.p-select-option-selected {
    background: color-mix(in srgb, var(--school-primary) 14%, var(--card));
  }
}
.p-select-overlay .p-select-option:not(.p-select-option-selected):not(.p-disabled):hover {
  background: var(--state-hover);
  color: var(--text);
}
.p-dialog.campus-dialog,
.campus-dialog.p-dialog {
  display: flex;
  flex-direction: column;
  width: min(40rem, calc(100vw - 1.5rem)) !important;
  max-width: calc(100vw - 1.5rem) !important;
  max-height: calc(100dvh - 1.5rem) !important;
  margin: 0.75rem !important;
  border: 1px solid var(--border);
  border-radius: var(--radius-panel);
  background: var(--card);
  color: var(--text);
  box-shadow: var(--shadow);
  overflow: hidden;
}
@media (max-width: 639px) {
  .p-dialog.campus-dialog,
  .campus-dialog.p-dialog {
    width: calc(100vw - 1rem) !important;
    max-width: calc(100vw - 1rem) !important;
    max-height: calc(100dvh - 1rem) !important;
    margin: 0.5rem !important;
  }
}
.campus-dialog .p-dialog-header,
.p-dialog.campus-dialog .p-dialog-header {
  flex-shrink: 0;
  border-bottom: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  padding: 0.85rem 1rem;
}
@media (min-width: 640px) {
  .campus-dialog .p-dialog-header,
  .p-dialog.campus-dialog .p-dialog-header {
    padding: 1rem 1.25rem;
  }
}
.campus-dialog .p-dialog-title,
.p-dialog.campus-dialog .p-dialog-title {
  font-weight: 700;
  color: var(--text);
  font-size: 1.05rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
  word-break: break-word;
  padding-inline-end: 0.5rem;
}
@media (min-width: 640px) {
  .campus-dialog .p-dialog-title,
  .p-dialog.campus-dialog .p-dialog-title {
    font-size: 1.125rem;
  }
}
.campus-dialog .p-dialog-content,
.p-dialog.campus-dialog .p-dialog-content {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-x: clip;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--card);
  color: var(--text);
  padding: 1rem;
  max-height: none !important;
}
@media (min-width: 640px) {
  .campus-dialog .p-dialog-content,
  .p-dialog.campus-dialog .p-dialog-content {
    padding: 1.125rem 1.25rem;
  }
}
.campus-dialog .p-dialog-footer,
.p-dialog.campus-dialog .p-dialog-footer {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  border-top: 1px solid var(--border);
  background: var(--elevated);
  padding: 0.75rem 1rem 1rem;
}
@media (min-width: 640px) {
  .campus-dialog .p-dialog-footer,
  .p-dialog.campus-dialog .p-dialog-footer {
    padding: 0.85rem 1.25rem 1.125rem;
  }
}
.campus-dialog .p-dialog-header-actions .p-dialog-close-button,
.campus-dialog .p-dialog-close-button,
.p-dialog.campus-dialog .p-dialog-close-button {
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  color: var(--text-muted);
  border-radius: var(--radius);
}
.campus-dialog .p-dialog-header-actions .p-dialog-close-button:hover,
.campus-dialog .p-dialog-close-button:hover,
.p-dialog.campus-dialog .p-dialog-close-button:hover {
  background: var(--state-hover);
  color: var(--text);
}
.campus-dialog .p-dialog-content .campus-form-actions,
.p-dialog.campus-dialog .p-dialog-content .campus-form-actions {
  margin-top: auto;
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 1;
  padding-top: 0.75rem;
  padding-bottom: 0.25rem;
  border-top: 1px solid var(--border);
  background: var(--card);
}
.campus-dialog .p-dialog-footer .campus-form-actions,
.p-dialog.campus-dialog .p-dialog-footer .campus-form-actions {
  width: 100%;
  margin: 0;
  padding: 0;
  border-top: 0;
  background: transparent;
}
.campus-photo-field {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
}
.campus-photo-field__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1rem;
}
.campus-photo-field__passport {
  position: relative;
  flex: 0 0 auto;
  width: 7rem;
  aspect-ratio: 35 / 45;
  border: 1px solid var(--border);
  border-radius: var(--radius-control);
  background: var(--elevated);
  overflow: hidden;
  display: grid;
  place-items: center;
}
.campus-photo-field__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.campus-photo-field__placeholder {
  color: var(--text-muted);
  font-size: 1.75rem;
  line-height: 1;
}
.campus-photo-field__badge {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 0.15rem 0.35rem;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-align: center;
  color: var(--text);
  background: var(--card);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-photo-field__badge {
    background: color-mix(in srgb, var(--card) 88%, transparent);
  }
}
.campus-photo-field__controls {
  flex: 1 1 12rem;
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}
.campus-photo-field__linkish {
  justify-self: start;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--school-primary);
  font: inherit;
  font-size: 0.8125rem;
  text-decoration: underline;
  cursor: pointer;
  min-height: 2.75rem;
}
.campus-photo-field__linkish:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.campus-photo-field__linkish:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
.campus-photo-field__camera {
  display: grid;
  gap: 0.75rem;
}
.campus-photo-field__video {
  width: min(100%, 20rem);
  max-height: 16rem;
  border-radius: var(--radius-control);
  background: var(--elevated);
  object-fit: cover;
}
.p-button.campus-btn {
  min-height: 2.75rem;
  min-width: 2.75rem;
}
.p-button.campus-btn--icon {
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
}
.row-action,
[role=group]:has(> .row-action),
[role=group]:has(> .campus-btn--icon) {
  flex-wrap: wrap;
}
.campus-panel {
  overflow: hidden;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-panel);
  background: var(--card);
  box-shadow: none;
}
.shell-main .campus-panel,
.campus-shell__content .campus-panel,
.campus-shell__main .campus-panel {
  max-width: 100%;
}
.campus-panel--float {
  box-shadow: var(--shadow);
}
.campus-login-screen {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: 100dvh;
  place-items: center;
  padding: 1.5rem;
  overflow: clip;
}
.campus-login-screen__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: var(--bg);
  background-image: var(--campus-login-bg, url(/login-bg.webp));
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.campus-login-screen__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--bg);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-login-screen__bg::after {
    background: color-mix(in srgb, var(--bg) 52%, transparent);
  }
}
html[data-theme=dark] .campus-login-screen__bg::after {
  background: var(--bg);
}
@supports (color: color-mix(in lab, red, red)) {
  html[data-theme=dark] .campus-login-screen__bg::after {
    background: color-mix(in srgb, var(--bg) 62%, transparent);
  }
}
.campus-login-screen > :not(.campus-login-screen__bg) {
  position: relative;
  z-index: 1;
}
.campus-login-screen .campus-panel--float {
  background: var(--card);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-login-screen .campus-panel--float {
    background: color-mix(in srgb, var(--card) 92%, transparent);
  }
}
.campus-panel--flush {
  padding: 0;
}
.campus-panel--pad {
  padding: 0.75rem;
}
@media (min-width: 640px) {
  .campus-panel--pad {
    padding: 1rem;
  }
}
.campus-table-scroll {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.campus-panel.campus-table-scroll {
  overflow-x: auto;
  overflow-y: hidden;
}
.p-datatable {
  max-width: 100%;
}
.p-datatable-table-container,
.p-datatable .p-datatable-wrapper {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
table.directory-table {
  width: 100%;
  border-collapse: collapse;
}
.campus-filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem;
  min-width: 0;
}
.campus-filter-bar .campus-field {
  flex: 1 1 100%;
  min-width: 0;
}
@media (min-width: 640px) {
  .campus-filter-bar .campus-field {
    flex: 1 1 12rem;
  }
}
.campus-chart-frame {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}
.motion-rise {
  min-width: 0;
}
.shell-main .motion-rise,
.campus-shell__content .motion-rise,
.campus-shell__main .motion-rise {
  max-width: 100%;
}
.motion-rise > header h1,
[data-page-focus] > header h1 {
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}
.ui-card {
  border-radius: var(--radius-panel);
}
a.nav-active {
  background: var(--school-primary);
  color: var(--on-primary);
  box-shadow: none;
}
.nav-link:hover:not(.nav-active) {
  background: var(--state-hover);
  color: var(--text);
}
.nav-group {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding-inline: 0.35rem;
}
.nav-group + .nav-group {
  margin-top: 0.35rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--border);
}
@supports (color: color-mix(in lab, red, red)) {
  .nav-group + .nav-group {
    border-top: 1px solid color-mix(in srgb, var(--border) 100%, transparent);
  }
}
.nav-group--first {
  padding-top: 0.15rem;
}
.nav-group--labeled .nav-group__list {
  padding: 0.2rem;
  border-radius: var(--radius-control);
  background: var(--text);
}
@supports (color: color-mix(in lab, red, red)) {
  .nav-group--labeled .nav-group__list {
    background: color-mix(in srgb, var(--text) 3%, transparent);
  }
}
html[data-theme=dark] .nav-group--labeled .nav-group__list {
  background: var(--text);
}
@supports (color: color-mix(in lab, red, red)) {
  html[data-theme=dark] .nav-group--labeled .nav-group__list {
    background: color-mix(in srgb, var(--text) 5%, transparent);
  }
}
.nav-group__label {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.35rem;
  padding: 0.15rem 0.55rem 0.25rem;
}
.nav-group__label-text {
  color: var(--school-primary);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  line-height: 1.2;
  text-transform: uppercase;
}
@supports (color: color-mix(in lab, red, red)) {
  .nav-group__label-text {
    color: color-mix(in srgb, var(--school-primary) 70%, var(--text-muted));
  }
}
.nav-group__label-text::before {
  content: "";
  display: inline-block;
  width: 0.2rem;
  height: 0.55rem;
  margin-right: 0.35rem;
  border-radius: var(--radius-pill);
  background: var(--school-primary);
  vertical-align: middle;
}
.nav-group__rule {
  height: 2px;
  margin: 0.55rem 0.85rem 0.65rem;
  border-radius: var(--radius-pill);
  background: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .nav-group__rule {
    background: color-mix(in srgb, var(--school-primary) 22%, var(--border));
  }
}
.nav-group__list {
  min-width: 0;
}
.shell-sidebar__header {
  padding: 1rem 0.75rem 0.85rem;
  border-bottom: 1px solid var(--border);
  background: var(--elevated);
}
@supports (color: color-mix(in lab, red, red)) {
  .shell-sidebar__header {
    background: color-mix(in srgb, var(--elevated) 35%, var(--card));
  }
}
.shell-sidebar__nav {
  padding: 0.55rem 0.35rem 0.65rem;
}
.shell-sidebar__footer {
  padding: 0.65rem 0.5rem 0.85rem;
  border-top: 1px solid var(--border);
  background: var(--elevated);
}
@supports (color: color-mix(in lab, red, red)) {
  .shell-sidebar__footer {
    background: color-mix(in srgb, var(--elevated) 30%, var(--card));
  }
}
.shell-sidebar__signout {
  width: 100%;
  justify-content: flex-start;
  gap: 0.75rem;
  color: var(--text-muted);
}
.shell-sidebar__signout:hover:not(:disabled) {
  background: var(--state-hover);
  color: var(--text);
}
.campus-shell__footer-slot--center :is(button, a, .shell-sidebar__signout) span {
  display: none;
}
.campus-shell__footer-slot--center :is(button, a, .shell-sidebar__signout) {
  justify-content: center;
  gap: 0;
  width: 2.75rem;
  min-width: 2.75rem;
  max-width: 2.75rem;
  padding-inline: 0;
  overflow: hidden;
  white-space: nowrap;
}
.shell-sidebar:not(.is-expanded) .shell-sidebar__header {
  padding-inline: 0.5rem;
}
.shell-sidebar:not(.is-expanded) .shell-sidebar__footer {
  padding-inline: 0.35rem;
}
.shell-layout {
  height: 100dvh;
  overflow-x: clip;
}
.shell-main {
  min-height: 0;
  min-width: 0;
}
.shell-header {
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid var(--border);
  background: var(--card);
}
@supports (color: color-mix(in lab, red, red)) {
  .shell-header {
    background: color-mix(in srgb, var(--card) 55%, var(--surface));
  }
}
@media (min-width: 640px) {
  .shell-header {
    padding: 1.25rem 1.5rem 0.85rem;
  }
}
@media (min-width: 768px) {
  .shell-header {
    padding-inline: 2rem;
  }
}
.shell-header__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.25rem;
}
.shell-header__brand {
  display: flex;
  min-width: 0;
  flex: 1 1 14rem;
  align-items: flex-start;
  gap: 0.75rem;
}
.shell-header__title {
  font-size: 1.125rem;
  line-height: 1.2;
}
@media (min-width: 640px) {
  .shell-header__title {
    font-size: 1.5rem;
  }
}
.shell-toolbar {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.35rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--card);
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.04);
}
.shell-toolbar__roles {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  padding-inline: 0.35rem 0.5rem;
  border-inline-start: 1px solid var(--border);
}
.shell-toolbar .campus-global-search {
  border: none;
  box-shadow: none;
  background: transparent;
}
.shell-toolbar .campus-global-search.is-expanded {
  border: 1px solid var(--school-primary);
  background: var(--elevated);
  box-shadow: none;
}
@supports (color: color-mix(in lab, red, red)) {
  .shell-toolbar .campus-global-search.is-expanded {
    border: 1px solid color-mix(in srgb, var(--school-primary) 35%, var(--border));
  }
}
@media (max-width: 639px) {
  .shell-toolbar {
    width: 100%;
    justify-content: space-between;
    border-radius: var(--radius-panel);
  }
  .shell-toolbar__roles {
    display: none;
  }
}
.campus-live-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: var(--radius-pill);
  background: var(--success);
  color: var(--success);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-live-badge {
    background: color-mix(in srgb, var(--success) 16%, var(--card));
  }
}
.campus-role-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.6rem;
  border: 1px solid var(--school-primary);
  border-radius: var(--radius-pill);
  background: var(--school-primary);
  color: var(--school-primary);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-role-chip {
    border: 1px solid color-mix(in srgb, var(--school-primary) 24%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-role-chip {
    background: color-mix(in srgb, var(--school-primary) 8%, var(--card));
  }
}
.shell-header .app-breadcrumbs {
  margin: 0.65rem 0 0;
}
.sidebar-edge-toggle {
  position: absolute;
  top: 1.85rem;
  right: 0;
  z-index: 5;
  display: none;
  height: 2rem;
  width: 2rem;
  align-items: center;
  justify-content: center;
  transform: translateX(50%);
  border: 2px solid var(--card);
  border-radius: var(--radius-pill);
  background: var(--school-primary);
  color: var(--on-primary);
  box-shadow: none;
  cursor: pointer;
}
.sidebar-edge-toggle:hover {
  filter: brightness(1.08);
}
.shell-sidebar {
  position: relative;
  width: 4.75rem;
  transition: width var(--motion-ui) ease, transform var(--motion-ui) ease;
}
.shell-sidebar.is-expanded {
  width: 16rem;
}
@media (min-width: 768px) {
  .sidebar-edge-toggle {
    display: flex;
  }
}
@media (max-width: 767px) {
  .shell-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 40;
    width: min(18rem, 88vw);
    transform: translateX(-105%);
    box-shadow: var(--shadow);
  }
  .shell-sidebar.is-mobile-open {
    transform: translateX(0);
  }
  body:has(.shell-sidebar.is-mobile-open) {
    overflow: hidden;
  }
  .sidebar-edge-toggle {
    display: none;
  }
}
.shell-backdrop {
  position: fixed;
  inset: 0;
  z-index: 30;
  border: 0;
  background: rgb(0 0 0 / 0.45);
  cursor: pointer;
}
.locale-switch {
  display: inline-flex;
  align-items: center;
  height: 2.75rem;
  padding: 0.2rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--card);
}
.locale-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  min-height: 2.5rem;
  height: 2.5rem;
  padding-inline: 0.55rem;
  border: none;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  transition: background-color var(--motion-micro) ease, color var(--motion-micro) ease;
}
@media (max-width: 767px) {
  .locale-switch {
    height: auto;
    min-height: 2.75rem;
  }
  .locale-btn {
    min-width: 2.75rem;
    min-height: 2.75rem;
    height: 2.75rem;
  }
}
.locale-btn:hover:not(.locale-active) {
  background: var(--state-hover);
  color: var(--text);
}
.locale-active {
  background: var(--school-primary);
  color: var(--on-primary);
  box-shadow: none;
}
.theme-switch {
  display: inline-flex;
  align-items: center;
  height: 2.75rem;
  padding: 0.2rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--card);
}
.theme-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  min-width: 2.5rem;
  min-height: 2.5rem;
  padding: 0;
  border: none;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  transition: background-color var(--motion-micro) ease, color var(--motion-micro) ease;
}
@media (max-width: 767px) {
  .theme-switch {
    height: auto;
    min-height: 2.75rem;
  }
  .theme-btn {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
}
.theme-btn .pi {
  font-size: 0.95rem;
  line-height: 1;
}
.theme-btn:hover:not(.theme-active) {
  background: var(--state-hover);
  color: var(--text);
}
.theme-btn:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px var(--state-focus);
}
.theme-active {
  background: var(--school-primary);
  color: var(--on-primary);
}
.campus-panel--float {
  box-shadow: var(--shadow);
}
.color-theme-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.color-theme-picker__trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 2.75rem;
  padding: 0 0.7rem 0 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--card);
  color: var(--text-muted);
  cursor: pointer;
  transition:
    background-color var(--motion-micro) ease,
    color var(--motion-micro) ease,
    border-color var(--motion-micro) ease;
}
.color-theme-picker__trigger:hover {
  background: var(--state-hover);
  color: var(--text);
}
.color-theme-picker__trigger:focus-visible {
  box-shadow: 0 0 0 4px var(--state-focus);
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
.color-theme-picker--open .color-theme-picker__trigger {
  border-color: var(--school-primary);
  color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .color-theme-picker--open .color-theme-picker__trigger {
    border-color: color-mix(in srgb, var(--school-primary) 40%, var(--border));
  }
}
.color-theme-picker__trigger .pi {
  font-size: 1rem;
  line-height: 1;
}
.color-theme-picker__chip {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: var(--radius-pill);
  background: var(--swatch, var(--school-primary));
  box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.12);
}
.color-theme-picker__menu {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  z-index: 60;
  width: min(20.5rem, calc(100vw - 1.5rem));
  padding: 0.75rem;
  overflow: visible;
  background: var(--card);
  animation: campus-color-menu-in var(--motion-enter) ease;
}
.color-theme-picker__menu--portal {
  position: fixed;
  top: auto;
  z-index: 1200;
  max-height: min(24rem, calc(100vh - 1.5rem));
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
@keyframes campus-color-menu-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .color-theme-picker__menu {
    animation: none;
  }
}
.color-theme-picker__heading {
  margin: 0 0 0.65rem;
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.color-theme-picker__grid {
  display: grid;
  gap: 0.35rem;
  max-height: min(22rem, 60vh);
  overflow-y: auto;
  padding-right: 0.15rem;
  background: var(--card);
}
.color-theme-picker__option {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.5rem 0.55rem;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: var(--card);
  color: var(--text);
  cursor: pointer;
  text-align: left;
  transition: background-color var(--motion-micro) ease, border-color var(--motion-micro) ease;
}
.color-theme-picker__option:hover {
  background: var(--state-hover);
}
.color-theme-picker__option:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 1px;
}
.color-theme-picker__option--active {
  border-color: var(--school-primary);
  background: var(--state-hover-brand);
}
@supports (color: color-mix(in lab, red, red)) {
  .color-theme-picker__option--active {
    border-color: color-mix(in srgb, var(--school-primary) 35%, var(--border));
  }
}
.color-theme-picker__dots {
  display: inline-flex;
  flex-shrink: 0;
  gap: 0.2rem;
}
.color-theme-picker__dot {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: var(--radius-pill);
  box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.1);
}
.color-theme-picker__name {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.2;
}
.p-tooltip .p-tooltip-text {
  background: var(--text);
  color: var(--surface);
  border-radius: var(--radius-control);
  box-shadow: var(--shadow);
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.375rem 0.625rem;
}
.p-tooltip-top .p-tooltip-arrow {
  border-top-color: var(--text);
  border-bottom-color: var(--text);
}
.p-tooltip-bottom .p-tooltip-arrow {
  border-bottom-color: var(--text);
}
.p-tooltip-left .p-tooltip-arrow {
  border-left-color: var(--text);
}
.p-tooltip-right .p-tooltip-arrow {
  border-right-color: var(--text);
}
.campus-alert {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.875rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-panel);
  background: var(--card);
  color: var(--text);
}
.campus-alert__icon {
  flex-shrink: 0;
  margin-top: 0.125rem;
  font-size: 1.125rem;
  line-height: 1;
}
.campus-alert__content {
  flex: 1;
  min-width: 0;
}
.campus-alert__title {
  display: block;
  margin: 0 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.35;
}
.campus-alert__body {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.campus-alert__body:not(:first-child) {
  margin-top: 0.125rem;
}
.campus-alert__dismiss {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: -0.25rem -0.25rem -0.25rem 0;
  padding: 0;
  border: none;
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
}
.campus-alert__dismiss:hover {
  background: var(--state-hover);
  color: var(--text);
}
.campus-alert__dismiss:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
.campus-alert--info {
  border-color: var(--school-primary);
  background: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--info {
    border-color: color-mix(in srgb, var(--school-primary) 35%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--info {
    background: color-mix(in srgb, var(--school-primary) 8%, var(--card));
  }
}
.campus-alert--info .campus-alert__icon {
  color: var(--school-primary);
}
.campus-alert--success {
  border-color: var(--success, #22c55e);
  background: var(--success, #22c55e);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--success {
    border-color: color-mix(in srgb, var(--success, #22c55e) 35%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--success {
    background: color-mix(in srgb, var(--success, #22c55e) 10%, var(--card));
  }
}
.campus-alert--success .campus-alert__icon {
  color: var(--success, #22c55e);
}
.campus-alert--warning {
  border-color: var(--warning);
  background: var(--warning);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--warning {
    border-color: color-mix(in srgb, var(--warning) 40%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--warning {
    background: color-mix(in srgb, var(--warning) 10%, var(--card));
  }
}
.campus-alert--warning .campus-alert__icon {
  color: var(--warning);
}
.campus-alert--danger {
  border-color: var(--danger);
  background: var(--danger);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--danger {
    border-color: color-mix(in srgb, var(--danger) 40%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-alert--danger {
    background: color-mix(in srgb, var(--danger) 8%, var(--card));
  }
}
.campus-alert--danger .campus-alert__icon {
  color: var(--danger);
}
.campus-alert--warning .campus-alert__body,
.campus-alert--danger .campus-alert__body {
  color: var(--text);
}
.campus-toast .p-toast-message {
  border: 1px solid var(--border);
  border-radius: var(--radius-panel);
  background: var(--card);
  box-shadow: var(--shadow);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.campus-toast .p-toast-message-content {
  padding: 0.85rem 1rem;
  color: var(--text);
}
.campus-toast .p-toast-summary {
  font-weight: 700;
  color: var(--text);
}
.campus-toast .p-toast-detail {
  color: var(--text-muted);
}
.campus-toast .p-toast-message-success {
  border-color: var(--success);
  background: var(--success);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-success {
    border-color: color-mix(in srgb, var(--success) 35%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-success {
    background: color-mix(in srgb, var(--success) 8%, var(--card));
  }
}
.campus-toast .p-toast-message-success .p-toast-summary {
  color: var(--success);
}
.campus-toast .p-toast-message-error {
  border-color: var(--danger);
  background: var(--danger);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-error {
    border-color: color-mix(in srgb, var(--danger) 35%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-error {
    background: color-mix(in srgb, var(--danger) 8%, var(--card));
  }
}
.campus-toast .p-toast-message-error .p-toast-summary {
  color: var(--danger);
}
.campus-toast .p-toast-message-warn {
  border-color: var(--warning);
  background: var(--warning);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-warn {
    border-color: color-mix(in srgb, var(--warning) 35%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-warn {
    background: color-mix(in srgb, var(--warning) 10%, var(--card));
  }
}
.campus-toast .p-toast-message-warn .p-toast-summary {
  color: var(--warning);
}
.campus-toast .p-toast-message-info {
  border-color: var(--school-primary);
  background: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-info {
    border-color: color-mix(in srgb, var(--school-primary) 35%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-toast .p-toast-message-info {
    background: color-mix(in srgb, var(--school-primary) 8%, var(--card));
  }
}
.campus-toast .p-toast-message-info .p-toast-summary {
  color: var(--school-primary);
}
.campus-toast .p-toast-close-button {
  color: var(--text-muted);
}
.campus-toast .p-toast-close-button:hover {
  background: var(--state-hover);
  color: var(--text);
}
.campus-void {
  display: flex;
  min-height: 10rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 2rem 1.25rem;
  text-align: center;
}
.campus-void__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--radius-panel);
  background: var(--school-primary);
  color: var(--school-primary);
  font-size: 1.25rem;
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-void__icon {
    background: color-mix(in srgb, var(--school-primary) 12%, var(--card));
  }
}
.campus-void__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 650;
  color: var(--text);
}
.campus-void__body {
  margin: 0;
  max-width: 28rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.campus-profile-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-panel);
  background:
    radial-gradient(
      ellipse 70% 80% at 0% 0%,
      var(--school-primary),
      transparent 55%),
    radial-gradient(
      ellipse 50% 60% at 100% 20%,
      var(--school-accent),
      transparent 50%),
    var(--elevated);
  padding: 1.25rem;
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-profile-hero {
    background:
      radial-gradient(
        ellipse 70% 80% at 0% 0%,
        color-mix(in srgb, var(--school-primary) 22%, transparent),
        transparent 55%),
      radial-gradient(
        ellipse 50% 60% at 100% 20%,
        color-mix(in srgb, var(--school-accent) 14%, transparent),
        transparent 50%),
      var(--elevated);
  }
}
.campus-profile-hero h1,
.campus-profile-hero .shell-header__title {
  font-size: clamp(1.35rem, 5vw, 1.875rem);
  line-height: 1.2;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}
.campus-profile-hero p,
.campus-profile-hints span,
.campus-panel a,
.campus-panel td,
.directory-table td,
.directory-table th {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.campus-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.campus-text-break {
  overflow-wrap: anywhere;
  word-break: break-word;
}
@media (min-width: 640px) {
  .campus-profile-hero {
    padding: 1.5rem 1.75rem;
  }
}
.campus-avatar-ring {
  display: inline-flex;
  padding: 3px;
  border-radius: calc(var(--radius-panel) + 3px);
  background:
    linear-gradient(
      135deg,
      var(--school-primary),
      var(--school-accent),
      var(--school-primary));
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-avatar-ring {
    background:
      linear-gradient(
        135deg,
        var(--school-primary),
        color-mix(in srgb, var(--school-accent) 70%, var(--school-primary)),
        var(--school-primary));
  }
}
.campus-avatar-ring > .avatar-frame {
  border: 2px solid var(--card);
  border-radius: var(--radius-panel);
  background: var(--card);
}
.campus-profile-hints {
  display: grid;
  gap: 0.35rem;
  margin: 0.75rem 0 0;
  padding: 0;
  list-style: none;
}
.campus-profile-hints li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0;
  color: var(--text-muted);
  font-size: 0.8125rem;
  line-height: 1.4;
}
.campus-profile-hints .pi {
  margin-top: 0.15rem;
  color: var(--school-primary);
  font-size: 0.75rem;
}
.campus-stat-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .campus-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .campus-stat-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.campus-stat {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-height: 5.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-panel);
  background: var(--card);
  padding: 1rem;
}
.campus-stat__label {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.campus-stat__value {
  margin: 0;
  color: var(--text);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  word-break: break-word;
}
.campus-stat__value--sm {
  font-size: 1.05rem;
  font-weight: 600;
}
.campus-stat__hint {
  margin: auto 0 0;
  color: var(--text-muted);
  font-size: 0.75rem;
}
.campus-attendance-status {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: var(--radius-pill);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
.campus-attendance-status--unmarked {
  background: var(--text-muted);
  color: var(--text-muted);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-attendance-status--unmarked {
    background: color-mix(in srgb, var(--text-muted) 10%, var(--card));
  }
}
.campus-attendance-status--present {
  background: var(--success);
  color: var(--success);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-attendance-status--present {
    background: color-mix(in srgb, var(--success) 16%, var(--card));
  }
}
.campus-attendance-status--absent {
  background: var(--danger);
  color: var(--danger);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-attendance-status--absent {
    background: color-mix(in srgb, var(--danger) 14%, var(--card));
  }
}
.campus-attendance-status--tardy {
  background: var(--warning);
  color: var(--warning);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-attendance-status--tardy {
    background: color-mix(in srgb, var(--warning) 15%, var(--card));
  }
}
.campus-filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--card);
  color: var(--text-muted);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition:
    background-color var(--motion-micro) ease,
    border-color var(--motion-micro) ease,
    color var(--motion-micro) ease;
}
.campus-filter-chip:hover:not(.campus-filter-chip--active) {
  background: var(--state-hover);
  color: var(--text);
}
.campus-filter-chip:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
.campus-filter-chip--active {
  border-color: var(--school-primary);
  background: var(--school-primary);
  color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-filter-chip--active {
    border-color: color-mix(in srgb, var(--school-primary) 40%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-filter-chip--active {
    background: color-mix(in srgb, var(--school-primary) 12%, var(--card));
  }
}
.campus-app-status {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: var(--radius-pill);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
.campus-app-status--draft {
  background: var(--text-muted);
  color: var(--text-muted);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-app-status--draft {
    background: color-mix(in srgb, var(--text-muted) 12%, var(--card));
  }
}
.campus-app-status--submitted {
  background: var(--school-primary);
  color: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-app-status--submitted {
    background: color-mix(in srgb, var(--school-primary) 14%, var(--card));
  }
}
.campus-app-status--accepted {
  background: var(--success);
  color: var(--success);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-app-status--accepted {
    background: color-mix(in srgb, var(--success) 16%, var(--card));
  }
}
.campus-app-status--rejected {
  background: var(--danger);
  color: var(--danger);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-app-status--rejected {
    background: color-mix(in srgb, var(--danger) 14%, var(--card));
  }
}
.campus-app-status--enrolled {
  background: var(--success);
  color: var(--success);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-app-status--enrolled {
    background: color-mix(in srgb, var(--success) 22%, var(--card));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-app-status--enrolled {
    color: color-mix(in srgb, var(--success) 85%, var(--text));
  }
}
.campus-message--mine {
  border-left: 4px solid var(--school-primary);
}
.campus-row-highlight > td {
  background: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .campus-row-highlight > td {
    background: color-mix(in srgb, var(--school-primary) 12%, var(--card));
  }
}
.notif-bell {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: none;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-muted);
  text-decoration: none;
  font-size: 1.15rem;
  transition: background-color var(--motion-micro) ease, color var(--motion-micro) ease;
}
.notif-bell:hover {
  background: var(--state-hover);
  color: var(--text);
}
.notif-bell:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
.notif-bell__badge {
  position: absolute;
  top: 0.3rem;
  right: 0.3rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding-inline: 0.2rem;
  border-radius: var(--radius-pill);
  background: var(--school-primary);
  color: var(--on-primary);
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1.1rem;
  text-align: center;
}
:root {
  --p-primary-color: var(--school-primary);
  --p-primary-contrast-color: var(--on-primary);
  --p-primary-hover-color: var(--school-accent);
  --p-content-background: var(--card);
  --p-content-hover-background: var(--state-hover);
  --p-content-border-color: var(--border);
  --p-content-border-radius: var(--radius-control);
  --p-text-color: var(--text);
  --p-text-muted-color: var(--text-muted);
  --p-text-hover-color: var(--text);
  --p-surface-0: #ffffff;
  --p-surface-50: var(--elevated);
  --p-mask-background: var(--text);
  --p-overlay-modal-background: var(--card);
  --p-overlay-modal-border-color: var(--border);
  --p-overlay-modal-color: var(--text);
  --p-overlay-modal-border-radius: var(--radius-panel);
  --p-overlay-modal-shadow: var(--shadow);
  --p-overlay-popover-background: var(--card);
  --p-overlay-popover-border-color: var(--border);
  --p-overlay-popover-color: var(--text);
  --p-overlay-popover-border-radius: var(--radius-panel);
  --p-overlay-popover-shadow: var(--shadow);
  --p-tooltip-background: var(--text);
  --p-tooltip-color: var(--surface);
  --p-tooltip-shadow: var(--shadow);
  --p-tooltip-border-radius: var(--radius-control);
  --p-form-field-background: var(--card);
  --p-form-field-disabled-background: var(--text-muted);
  --p-form-field-filled-background: var(--elevated);
  --p-form-field-filled-hover-background: var(--elevated);
  --p-form-field-filled-focus-background: var(--card);
  --p-form-field-border-color: var(--border);
  --p-form-field-hover-border-color: var(--school-primary);
  --p-form-field-focus-border-color: var(--school-primary);
  --p-form-field-invalid-border-color: var(--danger);
  --p-form-field-color: var(--text);
  --p-form-field-disabled-color: var(--text-muted);
  --p-form-field-placeholder-color: var(--text-muted);
  --p-form-field-icon-color: var(--text-muted);
  --p-form-field-shadow: none;
  --p-form-field-padding-x: 0.875rem;
  --p-form-field-padding-y: 0.625rem;
  --p-form-field-border-radius: var(--radius);
  --p-form-field-transition-duration: var(--motion-micro);
  --p-inputtext-border-radius: var(--radius);
  --p-inputtext-padding-x: 0.875rem;
  --p-inputtext-padding-y: 0.625rem;
  --p-inputtext-background: var(--card);
  --p-inputtext-border-color: var(--border);
  --p-inputtext-color: var(--text);
  --p-inputtext-shadow: none;
  --p-textarea-border-radius: var(--radius);
  --p-textarea-background: var(--card);
  --p-textarea-border-color: var(--border);
  --p-textarea-color: var(--text);
  --p-dialog-border-radius: var(--radius-panel);
  --p-dialog-background: var(--card);
  --p-dialog-border-color: var(--border);
  --p-dialog-color: var(--text);
  --p-dialog-shadow: var(--shadow);
  --p-datepicker-panel-background: var(--card);
  --p-datepicker-panel-border-color: var(--border);
  --p-datepicker-panel-color: var(--text);
  --p-datepicker-panel-border-radius: var(--radius-panel);
  --p-datepicker-panel-shadow: var(--shadow);
  --p-select-border-radius: var(--radius);
  --p-select-background: var(--card);
  --p-select-border-color: var(--border);
  --p-select-color: var(--text);
  --p-select-shadow: none;
  --p-select-overlay-background: var(--card);
  --p-select-overlay-border-color: var(--border);
  --p-select-overlay-border-radius: var(--radius);
  --p-select-overlay-color: var(--text);
  --p-select-overlay-shadow: var(--shadow);
}
@supports (color: color-mix(in lab, red, red)) {
  :root {
    --p-mask-background: color-mix(in srgb, var(--text) 40%, transparent);
  }
}
@supports (color: color-mix(in lab, red, red)) {
  :root {
    --p-form-field-disabled-background: color-mix( in srgb, var(--text-muted) 10%, var(--card) );
  }
}
@supports (color: color-mix(in lab, red, red)) {
  :root {
    --p-form-field-hover-border-color: color-mix( in srgb, var(--school-primary) 40%, var(--border) );
  }
}
.student-card:hover {
  background: var(--state-hover-brand);
}
.student-card--selected {
  border-color: var(--school-primary);
  box-shadow: 0 0 0 2px var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .student-card--selected {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--school-primary) 35%, transparent);
  }
}
.student-card--selected:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
.spark-radar-wrap {
  min-height: 260px;
}
.spark-dimension--highlight {
  border-color: var(--school-primary);
  background: var(--school-primary);
}
@supports (color: color-mix(in lab, red, red)) {
  .spark-dimension--highlight {
    border-color: color-mix(in srgb, var(--school-primary) 45%, var(--border));
  }
}
@supports (color: color-mix(in lab, red, red)) {
  .spark-dimension--highlight {
    background: color-mix(in srgb, var(--school-primary) 6%, var(--card));
  }
}
.campus-student-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.campus-student-select {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.75rem;
  max-width: 16rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-control);
  background: var(--card);
  color: var(--text);
  font-size: 0.875rem;
  font-weight: 600;
}
.campus-student-select__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.campus-student-select:hover {
  background: var(--state-hover);
}
.campus-student-select:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
.campus-student-picker--open .campus-student-select {
  border-color: var(--school-primary);
}
.campus-student-picker__menu {
  position: absolute;
  z-index: 40;
  top: calc(100% + 0.35rem);
  right: 0;
  min-width: 14rem;
  margin: 0;
  padding: 0.35rem;
  list-style: none;
}
.campus-student-picker__option {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  padding: 0.5rem 0.75rem;
  border: 0;
  border-radius: var(--radius-control);
  background: transparent;
  color: var(--text);
  text-align: left;
}
.campus-student-picker__option:hover {
  background: var(--state-hover-brand);
}
.campus-student-picker__option--active {
  background: var(--state-hover-brand);
  box-shadow: inset 2px 0 0 var(--school-primary);
}
.campus-student-picker__name {
  font-size: 0.875rem;
  font-weight: 650;
}
.campus-student-picker__code {
  font-size: 0.75rem;
  color: var(--text-muted);
}
@media (max-width: 639px) {
  .campus-student-select {
    max-width: 100%;
    width: 100%;
  }
  .campus-student-picker {
    flex: 1 1 100%;
  }
  .campus-student-picker__menu {
    left: 0;
    right: 0;
    min-width: 0;
  }
}
.campus-family-bottom-nav {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 30;
  display: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.25rem;
  padding: 0.35rem 0.5rem calc(0.35rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--border);
  background: var(--card);
}
.campus-family-bottom-nav__item {
  display: flex;
  min-height: 3rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  border-radius: var(--radius-control);
  color: var(--text-muted);
  font-size: 0.6875rem;
  font-weight: 600;
  text-decoration: none;
}
.campus-family-bottom-nav__item:hover {
  background: var(--state-hover);
  color: var(--text);
}
.campus-family-bottom-nav__item--active {
  color: var(--school-primary);
  background: var(--state-hover-brand);
}
.campus-family-bottom-nav__item:focus-visible {
  outline: 2px solid var(--school-primary);
  outline-offset: 2px;
}
@media (max-width: 768px) {
  .campus-family-bottom-nav {
    display: grid;
  }
  campus-shell,
  .shell-layout {
    padding-bottom: 4.5rem;
  }
}
@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }
@property --tw-leading { syntax: "*"; inherits: false; }
@property --tw-font-weight { syntax: "*"; inherits: false; }
@property --tw-tracking { syntax: "*"; inherits: false; }
@property --tw-blur { syntax: "*"; inherits: false; }
@property --tw-brightness { syntax: "*"; inherits: false; }
@property --tw-contrast { syntax: "*"; inherits: false; }
@property --tw-grayscale { syntax: "*"; inherits: false; }
@property --tw-hue-rotate { syntax: "*"; inherits: false; }
@property --tw-invert { syntax: "*"; inherits: false; }
@property --tw-opacity { syntax: "*"; inherits: false; }
@property --tw-saturate { syntax: "*"; inherits: false; }
@property --tw-sepia { syntax: "*"; inherits: false; }
@property --tw-drop-shadow { syntax: "*"; inherits: false; }
@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }
@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *,
    ::before,
    ::after,
    ::backdrop {
      --tw-border-style: solid;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}

/* angular:styles/global:styles */
/*# sourceMappingURL=styles.css.map */
