/*
 * theme.css
 * Academics.Solutions placement portal design tokens.
 *
 * Values were taken from the live marketing site (academics.solutions)
 * via computed-style inspection on 1 Sep 2026, then adjusted only where
 * WCAG AA contrast requires a darker shade for text-on-light use.
 *
 * Load this file before style.css. Page stylesheets should consume these
 * tokens rather than introducing a second colour system.
 */

:root {
  /* Brand — inspected from https://academics.solutions/ */
  --as-primary: #00ff9a;
  --as-primary-hover: #00e088;
  --as-primary-light: #d9ffe9;
  --as-primary-soft: #edfff6;
  --as-primary-accessible: #006b45;

  --as-secondary: #272727;
  --as-secondary-hover: #3a3a3a;

  --as-accent: #00ff9a;
  --as-accent-heading: #61ce70;

  --as-bg-page: #f7f8f7;
  --as-bg-surface: #ffffff;
  --as-bg-subtle: #f2f2f2;
  --as-bg-nav: #272727;
  --as-bg-hero: #3a3a3a;
  --as-bg-hero-deep: #212331;

  --as-text-primary: #272727;
  --as-text-secondary: #5f727f;
  --as-text-muted: #838383;
  --as-text-on-primary: #242424;
  --as-text-on-dark: #ffffff;

  --as-border: #e5e5e5;
  --as-border-strong: #c8c8c8;

  --as-success: #009b5c;
  --as-success-text: #047857;
  --as-success-bg: #ecfdf5;
  --as-success-border: #a7f3d0;

  --as-warning: #b45309;
  --as-warning-bg: #fffbeb;
  --as-warning-border: #fde68a;

  --as-danger: #b91c1c;
  --as-danger-bg: #fef2f2;
  --as-danger-border: #fca5a5;

  --as-info: #0f766e;
  --as-info-bg: #f0fdfa;
  --as-info-border: #99f6e4;

  --as-focus-ring: #009b5c;
  --as-focus-ring-soft: rgba(0, 155, 92, 0.28);

  --as-shadow: 0 12px 30px rgba(39, 39, 39, 0.08);
  --as-shadow-hover: 0 16px 38px rgba(39, 39, 39, 0.14);
  --as-radius: 14px;
  --as-radius-lg: 20px;
  --as-radius-pill: 999px;

  --as-font: "Plus Jakarta Sans", "Poppins", system-ui, sans-serif;
  --as-font-nav: Montserrat, "Plus Jakarta Sans", sans-serif;

  /* Large surfaces that previously used purple/pink/xbox gradients */
  --as-gradient-brand: var(--as-bg-hero);

  /* Bootstrap 5.3 semantic remaps */
  --bs-primary: #00ff9a;
  --bs-primary-rgb: 0, 255, 154;
  --bs-secondary: #272727;
  --bs-secondary-rgb: 39, 39, 39;
  --bs-success: #009b5c;
  --bs-success-rgb: 0, 155, 92;
  --bs-info: #0f766e;
  --bs-info-rgb: 15, 118, 110;
  --bs-warning: #b45309;
  --bs-warning-rgb: 180, 83, 9;
  --bs-danger: #b91c1c;
  --bs-danger-rgb: 185, 28, 28;
  --bs-body-color: #272727;
  --bs-body-bg: #f7f8f7;
  --bs-secondary-color: #5f727f;
  --bs-border-color: #e5e5e5;
  --bs-link-color: #006b45;
  --bs-link-color-rgb: 0, 107, 69;
  --bs-link-hover-color: #005536;
  --bs-link-hover-color-rgb: 0, 85, 54;
  --bs-focus-ring-color: rgba(0, 155, 92, 0.35);
  --bs-heading-color: #272727;
}

/* ----- Shared typography ----- */
body {
  font-family: var(--as-font);
  background: var(--as-bg-page);
  color: var(--as-text-primary);
}

h1, h2, h3, h4, h5, h6 {
  color: var(--as-text-primary);
}

a:not(.btn):not(.nav-link):not(.navbar-brand):not(.page-link):not(.badge) {
  color: var(--as-primary-accessible);
}

a:not(.btn):not(.nav-link):not(.navbar-brand):not(.page-link):not(.badge):hover {
  color: var(--as-secondary);
}

/* ----- Bootstrap button language (matches marketing CTAs) ----- */
.btn {
  font-weight: 700;
  border-radius: var(--as-radius-pill);
}

.btn-primary {
  --bs-btn-color: var(--as-text-on-primary);
  --bs-btn-bg: var(--as-primary);
  --bs-btn-border-color: var(--as-primary);
  --bs-btn-hover-color: var(--as-text-on-dark);
  --bs-btn-hover-bg: var(--as-secondary);
  --bs-btn-hover-border-color: var(--as-secondary);
  --bs-btn-focus-shadow-rgb: 0, 155, 92;
  --bs-btn-active-color: var(--as-text-on-dark);
  --bs-btn-active-bg: #242424;
  --bs-btn-active-border-color: #242424;
  --bs-btn-disabled-color: var(--as-text-on-primary);
  --bs-btn-disabled-bg: #b8f5d8;
  --bs-btn-disabled-border-color: #b8f5d8;
}

.btn-outline-primary {
  --bs-btn-color: var(--as-primary-accessible);
  --bs-btn-border-color: var(--as-primary-accessible);
  --bs-btn-hover-color: var(--as-text-on-primary);
  --bs-btn-hover-bg: var(--as-primary);
  --bs-btn-hover-border-color: var(--as-primary);
  --bs-btn-active-color: var(--as-text-on-primary);
  --bs-btn-active-bg: var(--as-primary-hover);
  --bs-btn-active-border-color: var(--as-primary-hover);
  --bs-btn-disabled-color: var(--as-text-muted);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--as-border);
}

.btn-outline-secondary,
.btn-outline-light {
  --bs-btn-color: var(--as-text-primary);
  --bs-btn-border-color: var(--as-border-strong);
  --bs-btn-hover-color: var(--as-text-on-dark);
  --bs-btn-hover-bg: var(--as-secondary);
  --bs-btn-hover-border-color: var(--as-secondary);
}

.btn-success {
  --bs-btn-color: var(--as-text-on-dark);
  --bs-btn-bg: var(--as-success);
  --bs-btn-border-color: var(--as-success);
  --bs-btn-hover-bg: #007a48;
  --bs-btn-hover-border-color: #007a48;
}

.btn:focus-visible,
.form-control:focus,
.form-control:focus-visible,
.form-select:focus,
.form-select:focus-visible,
.form-check-input:focus,
.form-check-input:focus-visible,
.as-form-control:focus {
  outline: 3px solid var(--as-focus-ring) !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px var(--as-focus-ring-soft) !important;
}

.form-control:focus,
.form-control:focus-visible,
.form-select:focus,
.form-select:focus-visible,
.as-form-control:focus {
  border-color: var(--as-focus-ring) !important;
}

.form-check-input:checked {
  background-color: var(--as-success);
  border-color: var(--as-success);
}

.form-check-input {
  accent-color: var(--as-success);
}

.form-control::placeholder {
  color: var(--as-text-muted);
}

/* ----- Progress, badges, pagination ----- */
.progress {
  background: var(--as-bg-subtle);
}

.progress-bar {
  background-color: var(--as-primary);
  color: var(--as-text-on-primary);
}

.badge.bg-primary,
.bg-primary {
  background-color: var(--as-primary) !important;
  color: var(--as-text-on-primary) !important;
}

.badge.bg-info,
.bg-info {
  background-color: var(--as-info) !important;
  color: var(--as-text-on-dark) !important;
}

.page-link {
  color: var(--as-primary-accessible);
}

.page-item.active .page-link {
  background-color: var(--as-secondary);
  border-color: var(--as-secondary);
  color: var(--as-text-on-dark);
}

.page-link:hover {
  color: var(--as-secondary);
  background-color: var(--as-primary-soft);
  border-color: var(--as-border);
}

.page-link:focus {
  box-shadow: 0 0 0 0.25rem var(--as-focus-ring-soft);
}

/* ----- Alerts stay semantic ----- */
.alert-success {
  background-color: var(--as-success-bg);
  border-color: var(--as-success-border);
  color: var(--as-success-text);
}

.alert-warning {
  background-color: var(--as-warning-bg);
  border-color: var(--as-warning-border);
  color: var(--as-warning);
}

.alert-danger {
  background-color: var(--as-danger-bg);
  border-color: var(--as-danger-border);
  color: var(--as-danger);
}

.alert-info {
  background-color: var(--as-info-bg);
  border-color: var(--as-info-border);
  color: var(--as-info);
}

/* ----- Navigation (application chrome, brand-aligned) ----- */
.navbar.as-navbar,
.navbar.navbar-dark.bg-dark,
.navbar {
  background: var(--as-bg-nav) !important;
  box-shadow: 0 2px 12px rgba(39, 39, 39, 0.22);
}

.navbar .navbar-brand,
.navbar .nav-link {
  color: var(--as-text-on-dark) !important;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .navbar-brand:hover {
  color: var(--as-primary) !important;
}

.navbar .nav-link.active {
  color: var(--as-primary) !important;
}

.navbar .form-control {
  background: #ffffff;
  border-color: var(--as-border);
  color: var(--as-text-primary);
}

.navbar .form-control:focus {
  border-color: var(--as-focus-ring);
}

footer,
footer.bg-dark {
  background: var(--as-bg-nav) !important;
  color: var(--as-text-on-dark) !important;
}

/* ----- Cards ----- */
.card {
  background: var(--as-bg-surface) !important;
  background-image: none !important;
  border: 1px solid var(--as-border);
  box-shadow: var(--as-shadow);
}

.card::before {
  display: none;
}

.card:hover {
  transform: translateY(-4px);
}

footer.as-footer,
footer {
  background: var(--as-bg-nav) !important;
}

/* ----- Shared ranking badge (keep gold — semantic, not brand) ----- */
.ranking-badge,
.course-detail-container .ranking-badge {
  background: linear-gradient(135deg, #fbbf24, #f59e0b) !important;
  color: #1f2937 !important;
}

/* ----- Application status colours (semantic, not brand-flooded) ----- */
.status-badge.status-draft,
.status-pill.status-draft {
  background: var(--as-bg-subtle);
  color: var(--as-text-secondary);
  border: 1px solid var(--as-border-strong);
}

.status-badge.status-submitted,
.status-submitted {
  background: var(--as-info-bg);
  color: var(--as-info);
  border: 1px solid var(--as-info-border);
}

.status-badge.status-under_review,
.status-badge.status-reviewing,
.status-reviewing {
  background: var(--as-info-bg);
  color: var(--as-info);
  border: 1px solid var(--as-info-border);
}

.status-badge.status-pending_documents,
.status-badge.status-documents_required,
.status-pending_documents,
.status-advisor_assigned,
.status-university_submission_ready,
.status-submitted_to_university,
.status-visa_preparation,
.status-visa_submitted {
  background: var(--as-warning-bg);
  color: var(--as-warning);
  border: 1px solid var(--as-warning-border);
}

.status-badge.status-approved,
.status-badge.status-enrolled,
.status-badge.status-offer_accepted,
.status-badge.status-unconditional_offer,
.status-badge.status-conditional_offer,
.status-approved,
.status-contacted {
  background: var(--as-success-bg);
  color: var(--as-success-text);
  border: 1px solid var(--as-success-border);
}

.status-badge.status-rejected,
.status-rejected {
  background: var(--as-danger-bg);
  color: var(--as-danger);
  border: 1px solid var(--as-danger-border);
}

.status-badge.status-withdrawn,
.status-withdrawn {
  background: var(--as-bg-subtle);
  color: var(--as-text-muted);
  border: 1px solid var(--as-border);
}

/* ----- Primary CTAs: brand green + dark text (marketing button language) ----- */
.btn-apply,
.as-btn-dark,
.dashboard-primary-btn,
.home-hero-cta,
.course-search-btn,
.university-search-btn,
.scholarship-filter-submit,
.scholarship-action-primary,
.pending-btn,
.admin-btn:not(.success):not(.danger),
form.d-flex button,
.as-file::file-selector-button {
  background: var(--as-primary) !important;
  color: var(--as-text-on-primary) !important;
  border-color: var(--as-primary) !important;
  box-shadow: 0 8px 18px rgba(0, 155, 92, 0.22);
}

.btn-apply:hover,
.as-btn-dark:hover,
.dashboard-primary-btn:hover,
.home-hero-cta:hover,
.course-search-btn:hover,
.university-search-btn:hover,
.scholarship-filter-submit:hover,
.scholarship-action-primary:hover,
.pending-btn:hover,
.admin-btn:not(.success):not(.danger):hover,
form.d-flex button:hover,
.as-file::file-selector-button:hover {
  background: var(--as-secondary) !important;
  color: var(--as-text-on-dark) !important;
  border-color: var(--as-secondary) !important;
}

.btn-apply:focus-visible,
.as-btn-dark:focus-visible,
.dashboard-primary-btn:focus-visible,
.home-hero-cta:focus-visible,
.pending-btn:focus-visible {
  outline: 3px solid var(--as-focus-ring);
  outline-offset: 3px;
}

/* Secondary / outline actions */
.btn-view-university,
.btn-compare,
.dashboard-outline-btn,
.home-view-btn,
.course-view-btn,
.scholarship-view-btn,
.scholarship-action-secondary,
.as-btn-light {
  background: var(--as-bg-surface) !important;
  color: var(--as-text-primary) !important;
  border: 2px solid var(--as-secondary) !important;
  box-shadow: none;
}

.btn-view-university:hover,
.btn-compare:hover,
.dashboard-outline-btn:hover,
.home-view-btn:hover,
.course-view-btn:hover,
.scholarship-view-btn:hover,
.scholarship-action-secondary:hover,
.as-btn-light:hover {
  background: var(--as-secondary) !important;
  color: var(--as-text-on-dark) !important;
}

/* Charcoal heroes — brand chrome, not a green flood */
.student-dashboard-hero,
.admin-hero,
.course-detail-container .course-header,
.course-detail-container > .course-header,
.university-detail-hero {
  background: var(--as-bg-hero) !important;
  color: var(--as-text-on-dark) !important;
  box-shadow: 0 18px 40px rgba(39, 39, 39, 0.22) !important;
}

.student-dashboard-hero h1,
.student-dashboard-hero p,
.admin-hero h1,
.admin-hero p,
.course-detail-container .course-main-title,
.course-detail-container .course-university,
.course-detail-container .breadcrumb-text {
  color: var(--as-text-on-dark) !important;
}

.student-dashboard-hero p,
.admin-hero p,
.dashboard-label,
.completion-card-title,
.completion-card-status {
  color: rgba(255, 255, 255, 0.86) !important;
}

.dashboard-progress-fill,
.student-progress-fill {
  background: var(--as-primary) !important;
}

.section-number,
.student-step-tabs a.active {
  background: var(--as-primary) !important;
  color: var(--as-text-on-primary) !important;
  border-color: var(--as-primary) !important;
}

.student-kicker,
.scholarship-filter-clear,
.scholarship-back-link,
.scholarship-source-note a,
.featured-university-title,
.course-detail-container .section-title,
.course-detail-container .section-title i,
.detail-card-title,
.home-section-title,
.home-card-title,
.home-simple-title,
.courses-page-title,
.universities-page-title,
.scholarship-page-title,
.scholarship-card-title,
.scholarship-detail-title,
.scholarship-section-title,
.course-card-title,
.university-card-title,
.admin-card h2 {
  color: var(--as-text-primary) !important;
}

.course-detail-container .info-icon,
.course-detail-container .info-icon i {
  background: var(--as-primary-light) !important;
  color: var(--as-primary-accessible) !important;
}

.course-detail-container .ai-card {
  background: var(--as-primary-soft) !important;
  border-color: var(--as-border-strong) !important;
}

.as-form-control:focus,
.as-student-form-card .form-control:focus {
  border-color: var(--as-focus-ring) !important;
  box-shadow: 0 0 0 4px var(--as-focus-ring-soft) !important;
}

.as-checkbox {
  accent-color: var(--as-success);
}

.compare-accent,
.compare-accent a {
  color: var(--as-text-primary);
}

.course-page-btn.active,
.pagination .page-item.active .page-link,
.scholarship-pagination .page-item.active .page-link {
  background: var(--as-secondary) !important;
  border-color: var(--as-secondary) !important;
  color: var(--as-text-on-dark) !important;
}

/* Career interest test */
.riasec-scale input[type="radio"] {
  accent-color: var(--as-success);
}

.riasec-question {
  border-bottom-color: var(--as-border);
}

.report-bar > span {
  background: var(--as-primary);
}

/* Accessible muted text on light surfaces */
.text-muted {
  color: var(--as-text-secondary) !important;
}

/* Disabled controls */
.btn:disabled,
.btn.disabled,
.form-control:disabled {
  opacity: 0.65;
}

/* Admin primary on charcoal hero */
.admin-primary-btn {
  background: var(--as-primary) !important;
  color: var(--as-text-on-primary) !important;
}

.admin-primary-btn:hover {
  background: var(--as-bg-surface) !important;
  color: var(--as-text-primary) !important;
}

/* Form validation */
.as-field-error,
.as-form-alert,
.invalid-feedback,
.text-danger {
  color: var(--as-danger);
}

.is-invalid,
.form-control.is-invalid {
  border-color: var(--as-danger) !important;
}

/* Course tags — charcoal / accessible green instead of purple/cyan */
.course-detail-container .tag-international {
  background: var(--as-secondary) !important;
  color: var(--as-text-on-dark) !important;
}

.course-detail-container .tag-domestic {
  background: var(--as-success) !important;
  color: var(--as-text-on-dark) !important;
}

.course-detail-container .requirements-list li i,
.course-detail-container .facilities-list li i {
  color: var(--as-success) !important;
}

.course-detail-container .course-logo-placeholder,
.university-detail-logo-placeholder,
.home-logo-placeholder,
.university-logo-placeholder,
.featured-university-logo-placeholder {
  color: var(--as-text-primary) !important;
  background: var(--as-bg-subtle) !important;
}

.home-logo-wrap,
.university-logo-wrap,
.featured-university-card {
  background: var(--as-bg-subtle) !important;
}

.course-detail-container,
.course-detail-container.container {
  background: var(--as-bg-page) !important;
}

.scholarship-study-badge {
  background: var(--as-primary-light) !important;
  color: var(--as-primary-accessible) !important;
}

.as-student-form-card,
.student-summary-card {
  border-color: var(--as-border) !important;
  box-shadow: var(--as-shadow) !important;
}

.as-form-control {
  border-color: var(--as-border-strong) !important;
  background: var(--as-bg-surface) !important;
  color: var(--as-text-primary) !important;
}

.pending-title {
  color: var(--as-text-primary) !important;
}
