/* Warm Chocolate night theme.
   This layer intentionally changes only colour, surface, border and shadow
   presentation. Existing layout, spacing, content and interaction stay owned
   by their original module styles. */
.qep-contact-row:nth-child(-n+2) strong{white-space:nowrap;font-variant-numeric:tabular-nums}

:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#171512;
  --bg-soft:#1c1916;
  --surface:#211e1a;
  --surface-2:#2a2621;
  --border:#413b33;
  --text:#fff8ed;
  --text-soft:#beb3a4;
  --shadow:0 4px 20px rgba(0,0,0,.32);
  --shadow-lg:0 14px 42px rgba(0,0,0,.48);
  --success:#34d399;
  --error:#f97066;
  --warning:#f5a524;
  --info:#5b8def;
  --accent-soft:color-mix(in srgb,var(--accent,#5b8def) 22%,transparent);
  --wc-bg:#171512;
  --wc-surface:#211e1a;
  --wc-raised:#2a2621;
  --wc-border:#413b33;
  --wc-text:#fff8ed;
  --wc-soft:#beb3a4;
  --wc-jade:#34d399;
  --wc-amber:#f5a524;
  --wc-blue:#5b8def;
  --wc-purple:#b58af3;
  --wc-coral:#f97066;
}

:root[data-theme="dark"] body,
:root[data-theme="dark"] .app,
:root[data-theme="dark"] .main,
:root[data-theme="dark"] .content{background:var(--wc-bg);color:var(--wc-text)}
:root[data-theme="dark"] .sidebar,
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .dropdown-menu,
:root[data-theme="dark"] .modal,
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .table-scroll{background:var(--wc-surface);border-color:var(--wc-border);color:var(--wc-text)}
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .sidebar,
:root[data-theme="dark"] .sidebar-head,
:root[data-theme="dark"] .sidebar-foot,
:root[data-theme="dark"] .modal-head,
:root[data-theme="dark"] .modal-foot,
:root[data-theme="dark"] .list-row{border-color:var(--wc-border)}
:root[data-theme="dark"] .nav-item:hover,
:root[data-theme="dark"] .dropdown-menu button:hover,
:root[data-theme="dark"] .icon-btn:hover,
:root[data-theme="dark"] .user-chip:hover{background:var(--wc-raised);color:var(--wc-text)}
:root[data-theme="dark"] .global-search input,
:root[data-theme="dark"] .input,
:root[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]),
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea{background-color:var(--wc-raised);border-color:var(--wc-border);color:var(--wc-text)}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{color:#958a7c}
:root[data-theme="dark"] option{background:var(--wc-raised);color:var(--wc-text)}
:root[data-theme="dark"] table{color:var(--wc-text)}
:root[data-theme="dark"] th{background:var(--wc-raised);border-color:var(--wc-border);color:var(--wc-soft)}
:root[data-theme="dark"] td{border-color:var(--wc-border)}
:root[data-theme="dark"] tbody tr:hover{background:color-mix(in srgb,var(--wc-blue) 8%,var(--wc-surface))}
:root[data-theme="dark"] .badge-success{background:rgba(52,211,153,.15);color:var(--wc-jade)}
:root[data-theme="dark"] .badge-error{background:rgba(249,112,102,.15);color:var(--wc-coral)}
:root[data-theme="dark"] .badge-warn{background:rgba(245,165,36,.16);color:var(--wc-amber)}
:root[data-theme="dark"] .badge-info{background:rgba(91,141,239,.17);color:#8bb1ff}
:root[data-theme="dark"] a{color:#8bb1ff}
:root[data-theme="dark"] ::selection{background:rgba(181,138,243,.34);color:var(--wc-text)}

/* Shared mobile shell and navigation. */
:root[data-theme="dark"] .qcm-mobile-view{
  --qcm-line:var(--wc-border);
  --qcm-soft:var(--wc-raised);
  --qcm-card:var(--wc-surface);
  --qcm-purple:var(--wc-purple);
  --qcm-blue:var(--wc-blue);
  --qcm-green:var(--wc-jade);
  --qcm-orange:var(--wc-amber);
  --qcm-red:var(--wc-coral);
  color:var(--wc-text);
}
:root[data-theme="dark"] .mobile-primary-nav{background:color-mix(in srgb,var(--wc-surface) 94%,transparent);border-color:var(--wc-border);box-shadow:0 -8px 28px rgba(0,0,0,.3)}
:root[data-theme="dark"] .mobile-primary-nav button{color:var(--wc-soft)}
:root[data-theme="dark"] .mobile-primary-nav button.active{background:color-mix(in srgb,var(--accent,#5b8def) 16%,var(--wc-raised));color:var(--wc-text)}
:root[data-theme="dark"] .qcm-page,
:root[data-theme="dark"] .qcm-page button,
:root[data-theme="dark"] .qcm-page a{color:var(--wc-text)}
:root[data-theme="dark"] .qcm-hero,
:root[data-theme="dark"] .qcm-section,
:root[data-theme="dark"] .qcm-action,
:root[data-theme="dark"] .qcm-record,
:root[data-theme="dark"] .qcm-state,
:root[data-theme="dark"] .qcm-kpi,
:root[data-theme="dark"] .qcm-chooser,
:root[data-theme="dark"] .qcm-month,
:root[data-theme="dark"] .qcm-identity,
:root[data-theme="dark"] .qcm-profile-panel article,
:root[data-theme="dark"] .qcm-attendance-summary,
:root[data-theme="dark"] .qcm-sheet,
:root[data-theme="dark"] .qcm-my-ledger-row,
:root[data-theme="dark"] .qcm-fee-ledger-row{background-color:var(--wc-surface);border-color:var(--wc-border);color:var(--wc-text)}
:root[data-theme="dark"] .qcm-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#5b8def) 13%,var(--wc-surface)),var(--wc-surface));box-shadow:var(--shadow)}
:root[data-theme="dark"] .qcm-home-theme{background:var(--wc-raised)!important;border-color:var(--wc-border)!important;color:var(--wc-amber)!important;box-shadow:0 4px 12px rgba(0,0,0,.28)!important}
:root[data-theme="dark"] .qcm-section>header,
:root[data-theme="dark"] .qcm-record,
:root[data-theme="dark"] .qcm-my-ledger-row,
:root[data-theme="dark"] .qcm-sheet>header,
:root[data-theme="dark"] .qcm-sheet>footer,
:root[data-theme="dark"] .qcm-sheet-details>div{border-color:var(--wc-border)}
:root[data-theme="dark"] .qcm-tabs,
:root[data-theme="dark"] .qcm-filter-tabs,
:root[data-theme="dark"] .qcm-insight-stats article,
:root[data-theme="dark"] .qcm-ledger-summary article,
:root[data-theme="dark"] .qcm-mini{background:var(--wc-raised);border-color:var(--wc-border)}
:root[data-theme="dark"] .qcm-tabs button.active,
:root[data-theme="dark"] .qcm-filter-tabs button.active{background:color-mix(in srgb,var(--accent,#5b8def) 14%,var(--wc-surface));color:var(--wc-text);box-shadow:0 2px 9px rgba(0,0,0,.3)}
:root[data-theme="dark"] .qcm-action>span,
:root[data-theme="dark"] .qcm-kpi>span,
:root[data-theme="dark"] .qcm-record>span:first-child,
:root[data-theme="dark"] .qcm-profile-panel article>span{background:rgba(181,138,243,.15);color:var(--wc-purple)}
:root[data-theme="dark"] :is(.qcm-action,.qcm-kpi).green>span,
:root[data-theme="dark"] .qcm-record>span.green{background:rgba(52,211,153,.15);color:var(--wc-jade)}
:root[data-theme="dark"] :is(.qcm-action,.qcm-kpi).orange>span,
:root[data-theme="dark"] .qcm-record>span.orange{background:rgba(245,165,36,.15);color:var(--wc-amber)}
:root[data-theme="dark"] :is(.qcm-action,.qcm-kpi).blue>span{background:rgba(91,141,239,.16);color:#8bb1ff}
:root[data-theme="dark"] :is(.qcm-action,.qcm-kpi).red>span,
:root[data-theme="dark"] .qcm-record>span.red{background:rgba(249,112,102,.15);color:var(--wc-coral)}
:root[data-theme="dark"] .qcm-badge.success{background:rgba(52,211,153,.15);color:var(--wc-jade)}
:root[data-theme="dark"] .qcm-badge.warn{background:rgba(245,165,36,.16);color:var(--wc-amber)}
:root[data-theme="dark"] .qcm-badge.danger{background:rgba(249,112,102,.15);color:var(--wc-coral)}
:root[data-theme="dark"] .qcm-badge.info{background:rgba(91,141,239,.17);color:#8bb1ff}
:root[data-theme="dark"] .qcm-my-ledger-row em.credit{color:var(--wc-jade)}
:root[data-theme="dark"] .qcm-my-ledger-row em.debit{color:var(--wc-coral)}

/* Approved More launcher hierarchy, with its role colours retained. */
:root[data-theme="dark"] .qcm-more-launcher>.qcm-hero{border-color:var(--wc-border);background:linear-gradient(135deg,rgba(52,211,153,.1),var(--wc-surface));box-shadow:none}
:root[data-theme="dark"] .qcm-more-launcher>.qcm-hero .qcm-hero-copy>span,
:root[data-theme="dark"] .qcm-more-launcher-section>h3{color:var(--wc-jade)}
:root[data-theme="dark"] .qcm-more-launcher-section.role>h3{color:#8bb1ff}
:root[data-theme="dark"] .qcm-more-launcher-section+.qcm-more-launcher-section:before{background:var(--wc-border)}
:root[data-theme="dark"] .qcm-more-tool>strong{color:var(--wc-text)}
:root[data-theme="dark"] .qcm-more-tool>i{background:rgba(52,211,153,.14);color:var(--wc-jade)}
:root[data-theme="dark"] .qcm-more-launcher-section.class-teacher .qcm-more-tool>i{background:rgba(245,165,36,.14);color:var(--wc-amber)}
:root[data-theme="dark"] .qcm-more-launcher-section.role .qcm-more-tool>i{background:rgba(91,141,239,.16);color:#8bb1ff}

/* Employee profile. */
:root[data-theme="dark"] .qep-profile{color:var(--wc-text)}
:root[data-theme="dark"] .qep-profile-hero,
:root[data-theme="dark"] .qep-detail-card,
:root[data-theme="dark"] .qep-profile-actions{border-color:var(--wc-border);background:var(--wc-surface);box-shadow:var(--shadow)}
:root[data-theme="dark"] .qep-profile-hero{background:linear-gradient(135deg,rgba(52,211,153,.11),var(--wc-surface) 62%)}
:root[data-theme="dark"] .qep-profile-hero:after{background:linear-gradient(135deg,rgba(245,165,36,.025),rgba(52,211,153,.09))}
:root[data-theme="dark"] .qep-profile-hero>h2,
:root[data-theme="dark"] .qep-identity-copy h3,
:root[data-theme="dark"] .qep-detail-card>header h3,
:root[data-theme="dark"] .qep-fact strong,
:root[data-theme="dark"] .qep-contact-row strong{color:var(--wc-text)}
:root[data-theme="dark"] .qep-identity-copy p{color:#eadfce}
:root[data-theme="dark"] .qep-identity-copy>small,
:root[data-theme="dark"] .qep-fact small,
:root[data-theme="dark"] .qep-contact-row small{color:var(--wc-soft)}
:root[data-theme="dark"] .qep-detail-card>header,
:root[data-theme="dark"] .qep-fact,
:root[data-theme="dark"] .qep-contact-row{border-color:var(--wc-border)}
:root[data-theme="dark"] .qep-role-primary{border-color:rgba(181,138,243,.45);background:rgba(181,138,243,.11);color:#d2b7ff}
:root[data-theme="dark"] .qep-role-class{border-color:rgba(91,141,239,.46);background:rgba(91,141,239,.11);color:#8bb1ff}
:root[data-theme="dark"] .qep-role-teacher{border-color:rgba(52,211,153,.43);background:rgba(52,211,153,.1);color:#6ee7b7}
:root[data-theme="dark"] .qep-fact-icon.purple{background:rgba(181,138,243,.15);color:#d2b7ff}
:root[data-theme="dark"] .qep-fact-icon.green,
:root[data-theme="dark"] .qep-contact-icon{background:rgba(52,211,153,.14);color:var(--wc-jade)}
:root[data-theme="dark"] .qep-fact-icon.blue{background:rgba(91,141,239,.15);color:#8bb1ff}
:root[data-theme="dark"] .qep-photo>b{border-color:var(--wc-surface);background:var(--wc-surface);color:var(--wc-jade)}
:root[data-theme="dark"] .qep-password{border-color:rgba(91,141,239,.48);background:rgba(91,141,239,.11);color:#8bb1ff}
:root[data-theme="dark"] .qep-logout{border-color:rgba(249,112,102,.48);background:rgba(249,112,102,.1);color:var(--wc-coral)}

/* Tasks and take-attendance keep their semantic status colours. */
:root[data-theme="dark"] .tw-card,
:root[data-theme="dark"] .tw-kpi,
:root[data-theme="dark"] .tw-mobile-task,
:root[data-theme="dark"] .tw-drawer,
:root[data-theme="dark"] .tw-search,
:root[data-theme="dark"] .tw-select,
:root[data-theme="dark"] .tw-input,
:root[data-theme="dark"] .tw-field input,
:root[data-theme="dark"] .tw-field textarea,
:root[data-theme="dark"] .tw-field select,
:root[data-theme="dark"] .tw-modecard{background:var(--wc-surface);border-color:var(--wc-border);color:var(--wc-text)}
:root[data-theme="dark"] .tw-delivery,
:root[data-theme="dark"] .tw-resultbar{background:var(--wc-raised);border-color:var(--wc-border)}
:root[data-theme="dark"] .tw-table tbody tr:hover{background:var(--wc-raised)}
:root[data-theme="dark"] .tw-st-approved,
:root[data-theme="dark"] .tw-st-completed{color:var(--wc-jade)}
:root[data-theme="dark"] .tw-st-overdue,
:root[data-theme="dark"] .tw-pri-high,
:root[data-theme="dark"] .tw-dl-over{color:var(--wc-coral)}
:root[data-theme="dark"] .ar-panel,
:root[data-theme="dark"] .ar-toolbar,
:root[data-theme="dark"] .ar-roster,
:root[data-theme="dark"] .ar-savebar,
:root[data-theme="dark"] .ar-row,
:root[data-theme="dark"] .ar-btn{background:var(--wc-surface);border-color:var(--wc-border);color:var(--wc-text)}
:root[data-theme="dark"] .ar-head{background:linear-gradient(135deg,#3b2b21,#5b3d2a);color:var(--wc-text)}
:root[data-theme="dark"] .ar-row.focused{border-color:var(--wc-blue);box-shadow:0 0 0 2px rgba(91,141,239,.2)}
:root[data-theme="dark"] .ar-btn.is-p.active{background:var(--wc-jade);border-color:var(--wc-jade);color:#10251d}
:root[data-theme="dark"] .ar-btn.is-a.active{background:var(--wc-coral);border-color:var(--wc-coral);color:#2b1210}
:root[data-theme="dark"] .ar-btn.is-s.active{background:var(--wc-amber);border-color:var(--wc-amber);color:#2b1c07}
:root[data-theme="dark"] .ar-btn.is-l.active{background:var(--wc-purple);border-color:var(--wc-purple);color:#21152f}

/* Syllabus retains the approved bar geometry; only its night colours change. */
:root[data-theme="dark"] .qcm-syllabus-tabs,
:root[data-theme="dark"] .qcm-syllabus-hero,
:root[data-theme="dark"] .qcm-syllabus-overview,
:root[data-theme="dark"] .qcm-syllabus-list,
:root[data-theme="dark"] .qcm-syllabus-assignment,
:root[data-theme="dark"] .qcm-syllabus-detail-head,
:root[data-theme="dark"] .qcm-syllabus-summary,
:root[data-theme="dark"] .qcm-syllabus-chapters,
:root[data-theme="dark"] .qcm-syllabus-chapter{background:var(--wc-surface);border-color:var(--wc-border);color:var(--wc-text);box-shadow:var(--shadow)}
:root[data-theme="dark"] .qcm-syllabus-hero{background:radial-gradient(circle at 90% 0,rgba(181,138,243,.14),transparent 42%),linear-gradient(135deg,var(--wc-surface),#251f28)}
:root[data-theme="dark"] .qcm-syllabus-tabs button.active{background:linear-gradient(135deg,rgba(181,138,243,.16),rgba(91,141,239,.14));color:#d2b7ff}
:root[data-theme="dark"] .qcm-syllabus-overview-label h3,
:root[data-theme="dark"] .qcm-syllabus-assignment-copy>small,
:root[data-theme="dark"] .qcm-syllabus-assignment-copy p b,
:root[data-theme="dark"] .qcm-syllabus-detail-head>button,
:root[data-theme="dark"] .qcm-syllabus-summary>div>small{color:var(--wc-text)}
:root[data-theme="dark"] .qcm-syllabus-overview-bar,
:root[data-theme="dark"] .qcm-syllabus-progress-line>span,
:root[data-theme="dark"] .qcm-syllabus-summary>div>em,
:root[data-theme="dark"] .qcm-syllabus-chapter>div>em{background:var(--wc-raised)}
:root[data-theme="dark"] .qcm-syllabus-overview-bar>i.expected{background:rgba(181,138,243,.31)}
:root[data-theme="dark"] .qcm-syllabus-overview-track.is-terminal .qcm-syllabus-overview-bar>i.expected{background:rgba(91,141,239,.3)}
:root[data-theme="dark"] .qcm-syllabus-terminal-marker i{background:var(--wc-soft)}
:root[data-theme="dark"] .qcm-syllabus-terminal-marker b{color:var(--wc-text)}
:root[data-theme="dark"] .qcm-syllabus-next-exam:not(.is-empty){background:linear-gradient(135deg,#b56b25,#f5a524);color:#21170a;box-shadow:0 4px 12px rgba(245,165,36,.24)}
:root[data-theme="dark"] .qcm-syllabus-assignment.is-progress,
:root[data-theme="dark"] .qcm-syllabus-chapter.is-current{background:linear-gradient(90deg,rgba(245,165,36,.1),var(--wc-surface));border-color:rgba(245,165,36,.38)}
:root[data-theme="dark"] .qcm-syllabus-assignment.is-complete,
:root[data-theme="dark"] .qcm-syllabus-chapter.is-complete{background:linear-gradient(90deg,rgba(52,211,153,.1),var(--wc-surface));border-color:rgba(52,211,153,.36)}

/* Ledger, notices, leave and management pages: common warm surfaces. */
:root[data-theme="dark"] :where(.balance-ledger,.student-quick-ledger,.spx-ledger-inset,.fd-card,.fd-kpi,.fd-insight,.lm-panel,.lm-kpi,.lm-block,.lm-policy-card,.acad-sec-card,.acad-list-card,.acad-monthcard,.notice-preview-card,.notice-list-card,.complaint-list-panel,.complaint-detail-panel,.complaint-profile-panel){background:var(--wc-surface);border-color:var(--wc-border);color:var(--wc-text)}
:root[data-theme="dark"] :where(.balance-ledger-filters,.spx-transaction-scroll,.fd-table-wrap,.lm-mini-table,.lm-review-box,.acad-table-wrap,.acad-drawer,.notice-drawer,.notice-composer-drawer,.complaint-action-sheet){background:var(--wc-raised);border-color:var(--wc-border);color:var(--wc-text)}
:root[data-theme="dark"] .ledger-income,
:root[data-theme="dark"] .spx-income,
:root[data-theme="dark"] .fd-positive,
:root[data-theme="dark"] .lm-pos{color:var(--wc-jade)!important}
:root[data-theme="dark"] .ledger-expense,
:root[data-theme="dark"] .spx-expense,
:root[data-theme="dark"] .fd-negative,
:root[data-theme="dark"] .lm-neg{color:var(--wc-coral)!important}
:root[data-theme="dark"] :where(.ledger-tone-admission,.ledger-tone-opening,.ledger-tone-admission-fee,.ledger-tone-monthly,.ledger-tone-hostel,.ledger-tone-transport,.ledger-tone-exam,.ledger-tone-books,.ledger-tone-uniform,.ledger-tone-competition,.ledger-tone-fine,.ledger-tone-payment,.ledger-tone-reversal,.ledger-tone-adjustment,.ledger-tone-other)>td{background:var(--wc-surface)!important}
:root[data-theme="dark"] :where(.ledger-tone-exit,.ledger-tone-void,.ledger-tone-reversed-payment)>td{background:var(--wc-raised)!important;color:var(--wc-soft)}

/* Explicit light remnants used inside compact dashboards. */
:root[data-theme="dark"] .qcm-attendance-overall,
:root[data-theme="dark"] .qcm-attendance-calendar,
:root[data-theme="dark"] .qcm-attendance-calendar>header,
:root[data-theme="dark"] .qcm-attendance-day.unmarked,
:root[data-theme="dark"] .qcm-attendance-calendar>footer{background:var(--wc-surface);border-color:var(--wc-border)}
:root[data-theme="dark"] .qcm-attendance-overall strong,
:root[data-theme="dark"] .qcm-attendance-calendar>header strong,
:root[data-theme="dark"] .qcm-attendance-week b,
:root[data-theme="dark"] .qcm-attendance-day.unmarked{color:var(--wc-text)}
:root[data-theme="dark"] .qcm-attendance-day.outside{color:#70675c}
:root[data-theme="dark"] .qcm-metric-ring:before,
:root[data-theme="dark"] .qcm-donut:before{background:var(--wc-surface)}

@media (prefers-reduced-motion:reduce){
  :root[data-theme="dark"] body{transition:none}
}
