/* Shared light canvas sampled from the existing Nahj guardian palette. */
:root[data-theme=light]{--u-bg:var(--identity-background);--u-surface:var(--identity-surface);--u-soft:var(--identity-surface-soft);--u-text:var(--identity-text);--u-muted:var(--identity-muted);--u-line:var(--identity-border);--u-primary:var(--identity-primary);}
:root[data-theme=light] body.i-app{--i-bg:var(--identity-background);--i-surface:var(--identity-surface);--i-soft:var(--identity-surface-soft);--i-text:var(--identity-text);--i-muted:var(--identity-muted);--i-border:var(--identity-border);--i-gold:var(--identity-primary-text);--i-gold-soft:var(--identity-primary-soft);--i-shadow:0 8px 26px color-mix(in srgb, var(--identity-shadow-color) 3.529%, transparent);}
:root[data-theme=light] body.admin-body{--a-bg:var(--identity-background);--a-surface:var(--identity-surface);--a-soft:var(--identity-surface-soft);--a-text:var(--identity-text);--a-muted:var(--identity-muted);--a-border:var(--identity-border);--a-gold:var(--identity-primary-text);--a-gold-soft:var(--identity-primary-soft);--bg:var(--identity-background);--surface:var(--identity-surface);--surface-soft:var(--identity-surface-soft);--ink:var(--identity-text);--muted:var(--identity-muted);--line:var(--identity-border);--primary:var(--identity-primary);--primary-soft:var(--identity-primary-soft);}
:root[data-theme=light] body.admin-body{background:var(--identity-background);color:var(--a-text);}
:root[data-theme=light] body.admin-body :is(.top,.side){background:var(--a-surface);border-color:var(--a-border);}
:root[data-theme=light] body.admin-body :is(.side-footer,.nav-toggle){background:var(--a-soft);color:var(--a-muted);border-color:var(--a-border);}
:root[data-theme=light] .finance-page,:root[data-theme=light] .f-dialog{--f-surface:var(--identity-surface);--f-soft:var(--identity-surface-soft);--f-ink:var(--identity-text);--f-muted:var(--identity-muted);--f-line:var(--identity-border);--f-brown:var(--identity-primary);--f-gold:var(--identity-primary-text);--f-gold-soft:var(--identity-primary-soft);}
:root[data-theme=light] .finance-page,:root[data-theme=light] .f-dialog{--f-red:var(--identity-danger);--f-red-soft:var(--identity-danger-soft);--f-green:var(--identity-success);--f-blue:var(--identity-info);}
body.i-app :is(.i-overview-hero,.i-finance-hero),.finance-page .f-balance-hero{background:linear-gradient(125deg,var(--identity-hero-start),var(--identity-hero-end));color:var(--identity-on-hero);}
body.i-app .i-circular>div{background:var(--identity-primary);}
body.i-app :is(.i-overview-hero,.i-finance-hero) :is(p,.i-hero-sub),body.i-app .i-circular span,.finance-page .f-balance-hero p{color:var(--identity-on-hero);}
body.i-app .i-overview-hero .i-hero-sub{color:var(--identity-on-hero);}
body.i-app .i-finance-hero>div>span,body.i-app .i-finance-hero strong small,.finance-page .f-balance-hero>div>span{color:var(--identity-on-hero);}
:root[data-theme=light] body.admin-body .main :is(.card,.panel,.tablewrap,.table-card){background:var(--a-surface);border-color:var(--a-border);}
:root[data-theme=light] body.admin-body .main :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background:var(--a-surface);color:var(--a-text);border-color:var(--a-border);}
/* Readable walnut navigation; override older light-theme blue-grey labels. */
:root[data-theme=light] body.admin-body .side .nav-item{color:var(--identity-text);font-weight:500;}
:root[data-theme=light] body.admin-body .side .nav-item:hover{color:var(--identity-text);background:var(--a-soft);}
:root[data-theme=light] body.admin-body .side .nav-section-label{color:var(--identity-primary-text);font-weight:700;}
:root[data-theme=light] body.admin-body .side :is(.side-brand small,.side-footer small){color:var(--identity-primary-text);}
:root[data-theme=light] body.admin-body .side .side-footer strong{color:var(--identity-text);}
/* Attendance uses one semantic palette for staff cards and student counters. */
body.admin-body{--attendance-total:var(--identity-primary-text);--attendance-green:var(--identity-success);--attendance-amber:var(--identity-warning);--attendance-red:var(--identity-danger);--attendance-blue:var(--identity-info);--attendance-purple:var(--identity-violet);--attendance-total-bg:var(--identity-primary-soft);--attendance-green-bg:var(--identity-success-soft);--attendance-amber-bg:var(--identity-warning-soft);--attendance-red-bg:var(--identity-danger-soft);--attendance-blue-bg:var(--identity-info-soft);--attendance-purple-bg:var(--identity-violet-soft);}
:root[data-theme=light] body.admin-body{--attendance-total:var(--identity-primary-text);--attendance-green:var(--identity-success);--attendance-amber:var(--identity-warning);--attendance-red:var(--identity-danger);--attendance-blue:var(--identity-info);--attendance-purple:var(--identity-violet);--attendance-total-bg:var(--identity-primary-soft);--attendance-green-bg:var(--identity-success-soft);--attendance-amber-bg:var(--identity-warning-soft);--attendance-red-bg:var(--identity-danger-soft);--attendance-blue-bg:var(--identity-info-soft);--attendance-purple-bg:var(--identity-violet-soft);}
body.admin-body .staff-attendance-kpis>div{--attendance-tone:var(--attendance-total);background:var(--attendance-total-bg);border-color:var(--a-border);border-inline-start:3px solid var(--attendance-tone);}
body.admin-body .staff-attendance-kpis>.is-present{--attendance-tone:var(--attendance-green);background:var(--attendance-green-bg);}
body.admin-body .staff-attendance-kpis>.is-late{--attendance-tone:var(--attendance-amber);background:var(--attendance-amber-bg);}
body.admin-body .staff-attendance-kpis>.is-absent{--attendance-tone:var(--attendance-red);background:var(--attendance-red-bg);}
body.admin-body .staff-attendance-kpis>.is-leave{--attendance-tone:var(--attendance-blue);background:var(--attendance-blue-bg);}
body.admin-body .staff-attendance-kpis>.is-pending{--attendance-tone:var(--attendance-purple);background:var(--attendance-purple-bg);}
body.admin-body .staff-attendance-kpis>div strong{color:var(--attendance-tone);font-variant-numeric:tabular-nums;}
body.admin-body .staff-attendance-kpis>div span{color:var(--a-text);}
body.admin-body .attendance-kpis .kpi-all{--attendance-tone:var(--attendance-total);}
body.admin-body .attendance-kpis .kpi-present{--attendance-tone:var(--attendance-green);}
body.admin-body .attendance-kpis .kpi-late{--attendance-tone:var(--attendance-amber);}
body.admin-body .attendance-kpis .kpi-absent{--attendance-tone:var(--attendance-red);}
body.admin-body .attendance-kpis .kpi-excused{--attendance-tone:var(--attendance-blue);}
body.admin-body .attendance-kpis .kpi-review{--attendance-tone:var(--attendance-purple);}
body.admin-body .attendance-kpis .attendance-kpi strong{color:var(--attendance-tone);font-variant-numeric:tabular-nums;}
