.campus-ia-context-assistant,
.campus-ia-context-assistant * {
  box-sizing: border-box;
}

.campus-ia-context-assistant {
  --campus-ia-primary: #0b74de;
  --campus-ia-primary-dark: #075baa;
  --campus-ia-primary-soft: #eef6ff;
  --campus-ia-text: #172033;
  --campus-ia-muted: #657084;
  --campus-ia-border: #dce5f0;
  --campus-ia-white: #ffffff;
  --campus-ia-success: #0d8a56;

  width: 100%;
  margin: 36px 0 24px;
  clear: both;

  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Arial,
    sans-serif;
}

.campus-ia-context-card {
  overflow: hidden;
  border: 1px solid var(--campus-ia-border);
  border-radius: 18px;
  background: var(--campus-ia-white);
  box-shadow:
    0 20px 55px rgba(31, 48, 75, 0.08),
    0 4px 14px rgba(31, 48, 75, 0.05);
}

.campus-ia-context-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;

  padding: 22px 24px;

  background:
    radial-gradient(
      circle at top right,
      rgba(255, 255, 255, 0.22),
      transparent 32%
    ),
    linear-gradient(
      135deg,
      var(--campus-ia-primary),
      var(--campus-ia-primary-dark)
    );

  color: var(--campus-ia-white);
}

.campus-ia-context-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 48px;
  height: 48px;

  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 14px;

  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(6px);
}

.campus-ia-context-heading {
  min-width: 0;
}

.campus-ia-context-kicker {
  display: block;
  margin-bottom: 4px;

  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;

  opacity: 0.88;
}

.campus-ia-context-heading h2 {
  margin: 0 !important;

  color: var(--campus-ia-white) !important;

  font-size: clamp(19px, 2vw, 24px) !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
}

.campus-ia-context-breadcrumb {
  overflow: hidden;

  margin: 7px 0 0 !important;

  color: rgba(255, 255, 255, 0.88) !important;

  font-size: 13px !important;
  line-height: 1.45 !important;

  text-overflow: ellipsis;
  white-space: nowrap;
}

.campus-ia-context-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  padding: 7px 10px;

  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 999px;

  background: rgba(255, 255, 255, 0.13);

  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
}

.campus-ia-context-status::before {
  width: 7px;
  height: 7px;

  border-radius: 50%;
  background: #81f6bd;

  box-shadow: 0 0 0 4px rgba(129, 246, 189, 0.13);

  content: "";
}

.campus-ia-context-body {
  padding: 24px;
}

.campus-ia-context-intro {
  margin: 0 0 18px !important;

  color: var(--campus-ia-muted) !important;

  font-size: 14px !important;
  line-height: 1.6 !important;
}

.campus-ia-context-intro strong {
  color: var(--campus-ia-text);
}

.campus-ia-context-form {
  margin: 0;
}

.campus-ia-context-label {
  display: block;
  margin-bottom: 8px;

  color: var(--campus-ia-text);

  font-size: 13px;
  font-weight: 750;
}

.campus-ia-context-input {
  display: block;

  width: 100%;
  min-height: 112px;
  padding: 14px 16px;

  border: 1px solid var(--campus-ia-border) !important;
  border-radius: 13px !important;

  background: #fbfdff !important;
  color: var(--campus-ia-text) !important;

  font: inherit;
  font-size: 14px !important;
  line-height: 1.55 !important;

  resize: vertical;
  outline: none;

  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background 0.18s ease;
}

.campus-ia-context-input::placeholder {
  color: #8b95a8;
}

.campus-ia-context-input:focus {
  border-color: var(--campus-ia-primary) !important;
  background: var(--campus-ia-white) !important;

  box-shadow:
    0 0 0 4px rgba(11, 116, 222, 0.11) !important;
}

.campus-ia-context-input:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.campus-ia-context-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;

  margin-top: 12px;
}

.campus-ia-context-counter {
  color: var(--campus-ia-muted);

  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.campus-ia-context-send {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;

  min-height: 44px;
  padding: 10px 18px !important;

  border: 0 !important;
  border-radius: 11px !important;

  background:
    linear-gradient(
      135deg,
      var(--campus-ia-primary),
      var(--campus-ia-primary-dark)
    ) !important;

  color: var(--campus-ia-white) !important;

  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1 !important;

  cursor: pointer;

  box-shadow:
    0 10px 20px rgba(11, 116, 222, 0.2);

  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    opacity 0.15s ease;
}

.campus-ia-context-send:hover {
  transform: translateY(-1px);

  box-shadow:
    0 13px 25px rgba(11, 116, 222, 0.26);
}

.campus-ia-context-send:disabled {
  cursor: wait;
  opacity: 0.7;
  transform: none;
}

.campus-ia-context-suggestions {
  margin-top: 22px;
}

.campus-ia-context-suggestions-label {
  display: block;
  margin-bottom: 10px;

  color: var(--campus-ia-muted);

  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.campus-ia-context-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.campus-ia-context-chip {
  padding: 8px 12px !important;

  border: 1px solid #d6e5f5 !important;
  border-radius: 999px !important;

  background: var(--campus-ia-primary-soft) !important;
  color: #075aa5 !important;

  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;

  cursor: pointer;

  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    transform 0.15s ease;
}

.campus-ia-context-chip:hover {
  border-color: #a8cbea !important;
  background: #e2f1ff !important;
  transform: translateY(-1px);
}

.campus-ia-context-chip:disabled {
  cursor: wait;
  opacity: 0.6;
  transform: none;
}

.campus-ia-context-result {
  margin-top: 24px;

  border: 1px solid var(--campus-ia-border);
  border-radius: 14px;

  background: #f8fbff;
}

.campus-ia-context-hidden {
  display: none !important;
}

.campus-ia-context-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;

  padding: 12px 14px;

  border-bottom: 1px solid var(--campus-ia-border);

  color: var(--campus-ia-text);

  font-size: 12px;
  font-weight: 800;
}

.campus-ia-context-clear {
  padding: 4px 8px !important;

  border: 0 !important;
  background: transparent !important;

  color: var(--campus-ia-primary) !important;

  font-size: 11px !important;
  font-weight: 750 !important;

  cursor: pointer;
}

.campus-ia-context-messages {
  display: flex;
  flex-direction: column;
  gap: 12px;

  max-height: 520px;
  padding: 16px;

  overflow-y: auto;
}

.campus-ia-context-message {
  display: flex;
  width: 100%;
}

.campus-ia-context-message-user {
  justify-content: flex-end;
}

.campus-ia-context-message-assistant {
  justify-content: flex-start;
}

.campus-ia-context-message-bubble {
  max-width: min(90%, 760px);
  padding: 12px 14px;

  border-radius: 13px;

  font-size: 13px;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.campus-ia-context-message-user
.campus-ia-context-message-bubble {
  border-bottom-right-radius: 4px;

  background: var(--campus-ia-primary);
  color: var(--campus-ia-white);
}

.campus-ia-context-message-assistant
.campus-ia-context-message-bubble {
  border: 1px solid var(--campus-ia-border);
  border-bottom-left-radius: 4px;

  background: var(--campus-ia-white);
  color: var(--campus-ia-text);
}

.campus-ia-context-message-thinking
.campus-ia-context-message-bubble {
  color: var(--campus-ia-muted);
  font-style: italic;
}

@media (max-width: 767px) {
  .campus-ia-context-assistant {
    margin-top: 26px;
  }

  .campus-ia-context-card {
    border-radius: 14px;
  }

  .campus-ia-context-header {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;

    padding: 18px;
  }

  .campus-ia-context-icon {
    width: 42px;
    height: 42px;
  }

  .campus-ia-context-status {
    display: none;
  }

  .campus-ia-context-breadcrumb {
    white-space: normal;
  }

  .campus-ia-context-body {
    padding: 18px;
  }

  .campus-ia-context-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .campus-ia-context-counter {
    align-self: flex-end;
    order: 2;
  }

  .campus-ia-context-send {
    width: 100%;
  }

  .campus-ia-context-chip {
    flex: 1 1 calc(50% - 9px);
  }

  .campus-ia-context-message-bubble {
    max-width: 96%;
  }
}

@media (max-width: 420px) {
  .campus-ia-context-chip {
    flex-basis: 100%;
  }
}
/* =========================================================
   Integración DOM con el reproductor Tutor LMS
   ========================================================= */

#campus-ia-context-assistant.campus-ia-context-dom {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  clear: both !important;
  margin: 30px 0 32px !important;
  padding: 0 !important;
  z-index: 2 !important;
}

.tutor-course-spotlight-wrapper
#campus-ia-context-assistant,
.tutor-course-spotlight-content
#campus-ia-context-assistant,
.tutor-course-spotlight-tab-content
#campus-ia-context-assistant {
  flex: 0 0 100% !important;
}

#campus-ia-context-assistant
.campus-ia-context-card {
  width: 100% !important;
  max-width: none !important;
}

#campus-ia-context-assistant
button,
#campus-ia-context-assistant
textarea {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    Arial,
    sans-serif !important;
}

#campus-ia-context-assistant
.campus-ia-context-input {
  box-shadow: none !important;
}

#campus-ia-context-assistant
.campus-ia-context-input:focus {
  outline: none !important;
}

body.tutor-frontend
#campus-ia-context-assistant
h2 {
  margin: 0 !important;
}

@media (max-width: 767px) {
  #campus-ia-context-assistant.campus-ia-context-dom {
    margin: 22px 0 26px !important;
  }
}
/* =========================================================
   Revisión académica IA — Assignments
   ========================================================= */

.campus-ia-review {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--campus-ia-border);
}

.campus-ia-review-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.campus-ia-review-kicker {
    display: block;
    margin-bottom: 5px;

    color: var(--campus-ia-primary);

    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.campus-ia-review-head h3 {
    margin: 0 0 7px !important;

    color: var(--campus-ia-text) !important;

    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

.campus-ia-review-head p {
    margin: 0 !important;

    color: var(--campus-ia-muted) !important;

    font-size: 13px !important;
    line-height: 1.55 !important;
}

.campus-ia-review-badge {
    padding: 6px 9px;

    border: 1px solid #cfe2f7;
    border-radius: 999px;

    background: var(--campus-ia-primary-soft);
    color: #075aa5;

    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.campus-ia-review-upload {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;

    gap: 10px 14px;

    padding: 16px;

    border: 1px dashed #b9cde3;
    border-radius: 14px;

    background: #fbfdff;
}

.campus-ia-review-file-label {
    display: flex;
    align-items: center;
    gap: 12px;

    cursor: pointer;
}

.campus-ia-review-file-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border-radius: 12px;

    background:
        var(--campus-ia-primary-soft);

    font-size: 20px;
}

.campus-ia-review-file-label strong {
    display: block;

    color: var(--campus-ia-text);

    font-size: 13px;
    font-weight: 800;
}

.campus-ia-review-file-label small {
    display: block;

    margin-top: 2px;

    color: var(--campus-ia-muted);

    font-size: 11px;
}

.campus-ia-review-file {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    clip-path: inset(50%);
}

.campus-ia-review-file-name {
    color: var(--campus-ia-muted);

    font-size: 11px;

    overflow-wrap: anywhere;
}

.campus-ia-review-submit {
    grid-column: 2;
    grid-row: 1 / span 2;

    align-self: center;

    min-height: 42px;

    padding: 10px 15px !important;

    border: 0 !important;
    border-radius: 10px !important;

    background:
        linear-gradient(
            135deg,
            var(--campus-ia-primary),
            var(--campus-ia-primary-dark)
        ) !important;

    color: #fff !important;

    font-size: 12px !important;
    font-weight: 800 !important;

    cursor: pointer;
}

.campus-ia-review-submit:disabled {
    cursor: not-allowed;
    opacity: .5;
}

.campus-ia-review-status {
    margin-top: 12px;
    padding: 10px 12px;

    border-radius: 10px;

    font-size: 12px;
    line-height: 1.5;
}

.campus-ia-review-status-working {
    border: 1px solid #cfe2f7;
    background: #f2f8ff;
    color: #075aa5;
}

.campus-ia-review-status-success {
    border: 1px solid #bfe6d3;
    background: #f1fbf6;
    color: #096a43;
}

.campus-ia-review-status-error {
    border: 1px solid #f0c8c8;
    background: #fff6f6;
    color: #9b3030;
}

.campus-ia-review-result {
    display: grid;
    gap: 14px;

    margin-top: 14px;
}

.campus-ia-review-readiness,
.campus-ia-review-panel,
.campus-ia-review-footnote {
    border:
        1px solid
        var(--campus-ia-border);

    border-radius: 13px;

    background: #fff;
}

.campus-ia-review-readiness {
    padding: 15px;
}

.campus-ia-review-readiness-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 14px;
}

.campus-ia-review-readiness-top > div {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.campus-ia-review-readiness-top strong {
    color: var(--campus-ia-text);

    font-size: 24px;
    font-weight: 850;
}

.campus-ia-review-readiness-label {
    padding: 5px 8px;

    border-radius: 999px;

    background: #eef3f8;

    font-size: 10px;
    font-weight: 800;
}

.campus-ia-review-progress {
    height: 9px;

    margin: 10px 0 9px;

    overflow: hidden;

    border-radius: 999px;

    background: #e8eef5;
}

.campus-ia-review-progress span {
    display: block;

    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            var(--campus-ia-primary),
            var(--campus-ia-success)
        );
}

.campus-ia-review-readiness p,
.campus-ia-review-panel p {
    margin: 0 !important;

    color: var(--campus-ia-muted) !important;

    font-size: 12px !important;
    line-height: 1.55 !important;
}

.campus-ia-review-panel {
    padding: 15px;
}

.campus-ia-review-panel h4 {
    margin: 0 0 10px !important;

    color: var(--campus-ia-text) !important;

    font-size: 13px !important;
    font-weight: 800 !important;
}

.campus-ia-review-panel li {
    margin: 5px 0;

    color: var(--campus-ia-muted);

    font-size: 12px;
    line-height: 1.5;
}

.campus-ia-review-compliance {
    display: grid;
    gap: 10px;
}

.campus-ia-review-compliance-item {
    padding: 12px;

    border:
        1px solid
        var(--campus-ia-border);

    border-radius: 11px;

    background: #fbfdff;
}

.campus-ia-review-compliance-head {
    display: grid;

    grid-template-columns:
        auto minmax(0,1fr) auto;

    gap: 9px;

    align-items: start;
}

.campus-ia-review-compliance-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 22px;
    height: 22px;

    border-radius: 50%;

    background: #eef3f8;

    font-size: 11px;
    font-weight: 900;
}

.campus-ia-review-compliance-status {
    padding: 4px 7px;

    border-radius: 999px;

    background: #eef3f8;

    font-size: 9px;
    font-weight: 850;
    text-transform: uppercase;
}

.campus-ia-review-compliance-met
.campus-ia-review-compliance-icon,
.campus-ia-review-compliance-met
.campus-ia-review-compliance-status {
    background: #eaf8f1;
    color: #087447;
}

.campus-ia-review-compliance-partial
.campus-ia-review-compliance-icon,
.campus-ia-review-compliance-partial
.campus-ia-review-compliance-status {
    background: #fff7df;
    color: #8a6512;
}

.campus-ia-review-compliance-missing
.campus-ia-review-compliance-icon,
.campus-ia-review-compliance-missing
.campus-ia-review-compliance-status {
    background: #fff0f0;
    color: #a13b3b;
}

.campus-ia-review-footnote {
    padding: 11px 13px;

    background: #f8fafc;

    color: var(--campus-ia-muted);

    font-size: 10px;
    line-height: 1.5;
}

@media (max-width: 767px) {

    .campus-ia-review-head {
        flex-direction: column;
    }

    .campus-ia-review-upload {
        grid-template-columns: 1fr;
    }

    .campus-ia-review-submit {
        grid-column: 1;
        grid-row: auto;

        width: 100%;
    }

    .campus-ia-review-readiness-top {
        align-items: flex-start;
        flex-direction: column;
    }

    .campus-ia-review-compliance-head {
        grid-template-columns:
            auto minmax(0,1fr);
    }

    .campus-ia-review-compliance-status {
        grid-column: 2;
        justify-self: start;
    }
}
/* =========================================================
   Evaluación final con rúbrica
   ========================================================= */

.campus-ia-final-evaluation {
    margin-top: 26px;
    padding-top: 26px;

    border-top:
        1px solid
        var(--campus-ia-border);
}

.campus-ia-final-head {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap: 18px;

    margin-bottom: 14px;
}

.campus-ia-final-kicker {
    display: block;

    margin-bottom: 5px;

    color: #6d4bc3;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: .07em;

    text-transform: uppercase;
}

.campus-ia-final-head h3 {
    margin: 0 0 7px !important;

    color:
        var(--campus-ia-text) !important;

    font-size: 18px !important;
    font-weight: 800 !important;

    line-height: 1.3 !important;
}

.campus-ia-final-head p {
    margin: 0 !important;

    max-width: 730px;

    color:
        var(--campus-ia-muted) !important;

    font-size: 13px !important;
    line-height: 1.55 !important;
}

.campus-ia-final-badge {
    flex: 0 0 auto;

    padding: 6px 10px;

    border:
        1px solid
        #d9d0f3;

    border-radius: 999px;

    background: #f6f2ff;

    color: #6240b5;

    font-size: 10px;
    font-weight: 800;

    white-space: nowrap;
}

.campus-ia-final-warning {
    display: flex;

    align-items: flex-start;

    gap: 11px;

    margin-bottom: 14px;

    padding: 12px 14px;

    border:
        1px solid
        #eadfb5;

    border-radius: 12px;

    background: #fffaf0;
}

.campus-ia-final-warning > span {
    flex: 0 0 auto;

    font-size: 17px;
}

.campus-ia-final-warning strong {
    display: block;

    margin-bottom: 2px;

    color: #755d12;

    font-size: 12px;
}

.campus-ia-final-warning p {
    margin: 0 !important;

    color: #776b46 !important;

    font-size: 11px !important;
    line-height: 1.5 !important;
}

.campus-ia-final-upload {
    display: grid;

    grid-template-columns:
        minmax(0,1fr) auto;

    gap: 10px 14px;

    padding: 16px;

    border:
        1px dashed
        #c8bce9;

    border-radius: 14px;

    background: #fcfaff;
}

.campus-ia-final-file-label {
    display: flex;

    align-items: center;

    gap: 12px;

    cursor: pointer;
}

.campus-ia-final-file-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border-radius: 12px;

    background: #f0eaff;

    font-size: 20px;
}

.campus-ia-final-file-label strong {
    display: block;

    color:
        var(--campus-ia-text);

    font-size: 13px;
    font-weight: 800;
}

.campus-ia-final-file-label small {
    display: block;

    margin-top: 2px;

    color:
        var(--campus-ia-muted);

    font-size: 11px;
}

.campus-ia-final-file {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    clip-path: inset(50%);
}

.campus-ia-final-file-name {
    color:
        var(--campus-ia-muted);

    font-size: 11px;

    overflow-wrap: anywhere;
}

.campus-ia-final-submit {
    grid-column: 2;
    grid-row: 1 / span 2;

    align-self: center;

    min-height: 42px;

    padding:
        10px 16px !important;

    border: 0 !important;

    border-radius:
        10px !important;

    background:
        linear-gradient(
            135deg,
            #7355c7,
            #5237a2
        ) !important;

    color: #fff !important;

    font-size: 12px !important;
    font-weight: 800 !important;

    cursor: pointer;
}

.campus-ia-final-submit:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.campus-ia-final-status {
    margin-top: 12px;

    padding: 10px 12px;

    border-radius: 10px;

    font-size: 12px;
    line-height: 1.5;
}

.campus-ia-final-result {
    display: grid;

    gap: 14px;

    margin-top: 14px;
}

@media (max-width: 767px) {

    .campus-ia-final-head {
        flex-direction: column;
    }

    .campus-ia-final-upload {
        grid-template-columns: 1fr;
    }

    .campus-ia-final-submit {
        grid-column: 1;
        grid-row: auto;

        width: 100%;
    }
}
/* =========================================================
   Resultado evaluación final
   ========================================================= */

.campus-ia-final-status-working {
    border: 1px solid #d8cef5;
    background: #f8f5ff;
    color: #6240b5;
}

.campus-ia-final-status-success {
    border: 1px solid #bfe6d3;
    background: #f1fbf6;
    color: #096a43;
}

.campus-ia-final-status-error {
    border: 1px solid #f0c8c8;
    background: #fff6f6;
    color: #9b3030;
}

.campus-ia-final-result-card {
    border: 1px solid var(--campus-ia-border);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}

.campus-ia-final-result-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    padding: 18px;

    border-bottom:
        1px solid
        var(--campus-ia-border);

    background:
        linear-gradient(
            135deg,
            #faf8ff,
            #fff
        );
}

.campus-ia-final-result-kicker {
    display: block;

    margin-bottom: 4px;

    color: #6d4bc3;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .07em;
    text-transform: uppercase;
}

.campus-ia-final-result-header h3 {
    margin: 0 !important;

    color:
        var(--campus-ia-text) !important;

    font-size: 18px !important;
    font-weight: 800 !important;
}

.campus-ia-final-state {
    padding: 7px 11px;

    border-radius: 999px;

    font-size: 10px;
    font-weight: 850;

    white-space: nowrap;
}

.campus-ia-final-state-pass {
    background: #eaf8f1;
    color: #087447;
}

.campus-ia-final-state-fail {
    background: #fff0f0;
    color: #a13b3b;
}

.campus-ia-final-score-grid {
    display: grid;

    grid-template-columns:
        1.3fr 1fr 1fr;

    gap: 12px;

    padding: 18px;

    border-bottom:
        1px solid
        var(--campus-ia-border);
}

.campus-ia-final-score-main,
.campus-ia-final-score-item {
    padding: 14px;

    border-radius: 12px;

    background: #f8fafc;
}

.campus-ia-final-score-main {
    background: #f5f1ff;
}

.campus-ia-final-score-grid span {
    display: block;

    margin-bottom: 5px;

    color:
        var(--campus-ia-muted);

    font-size: 10px;
    font-weight: 750;
}

.campus-ia-final-score-grid strong {
    color:
        var(--campus-ia-text);

    font-size: 22px;
    font-weight: 850;
}

.campus-ia-final-score-grid small {
    font-size: 13px;
    font-weight: 700;
}

.campus-ia-final-summary {
    padding: 18px;

    border-bottom:
        1px solid
        var(--campus-ia-border);
}

.campus-ia-final-summary h4 {
    margin: 0 0 8px !important;

    color:
        var(--campus-ia-text) !important;

    font-size: 13px !important;
    font-weight: 800 !important;
}

.campus-ia-final-summary p {
    margin: 0 !important;

    color:
        var(--campus-ia-muted) !important;

    font-size: 12px !important;
    line-height: 1.6 !important;
}

.campus-ia-final-rubric {
    padding: 18px;
}

.campus-ia-final-rubric-title {
    margin-bottom: 12px;
}

.campus-ia-final-rubric-title span {
    display: block;

    color:
        var(--campus-ia-muted);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .06em;
    text-transform: uppercase;
}

.campus-ia-final-rubric-title strong {
    color:
        var(--campus-ia-text);

    font-size: 14px;
}

.campus-ia-final-criteria {
    display: grid;
    gap: 12px;
}

.campus-ia-final-criterion {
    padding: 15px;

    border:
        1px solid
        var(--campus-ia-border);

    border-radius: 13px;

    background: #fbfdff;
}

.campus-ia-final-criterion-head {
    display: flex;

    justify-content: space-between;
    align-items: flex-start;

    gap: 15px;
}

.campus-ia-final-criterion-code {
    display: block;

    margin-bottom: 3px;

    color: #6d4bc3;

    font-size: 9px;
    font-weight: 850;

    letter-spacing: .05em;
}

.campus-ia-final-criterion h4 {
    margin: 0 !important;

    color:
        var(--campus-ia-text) !important;

    font-size: 13px !important;
    font-weight: 800 !important;
}

.campus-ia-final-criterion-score {
    display: flex;

    align-items: baseline;

    gap: 3px;

    flex: 0 0 auto;

    padding: 7px 10px;

    border-radius: 10px;

    background: #f0eaff;
}

.campus-ia-final-criterion-score strong {
    color: #5d3eae;
    font-size: 17px;
}

.campus-ia-final-criterion-score span {
    color: #786a98;
    font-size: 11px;
}

.campus-ia-final-level {
    display: inline-block;

    margin-top: 9px;

    padding: 4px 8px;

    border-radius: 999px;

    background: #eaf8f1;
    color: #087447;

    font-size: 9px;
    font-weight: 800;
}

.campus-ia-final-detail {
    margin-top: 11px;
}

.campus-ia-final-detail strong {
    display: block;

    margin-bottom: 3px;

    color:
        var(--campus-ia-text);

    font-size: 10px;
}

.campus-ia-final-detail p {
    margin: 0 !important;

    color:
        var(--campus-ia-muted) !important;

    font-size: 11px !important;
    line-height: 1.55 !important;
}

.campus-ia-final-justification {
    margin-top: 10px;
}

.campus-ia-final-justification summary {
    color: #6d4bc3;

    font-size: 10px;
    font-weight: 750;

    cursor: pointer;
}

.campus-ia-final-justification p {
    margin: 7px 0 0 !important;

    color:
        var(--campus-ia-muted) !important;

    font-size: 11px !important;
    line-height: 1.55 !important;
}

.campus-ia-course-result {
    margin: 0 18px 18px;

    padding: 16px;

    border: 1px solid #c8dcef;
    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            #f1f8ff,
            #fafcff
        );
}

.campus-ia-course-result-kicker {
    display: block;

    margin-bottom: 10px;

    color:
        var(--campus-ia-primary);

    font-size: 10px;
    font-weight: 850;

    letter-spacing: .06em;
    text-transform: uppercase;
}

.campus-ia-course-result-head {
    display: grid;

    grid-template-columns:
        repeat(3,1fr);

    gap: 10px;

    margin-bottom: 10px;
}

.campus-ia-course-result-head strong {
    display: block;

    color:
        var(--campus-ia-text);

    font-size: 17px;
}

.campus-ia-course-result-head span {
    color:
        var(--campus-ia-muted);

    font-size: 9px;
}

.campus-ia-course-result p,
.campus-ia-course-result-pending p {
    margin: 5px 0 0 !important;

    color:
        var(--campus-ia-muted) !important;

    font-size: 10px !important;
    line-height: 1.5 !important;
}

.campus-ia-course-result-pending {
    margin: 0 18px 18px;

    padding: 13px;

    border: 1px dashed #ccd8e5;
    border-radius: 12px;

    background: #fafcfe;

    color:
        var(--campus-ia-text);

    font-size: 11px;
}

.campus-ia-final-disclaimer {
    margin: 0 18px 18px;

    padding: 12px 14px;

    border: 1px solid #eadfb5;
    border-radius: 12px;

    background: #fffaf0;
}

.campus-ia-final-disclaimer strong {
    display: block;

    margin-bottom: 3px;

    color: #755d12;

    font-size: 11px;
}

.campus-ia-final-disclaimer p {
    margin: 0 !important;

    color: #776b46 !important;

    font-size: 10px !important;
    line-height: 1.5 !important;
}

@media (max-width: 767px) {

    .campus-ia-final-result-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .campus-ia-final-score-grid {
        grid-template-columns: 1fr;
    }

    .campus-ia-course-result-head {
        grid-template-columns: 1fr;
    }
}