/* Light theme overrides (Bootstrap 4.6.2 + AdminLTE 3)
   Goal: improve contrast between backgrounds/surfaces and ensure text is readable.
*/

/* Base palette (used by overrides below) */
body.theme-light{
  --lt-bg: #f5f7fb;          /* page background */
  --lt-surface: #ffffff;     /* cards, navbars, sidebars */
  --lt-surface-2: #eef2ff;   /* hovered/selected */
  --lt-text: #0f172a;        /* slate 900 */
  --lt-muted: #334155;       /* slate 700 for safer contrast */
  --lt-border: rgba(15, 23, 42, .18);
  --lt-shadow: 0 12px 26px rgba(15, 23, 42, .10);

  background-color: var(--lt-bg) !important;
  color: var(--lt-text);
}

/* Stronger muted text for readability */
body.theme-light .text-muted{
  color: var(--lt-muted) !important;
}

/* Headings in AdminLTE areas */
body.theme-light .content-header h1,
body.theme-light .content-header .h1,
body.theme-light .content-wrapper h1,
body.theme-light .content-wrapper .h1,
body.theme-light .content-header h2,
body.theme-light .content-header .h2,
body.theme-light .content-wrapper h2,
body.theme-light .content-wrapper .h2{
  color: var(--lt-text) !important;
}

/* Content wrapper (AdminLTE) */
body.theme-light .content-wrapper,
body.theme-light .main-footer{
  background: var(--lt-bg) !important;
  color: var(--lt-text);
}

/* Cards / modals / dropdowns: increase surface contrast */
body.theme-light .card,
body.theme-light .modal-content,
body.theme-light .dropdown-menu{
  background: var(--lt-surface) !important;
  border: 1px solid var(--lt-border) !important;
  border-radius: 14px;
  box-shadow: var(--lt-shadow);
  color: var(--lt-text);
}

/* Form controls: darker borders + placeholder contrast */
body.theme-light .form-control,
body.theme-light .custom-select,
body.theme-light .select2-container--default .select2-selection--single{
  background-color: #fff;
  border-color: rgba(15, 23, 42, .26);
  color: var(--lt-text);
}
body.theme-light .form-control::placeholder{
  color: rgba(51, 65, 85, .82);
}
body.theme-light .form-control:focus,
body.theme-light .custom-select:focus,
body.theme-light .select2-container--default .select2-selection--single:focus{
  border-color: #1f4faa !important;
  box-shadow: 0 0 0 .2rem rgba(31, 79, 170, .22) !important;
}
body.theme-light .form-control:disabled,
body.theme-light .custom-select:disabled{
  color: #475569 !important;
  background-color: #eef2f7 !important;
  border-color: rgba(15, 23, 42, .22) !important;
}

/* Links: keep consistent (avoid too-light blues) */
body.theme-light a{
  color: #1f4faa;
}
body.theme-light a:hover{
  color: #153a7d;
}

/* Navbar + footer: keep SAME look across both themes */
body.theme-light .main-header.navbar,
body.theme-light .main-footer{
  background: #0E4C6A !important;
  border-color: var(--lt-border) !important;
  color: #fff !important;
}
body.theme-light .main-header .nav-link,
body.theme-light .main-footer a{
  color: rgba(255,255,255,.96) !important;
}
body.theme-light .main-header .nav-link:hover,
body.theme-light .main-footer a:hover{
  color: rgba(255,255,255,1) !important;
}

/* Top-nav layout: match dark theme styling */
/* Top-nav layout (no sidebar): match width with dark theme */
body.theme-light.layout-top-nav .content-wrapper{ margin-left: 0!important; }
body.theme-light.layout-top-nav .main-sidebar{ display:none!important; }
body.theme-light.layout-top-nav .content-wrapper > .container{ max-width: 1320px; }
body.theme-light.layout-top-nav .main-header.navbar{ box-shadow: 0 10px 30px rgba(0,0,0,.35); }
body.theme-light.layout-top-nav .main-header.navbar > .container,
body.theme-light.layout-top-nav .main-header.navbar > .container-fluid{ max-width: 1320px; }

body.theme-light.layout-top-nav .navbar-brand{ font-weight: 800; letter-spacing: -.02em; color: rgba(255,255,255,1)!important; }
body.theme-light.layout-top-nav .navbar-nav .nav-link{
  padding: .55rem .85rem;
  font-weight: 600;
  border-radius: 999px;
  color: rgba(255,255,255,.92)!important;
}
body.theme-light.layout-top-nav .navbar-nav .nav-link:hover{ background: rgba(255,255,255,.05); }
body.theme-light.layout-top-nav .navbar-nav .nav-item.active > .nav-link{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
}

/* Topmenu aligned like dark theme/front home menu */
body.theme-light.layout-top-nav .topmenu-home{
  width: 100%;
  justify-content: center;
  gap: .75rem;
}
body.theme-light.layout-top-nav .topmenu-home .nav-link{
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1;
}

body.theme-light.layout-top-nav .topmenu-home .nav-link-site{
  color: rgba(255,255,255,.90) !important;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.08);
}
body.theme-light.layout-top-nav .topmenu-home .nav-link-site:hover{
  color: rgba(255,255,255,1) !important;
  border-color: rgba(255,255,255,.32);
  background: rgba(255,255,255,.14);
}

/* Sidebar (AdminLTE): improve contrast */
body.theme-light .main-sidebar{
  background: var(--lt-surface) !important;
  border-right: 1px solid var(--lt-border);
}
body.theme-light .nav-sidebar .nav-link{
  color: rgba(15, 23, 42, .80);
}
body.theme-light .nav-sidebar .nav-link:hover{
  background: var(--lt-surface-2);
  color: var(--lt-text);
}
body.theme-light .nav-sidebar .nav-link.active{
  background: rgba(31, 79, 170, .12);
  color: #1f4faa;
  font-weight: 600;
}

/* Dropdown items */
body.theme-light .dropdown-item{
  color: var(--lt-text);
}
body.theme-light .dropdown-item:hover{
  background: #eef2ff;
  color: #0f172a;
}

/* Outline buttons: slightly darker border/text for contrast */
body.theme-light .btn-outline-secondary{
  border-color:#94a3b8;
  color:#0f172a;
}
body.theme-light .btn-outline-secondary:hover{
  background:#f1f5f9;
  border-color:#64748b;
  color:#0f172a;
}

/* Tables: improve header contrast */
body.theme-light .table thead th{
  color:#1e293b;
}
body.theme-light .table td,
body.theme-light .table th{
  color: #0f172a;
}
body.theme-light .table-striped tbody tr:nth-of-type(odd){
  background-color: rgba(15, 23, 42, .02);
}

body.theme-light .alert-info{
  background: #e0f2fe;
  border-color: #7dd3fc;
  color: #0c4a6e;
}
body.theme-light .alert-warning{
  background: #fef3c7;
  border-color: #fcd34d;
  color: #78350f;
}
body.theme-light .alert-danger{
  background: #fee2e2;
  border-color: #fca5a5;
  color: #7f1d1d;
}
body.theme-light .alert-success{
  background: #dcfce7;
  border-color: #86efac;
  color: #14532d;
}

body.theme-light .badge.badge-light,
body.theme-light .badge.bg-light{
  background: #e2e8f0 !important;
  color: #0f172a !important;
}
body.theme-light .badge.badge-secondary,
body.theme-light .badge.bg-secondary{
  background: #475569 !important;
  color: #fff !important;
}

body.theme-light .page-link{
  color: #1e3a8a;
  border-color: rgba(15, 23, 42, .20);
  background: #fff;
}
body.theme-light .page-item.active .page-link{
  color: #fff;
  background-color: #1f4faa;
  border-color: #1f4faa;
}
body.theme-light .page-link:hover{
  color: #0f2c62;
  background: #eef2ff;
}

/* Historico: pagination spacing (match dark theme) */
body.theme-light.is-candidato .history-table-wrap .dataTables_wrapper .dataTables_paginate .paginate_button{
  margin: 0 .15rem !important;
  border-radius: 10px !important;
}

/* Bootstrap pagination (if used in historico) */
body.theme-light.is-candidato .history-table-wrap .pagination{
  display: flex;
  gap: .3rem;
}
body.theme-light.is-candidato .history-table-wrap .pagination .page-item{
  margin: 0 !important;
}
body.theme-light.is-candidato .history-table-wrap .pagination .page-link{
  border-radius: 10px !important;
}

/* Breadcrumb/title header: ensure no background blocks in light theme */
body.theme-light .candidate-page-header,
body.theme-light .page-header-title-row,
body.theme-light .candidate-page-title{
  background: transparent !important;
  box-shadow: none !important;
}

/* Footer links (light): keep same background as navbar + near-white text */
body.theme-light .main-footer.app-links-footer{
  background: #0E4C6A !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.86) !important;
}

/* links in simple footer */
body.theme-light .main-footer.app-links-footer.footer-model-simple a{
  color: rgba(255,255,255,.78) !important;
}
body.theme-light .main-footer.app-links-footer.footer-model-simple a:hover{
  color: rgba(255,255,255,.95) !important;
}

/* center links a bit "blue" like the model */
body.theme-light .main-footer.app-links-footer.footer-model-simple .footer-simple-center a{
  color: rgba(92, 192, 255, .95) !important;
}
body.theme-light .main-footer.app-links-footer.footer-model-simple .footer-simple-center a:hover{
  color: rgba(160, 223, 255, 1) !important;
}

/* social icons */
body.theme-light .main-footer.app-links-footer.footer-model-simple .footer-social-icon{
  background: rgba(255,255,255,.10);
  color: rgba(255,255,255,.95) !important;
}
body.theme-light .main-footer.app-links-footer.footer-model-simple .footer-social-icon:hover{
  background: rgba(255,255,255,.16);
  color: rgba(255,255,255,1) !important;
}

/* Candidate "Simulados" page: make "Iniciar" buttons high-contrast (with different colors) */
body.theme-light.is-candidato .btn-start-school{
  background-color: #6D6AFD !important;
  border-color: #6D6AFD !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
body.theme-light.is-candidato .btn-start-school:hover{
  background-color: #5b58f0 !important;
  border-color: #5b58f0 !important;
}
body.theme-light.is-candidato .btn-start-school:focus{
  box-shadow: 0 0 0 .2rem rgba(109, 106, 253, .25) !important;
}

/* Category boxes: start button MUST be green in light theme */
body.theme-light.is-candidato .simulado-card--category a.btn.btn-primary.btn-start-category,
body.theme-light.is-candidato .simulado-card--category button.btn.btn-primary.btn-start-category,
body.theme-light.is-candidato a.btn.btn-primary.btn-start-category,
body.theme-light.is-candidato button.btn.btn-primary.btn-start-category{
  background-color: #16a34a !important;
  border-color: #16a34a !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
body.theme-light.is-candidato .simulado-card--category a.btn.btn-primary.btn-start-category:hover,
body.theme-light.is-candidato .simulado-card--category button.btn.btn-primary.btn-start-category:hover,
body.theme-light.is-candidato a.btn.btn-primary.btn-start-category:hover,
body.theme-light.is-candidato button.btn.btn-primary.btn-start-category:hover{
  background-color: #15803d !important;
  border-color: #15803d !important;
}
body.theme-light.is-candidato .simulado-card--category a.btn.btn-primary.btn-start-category:focus,
body.theme-light.is-candidato .simulado-card--category button.btn.btn-primary.btn-start-category:focus,
body.theme-light.is-candidato a.btn.btn-primary.btn-start-category:focus,
body.theme-light.is-candidato button.btn.btn-primary.btn-start-category:focus{
  box-shadow: 0 0 0 .2rem rgba(22, 163, 74, .25) !important;
}

/* Simulado player (Área do Aluno): override dark-theme outline buttons when theme-light */
body.theme-light.is-candidato .btn-outline-secondary,
body.theme-light.is-candidato .simulado-root .btn-sim.btn-outline-secondary,
body.theme-light.is-candidato .simulado-root .btn-sim-sm.btn-outline-secondary{
  background: transparent !important;
  border-color: rgba(15, 23, 42, .28) !important;
  color: rgba(15, 23, 42, .82) !important;
}
body.theme-light.is-candidato .btn-outline-secondary:hover,
body.theme-light.is-candidato .simulado-root .btn-sim.btn-outline-secondary:hover,
body.theme-light.is-candidato .simulado-root .btn-sim-sm.btn-outline-secondary:hover{
  background: rgba(15, 23, 42, .04) !important;
  border-color: rgba(15, 23, 42, .40) !important;
  color: rgba(15, 23, 42, .90) !important;
}

/* Simulado player (light): fix stat chips (qtd. questões / tempo) contrast */
body.theme-light.is-candidato .simulado-root .simulado-compact .stat-chip,
body.theme-light.is-candidato .simulado-root .focus-bar .focus-chip{
  background: #eef2fb !important;
  border: 1px solid rgba(15, 23, 42, .16) !important;
  color: #1f2f5c !important;
}

/* Question header chips (1/1, 00:12, DIREITO ADMINISTRATIVO): make them pop in light theme */
body.theme-light.is-candidato .simulado-root .focus-bar .focus-chip{
  box-shadow: 0 10px 18px rgba(15, 23, 42, .06);
}
body.theme-light.is-candidato .simulado-root .focus-bar .focus-chip .value,
body.theme-light.is-candidato .simulado-root .simulado-compact .stat-chip .value{
  color: #0f172a !important;
  font-weight: 800 !important;
}
body.theme-light.is-candidato .simulado-root .simulado-compact .stat-chip i,
body.theme-light.is-candidato .simulado-root .focus-bar .focus-chip i{
  color: #475569 !important;
  opacity: 1 !important;
}

/* Simulado player (light): strengthen box borders (shell/compact/panels) */
body.theme-light.is-candidato .simulado-root{
  /* remove custom background (use page default) */
  background: transparent !important;
}

/* Main shell (outer container) */
body.theme-light.is-candidato .simulado-root .simulado-shell{
  background: linear-gradient(180deg, #ffffff, #f8fafc) !important;
  border-color: rgba(15, 23, 42, .34) !important;
  box-shadow:
    inset 0 0 0 1px rgba(15, 23, 42, .07),
    0 18px 42px rgba(17, 35, 78, 0.10),
    inset 0 1px 0 rgba(255,255,255,.85) !important;
}

/* Compact header box (title + chips + start button) */
body.theme-light.is-candidato .simulado-root .simulado-compact{
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(245,247,251,1)) !important;
  border-color: rgba(15, 23, 42, .36) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    inset 0 0 0 1px rgba(15, 23, 42, .08),
    0 10px 22px rgba(17, 35, 78, 0.06) !important;
}

/* Panels (below sections) */
body.theme-light.is-candidato .simulado-root .simulado-panel{
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(248,250,252,1)) !important;
  border-color: rgba(15, 23, 42, .36) !important;
  box-shadow:
    inset 0 0 0 1px rgba(15, 23, 42, .08),
    0 12px 28px rgba(17, 35, 78, 0.07),
    inset 0 1px 0 rgba(255,255,255,.85) !important;
}

/* Option separators a bit stronger */
body.theme-light.is-candidato .simulado-root .question-option{
  border-bottom-color: rgba(15, 23, 42, .22) !important;
}

/* Simulado page header ("Simulado"): make divider visible in light theme */
body.theme-light.is-candidato .simulado-root .card-header.simulado-header{
  background: transparent !important;
  border-bottom: 1px solid rgba(15, 23, 42, .18) !important;
}

/* Simulado player (light): match dark theme spacing/layout (except colors) */
body.theme-light.is-candidato .simulado-root .simulado-panel{
  padding: 1.1rem !important;
}
body.theme-light.is-candidato .simulado-root .panel-header{
  gap: .85rem !important;
}
body.theme-light.is-candidato .simulado-root .panel-header .actions{
  gap: .6rem !important;
}

/* Mini-stats pills (if present) */
body.theme-light.is-candidato .simulado-root .simulado-mini-stats .pill{
  background: #eef2fb !important;
  border: 1px solid rgba(15, 23, 42, .14) !important;
  color: rgba(15, 23, 42, .85) !important;
}
body.theme-light.is-candidato .simulado-root .simulado-mini-stats .pill .value{
  color: #0f172a !important;
}

/* Question options: list-like rows (no box cards), with letter block */
body.theme-light.is-candidato .simulado-root .question-option{
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(15, 23, 42, .14) !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  padding-left: .75rem !important;
  padding-right: .75rem !important;
  color: rgba(15, 23, 42, .92) !important;
}
body.theme-light.is-candidato .simulado-root.simulado-admin .question-option,
body.theme-light.is-candidato .simulado-root.simulado-school .question-option{
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}
body.theme-light.is-candidato .simulado-root .question-option + .question-option{
  margin-top: 0 !important;
}
body.theme-light.is-candidato .simulado-root .question-option:hover{
  background: rgba(31, 79, 170, .06) !important;
}
body.theme-light.is-candidato .simulado-root [data-question-options] .question-option:last-child{
  border-bottom: 0 !important;
}

body.theme-light.is-candidato .simulado-root .question-option-letter{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 30px;
  border-radius: 6px;
  background: rgba(15, 23, 42, .04) !important;
  border: 1px solid rgba(15, 23, 42, .14);
  color: rgba(15, 23, 42, .82) !important;
  font-weight: 800;
  flex: 0 0 auto;
}

/* Letra destacada quando marcada/respondida (light) */
body.theme-light.is-candidato .simulado-root .question-option.selected .question-option-letter,
body.theme-light.is-candidato .simulado-root .question-option.correct .question-option-letter,
body.theme-light.is-candidato .simulado-root .question-option.wrong .question-option-letter,
body.theme-light.is-candidato .simulado-root .question-option.question-option--answered .question-option-letter{
  background: #60a5fa !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: #ffffff !important;
}

/* Selected/correct/wrong: full-row highlight + accent bar (same layout as dark) */
body.theme-light.is-candidato .simulado-root .question-option.selected{
  background: rgba(31, 79, 170, .09) !important;
  border-left: 4px solid rgba(31, 79, 170, 1) !important;
}
body.theme-light.is-candidato .simulado-root .question-option.correct{
  background: rgba(22, 163, 74, .09) !important;
  border-left: 4px solid rgba(22, 163, 74, 1) !important;
}
body.theme-light.is-candidato .simulado-root .question-option.wrong{
  background: rgba(220, 38, 38, .08) !important;
  border-left: 4px solid rgba(220, 38, 38, 1) !important;
}

/* Candidate dashboard stat boxes ("Total", "Finalizados", etc.)
   These are defined inline in app/Views/candidate/dashboard_admin.php with dark colors,
   so we need explicit light-theme overrides.
*/
body.theme-light.is-candidato .small-box.stat-box-blue,
body.theme-light.is-candidato .small-box.stat-box-green,
body.theme-light.is-candidato .small-box.stat-box-orange,
body.theme-light.is-candidato .small-box.stat-box-red{
  background: #ffffff !important;
  border: 1px solid rgba(15, 23, 42, .14) !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .10) !important;
  color: var(--lt-text) !important;
}

/* keep the accent border color per box */
body.theme-light.is-candidato .small-box.stat-box-blue{ border-color: rgba(31, 79, 170, .28) !important; }
body.theme-light.is-candidato .small-box.stat-box-green{ border-color: rgba(22, 163, 74, .28) !important; }
body.theme-light.is-candidato .small-box.stat-box-orange{ border-color: rgba(217, 119, 6, .30) !important; }
body.theme-light.is-candidato .small-box.stat-box-red{ border-color: rgba(220, 38, 38, .26) !important; }

body.theme-light.is-candidato .small-box.stat-box-blue .inner h3,
body.theme-light.is-candidato .small-box.stat-box-green .inner h3,
body.theme-light.is-candidato .small-box.stat-box-orange .inner h3,
body.theme-light.is-candidato .small-box.stat-box-red .inner h3{
  color: var(--lt-text) !important;
}

body.theme-light.is-candidato .small-box.stat-box-blue .inner p,
body.theme-light.is-candidato .small-box.stat-box-green .inner p,
body.theme-light.is-candidato .small-box.stat-box-orange .inner p,
body.theme-light.is-candidato .small-box.stat-box-red .inner p{
  color: var(--lt-muted) !important;
}

body.theme-light.is-candidato .small-box.stat-box-blue .small-box-footer,
body.theme-light.is-candidato .small-box.stat-box-green .small-box-footer,
body.theme-light.is-candidato .small-box.stat-box-orange .small-box-footer,
body.theme-light.is-candidato .small-box.stat-box-red .small-box-footer{
  background: rgba(15, 23, 42, .035) !important;
  border-top: 1px solid rgba(15, 23, 42, .08) !important;
  color: rgba(15, 23, 42, .78) !important;
}

body.theme-light.is-candidato .small-box.stat-box-blue .icon,
body.theme-light.is-candidato .small-box.stat-box-green .icon,
body.theme-light.is-candidato .small-box.stat-box-orange .icon,
body.theme-light.is-candidato .small-box.stat-box-red .icon{
  color: rgba(15, 23, 42, .14) !important;
  opacity: 1 !important;
}

/* Candidate dashboard: background icon positioning (AdminLTE-like) */
body.theme-light.is-candidato .small-box{ position: relative; overflow: hidden; }
body.theme-light.is-candidato .small-box .icon{
  position: absolute;
  top: -8px;
  right: 12px;
  left: auto;
  opacity: .16;
  pointer-events: none;
}
body.theme-light.is-candidato .small-box .icon > i.fa,
body.theme-light.is-candidato .small-box .icon > i.fab,
body.theme-light.is-candidato .small-box .icon > i.fad,
body.theme-light.is-candidato .small-box .icon > i.fal,
body.theme-light.is-candidato .small-box .icon > i.far,
body.theme-light.is-candidato .small-box .icon > i.fas,
body.theme-light.is-candidato .small-box .icon > i.ion{
  font-size: 60px!important;
  line-height: 1;
}
body.theme-light.is-candidato .small-box .inner{ position: relative; z-index: 1; }
body.theme-light.is-candidato .small-box .small-box-footer{ position: relative; z-index: 1; }

/* Restricted areas: softer elevation for boxes and tables */
body.theme-light.is-admin .card,
body.theme-light.is-admin .small-box,
body.theme-light.is-admin .info-box,
body.theme-light.is-admin .table-responsive,
body.theme-light.is-admin div.dataTables_wrapper,
body.theme-light.is-candidato .card,
body.theme-light.is-candidato .small-box,
body.theme-light.is-candidato .info-box,
body.theme-light.is-candidato .table-responsive,
body.theme-light.is-candidato div.dataTables_wrapper{
  box-shadow: 0 4px 10px rgba(15, 23, 42, .06) !important;
}

body.theme-light.is-admin .table-responsive,
body.theme-light.is-candidato .table-responsive{
  box-shadow: 0 0 0 0 transparent !important;
}

/* DataTables wrapper: no border/elevation in any profile */
body.theme-light div.dataTables_wrapper{
  box-shadow: none !important;
  border: 0 !important;
}

body.theme-light.is-admin .table,
body.theme-light.is-candidato .table{
  box-shadow: 0 0 0 0 transparent !important;
}

/* Histórico: remove elevação da tabela/wrapper no tema claro */
body.theme-light.is-candidato .history-table-wrap,
body.theme-light.is-candidato .history-table-wrap.table-responsive,
body.theme-light.is-candidato .history-table-wrap .dataTables_wrapper,
body.theme-light.is-admin .history-table-wrap,
body.theme-light.is-admin .history-table-wrap.table-responsive,
body.theme-light.is-admin .history-table-wrap .dataTables_wrapper{
  box-shadow: none !important;
}

/* ==========================================================
   Light theme hardening against dark-theme global leaks
   (public pages: buttons, fields, alerts, muted text)
   ========================================================== */
body.theme-light .btn-primary,
body.theme-light .btn-gradient {
  background: linear-gradient(135deg, #2d6cf6, #1f4faa) !important;
  border-color: transparent !important;
  color: #ffffff !important;
}

body.theme-light .btn-primary:hover,
body.theme-light .btn-primary:focus,
body.theme-light .btn-gradient:hover,
body.theme-light .btn-gradient:focus {
  background: linear-gradient(135deg, #245fdf, #1a438f) !important;
  color: #ffffff !important;
}

/* Hero/catalog secondary CTA over dark background */
body.theme-light .catalog-clean-hero .btn-outline-light,
body.theme-light .hero .btn-outline-light {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .76) !important;
  background: rgba(255, 255, 255, .06) !important;
}

body.theme-light .catalog-clean-hero .btn-outline-light:hover,
body.theme-light .hero .btn-outline-light:hover {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, .95) !important;
  background: rgba(255, 255, 255, .18) !important;
}

/* Inputs/selects: guarantee readable text and placeholders in light mode */
body.theme-light .form-control,
body.theme-light .form-select,
body.theme-light input,
body.theme-light select,
body.theme-light textarea {
  background: #ffffff !important;
  color: #0f172a !important;
  border: 1px solid rgba(15, 23, 42, .24) !important;
}

body.theme-light .form-control::placeholder,
body.theme-light textarea::placeholder {
  color: #53657f !important;
  opacity: 1 !important;
}

body.theme-light .form-select option {
  color: #0f172a;
  background: #ffffff;
}

body.theme-light .form-control:focus,
body.theme-light .form-select:focus,
body.theme-light input:focus,
body.theme-light select:focus,
body.theme-light textarea:focus {
  border-color: #1f4faa !important;
  box-shadow: 0 0 0 .22rem rgba(31, 79, 170, .22) !important;
}

/* Informational alerts on clear surfaces */
body.theme-light .alert-primary {
  background: #e9f2ff !important;
  border-color: #bfd5fb !important;
  color: #143768 !important;
}

body.theme-light .alert-primary a,
body.theme-light .alert-primary .btn {
  color: #143768;
}

/* Improve muted legibility in public cards/sections */
body.theme-light main .text-muted,
body.theme-light .catalog-clean .text-muted,
body.theme-light .catalog-clean .small.text-muted {
  color: #3d5270 !important;
}

/* Hero helper text should stay readable on dark gradients */
body.theme-light .catalog-clean-hero .text-white-50,
body.theme-light .hero .text-white-50 {
  color: rgba(255, 255, 255, .9) !important;
}
