/* =========================================================
   Phase 14: LMS readability and contrast guard
   Purpose: stop black/dark text from disappearing on dark cyber cards,
   while keeping white cards, emails, quiz cards and report tables readable.
   ========================================================= */

/* Dark LMS surfaces must always use light text. */
:is(
  .hero,
  .dashboard-guide,
  .quick-card,
  .setup-panel,
  .assessment-card,
  .module-card,
  .lesson-card,
  .lesson-list,
  .flow-section,
  .practice-card,
  .student-sim-card,
  .simulation-question-card,
  .simulation-question-first,
  .sim-decision-meter,
  .sim-coach-card,
  .lesson-game-card,
  .game-round,
  .lesson-score-panel,
  .score-chip,
  .warning-sign-drill,
  .sim-review-strip,
  .exam-panel,
  .exam-card,
  .locked-panel,
  .personal-context,
  .topbar,
  .top-bar,
  .app-topbar,
  .student-topbar
){
  color:#f8fbff!important;
  text-shadow:none!important;
}

:is(
  .hero,
  .dashboard-guide,
  .quick-card,
  .setup-panel,
  .assessment-card,
  .module-card,
  .lesson-card,
  .lesson-list,
  .flow-section,
  .practice-card,
  .student-sim-card,
  .simulation-question-card,
  .simulation-question-first,
  .sim-decision-meter,
  .sim-coach-card,
  .lesson-game-card,
  .game-round,
  .lesson-score-panel,
  .score-chip,
  .warning-sign-drill,
  .sim-review-strip,
  .exam-panel,
  .exam-card,
  .locked-panel,
  .personal-context
) :is(h1,h2,h3,h4,h5,h6,strong,b,label,legend){
  color:#ffffff!important;
}

:is(
  .hero,
  .dashboard-guide,
  .quick-card,
  .setup-panel,
  .assessment-card,
  .module-card,
  .lesson-card,
  .lesson-list,
  .flow-section,
  .practice-card,
  .student-sim-card,
  .simulation-question-card,
  .simulation-question-first,
  .sim-decision-meter,
  .sim-coach-card,
  .lesson-game-card,
  .game-round,
  .lesson-score-panel,
  .score-chip,
  .warning-sign-drill,
  .sim-review-strip,
  .exam-panel,
  .exam-card,
  .locked-panel,
  .personal-context
) :is(p,li,span,small,em,div){
  color:#d8e9f8!important;
}

/* Keep important action buttons clear on any background. */
:is(.btn-primary,.btn-blue,.eyebrow,.brand-mark,.challenge-kicker,.simulation-target,.sim-retry-btn,.scenario-real-button,.scenario-real-link,.finance-btn,.center-notice-close,.training-modal-close){
  color:#06111f!important;
  text-shadow:none!important;
}
:is(.btn-danger,.scenario-real-link,.scenario-real-button,.finance-btn,.finance-btn.secondary,.device-prompt-actions .approve){
  color:#ffffff!important;
}
:is(.btn-ghost,.review-simulation-btn,.review-lesson-btn,.voice-toggle,.sound-toggle){
  color:#f8fbff!important;
}

/* Form controls on dark pages. */
:is(input,select,textarea){
  color:#f8fbff;
}
:is(input,select,textarea)::placeholder{color:#9fb4ca!important;opacity:1!important;}
select option{background:#0b1b31!important;color:#ffffff!important;}

/* Light surfaces must stay dark text for readability. */
:is(
  .email-sim,
  .email-sim *,
  .quiz-question-card,
  .quiz-question-card *,
  .question-card,
  .question-card *,
  .result-box,
  .result-box *,
  .feedback.show,
  .feedback.show *,
  .quiz-question-note,
  .quiz-question-note *,
  #quizFeedback,
  #quizFeedback *,
  .mini-feedback.show,
  .mini-feedback.show *,
  .game-feedback.show,
  .game-feedback.show *,
  .notice-card,
  .notice-card *,
  .training-modal-card,
  .training-modal-card *,
  .center-notice-card,
  .center-notice-card *,
  .loading-box,
  .loading-box *,
  .table-wrap,
  .table-wrap *,
  table,
  table *,
  .detail-card,
  .detail-card *,
  .modal-box,
  .modal-box *
){
  color:#06111f!important;
  text-shadow:none!important;
}

/* Restore readable muted text inside light mockups. */
.email-sim :is(.email-row,.email-message,.mail-cta-note,.attachment-card .file-info span,.realistic-warning-note),
.question-card :is(p,span,small),
.quiz-question-note :is(span,small),
.result-box :is(p,span,small),
.center-notice-msg,
.training-modal-body{
  color:#1e3348!important;
}

/* But blue/fake workplace links and buttons inside light email screens must remain visibly clickable. */
.email-sim :is(.fake-link,.scenario-real-link,.scenario-real-button,.finance-btn),
:is(.scenario-real-link,.scenario-real-button,.finance-btn):not(.secondary){
  color:#ffffff!important;
}
.email-sim .real-link-preview :is(b,span){color:#0b1727!important;}
.email-sim .attachment-card .file-icon{color:#ffffff!important;}

/* Dark realistic mockups with attachment cards must keep light text. */
:is(.payment-sim,.file-sim,.device-sim,.browser-shell,.chrome-prompt) :is(.attachment-card,.attachment-card *, .real-link-preview,.real-link-preview *, .scenario-action-label){
  color:#eafcff!important;
}
:is(.payment-sim,.file-sim,.device-sim) .attachment-card .file-icon{color:#ffffff!important;}

/* Quiz/exam options are intentionally light cards. */
:is(.quiz-question-card,.question-card) .option,
:is(.quiz-question-card,.question-card) .option *,
:is(.quiz-options,.options) .option,
:is(.quiz-options,.options) .option *{
  color:#000000!important;
}

/* Warning and status chips need clear contrast. */
:is(.answer-required,.simulation-needed-note,.exam-locked-pill,.locked-note,.badge-toast-inline,.one-answer-pill){
  color:#06111f!important;
  text-shadow:none!important;
}
.one-answer-pill{background:#fff7ed!important;border-color:#fed7aa!important;}

/* Score/decision elements on dark cards. */
.score-chip :is(b,span),
.sim-decision-meter :is(span,b),
.warning-sign,
.warning-sign *,
.sim-review-strip :is(span,b){
  color:#f8fbff!important;
}
.warning-sign small{color:#fff4d6!important;}

/* Disabled/locked text should still be readable. */
:is(.locked,.disabled,[disabled],.gate-disabled){
  opacity:.78!important;
}
:is(.lesson-btn.locked,.module-card.locked,.assessment-card.locked) *{
  color:#c6d8eb!important;
}

/* Mobile nav button readability. */
.topbar :is(.btn,.badge),
.top-bar :is(.btn,.badge),
.student-topbar :is(.btn,.badge){
  text-shadow:none!important;
}

/* =========================================================
   Phase 17: quiz simulation modal + stronger quiz contrast
   ========================================================= */
.simulation-review-open{overflow:hidden!important;}
.simulation-review-modal{position:fixed;inset:0;z-index:2147483200;align-items:center;justify-content:center;padding:18px;}
.simulation-review-modal.show{display:flex!important;}
.simulation-review-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.76);backdrop-filter:blur(10px);}
.simulation-review-card{position:relative;width:min(980px,calc(100vw - 28px));max-height:min(88vh,920px);overflow:auto;border-radius:28px;border:1px solid rgba(122,246,255,.34);background:linear-gradient(145deg,#071527,#0b2137 52%,#0b302b);box-shadow:0 40px 120px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.05) inset;color:#f8fbff!important;}
.simulation-review-head{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid rgba(122,246,255,.2);background:rgba(7,21,39,.96);backdrop-filter:blur(12px);}
.simulation-review-kicker{display:inline-flex;border-radius:999px;padding:6px 10px;background:#dffcff;color:#06212a!important;border:1px solid #6ee7f8;font-weight:1000;font-size:12px;}
.simulation-review-head h3{margin:8px 0 4px;color:#fff!important;font-size:clamp(20px,3vw,30px);}
.simulation-review-head p{margin:0;color:#cfe9f8!important;font-weight:800;}
.simulation-review-close{width:42px;height:42px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#12243a;color:#fff!important;font-size:28px;line-height:1;cursor:pointer;}
.simulation-review-body{padding:18px 20px 8px;}
.simulation-review-actions{position:sticky;bottom:0;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding:14px 20px;border-top:1px solid rgba(122,246,255,.2);background:rgba(7,21,39,.96);backdrop-filter:blur(12px);}
.simulation-review-inner{display:grid;gap:14px;}
.simulation-review-target{display:grid;gap:4px;border:1px solid rgba(68,242,166,.32);background:rgba(68,242,166,.11);border-radius:18px;padding:12px;color:#eafff5!important;}
.simulation-review-target span{color:#bcffe0!important;font-weight:1000;font-size:12px;text-transform:uppercase;letter-spacing:.05em;}
.simulation-review-target strong{color:#fff!important;font-size:18px;}
.modal-linked-question{display:grid;gap:6px;border:1px solid rgba(255,189,74,.35);background:#fff7ed;border-radius:18px;padding:12px;color:#2b1700!important;}
.modal-linked-question b,.modal-linked-question span{color:#2b1700!important;}
.simulation-review-surface{border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:#fff;color:#08111f!important;}
.simulation-review-surface :is(.email-sim,.email-sim *, .real-link-preview,.real-link-preview *, .attachment-card,.attachment-card *){color:#08111f!important;}
.simulation-review-surface :is(.payment-sim,.file-sim,.device-sim,.voice-sim,.chat-sim,.browser-shell,.chrome-prompt){color:#f8fbff!important;}
.simulation-review-surface :is(.payment-sim,.file-sim,.device-sim,.voice-sim,.chat-sim,.browser-shell,.chrome-prompt) *{color:#eaf6ff!important;}
.simulation-review-clues{border:1px solid rgba(122,246,255,.18);background:rgba(255,255,255,.06);border-radius:18px;padding:13px;color:#f8fbff!important;}
.simulation-review-clues b{display:block;margin-bottom:9px;color:#fff!important;}
.simulation-review-clues ol{margin:0;padding-left:0;display:grid;gap:8px;list-style:none;}
.simulation-review-clues li{display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:start;color:#e7f8ff!important;}
.simulation-review-clues li b{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#49e7ff;color:#06111f!important;margin:0;font-weight:1000;}
.simulation-review-clues li span{color:#e7f8ff!important;}
.simulation-review-reminder{border-left:4px solid #49e7ff;background:rgba(73,231,255,.10);border-radius:16px;padding:12px;color:#e8fbff!important;font-weight:850;}
.simulation-review-reminder strong{color:#fff!important;}
.question-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.quiz-difficulty-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:1000;border:1px solid #bfdbfe;background:#eff6ff;color:#102a43!important;}
.quiz-difficulty-badge.intermediate{background:#fff7ed;border-color:#fed7aa;color:#7c2d12!important;}
.quiz-difficulty-badge.advanced{background:#fef2f2;border-color:#fecaca;color:#7f1d1d!important;}
.review-simulation-btn{background:linear-gradient(135deg,#e0fbff,#bcffe0)!important;border:1px solid rgba(20,184,166,.55)!important;color:#06212a!important;text-shadow:none!important;box-shadow:0 10px 24px rgba(14,165,233,.16)!important;font-weight:1000!important;}
.review-simulation-btn:hover{filter:brightness(1.03);transform:translateY(-1px);}
.review-simulation-btn:disabled,.review-simulation-btn[disabled]{opacity:.95!important;color:#06212a!important;background:#e5f7ff!important;}
.quiz-top,.quiz-question-card,.sim-review-strip,.quiz-fun-copy,.quiz-step-list,.lesson-gate-banner{color:#06111f!important;text-shadow:none!important;}
.quiz-top :is(h3,p,span,li,b,strong),.quiz-question-card :is(p,span,b,strong,small),.sim-review-strip :is(span,b,strong),.quiz-fun-copy,.quiz-fun-copy *, .quiz-step-list *, .lesson-gate-banner *{color:#06111f!important;text-shadow:none!important;}
.quiz-question-card{background:#ffffff!important;border:1px solid #dbeafe!important;box-shadow:0 16px 34px rgba(15,23,42,.08)!important;}
.quiz-question-helper{display:block;border-radius:14px;background:#eff6ff!important;border:1px solid #bfdbfe!important;color:#102a43!important;padding:10px;margin:8px 0;font-weight:850;}
.quiz-question-note{display:block;background:#f8fafc!important;border:1px solid #dbeafe!important;color:#1e293b!important;border-radius:14px;padding:9px 10px;margin-top:10px;font-weight:850;}
.option.has-letter{background:#ffffff!important;border:1px solid #cbd5e1!important;color:#07111f!important;box-shadow:0 8px 18px rgba(15,23,42,.06)!important;}
.option.has-letter *{color:#07111f!important;}
.option.has-letter:hover{border-color:#0ea5e9!important;background:#f0f9ff!important;}
.option.has-letter.selected{background:#e0f2fe!important;border-color:#0284c7!important;color:#082f49!important;}
.option.has-letter.correct{background:#dcfce7!important;border-color:#16a34a!important;color:#052e16!important;}
.option.has-letter.wrong{background:#fee2e2!important;border-color:#dc2626!important;color:#450a0a!important;}
.option-letter{background:#0f172a!important;color:#ffffff!important;border-radius:999px;min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-weight:1000;margin-right:8px;}
.ordered-option-list{margin:0;padding-left:22px;color:#07111f!important;}
.ordered-option-list li{color:#07111f!important;margin:3px 0;}
@media(max-width:720px){.simulation-review-actions{justify-content:stretch}.simulation-review-actions .btn{width:100%;}.simulation-review-head{padding:15px}.simulation-review-body{padding:14px}.simulation-review-card{border-radius:22px;}}

/* Phase 20 final contrast safety net for quiz review buttons and instant answer feedback */
.review-simulation-btn,
button.review-simulation-btn,
a.review-simulation-btn,
.quiz-question-card .review-simulation-btn,
.sim-review-strip .review-simulation-btn,
#quizFeedback .review-simulation-btn{
  opacity:1!important;
  visibility:visible!important;
  background:linear-gradient(135deg,#ffffff,#ecfeff)!important;
  color:#062033!important;
  border:2px solid #14b8a6!important;
  text-shadow:none!important;
  font-weight:1000!important;
}
.review-simulation-btn *,
.quiz-question-card .review-simulation-btn *{color:#062033!important;text-shadow:none!important;}
.quiz-question-card,
.quiz-question-card *,
.quiz-options .option,
.quiz-options .option *{
  text-shadow:none!important;
}
.quiz-question-note.locked-note,
.quiz-question-note.instant-feedback-note,
.quiz-instant-feedback,
.quiz-modal-answer-box,
.quiz-modal-answer-box *,
#quizFeedback.show,
#quizFeedback.show *{
  color:#06111f!important;
}
.quiz-question-card .option.correct,
.quiz-question-card .option.correct *{color:#052e18!important;}
.quiz-question-card .option.wrong,
.quiz-question-card .option.wrong *{color:#450a0a!important;}


/* Phase 29 shared simulation contrast guard */
.simulation-decision-panel,.simulation-decision-panel *{text-shadow:none!important;}
.simulation-decision-panel :is(h1,h2,h3,h4,h5,h6,strong,b){color:#fff!important;}
.simulation-decision-panel :is(p,li,span){color:#eaf6ff;}
.simulation-decision-panel .simulation-step-status{color:#07111f!important;}
.simulation-decision-panel .simulation-answer-head span{color:#fff4d4!important;}
.simulation-decision-panel .mini-action{color:#f8fbff!important;}
.simulation-decision-panel .mini-action::before{color:#fff!important;}
