﻿/* Site-wide dark mode overrides for public (job seeker) and student pages.
   Toggled via [data-theme="dark"] on <html>, set by the toggle button in _jobheader.cshtml.
   Employer and Admin dashboards already ship their own separate dark theme systems. */

/* Light-mode values, documented here for reference even though the original site CSS predates
   this variable system and mostly hardcodes its own light colors directly -- rewriting every
   existing light-mode rule across 30+ CSS files to consume these instead was judged out of
   scope (see project notes: avoid re-deriving hundreds of already-working rules). New dark-mode
   work should still prefer these names going forward. */
:root {
    --bg-primary: #ffffff;
    --bg-secondary: #f8fafc;
    --bg-card: #ffffff;
    --bg-header: #ffffff;
    --text-primary: #1e293b;
    --text-secondary: #64748b;
    --border-color: #e2e8f0;
    --primary-color: #2563eb;
    --hover-bg: #eff6ff;
    --shadow-color: rgba(0, 0, 0, .08);
}

html[data-theme="dark"] {
    --bg-primary: #0f172a;
    --bg-secondary: #111827;
    --bg-card: #1e293b;
    --bg-header: #111827;
    --hover-bg: #1e3a5f;
    --text-primary: #f8fafc;
    --text-secondary: #cbd5e1;
    --border-color: #334155;
    --primary-color: #60a5fa;
    --shadow-color: rgba(0, 0, 0, .35);
}

/* Base */
html[data-theme="dark"] body {
    background-color: var(--bg-primary) !important;
    color: var(--text-primary) !important;
}
html[data-theme="dark"] a { color: var(--primary-color); }
html[data-theme="dark"] a:hover,
html[data-theme="dark"] a:active,
html[data-theme="dark"] a:focus { color: #93c5fd; }

/* Headings/paragraphs/plain text default to the ambient dark-mode text color even when the
   page's own CSS set an explicit dark color for them -- but spans are left alone since those
   are most often badge/accent text paired with their own (still-valid) background color. */
html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3,
html[data-theme="dark"] h4, html[data-theme="dark"] h5, html[data-theme="dark"] h6,
html[data-theme="dark"] p, html[data-theme="dark"] li,
html[data-theme="dark"] label, html[data-theme="dark"] td, html[data-theme="dark"] th {
    color: inherit !important;
}
html[data-theme="dark"] hr { border-color: var(--border-color); }

/* Google AdSense slots (<ins class="adsbygoogle">) render inside a cross-origin iframe that
   Google controls -- this site's CSS cannot reach into that iframe to recolor the ad creative
   itself, so a filled ad can still show its own white background regardless of theme. What we
   CAN do is frame the ad in a dark card so it reads as an intentional "ad" panel instead of a
   stray white gap in the page, and keep the reserved space itself from being stark white while
   no ad has filled it yet. :has() is supported in all current evergreen browsers; older browsers
   just skip this rule and see the ad without a frame, exactly as before this change. */
html[data-theme="dark"] div:has(> ins.adsbygoogle) {
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 10px;
    margin: 16px auto;
    overflow: hidden;
}

/* Generic Bootstrap surfaces used throughout individual views */
html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-light,
html[data-theme="dark"] .card,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .img-thumbnail,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .panel-body,
html[data-theme="dark"] .well,
html[data-theme="dark"] [style*="background-color: #fff"],
html[data-theme="dark"] [style*="background-color:#fff"],
html[data-theme="dark"] [style*="background-color: #ffffff"],
html[data-theme="dark"] [style*="background: #fff"],
html[data-theme="dark"] [style*="background:#fff"],
html[data-theme="dark"] [style*="background-color: white"] {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}
html[data-theme="dark"] .text-dark,
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .text-secondary {
    color: var(--text-secondary) !important;
}
html[data-theme="dark"] .border,
html[data-theme="dark"] .border-top,
html[data-theme="dark"] .border-bottom,
html[data-theme="dark"] .border-left,
html[data-theme="dark"] .border-right {
    border-color: var(--border-color) !important;
}

/* Forms */
html[data-theme="dark"] .form-control,
html[data-theme="dark"] input:not([type="submit"]):not([type="button"]),
html[data-theme="dark"] textarea,
html[data-theme="dark"] select {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}
html[data-theme="dark"] .form-control::placeholder { color: var(--text-secondary); }
html[data-theme="dark"] .input-group-text {
    background-color: var(--hover-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

/* Tables */
html[data-theme="dark"] table,
html[data-theme="dark"] .table { color: var(--text-primary) !important; }
html[data-theme="dark"] .table td,
html[data-theme="dark"] .table th { border-color: var(--border-color) !important; }
html[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) { background-color: var(--hover-bg) !important; }

/* Not theme-specific -- applies in both light and dark mode. Several tables on this site (e.g.
   the job-details "Age Limits / Examination Fee" table) are plain <table> elements with no
   .table-responsive wrapper, so on a narrow screen they either overflow the viewport or squash
   their columns unreadably. Making the table itself the horizontal scroll container fixes that
   without needing to wrap every table in markup across every view. */
@media (max-width: 767px) {
    table:not(.dataTable) {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* Pre-existing layout bug (not dark-mode-specific, so fixed unconditionally): when
   Request.Browser.IsMobileDevice renders the mobile-device branch of _jobheader.cshtml, the
   wide/tablet nav (<nav class="main-nav float-right d-xl-block">) is emitted as a bare sibling
   right after the fixed 56px .appHeader bar, with no wrapping <header> and no background of its
   own -- unlike the desktop branch's #header.jrh-header-v2 wrapper. Since .appHeader is
   position:fixed (removed from flow), this nav renders at the very top of the document with no
   offset, overlapping .appHeader and everything below it (the page's own content, e.g. the
   homepage's "Goverment Job / Student Tools / Private job" banner, ends up rendering underneath
   with no clearance either). Only ever visible at >=1200px width, but on a browser that gets
   misclassified as mobile it's the nav a wide window actually renders. */
.appHeader + nav.main-nav {
    position: relative;
    margin-top: 56px;
    background: var(--bg-header, #fff);
    box-shadow: 0 2px 16px rgba(15, 23, 42, 0.06);
    z-index: 900;
}
html[data-theme="dark"] .appHeader + nav.main-nav {
    border-bottom: 1px solid var(--border-color);
}
html[data-theme="dark"] .appHeader + nav.main-nav > ul > li > a {
    color: var(--text-primary) !important;
}
html[data-theme="dark"] .appHeader + nav.main-nav > ul > li:hover > a,
html[data-theme="dark"] .appHeader + nav.main-nav > ul > li.active > a {
    background: var(--hover-bg) !important;
    color: #93c5fd !important;
}

/* Desktop header (jobheader partial) */
html[data-theme="dark"] #header.jrh-header-v2 {
    background: var(--bg-header) !important;
    border-bottom-color: var(--border-color) !important;
}
html[data-theme="dark"] #header.jrh-header-v2 .main-nav a { color: var(--text-primary) !important; }
html[data-theme="dark"] #header.jrh-header-v2 .main-nav a:hover,
html[data-theme="dark"] #header.jrh-header-v2 .main-nav .active > a,
html[data-theme="dark"] #header.jrh-header-v2 .main-nav li:hover > a {
    background: var(--hover-bg) !important;
    color: #93c5fd !important;
}
html[data-theme="dark"] #header.jrh-header-v2 .main-nav .drop-down ul {
    background: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}
html[data-theme="dark"] #header.jrh-header-v2 .main-nav .drop-down ul a { color: var(--text-primary) !important; }
html[data-theme="dark"] #header.jrh-header-v2 .main-nav .drop-down ul a:hover,
html[data-theme="dark"] #header.jrh-header-v2 .main-nav .drop-down ul .active > a,
html[data-theme="dark"] #header.jrh-header-v2 .main-nav .drop-down ul li:hover > a {
    background: var(--hover-bg) !important;
    color: #93c5fd !important;
}

/* Mobile app header + bottom menu (jobheader/jobfooter mobile variants) */
html[data-theme="dark"] .appHeader {
    background: var(--bg-header) !important;
    color: var(--text-primary) !important;
    border-bottom-color: var(--border-color) !important;
}
html[data-theme="dark"] .appBottomMenu {
    background: var(--bg-secondary) !important;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.4) !important;
}
html[data-theme="dark"] .appBottomMenu .item { color: #94a3b8 !important; }

/* Sidenav drawer */
html[data-theme="dark"] .jrs-sidenav-v2 { background: var(--bg-card) !important; }
html[data-theme="dark"] .jrs-sidenav-profile { border-bottom-color: var(--border-color) !important; }
html[data-theme="dark"] .jrs-profile-name { color: var(--text-primary) !important; }
html[data-theme="dark"] .jrs-sidenav-links a { color: var(--text-primary) !important; }
html[data-theme="dark"] .jrs-sidenav-links a:hover {
    background: var(--hover-bg) !important;
    color: #93c5fd !important;
}
html[data-theme="dark"] .jrs-divider { border-top-color: var(--border-color) !important; }
html[data-theme="dark"] .jrs-btn-outline {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

/* Home-choice / notify modals (shared across joblayout, blogLayout, privatelimited) */
html[data-theme="dark"] .home-choice-modal,
html[data-theme="dark"] .notify-modal-content {
    background: var(--bg-card) !important;
}
html[data-theme="dark"] .home-choice-modal h4,
html[data-theme="dark"] .notify-title { color: var(--text-primary) !important; }
html[data-theme="dark"] .home-choice-modal p,
html[data-theme="dark"] .notify-desc { color: var(--text-secondary) !important; }
html[data-theme="dark"] .home-choice-option {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}
html[data-theme="dark"] .home-choice-label { color: var(--text-primary) !important; }
html[data-theme="dark"] .home-choice-close {
    background: var(--hover-bg) !important;
    color: var(--text-primary) !important;
}
html[data-theme="dark"] .notify-btn-later { background: var(--hover-bg) !important; color: var(--text-primary) !important; }

/* Student dashboard top icon bar container */
html[data-theme="dark"] body.bg-light { background-color: var(--bg-primary) !important; }

/* Page-specific card/section surfaces, gathered from an audit of every page's own
   CSS file (homepage, job listings/details, student tools, auth, private jobs, blog,
   sarkari-result cards) -- these previously stayed hardcoded white/light with no
   dark-mode counterpart, which is what made dark mode look broken on real pages.

   Group A: plain content surfaces -- background, border AND text forced dark/light. */
html[data-theme="dark"] .hero-badge,
html[data-theme="dark"] .hero-search-bar,
html[data-theme="dark"] .hero-search-bar select,
html[data-theme="dark"] .hero-location-suggestions,
html[data-theme="dark"] .hero-search-suggestions,
html[data-theme="dark"] .category-card,
html[data-theme="dark"] .job-card,
html[data-theme="dark"] .how-it-works-section,
html[data-theme="dark"] .company-logo-card,
html[data-theme="dark"] .hub-cta-section .btn-cta,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .jobs-hero-search,
html[data-theme="dark"] .filters-sidebar .form-control,
html[data-theme="dark"] .filters-sidebar select.form-control,
html[data-theme="dark"] .sort-by select.dropdown,
html[data-theme="dark"] .job-back-link,
html[data-theme="dark"] .job-header-section,
html[data-theme="dark"] .job-description-section,
html[data-theme="dark"] .job-sidebar,
html[data-theme="dark"] .similar-job-card,
html[data-theme="dark"] .job-state-message,
html[data-theme="dark"] .report-modal,
html[data-theme="dark"] .stt-tool-menu a,
html[data-theme="dark"] .stt-card,
html[data-theme="dark"] .stt-field input[type="text"],
html[data-theme="dark"] .stt-field input[type="number"],
html[data-theme="dark"] .stt-field select,
html[data-theme="dark"] .stt-notes,
html[data-theme="dark"] .stt-search-results,
html[data-theme="dark"] .stt-category-card,
html[data-theme="dark"] .stt-score-gauge-inner,
html[data-theme="dark"] .stt-cl-preview,
html[data-theme="dark"] .stt-timer-ring-inner,
html[data-theme="dark"] .stt-qr-preview,
html[data-theme="dark"] .stt-typing-box,
html[data-theme="dark"] .stt-base-row,
html[data-theme="dark"] .si-card,
html[data-theme="dark"] .si-group .form-control:focus,
html[data-theme="dark"] .si-divider span,
html[data-theme="dark"] .su-card,
html[data-theme="dark"] .su-group .form-control:focus,
html[data-theme="dark"] .su-divider span,
html[data-theme="dark"] .filters-sidebar,
html[data-theme="dark"] .filter-select,
html[data-theme="dark"] .ms-category-panel,
html[data-theme="dark"] .jobs-main,
html[data-theme="dark"] .sort-dropdown,
html[data-theme="dark"] .view-toggle,
html[data-theme="dark"] .pagination a,
html[data-theme="dark"] .pagination span,
html[data-theme="dark"] .pjob-modal,
html[data-theme="dark"] #filtersSidebar,
html[data-theme="dark"] .bd-article,
html[data-theme="dark"] .bd-related-card,
html[data-theme="dark"] .bd-sidebar-box,
html[data-theme="dark"] .bc-card,
html[data-theme="dark"] .bc-sidebar-box,
html[data-theme="dark"] .jn-card,
html[data-theme="dark"] .jn-sidebar-box,
html[data-theme="dark"] .sr-card,
html[data-theme="dark"] .sr-info-box,
html[data-theme="dark"] .hmdbar-avatar,
html[data-theme="dark"] .gr-seo-content,
html[data-theme="dark"] .fp-card,
html[data-theme="dark"] .fp-group .form-control:focus,
html[data-theme="dark"] #preloader,
html[data-theme="dark"] .main-nav .drop-down ul,
html[data-theme="dark"] .stt-tabs,
html[data-theme="dark"] .stt-progress,
html[data-theme="dark"] .stt-search-wrap .stt-search-kbd,
html[data-theme="dark"] .stt-badge-soon,
html[data-theme="dark"] .stt-score-gauge,
html[data-theme="dark"] .stt-keyword-chips span,
html[data-theme="dark"] .stt-exam-actions button,
html[data-theme="dark"] .stt-timer-ring,
html[data-theme="dark"] .stt-timer-controls .stt-timer-secondary,
html[data-theme="dark"] .stt-fullscreen-toggle,
html[data-theme="dark"] .stt-file-row img.stt-file-thumb,
html[data-theme="dark"] .stt-canvas-stage,
html[data-theme="dark"] .si-section,
html[data-theme="dark"] .su-section,
html[data-theme="dark"] .fp-section,
html[data-theme="dark"] .si-role-toggle,
html[data-theme="dark"] .su-role-toggle,
html[data-theme="dark"] .bd-wrap,
html[data-theme="dark"] #bindComment .commentContainer:hover,
html[data-theme="dark"] .bc-card-img-wrap,
html[data-theme="dark"] .jn-card-img-wrap,
html[data-theme="dark"] .hls-item:hover,
html[data-theme="dark"] .hss-item:hover,
html[data-theme="dark"] .hss-item.active,
html[data-theme="dark"] .category-card .icon,
html[data-theme="dark"] .btn-clear-filters:hover,
html[data-theme="dark"] .bookmark-btn:hover {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Blog article body copy -- a slightly dimmer body text than the site-wide --text-primary
   against a brighter heading keeps long-form reading comfortable, matching typical dark-mode
   editorial styling (heading #f8fafc, body #cbd5e1) rather than one flat gray for everything. */
html[data-theme="dark"] .bd-article h1,
html[data-theme="dark"] .bd-article h2,
html[data-theme="dark"] .bd-article h3,
html[data-theme="dark"] .bd-article h4,
html[data-theme="dark"] .bd-article h5,
html[data-theme="dark"] .bd-article h6 {
    color: #f8fafc !important;
}
html[data-theme="dark"] .bd-article p,
html[data-theme="dark"] .bd-article li,
html[data-theme="dark"] .bd-article td,
html[data-theme="dark"] .bd-article th {
    color: #cbd5e1 !important;
}
html[data-theme="dark"] .bd-article a { color: var(--primary-color); text-decoration: underline; }
html[data-theme="dark"] .bd-article img { border-radius: 8px; }
html[data-theme="dark"] .bd-article table {
    border-color: var(--border-color) !important;
}

/* Status/semantic badges are deliberately left untouched -- .job-tag.full-time, .badge-type,
   .badge-mode, .badge-exp, .bookmark-btn.is-saved etc. pair a pale tint background with
   matching dark-saturated text (e.g. pale blue + navy text). They're self-contained chips that
   read fine on any surrounding page background; forcing their background dark while their text
   stays dark would break contrast rather than fix it, so these are intentionally excluded from
   every rule in this file. */

/* Group B: outline-style buttons/pills/toggles whose text color is an intentional
   brand-accent CSS variable (e.g. var(--primary-color), var(--stt-primary)) rather
   than plain body text -- only the background/border are darkened so the accent
   color keeps doing its job instead of being flattened to gray. */
html[data-theme="dark"] .btn-save-job,
html[data-theme="dark"] .btn-contact-company,
html[data-theme="dark"] .btn-details,
html[data-theme="dark"] .btn-clear,
html[data-theme="dark"] .stt-btn-outline,
html[data-theme="dark"] .stt-tab-btn.is-active,
html[data-theme="dark"] .stt-tone-row button,
html[data-theme="dark"] .stt-timer-mode-row button,
html[data-theme="dark"] .stt-sig-mode-row button,
html[data-theme="dark"] .stt-swap-btn,
html[data-theme="dark"] .stt-calc-btn,
html[data-theme="dark"] .si-role-toggle a.active,
html[data-theme="dark"] .su-role-toggle a.active {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

/* "Also hiring: Private Jobs" floating ribbon (homepage) -- its white 4px ring reads fine on
   the original yellow hero but stands out as a stray white halo once the page is dark. */
html[data-theme="dark"] .hub-ribbon-link {
    box-shadow: 0 10px 24px -6px rgba(79, 70, 229, 0.55), 0 0 0 3px var(--bg-primary);
}
html[data-theme="dark"] .hub-ribbon-link:hover {
    box-shadow: 0 14px 30px -6px rgba(79, 70, 229, 0.65), 0 0 0 3px var(--bg-primary);
}
html[data-theme="dark"] .hub-ribbon-link .hub-ribbon-tooltip {
    background: var(--bg-card);
    box-shadow: 0 8px 20px -6px rgba(0, 0, 0, 0.5);
}
html[data-theme="dark"] .hub-ribbon-link .hub-ribbon-tooltip::after {
    border-left-color: var(--bg-card);
}

/* Homepage hero banner (#hhhh) / private-jobs equivalent (#hhhhprivate) -- these hardcode a
   yellow background-color inline plus a banner illustration (goverment-jobs-banner.png /
   private-job-home.png) via style.css. The illustration reads badly on a dark page, so it's
   dropped entirely in dark mode in favor of a plain branded gradient. */
html[data-theme="dark"] #hhhh,
html[data-theme="dark"] #hhhhprivate {
    background-image: none !important;
    background-color: transparent !important;
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 55%, #312e81 100%) !important;
}

/* Inline rgba(...) backgrounds that the hex-based [style*="..."] matchers above don't catch --
   the homepage "Recent Update" card, and the repeated section background on the job-details
   (details.cshtml) page. */
html[data-theme="dark"] [style*="rgba(255, 255, 255, 0.9"],
html[data-theme="dark"] [style*="rgba(255,255,255,0.9"],
html[data-theme="dark"] [style*="rgba(247, 248, 249"],
html[data-theme="dark"] [style*="rgba(255, 255, 255, 0.85"],
html[data-theme="dark"] [style*="rgba(255,255,255,0.85"] {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

/* Home mini-dashboard widget (shown on the homepage to a logged-in student) */
html[data-theme="dark"] .home-mini-dash { background: var(--bg-card) !important; border-color: var(--border-color) !important; }
html[data-theme="dark"] .hmd-progress { background-color: var(--hover-bg) !important; }
html[data-theme="dark"] .hmd-stat {
    background-color: var(--hover-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}
html[data-theme="dark"] .hmd-stat:hover { background-color: var(--bg-secondary) !important; }
html[data-theme="dark"] .hmd-stat .hmd-stat-num { color: var(--text-primary) !important; }
html[data-theme="dark"] .hmd-progress-row { color: var(--text-secondary) !important; }
html[data-theme="dark"] .hmd-links a.hmd-btn-outline {
    background-color: var(--bg-secondary) !important;
    color: var(--primary-color) !important;
    border-color: var(--border-color) !important;
}

/* Smooth, polished theme switch instead of an abrupt color snap -- unconditional (not gated by
   [data-theme="dark"]) so switching back to light also animates instead of snapping instantly,
   since gating it would remove the transition at the exact moment the color reverts. */
body,
.card,
#header.jrh-header-v2,
#footer.jrf-footer-v2,
.jrs-sidenav-v2 {
    transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

/* A touch more depth on dark surfaces -- flat dark-on-darker reads muddy without a visible lift.
   Kept deliberately subtle (single soft shadow, not a heavy multi-layer one): dark UI usually
   reads elevation through the card/border contrast against the page background rather than a
   strong drop shadow, and a heavy shadow on a dark background just looks like a muddy smudge. */
html[data-theme="dark"] .card,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu {
    box-shadow: 0 2px 10px var(--shadow-color) !important;
}

/* Dark-mode toggle button -- one single instance, fixed-position, stacked into the same
   right-edge icon column as .allservices (sidenav opener, bottom:355px) and .allservices1
   (motivational sound button, bottom:305px) rather than living inside any particular nav
   markup. Matches their 44px circular sizing and continues the same 50px vertical rhythm. */
.site-theme-toggle {
    position: fixed;
    right: 15px;
    bottom: 255px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, #4f46e5, #6366f1);
    color: #fff;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 4px 10px -2px rgba(79, 70, 229, 0.45);
    font-size: 16px;
    z-index: 111;
    transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease, background .5s;
}
.site-theme-toggle:hover {
    opacity: 0.95;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px -2px rgba(79, 70, 229, 0.6);
}
.site-theme-toggle:focus-visible {
    outline: 2px solid #4f46e5;
    outline-offset: 2px;
}
.site-theme-toggle i { transition: transform .3s ease; }
.site-theme-toggle:hover i { transform: rotate(-14deg); }
html[data-theme="dark"] .site-theme-toggle {
    background: linear-gradient(135deg, #f59e0b, #fbbf24);
    box-shadow: 0 4px 10px -2px rgba(245, 158, 11, 0.45);
}
html[data-theme="dark"] .site-theme-toggle:hover {
    box-shadow: 0 6px 14px -2px rgba(245, 158, 11, 0.6);
}
html[data-theme="dark"] .site-theme-toggle:focus-visible {
    outline-color: #fbbf24;
}

/* Round 3: hardcoded light backgrounds found inside individual view files' own inline
   <style> blocks (resume builder, timeline/chat feed, employer company-preview chat, saved/
   applied jobs, notifications, student dashboard, image-to-pdf tool, age calculator, footer
   notify-modal, mobile app download) -- not in any shared .css file, so the earlier per-file
   audits never touched them. */
html[data-theme="dark"] .home-choice-close:hover,
html[data-theme="dark"] .notify-close,
html[data-theme="dark"] .notify-btn-later,
html[data-theme="dark"] .rb-card,
html[data-theme="dark"] #rbPhotoPreview,
html[data-theme="dark"] .rb-photo-remove-btn,
html[data-theme="dark"] .rb-photo-pos-btn,
html[data-theme="dark"] .rb-block,
html[data-theme="dark"] .rb-template-swatch,
html[data-theme="dark"] .rb-font-option,
html[data-theme="dark"] .rb-actions-bar,
html[data-theme="dark"] .btn-rb-outline,
html[data-theme="dark"] .home-seo-content,
html[data-theme="dark"] .hub-seo-section,
html[data-theme="dark"] .profile-header,
html[data-theme="dark"] .profile-widget,
html[data-theme="dark"] .resume-file-row,
html[data-theme="dark"] .skill-badge,
html[data-theme="dark"] .create-post-card .post-input,
html[data-theme="dark"] .post-video-trim-ui,
html[data-theme="dark"] .reaction-picker,
html[data-theme="dark"] .feed-job-logo,
html[data-theme="dark"] .job-detail-meta-item,
html[data-theme="dark"] .job-detail-company-link,
html[data-theme="dark"] .comment-bubble,
html[data-theme="dark"] .emoji-picker,
html[data-theme="dark"] .share-send-btn,
html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .sidebar-list-item .item-icon,
html[data-theme="dark"] .browse-more-btn,
html[data-theme="dark"] .chat-sidebar,
html[data-theme="dark"] .chat-window,
html[data-theme="dark"] .search-box,
html[data-theme="dark"] .student-item:hover,
html[data-theme="dark"] .student-item.active,
html[data-theme="dark"] .chat-header,
html[data-theme="dark"] .message.received .message-bubble,
html[data-theme="dark"] .chat-input,
html[data-theme="dark"] .chat-welcome-screen,
html[data-theme="dark"] .chat-shell,
html[data-theme="dark"] .chat-filter-tab,
html[data-theme="dark"] .chat-contact-item:hover,
html[data-theme="dark"] .chat-bubble.theirs,
html[data-theme="dark"] .chat-date-separator span,
html[data-theme="dark"] .btn-share-resume,
html[data-theme="dark"] .chat-resume-card,
html[data-theme="dark"] .chat-bubble.theirs .chat-resume-card,
html[data-theme="dark"] .chat-resume-view-btn,
html[data-theme="dark"] .sdash .stat-card,
html[data-theme="dark"] .sdash .dashboard-widget,
html[data-theme="dark"] .sdash .chat-preview-item:hover,
html[data-theme="dark"] .sdash .profile-view-stat,
html[data-theme="dark"] .sdash .quick-links a,
html[data-theme="dark"] .page-header,
html[data-theme="dark"] .saved-job-card,
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .applied-job-card,
html[data-theme="dark"] .pjob-company-box,
html[data-theme="dark"] .itp-tool-menu a,
html[data-theme="dark"] .itp-card,
html[data-theme="dark"] .itp-thumb,
html[data-theme="dark"] .itp-thumb img,
html[data-theme="dark"] .itp-thumb .itp-thumb-actions button,
html[data-theme="dark"] .itp-clear-btn,
html[data-theme="dark"] .itp-notes,
html[data-theme="dark"] .mad-content-section,
html[data-theme="dark"] .mad-info-card,
html[data-theme="dark"] .si-seo-content,
html[data-theme="dark"] .su-seo-content,
html[data-theme="dark"] .agc-mode-toggle,
html[data-theme="dark"] .agc-mode-toggle .is-active,
html[data-theme="dark"] .agc-copy-btn,
html[data-theme="dark"] .agc-notes,
html[data-theme="dark"] .btn-outline,
html[data-theme="dark"] .company-logo,
html[data-theme="dark"] .meta-chip,
html[data-theme="dark"] .btn-follow,
html[data-theme="dark"] .chat-modal,
html[data-theme="dark"] a.opening-item:hover,
html[data-theme="dark"] .review-form,
html[data-theme="dark"] .review-avatar,
html[data-theme="dark"] .btn-chat-friend,
html[data-theme="dark"] .friend-request-list .friend-request-card,
html[data-theme="dark"] .notif-tabs,
html[data-theme="dark"] .notif-tab:hover,
html[data-theme="dark"] .notif-tab-icon,
html[data-theme="dark"] .notif-tab-count,
html[data-theme="dark"] .notif-panel,
html[data-theme="dark"] .notif-list .col-md-12,
html[data-theme="dark"] .wishlist-empty,
html[data-theme="dark"] .ep-card,
html[data-theme="dark"] .ep-card-footer {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Round 3, accent-preserving: keeps its own paired accent text color, only bg/border darken. */
html[data-theme="dark"] .notif-tab.active,
html[data-theme="dark"] .agc-headline {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

/* Decorative gradients on the home-choice picker cards (fade to near-white at one edge) */
html[data-theme="dark"] .home-choice-gov {
    background: linear-gradient(165deg, #1e293b 55%, #2e1a1a 100%) !important;
}
html[data-theme="dark"] .home-choice-private {
    background: linear-gradient(165deg, #1e293b 55%, #1c2340 100%) !important;
}
