/* Examprayag Education UI
   A consistent, accessible visual system for public, account and student pages. */
:root {
  --ep-green: #009b4a;
  --ep-green-hover: #007d3d;
  --ep-green-soft: #eaf8f0;
  --ep-navy: #081f35;
  --ep-navy-2: #123752;
  --ep-ink: #102033;
  --ep-muted: #5b6b7e;
  --ep-page: #f5f8f6;
  --ep-card: #ffffff;
  --ep-line: #dce7e1;
  --ep-warning: #e9a100;
  --ep-danger: #cf3f4f;
  --ep-radius-sm: 10px;
  --ep-radius: 16px;
  --ep-radius-lg: 22px;
  --ep-shadow-sm: 0 2px 8px rgba(8,31,53,.05);
  --ep-shadow: 0 14px 34px rgba(8,31,53,.08);
  --accent: var(--ep-green) !important;
  --accent-rgb: 0, 155, 74 !important;
  --bg-page: var(--ep-page);
  --bg-card: var(--ep-card);
  --bg-surface: #eef4f0;
  --text-primary: var(--ep-ink);
  --text-secondary: var(--ep-muted);
  --border-color: var(--ep-line);
}

html { font-size: 100% !important; scroll-behavior: smooth; }
body {
  background: var(--ep-page);
  color: var(--ep-ink);
  font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  letter-spacing: -.01em;
}
h1,h2,h3,h4,h5,h6 { color: var(--ep-ink); font-weight: 800; letter-spacing: -.025em; }
p { color: var(--ep-muted); }
a { text-underline-offset: 3px; }
:focus-visible { outline: 3px solid rgba(0,155,74,.3) !important; outline-offset: 3px; }
::selection { color: #fff; background: var(--ep-green); }

/* Navigation */
.ep-header {
  min-height: 72px;
  padding-block: .6rem !important;
  background: rgba(255,255,255,.94) !important;
  border-bottom: 1px solid var(--ep-line) !important;
  box-shadow: 0 5px 22px rgba(8,31,53,.05) !important;
  backdrop-filter: blur(16px);
}
.ep-header .container-xl { max-width: 1240px; }
.ep-header .navbar-brand img { max-height: 44px !important; }
.ep-nav-link { min-height: 44px; display: flex !important; align-items: center; border-radius: 9px; color: #415267 !important; font-size: .9rem !important; font-weight: 700 !important; }
.ep-nav-link:hover,.ep-nav-link.active { color: var(--ep-green-hover) !important; background: var(--ep-green-soft) !important; }
.ep-btn-login,.ep-btn-register { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px !important; font-size: .88rem !important; font-weight: 750 !important; }
.ep-btn-login { border-color: var(--ep-line) !important; }
.ep-btn-register { color: #fff !important; background: var(--ep-green) !important; border-color: var(--ep-green) !important; box-shadow: 0 8px 18px rgba(0,155,74,.18) !important; }
.ep-btn-register:hover { color: #fff !important; background: var(--ep-green-hover) !important; }
.ep-lang-switch { border-radius: 9px !important; }
.navbar-toggler { min-width: 44px; min-height: 44px; border-radius: 10px !important; }
.navbar-toggler i { color: var(--ep-navy) !important; }

/* Common content and cards */
main { min-height: calc(100vh - 72px); }
.container,.container-lg,.container-xl { --bs-gutter-x: 2rem; }
.card,.signature-card,.s-course-card,.ud-card,.premium-card,.metric-card,.detail-card,.course-card,.lms-course-card {
  color: var(--ep-ink);
  background: var(--ep-card) !important;
  border: 1px solid var(--ep-line) !important;
  border-radius: var(--ep-radius) !important;
  box-shadow: var(--ep-shadow-sm) !important;
}
.card:hover,.signature-card:hover,.s-course-card:hover,.ud-card:hover,.course-card:hover,.lms-course-card:hover {
  border-color: #9bd1b2 !important;
  box-shadow: var(--ep-shadow) !important;
}
.card-header,.card-footer,.accordion-item,.list-group-item { color: var(--ep-ink); background: #fff !important; border-color: var(--ep-line) !important; }
.rounded-3,.rounded-4,.rounded-xl,.rounded-2xl,.rounded-3xl { border-radius: var(--ep-radius) !important; }
.shadow,.shadow-sm,.shadow-lg,.shadow-xl { box-shadow: var(--ep-shadow-sm) !important; }
.text-primary,.text-success,.text-accent { color: var(--ep-green-hover) !important; }
.bg-primary,.bg-success { background-color: var(--ep-green) !important; }
.border-primary,.border-success { border-color: var(--ep-green) !important; }
.text-muted,.text-secondary { color: var(--ep-muted) !important; }
.bg-light { background-color: #f3f7f5 !important; }

/* Controls */
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border-radius: var(--ep-radius-sm) !important; font-size: .9rem; font-weight: 750; }
.btn-sm { min-height: 38px; font-size: .82rem; }
.btn-lg { min-height: 50px; }
.btn-primary,.btn-success,.ep-btn-exam,.action-btn:not(.btn-secondary):not(.btn-danger):not(.btn-warning) { color: #fff !important; background: var(--ep-green) !important; border-color: var(--ep-green) !important; box-shadow: 0 8px 18px rgba(0,155,74,.16) !important; }
.btn-primary:hover,.btn-success:hover,.ep-btn-exam:hover { color: #fff !important; background: var(--ep-green-hover) !important; border-color: var(--ep-green-hover) !important; transform: translateY(-1px); }
.btn-outline-primary,.btn-outline-success { color: var(--ep-green-hover) !important; border-color: #82c59f !important; background: #fff !important; }
.btn-outline-primary:hover,.btn-outline-success:hover { color: #fff !important; background: var(--ep-green) !important; }
.btn-dark { background: var(--ep-navy) !important; border-color: var(--ep-navy) !important; }
.form-control,.form-select,.input-group-text,textarea,input[type='text'],input[type='email'],input[type='tel'],input[type='password'],input[type='search'] {
  min-height: 46px;
  color: var(--ep-ink);
  background-color: #fff;
  border-color: #cbdad2;
  border-radius: var(--ep-radius-sm) !important;
  font-size: .95rem;
}
.form-control:focus,.form-select:focus,input:focus,textarea:focus { border-color: var(--ep-green) !important; box-shadow: 0 0 0 4px rgba(0,155,74,.1) !important; }
.form-label,label { color: #33465a; font-size: .88rem; font-weight: 700; }
.form-check-input:checked { background-color: var(--ep-green) !important; border-color: var(--ep-green) !important; }
.badge { padding: .42rem .65rem; border-radius: 7px !important; font-size: .75rem; font-weight: 750; letter-spacing: .01em; }

/* Catalog and learning content */
.catalog-sidebar { top: 92px !important; padding: 1.4rem !important; background: #fff !important; border: 1px solid var(--ep-line) !important; border-radius: var(--ep-radius) !important; box-shadow: var(--ep-shadow-sm) !important; }
.filter-title { color: var(--ep-ink) !important; }.filter-item { color: var(--ep-muted) !important; }
.s-course-img-wrapper,.s-course-img,.home-course-media { background: #eaf4ee !important; }
.s-course-title,.s-course-name,.course-title { color: var(--ep-ink) !important; }
.s-course-price,.ud-price,.s-price { color: var(--ep-green-hover) !important; }
.accordion-button { min-height: 54px; color: var(--ep-ink) !important; background: #fff !important; font-weight: 750; box-shadow: none !important; }
.accordion-button:not(.collapsed) { color: var(--ep-green-hover) !important; background: var(--ep-green-soft) !important; }
.accordion-item { overflow: hidden; margin-bottom: .75rem; border: 1px solid var(--ep-line) !important; border-radius: 12px !important; }
.table { --bs-table-bg: transparent; --bs-table-color: var(--ep-ink); border-color: var(--ep-line); }
.table thead th { color: #526477; background: #eef4f0 !important; font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.table td,.table th { padding: .9rem 1rem; vertical-align: middle; }
.modal-content,.dropdown-menu { background: #fff; border: 1px solid var(--ep-line); border-radius: var(--ep-radius) !important; box-shadow: 0 28px 70px rgba(8,31,53,.18) !important; }

/* Public page hero normalization */
.ssc-hero,.cd-hero-gradient,.hero-section,.hero-gradient-bg {
  color: #fff !important;
  background: linear-gradient(135deg,var(--ep-navy),var(--ep-navy-2)) !important;
}
.ssc-hero h1,.ssc-hero h2,.ssc-hero p,.cd-hero-gradient h1,.cd-hero-gradient h2,.cd-hero-gradient p { color: #fff !important; }
.ssc-hero { padding-block: clamp(3.5rem,7vw,5.5rem) !important; }

/* Student dashboard and exam workspace */
.dashboard-main { background: var(--ep-page) !important; padding-top: 3.5rem !important; }
.dashboard-main .btn,.dashboard-main .badge { border-radius: var(--ep-radius-sm) !important; }
.lms-course-card { overflow: hidden; }
.lms-card-icon-action { border-radius: 9px !important; background: var(--ep-green-soft) !important; color: var(--ep-green-hover) !important; }
.layout-wrapper .sidebar {
  top: 72px !important;
  height: calc(100vh - 72px) !important;
  background: var(--ep-navy) !important;
  border-right: 1px solid rgba(255,255,255,.1) !important;
  box-shadow: 8px 0 30px rgba(8,31,53,.15) !important;
}
.layout-wrapper .sidebar .nav-link { min-height: 48px; border-radius: 9px !important; color: #c9d6df !important; }
.layout-wrapper .sidebar .nav-link:hover,.layout-wrapper .sidebar .nav-link.active { color: #fff !important; background: rgba(43,202,115,.16) !important; transform: none !important; }
.layout-wrapper .sidebar .nav-link.active:before { background: #2bca73 !important; }
.exam-header { background: rgba(255,255,255,.96) !important; border-bottom-color: var(--ep-line) !important; }
.option-card { min-height: 54px; border: 1px solid var(--ep-line) !important; border-radius: 12px !important; }
.option-card:hover { border-color: #92cbab !important; background: var(--ep-green-soft) !important; }
.palette-sidebar { background: #fff !important; border-left-color: var(--ep-line) !important; }
.palette-btn { border-radius: 8px !important; }
.material-display-card { border: 1px solid var(--ep-line) !important; border-radius: var(--ep-radius) !important; box-shadow: var(--ep-shadow-sm) !important; }

/* Authentication */
.login-page-container { background: radial-gradient(circle at 10% 10%,rgba(0,155,74,.1),transparent 28rem),var(--ep-page) !important; }
.auth-wrapper { max-width: 1120px !important; min-height: 620px !important; border: 1px solid var(--ep-line) !important; border-radius: var(--ep-radius-lg) !important; box-shadow: 0 28px 70px rgba(8,31,53,.13) !important; }
.auth-cover:before { background: linear-gradient(180deg,rgba(8,31,53,.1),rgba(8,31,53,.96)) !important; }
.auth-form-container { padding: clamp(2rem,5vw,4rem) !important; }
.btn-submit { min-height: 50px !important; background: var(--ep-green) !important; border-radius: 10px !important; box-shadow: 0 9px 22px rgba(0,155,74,.2) !important; }
.btn-submit:hover { background: var(--ep-green-hover) !important; }

/* Footer */
footer { padding-block: 3rem !important; background: #fff !important; border-top: 1px solid var(--ep-line) !important; }
footer .container { padding-block: 1rem !important; }
footer h5,footer h6 { color: var(--ep-ink) !important; }
footer p,footer a,footer span { color: var(--ep-muted) !important; }
footer a:hover { color: var(--ep-green-hover) !important; }

/* Dark mode stays calm and legible */
[data-theme='dark'] { --ep-page:#0b1723;--ep-card:#122334;--ep-ink:#edf5f0;--ep-muted:#b1c0ca;--ep-line:#294052;--ep-green-soft:#123c2a;--bg-page:var(--ep-page);--bg-card:var(--ep-card);--bg-surface:#192d3e;--text-primary:var(--ep-ink);--text-secondary:var(--ep-muted);--border-color:var(--ep-line) }
[data-theme='dark'] body,[data-theme='dark'] .dashboard-main { background:var(--ep-page) !important;color:var(--ep-ink) }
[data-theme='dark'] .ep-header,[data-theme='dark'] .card,[data-theme='dark'] .catalog-sidebar,[data-theme='dark'] .accordion-item,[data-theme='dark'] .accordion-button,[data-theme='dark'] .modal-content,[data-theme='dark'] .dropdown-menu,[data-theme='dark'] footer { background:var(--ep-card) !important }
[data-theme='dark'] h1,[data-theme='dark'] h2,[data-theme='dark'] h3,[data-theme='dark'] h4,[data-theme='dark'] h5,[data-theme='dark'] h6 { color:var(--ep-ink) }

@media (max-width: 991px) {
  .navbar-collapse { padding: 1rem !important; border-radius: 14px; }
  .ep-header .ep-btn-login,.ep-header .ep-btn-register { width: 100%; }
  .catalog-sidebar { position: static !important; }
  .layout-wrapper .sidebar { top: 72px !important; }
}
@media (max-width: 767px) {
  .container,.container-lg,.container-xl { --bs-gutter-x: 1.35rem; }
  h1,.display-4,.display-5 { font-size: clamp(2rem,10vw,2.75rem) !important; }
  section { scroll-margin-top: 76px; }
  .table td,.table th { padding:.75rem; }
  footer { padding-bottom: 6rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
