@import url('assets/ascot/fonts/font-face.css');

/* ASCOT: campus green, sunlit gold, generous white. This file is loaded last.
   Attribute-less root is the existing opt-in DARK theme. Legacy token names
   remain aliases so all established components inherit the new identity. */
:root {
  --ascot-forest:#1F5A2E; --ascot-leaf:#28783A; --ascot-gold:#F4C430;
  --ascot-gold-hover:#E6B21D; --ascot-green-tile:#E8F3E7; --ascot-gold-tile:#FFF5CC;
  --ascot-ink:#183E27; --ascot-ease:cubic-bezier(.22,1,.36,1);
  --bg:#0D1F16 !important; --bg2:#162D20 !important; --bg3:#1C3828 !important;
  --text:#F4F9F3 !important; --text-muted:#B7CCBD !important; --text-dim:#ABC3B2 !important;
  --glass:#162D20 !important; --glass-hover:#234932 !important;
  --border:rgba(195,224,201,.16); --border2:rgba(195,224,201,.29);
  --accent:#9ED8A6; --accent-dark:#78C78B; --accent2:#C5E6C8;
  --ac-purple:#9ED8A6; --ac-green:#9ED8A6; --ac-amber:#F4C430; --ac-coral:#FFADB1;
  --green:#9ED8A6; --teal:#9ED8A6; --amber:#F4C430; --red:#FFADB1;
  --grad:linear-gradient(135deg,#1F5A2E,#28783A); --grad2:linear-gradient(135deg,#28783A,#1F5A2E);
  --dgrad:linear-gradient(135deg,#1F5A2E,#28783A);
  --shell-page-bg:#0D1F16; --shell-card:#162D20; --shell-topbar:#162D20;
  --sb-solid:#174625; --sb-bg:linear-gradient(180deg,#1F5A2E,#123D20);
  --sb-text:#E1EEDF; --sb-text-strong:#FFFFFF; --sb-pill-bg:#F4C430; --sb-pill-text:#183E27;
  --sb-hover:rgba(255,255,255,.10);
  --shadow-sm:0 4px 20px rgba(0,0,0,.18); --shadow-md:0 12px 32px rgba(0,0,0,.24);
  --shadow:var(--shadow-sm); --shadow-lg:var(--shadow-md); --radius:12px; --radius-lg:20px;
  --scan-blue:#9ED8A6; --scan-blue-light:#C5E6C8; --scan-blue-soft:#C5E6C8;
  --scan-blue-bg:rgba(158,216,166,.10); --scan-blue-glow:rgba(158,216,166,.20);
  --scan-panel-bg:linear-gradient(180deg,#123722,#0D2619); --scan-panel-border:rgba(158,216,166,.2);
}
html[data-theme="light"] {
  color-scheme:light;
  --bg:#F7FAF6 !important; --bg2:#FFFFFF !important; --bg3:#F0F5EE !important;
  --text:#183E27 !important; --text-muted:#526459 !important; --text-dim:#526459 !important;
  --glass:#FFFFFF !important; --glass-hover:#E8F3E7 !important;
  --border:#DEE8DD; --border2:#ABC6AE;
  --accent:#1F5A2E; --accent-dark:#174625; --accent2:#28783A;
  --ac-purple:#1F5A2E; --ac-green:#28783A; --ac-amber:#8A6500; --ac-coral:#B8323A;
  --green:#28783A; --teal:#28783A; --amber:#8A6500; --red:#B8323A;
  --shell-page-bg:#F7FAF6; --shell-card:#FFFFFF; --shell-topbar:#FFFFFF;
  --sb-bg:linear-gradient(180deg,#1F5A2E,#123D20); --sb-solid:#174625;
  --shadow-sm:0 4px 22px rgba(24,62,39,.055); --shadow-md:0 12px 36px rgba(24,62,39,.10);
  --shadow:var(--shadow-sm); --shadow-lg:var(--shadow-md);
  --scan-blue:#1F5A2E; --scan-blue-light:#28783A; --scan-blue-soft:#1F5A2E;
  --scan-blue-bg:rgba(31,90,46,.08); --scan-blue-glow:rgba(31,90,46,.18);
}
html:not([data-theme="light"]) {color-scheme:dark}
/* Per-page component variables historically redeclared their own skin. */
html body {
  --bk-card:var(--bg2); --bk-deep:var(--accent); --bk-ink:var(--text); --bk-soft:var(--text-muted);
  --bk-violet:var(--accent); --bk-well:var(--bg3); --bk-line:var(--border); --bk-lift:var(--shadow-sm);
  --bx-card:var(--bg2); --bx-card-2:var(--bg2); --bx-ink:var(--text); --bx-soft:var(--text-muted);
  --bx-violet:var(--accent); --bx-violet-d:var(--accent); --bx-violet-l:var(--accent2);
  --bx-tile:linear-gradient(170deg,var(--bg2),var(--bg3)); --bx-tint:var(--bg3); --bx-tint-2:var(--glass-hover);
  --bx-well:var(--bg3); --bx-line:var(--border); --bx-lift:var(--shadow-sm); --bx-lift-lg:var(--shadow-md);
  --ch-card:var(--bg2); --ch-deep:var(--accent); --ch-ink:var(--text); --ch-soft:var(--text-muted);
  --ch-violet:var(--accent); --ch-well:var(--bg3); --ch-line:var(--border); --ch-lift:var(--shadow-sm);
  --ch-panel:var(--bg3); --ch-theirs:var(--bg3); --ch-mine:linear-gradient(135deg,#1F5A2E,#28783A);
  --rp-card:var(--bg2); --rp-card2:var(--bg3); --rp-deep:var(--accent); --rp-ink:var(--text);
  --rp-soft:var(--text-muted); --rp-violet:var(--accent); --rp-well:var(--bg3); --rp-line:var(--border); --rp-lift:var(--shadow-sm);
}
html, html body {background:var(--shell-page-bg) !important; color:var(--text);}
html body {font-family:Manrope,system-ui,sans-serif; background-image:none !important;}
body::before {background:none !important;box-shadow:none !important;}
h1,h2,h3,h4,.page-title,.card-title,.dh-title,.stat-value,.acct-title {font-family:"Bricolage Grotesque",Manrope,sans-serif;}
button,input,select,textarea {font-family:inherit;}
body a:not(.btn):not(.sb-link):not(.sb-brand):not(.sb-logout):not(.nav-lang-toggle):not(.theme-toggle) {text-underline-offset:3px;}
::selection {background:#F4C430;color:#183E27}
:focus-visible {outline:3px solid var(--accent);outline-offset:3px;}
html .app-body {position:relative;}
html .app-body>.container {width:100%;padding:0 clamp(20px,3vw,42px);}
html .app-shell::before {background:#174625 !important;}
html .sidebar {background:var(--sb-bg) !important;box-shadow:5px 0 24px rgba(20,61,32,.06);border-radius:0;}
html .sidebar::after {height:50%;inset:auto 0 0;background:linear-gradient(0deg,rgba(11,42,20,.50),rgba(23,70,37,.80)),url('assets/ascot/campus-sidebar.webp') center/cover;opacity:.46;}
html .sidebar>* {position:relative;z-index:1;}
html .sidebar .brand-short {color:#FFF;-webkit-text-fill-color:#FFF;font-weight:800;letter-spacing:.07em;}
html .sidebar .brand-full {color:#E1EEDF;font-size:9px;line-height:1.35;}
html .sb-brand {padding-bottom:24px;}
html .sb-brand .erams-logo-mark {filter:brightness(0) saturate(100%) invert(79%) sepia(77%) saturate(626%) hue-rotate(345deg) brightness(102%) contrast(91%);}
html .sb-group-label {opacity:1;color:#C7DFC8;font-weight:700;font-size:9px;letter-spacing:.16em;}
html .sb-link {color:#E1EEDF;font-weight:600;min-height:40px;border-radius:10px;}
html .sb-link:hover {color:#FFF;background:rgba(255,255,255,.1);}
html .sb-link.active {background:#F4C430;color:#183E27 !important;box-shadow:0 5px 16px rgba(5,30,14,.12);}
html .sb-nav.has-pill .sb-link.active {background:transparent;box-shadow:none;}
html .sb-pill {background:#F4C430;border-radius:10px;box-shadow:0 5px 16px rgba(5,30,14,.12);}
html .sb-settings {border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:#E1EEDF;}
html .sb-user {background:rgba(0,0,0,.13);border:1px solid rgba(255,255,255,.1);border-radius:12px;}
html .sb-user-copy strong,html .sb-user-copy small {color:#F4F9F3;}
html .sb-user-avatar {background:#F4C430;color:#183E27;}
html .sb-foot .nav-role-badge {background:rgba(255,255,255,.12);color:#FFF;border-color:rgba(255,255,255,.2);}
html .sb-foot .theme-toggle,html .sb-foot .nav-lang-toggle {color:#E1EEDF;}
html .sb-logout {color:#FFF;background:rgba(255,255,255,.06);}
html .nav-notif-badge {background:#F4C430;color:#183E27;}

/* Campus image is a backdrop: text always sits over the opaque ink-safe veil. */
html .app-body .page-header,html .dash-hero {
  position:relative;isolation:isolate;overflow:hidden;border-radius:20px;
  min-height:138px;padding:26px 30px;margin:22px 0 24px;
  background:var(--bg2);border:1px solid var(--border);box-shadow:var(--shadow-sm);
}
html .app-body .page-header::before,html .dash-hero::before {
  content:"";position:absolute;inset:-18px 0;z-index:-2;pointer-events:none;
  background:linear-gradient(90deg,#FFFFFF 12%,#FFFFFF 45%,rgba(255,255,255,.76) 65%,rgba(255,255,255,.38)),url('assets/ascot/campus-banner.webp') center right/cover;
  transform:translate3d(0,var(--ascot-header-shift,0px),0);will-change:transform;
}
html .app-body .page-header::after,html .dash-hero::after {
  content:"ASCOT";position:absolute;right:32px;bottom:4px;z-index:-1;
  font-family:Caveat,cursive;font-weight:700;font-size:48px;line-height:1.1;
  color:#1F5A2E;transform:rotate(-9deg);opacity:.82;pointer-events:none;
  padding-left:38px;background:url('assets/ascot/ascot-seal.webp') left center/30px 30px no-repeat;
}
html:not([data-theme="light"]) .app-body .page-header::before,html:not([data-theme="light"]) .dash-hero::before {background-image:linear-gradient(90deg,#162D20 12%,rgba(22,45,32,.94) 43%,rgba(22,45,32,.64)),url('assets/ascot/campus-banner.webp');}
html:not([data-theme="light"]) .app-body .page-header::after,html:not([data-theme="light"]) .dash-hero::after {color:#F4C430;}
html .dh-kicker {color:var(--accent);letter-spacing:.13em;font-size:10px;}
html .dh-kicker .dot,html .dh-next .nk .dot {box-shadow:none;animation:none;}
html .dh-title {font-size:clamp(25px,2.5vw,34px);font-weight:500;color:var(--text-muted);line-height:1.15;}
html .dh-title em {color:var(--text);font-weight:750;}
html .dash-chips {position:relative;align-self:flex-start;justify-content:flex-end;max-width:46%;gap:7px;}
html .dash-chip {background:var(--bg2);color:var(--text-muted);border:1px solid var(--border);font-size:10.5px;box-shadow:none;padding:8px 12px;}
html .dash-chip svg {color:var(--accent);}
html .page-title {color:var(--text);font-size:clamp(26px,2.6vw,36px);letter-spacing:-.8px;}
html .page-subtitle {color:var(--text-muted);font-size:13px;max-width:620px;}
html .card,html .stat-card,html .dashboard-calendar,html .scanner-card,html .admin-hub-card {background:var(--bg2);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-sm);}
html .card-title {color:var(--text);font-weight:700;}
html .app-body .card {background-image:none !important;}
html .dash-hero>div:first-child {min-width:0;max-width:100%;transform:none;}
html .card-title::after {background:#F4C430;width:32px;}
html .btn-primary,html a.btn-primary,html .btn-gradient {
  background:#F4C430 !important;background-image:none !important;border:1px solid #E8B825 !important;
  color:#183E27 !important;border-radius:10px;font-weight:800;box-shadow:0 4px 12px rgba(153,118,0,.09) !important;
}
html .btn-primary:hover,html .btn-gradient:hover {background:#E6B21D !important;box-shadow:0 8px 18px rgba(153,118,0,.15) !important;}
html .btn-secondary {background:var(--bg2);border-color:var(--border2);color:var(--accent);border-radius:10px;}
html .btn-success {background:#1F5A2E;color:#FFF;border-radius:10px;}
html .btn-warning {background:#FFF5CC;color:#735300;border-color:#E6CD71;}
html .btn,html .qa-tile {transition:transform .22s var(--ascot-ease),box-shadow .22s ease,background .22s ease,border-color .22s ease;}
html input:not([type=checkbox]):not([type=radio]):not([type=range]),html select,html textarea {accent-color:var(--accent);}
html input::placeholder,html textarea::placeholder {color:var(--text-muted);opacity:1;}
html .form-input:focus,html .form-select:focus,html .form-textarea:focus {border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);}
html .badge-active,html .badge-success,html .status-active {color:#1F5A2E;background:#E8F3E7;border-color:#B8D9BA;}
html .badge-warning {background:#FFF5CC;color:#735300;}
html .badge-primary,html .badge-purple {background:var(--glass-hover);color:var(--accent);}
html .badge-teal {background:var(--glass-hover);color:var(--accent);border-color:var(--border2);}
html :is(.badge-admin,.badge-organizer,.badge-participant) {background:var(--glass-hover);color:var(--accent);border-color:var(--border2);}
html .event-wizard-question h2 {color:var(--text) !important;}
html .event-wizard-question span {color:var(--accent) !important;}
html .event-wizard-progress {background:transparent !important;}
html .event-wizard-dot {background:var(--bg3);color:var(--text-muted);}
html .event-wizard-dot.active {background:#1F5A2E !important;color:#FFFFFF !important;}
html .ecw-steps li.is-on i {background:#1F5A2E;color:#FFFFFF;box-shadow:0 5px 15px rgba(31,90,46,.18);}
html :is(.badge-admin,.badge-organizer,.badge-participant) {color:var(--accent) !important;background:var(--bg3) !important;}
html .mnt-kicker {display:inline-flex;align-items:center;min-height:36px;width:auto;padding:8px 14px;border-radius:999px;background:#E8F3E7;color:#1F5A2E;font-size:11px;font-weight:800;letter-spacing:.06em;}

/* Compact, readable stat plates. Real ring ratios are also linear meters. */
html .stats-grid {gap:16px;margin-bottom:22px;}
html .stats-grid .stat-card {--ac:var(--accent);padding:18px;gap:12px;min-height:180px;opacity:1 !important;}
html .stats-grid .stat-card.teal,html .stats-grid .stat-card.amber {--ac:var(--amber);}
html .stats-grid .stat-head {gap:10px;}
html .stats-grid .stat-icon {width:38px;height:38px;border-radius:11px;background:#E8F3E7;color:#1F5A2E;box-shadow:none;}
html .stats-grid .teal .stat-icon,html .stats-grid .amber .stat-icon {background:#FFF5CC;color:#8A6500;}
html .stats-grid .stat-label {color:var(--text-muted);font-size:10px;line-height:1.5;letter-spacing:.045em;}
html .stat-ring {width:56px;height:58px;justify-content:start;}
html .stat-ring>svg {display:none;}
html .stats-grid .stat-value {font-size:36px;font-weight:800;color:var(--text) !important;}
html .stat-facts {gap:4px;}
html .stat-facts li {font-size:10px;color:var(--text-muted);}
html .stat-ringnote {font-size:9px;color:var(--text-muted);border:0;padding-top:4px;letter-spacing:.035em;}
html .stat-ringnote b {color:var(--ac);}
.ascot-stat-meter {height:4px;border-radius:4px;background:var(--bg3);overflow:hidden;}
.ascot-stat-meter>span {display:block;height:100%;border-radius:inherit;background:var(--ac,var(--accent));transform-origin:left;}
html .dpr-rv {opacity:1 !important;transform:none !important;}
html .calendar-weekdays span {background:var(--bg3);border:0;color:var(--text-muted);border-radius:5px;font-size:9px;letter-spacing:.1em;}
html .calendar-day {background:var(--bg3) !important;border:1px solid transparent;border-radius:9px;}
html .calendar-day:hover,html .calendar-day.is-selected {background:var(--glass-hover) !important;border-color:var(--border2);}
html .calendar-day.is-today .calendar-day-number,html .calendar-day.is-selected .calendar-day-number {background:#1F5A2E;color:#FFF;}
html .calendar-event-dot.status-active {background:#1F5A2E;color:#FFF;}
html .calendar-empty,html .calendar-recent-item,html .calendar-agenda-item {background:var(--bg3);border:1px solid var(--border);}
html .dh-next {position:relative;overflow:hidden;background:#1F5A2E !important;border-color:#1F5A2E;color:#FFF;box-shadow:none;}
html .dh-next::before {content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,57,27,.90),rgba(15,57,27,.80)),url('assets/ascot/campus-banner.webp') center/cover;pointer-events:none;}
html .dh-next>* {position:relative;}
html .dh-next .nk {color:#FFF5CC;font-size:9px;}
html .dh-next .nt,html .dh-next .nm,html .dh-next .dh-empty {color:#FFF;}
html .dh-next .dh-cell {background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18);border-radius:8px;}
html .dh-next .dh-cell b,html .dh-next .dh-cell span {color:#FFF;}
html .dh-next .btn {border-radius:8px;}
html .top3-tile {background:#1F5A2E;color:#FFF;}
html .top3-tile:nth-child(2) {background:#F4C430;color:#183E27;}
html .top3-tile:nth-child(3) {background:#E8F3E7;color:#183E27;}
html .top3-tile .top3-name,html .top3-tile .top3-score,html .top3-tile .top3-sub {color:inherit;opacity:1;}
html .qa-tile {background:var(--bg3);border-color:var(--border);}
html .qa-ic {background:var(--glass-hover);color:var(--accent);}
html .rhyze-fab {background:linear-gradient(145deg,#1F5A2E,#28783A) !important;box-shadow:0 8px 22px rgba(20,61,32,.22) !important;border-color:rgba(255,255,255,.3);}
html .rhyze-panel {background:var(--bg2);border-color:var(--border);box-shadow:var(--shadow-md);}
html .rhyze-panel-header {background:#1F5A2E;}
html .rhyze-messages,html .rhyze-form,html .rhyze-status {background:var(--bg2);color:var(--text-muted);}
html .rhyze-bubble.is-user {background:#1F5A2E;color:#FFF;}
html .rhyze-bubble.is-bot,html .rhyze-input,html .rhyze-chip {background:var(--bg3);border-color:var(--border);color:var(--text);}
html .sfid-stage,html .scan-face-camera-stage {background:linear-gradient(160deg,#123722,#0D2619);border-color:#376C45;}
html .sfid-instruction {color:#F4F9F3;}
html .scan-face-activity-list em,html #scanFaceActivityTime,html .scan-face-rewards-stats span,html .scan-face-milestone-head span{color:var(--ascot-text-secondary)!important;}
html .scan-face-milestone-head strong{color:var(--ascot-text-success)!important;}
html body .scan-detail-avatar,html body .scan-face-activity-icon.is-blue{background:#1F5A2E!important;background-image:none!important;color:#FFF9E8!important;}
html body .scan-detail-email{color:var(--ascot-text-secondary)!important;}
html body .rep-tab.is-active{background:#1F5A2E!important;background-image:none!important;color:#FFF9E8!important;-webkit-text-fill-color:#FFF9E8!important;}
html body .ribbon.rv{background:var(--bg2)!important;background-image:none!important;color:var(--ascot-text-secondary)!important;}
html body .ribbon.rv b{color:var(--ascot-text-heading)!important;}
html .record-history-grid,html .record-history-grid>.card{min-width:0;}
html .record-history-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;}
html .record-history-table-wrap table{min-width:620px;}
html .record-history-grid>.card:last-child table{min-width:480px;}
html .btn.secondary{background:var(--bg3)!important;color:var(--ascot-text-body)!important;border-color:var(--ascot-control-border)!important;}
html .sfid-alert-ok {color:#1F5A2E;}
html .site-footer {background:transparent;border-color:var(--border);color:var(--text-muted);font-size:11px;}
html .app-body :is(.card-title,.page-title,.calendar-month-label,.calendar-day-number,.calendar-recent-title,.calendar-agenda-head strong,.perf-head h3,.acct-title) {color:var(--text) !important;}
html .app-body :is(.page-subtitle,.calendar-subtitle,.calendar-recent-meta,.calendar-recent-foot,.stat-label,.acts-list small,.stat-facts li) {color:var(--text-muted) !important;}
body.ascot-public-events {--ink:var(--bg);--ink-2:var(--bg3);--panel:var(--bg2);--line:var(--border);--txt:var(--text);--mut:var(--text-muted);--dim:var(--text-muted);--leaf:var(--accent);--mint:var(--accent);--gold:#8A6500;}
body.ascot-public-events :is(.nav,.search,.tile) {background:var(--bg2);color:var(--text);border-color:var(--border);}
body.ascot-public-events .hero-bg::after {background:linear-gradient(90deg,var(--bg),color-mix(in srgb,var(--bg) 90%,transparent) 40%,color-mix(in srgb,var(--bg) 50%,transparent)),linear-gradient(0deg,var(--bg),transparent 80%);}
body.ascot-public-events .btn-hero {background:#F4C430;color:#183E27;border-color:#E8B825;}
body.ascot-public-events .btn-ghost {background:var(--bg2);color:var(--accent);border-color:var(--border);}
body.ascot-public-events input {background:var(--bg2) !important;color:var(--text) !important;border-color:#6E8972;}
/* Text contrast corrections from all-role light/dark rendered DOM review. */
html .ev-tabs,html .ev-list {--ev-accent:var(--accent);--ev-muted:var(--text-muted);}
html .ev-tab,html .ev-tab.is-active,html .ev-tab.active {color:var(--accent);}
html .ev-cta {background:#F4C430 !important;color:#183E27 !important;border-color:#E8B825;}
html .badge-danger,html .sec-level.is-risk {color:var(--red) !important;}
html .ai-score-badge {background:var(--bg3);color:var(--accent);}
html .bdg-hero-sub,html .bdg-seg,html .bdg-rail-count {color:var(--text-muted);}
html .bdg-rail-item.is-on,html .bdg-rail-item.is-on :is(strong,span,small),html .bdg-pill.is-on {color:var(--accent);}
html .ntf-item.is-read {opacity:1;}
html .ntf-pill.is-good,html .lb-you,html .acct-badge.is-ok {color:var(--accent);}
html .ntf-pill.is-warn {color:var(--amber);}
html .admin-hub-card-link,html .admin-hub-head em {color:var(--accent);}
html .admin-hub-head .is-warn,html .dash-chip.is-warn {color:var(--amber);background:var(--bg2);border-color:var(--border2);}
html .top3-rank,html .sec-step-n {background:#F4C430 !important;color:#183E27 !important;opacity:1;}
html:not([data-theme="light"]) .form-group label,html:not([data-theme="light"]) .settings-toggle-row {color:var(--text-muted);}
html .skip,html .skip-link {background:#F4C430;color:#183E27;}
html .calendar-day.is-today .calendar-day-number {background:#F4C430 !important;color:#183E27 !important;}
html[data-theme="light"] body.ascot-public-events .kicker {color:#1F5A2E;background:#E8F3E7;}
html .ev-tab.is-on {color:var(--accent) !important;}
html :is(.ev-sub,.ev-link,.ev-xtra>summary,.ev-spot-meta,.ev-spot-sub,.ev-tabs-side a,.ev-seats,.ev-listhead p) {color:var(--text-muted) !important;}
html .ev-ghost.is-static {opacity:1;}
html .event-info-table td:first-child {color:var(--text-muted) !important;}
html :is(.event-info-table td:last-child,.event-info-note,.event-info-desc) {color:var(--text) !important;}
html .bdg {--bx-soft:var(--text-muted) !important;--bx-violet-d:var(--accent) !important;--bx-violet:var(--accent) !important;--bx-violet-l:var(--accent2) !important;--bx-ink:var(--text) !important;}
html .bdg-stat-cta {color:var(--accent);}
html .bdg-seg button {color:var(--text-muted);}
html .bdg-hero-sub a {color:var(--accent);opacity:1;}
html .bdg-rail-count {background:var(--bg3);}
html .rpt {--rp-soft:var(--text-muted) !important;--rp-violet:var(--accent) !important;--rp-deep:var(--accent) !important;--rp-ink:var(--text) !important;}
html .chat {--ch-ink:var(--text) !important;--ch-soft:var(--text-muted) !important;--ch-violet:var(--accent) !important;--ch-deep:var(--accent) !important;--ch-card:var(--bg2) !important;--ch-panel:var(--bg3) !important;--ch-well:var(--bg3) !important;--ch-line:var(--border) !important;--ch-mine:linear-gradient(135deg,#1F5A2E,#28783A) !important;--ch-theirs:var(--bg3) !important;}
html .blk {--bk-ink:var(--text) !important;--bk-soft:var(--text-muted) !important;--bk-violet:var(--accent) !important;--bk-deep:var(--accent) !important;--bk-card:var(--bg2) !important;--bk-line:var(--border) !important;--bk-well:var(--bg3) !important;}
/* Gradient surfaces reviewed separately from the solid-color contrast audit. */
html #btnModeCamera,html .dss-tab.is-active,html .chat-railtab.is-on,html .chat-views>a.is-on,html .evimg-tab.is-on {background:#1F5A2E !important;color:#FFF !important;}
html .chat-railtab.is-on span,html .chat-views>a.is-on {color:#FFF !important;}
html .chat .btn-primary span {color:#183E27 !important;}
html .ntf-tab.is-on>b,html .ntf-pill.is-newdot {background:#1F5A2E;color:#FFF;}
html .lb-avatar:not([style*="url("]),html .acct-avatar {background:#1F5A2E;color:#FFF;}
html .lb-avatar:not([style*="url("]),html .acct-avatar:not([style*="url("]) {background:#1F5A2E !important;color:#FFF !important;}
html .lb-rankdot {background:#F4C430 !important;color:#183E27 !important;}
html .hof-send.att-load,html .rpt-export.is-primary,html .acc-manager2 {background:#F4C430 !important;color:#183E27 !important;border-color:#1F5A2E;}
html .rpt-export.is-primary span {color:#183E27 !important;}
html .acc-state {background:#1F5A2E;color:#FFF;}
html .acc-state.is-off {background:var(--bg3);color:var(--text-muted);}
html .dss-chip.is-on {color:var(--accent);background:var(--bg3);}
html .bdg-pill {color:var(--text-muted);}
html .bdg-pill.is-on {color:var(--accent);}
html .bdg-cta-btn {background:#F4C430 !important;color:#183E27 !important;}
html .erams-certificate-frame {background:#FFF;color:#183E27;}
html .erams-certificate-frame :is(.erams-certificate-eyebrow,.erams-certificate-lead,.erams-certificate-sub,.erams-certificate-brand,small) {color:#526459;}
html .erams-certificate-badge {color:#1F5A2E;background:#E8F3E7;}
html .erams-certificate-frame {background:#FFFFFF !important;border-color:#ABC6AE !important;}
html .erams-certificate-frame :is(h1,h2,strong,.erams-certificate-meta) {color:#183E27 !important;}
html .erams-certificate-frame :is(.erams-certificate-eyebrow,.erams-certificate-lead,.erams-certificate-sub,.erams-certificate-brand,small) {color:#526459 !important;}
html .erams-certificate-badge {color:#1F5A2E !important;background:#E8F3E7 !important;border-color:#ABC6AE;}
html :is(.erams-print-btn,.erams-pdf-btn) {background:#F4C430;color:#183E27;border-color:#1F5A2E;}
html :is(.erams-code-btn,.erams-theme-btn) {background:var(--bg2);color:var(--accent);border-color:var(--border2);}
body.ascot-landing :is(.punch em,.impact-grid .cell>b),body.ascot-public-events h1 em {background:none !important;color:var(--accent) !important;-webkit-text-fill-color:var(--accent) !important;}
html .rpt-rate :is(b,i) {color:var(--accent);}
html :is(.rpt-chips button,.rpt th,.rpt-pill.is-not_marked) {color:var(--text-muted);}
html[data-theme="light"] :is(.ai-score-badge,.ai-source-badge,.admin-hub-card-link,.acc-services li em) {color:#1F5A2E !important;}
html[data-theme="light"] .acc-services li em.is-warn {color:#8A6500 !important;}
html .fe-prep article>b {color:#1F5A2E !important;}
html .bdg-rail-item.is-on .bdg-rail-count {background:var(--bg3) !important;color:var(--accent) !important;}
html[data-theme="light"] :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea) {border-color:#6E8972;}
html[data-theme="light"] :is(.btn-primary,.btn-gradient,.ev-cta) {border-color:#1F5A2E !important;}
html:not([data-theme="light"]) :is(.btn-primary,.btn-gradient,.ev-cta) {border-color:#F4C430 !important;}
/* Generic table rules must never unhide the accessible chart-data table. */
html table.sr-only {display:block !important;position:absolute !important;width:1px !important;max-width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;clip-path:inset(50%);white-space:nowrap !important;border:0 !important;}
.ascot-photo-credit {display:block;margin-top:5px;font-size:10px;color:var(--text-muted);}
.ascot-photo-credit a {color:inherit;}
@media (hover:hover) and (pointer:fine) {
  html .stat-card:hover,html .admin-hub-card:hover,html .qa-tile:hover {transform:translateY(-4px);box-shadow:var(--shadow-md);}
  html .btn:hover {transform:translateY(-2px);}
}
/* Independent named shell/header transitions + visible fade fallback. */
@view-transition {navigation:auto;}
.sidebar {view-transition-name:ascot-sidebar;}
.dash-hero,.app-body .page-header {view-transition-name:ascot-header;}
::view-transition-old(root) {animation:ascot-out .16s ease both;}
::view-transition-new(root) {animation:ascot-in .24s ease both;}
::view-transition-group(ascot-sidebar),::view-transition-group(ascot-header) {animation-duration:.28s;animation-timing-function:var(--ascot-ease);}
@keyframes ascot-out {to {opacity:0;}}
@keyframes ascot-in {from {opacity:0;}to {opacity:1;}}

/* Responsive rules MUST be after unscoped overrides. */
@media (max-width:1100px) and (min-width:769px) {
  html .sidebar {width:72px;padding:18px 10px 14px;}
  html .sidebar .brand-text,html .sb-txt,html .sb-group-label {display:none;}
  html .sb-link {justify-content:center;padding:10px 0;}
  html .sb-brand {justify-content:center;padding:2px 0 22px;}
  html .sb-pill {left:8px;right:8px;}
  html .sb-foot .theme-toggle,html .sb-foot .nav-lang-toggle {padding:4px;}
  html .sidebar::after {height:40%;}
}
@media (max-width:1100px) {
  html .calendar-agenda {border-left:0;border-top:1px solid var(--border);}
  html .dash-chips {max-width:100%;}
}
@media (max-width:768px) {
  html .app-body>.container {padding:0 16px;}
  html .sidebar {position:fixed;width:254px;max-width:85vw;padding:20px 14px 16px;border-radius:0 18px 18px 0;}
  html .sidebar .brand-text,html .sb-txt,html .sb-group-label {display:initial;}
  html .sb-link {justify-content:flex-start;padding:10px 16px;min-height:42px;}
  html .nav-toggle {background:#1F5A2E !important;color:#FFF !important;border-color:#1F5A2E !important;box-shadow:0 4px 16px rgba(20,61,32,.2);}
  html .app-body .page-header,html .dash-hero {padding:24px 18px 26px;margin:70px 0 18px;min-height:148px;gap:14px;border-radius:16px;}
  html .dash-hero {align-items:flex-start;}
  html .dh-title {font-size:26px;}
  html .dh-title em {margin-left:0;display:block;margin-top:4px;}
  html .dash-chips {max-width:100%;justify-content:flex-start;gap:6px;}
  html .dash-chip {font-size:9px;padding:6px 8px;}
  html .dash-hero::after,html .app-body .page-header::after {right:18px;font-size:36px;opacity:.6;}
  html .stats-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  html .stats-grid .stat-card {padding:14px;min-height:190px;gap:10px;}
  html .stats-grid .stat-head {flex-wrap:wrap;gap:6px;}
  html .stats-grid .stat-label {font-size:9px;flex-basis:calc(100% - 24px);order:2;}
  html .stat-open {margin-left:auto;}
  html .stat-body {gap:8px;flex-wrap:wrap;}
  html .stat-ring {height:36px;width:100%;}
  html .stats-grid .stat-value {font-size:30px;}
  html .stat-facts li {font-size:9px;white-space:normal;}
  html .stat-facts {gap:3px;}
  html .stat-ringnote {font-size:8px;}
  html .calendar-main,html .calendar-agenda {padding:14px;}
  html .calendar-day {padding:5px;}
  html .calendar-grid {gap:4px;grid-auto-rows:minmax(54px,70px);}
  html .calendar-day-number {font-size:10px;}
  html .calendar-event-dot {font-size:8px;padding:2px 3px;}
  html .top3-grid {gap:8px;}
  html .rhyze-fab {width:52px;height:52px;border-radius:18px;}
  html .rhyze-launcher {bottom:16px;right:16px;}
  html .acct-head {padding-top:64px;}
  html .site-footer {padding-bottom:80px;}
}
@media (max-width:390px) {html .stats-grid .stat-card {padding:12px;}html .stats-grid .stat-icon {width:32px;height:32px;}}
html[data-contrast="high"] {--text:#102F1C !important;--text-muted:#284632 !important;--text-dim:#284632 !important;--border:#718D73;}
html:not([data-theme="light"])[data-contrast="high"] {--text:#FFFFFF !important;--text-muted:#E2F2E4 !important;--text-dim:#E2F2E4 !important;--border:#96BD9D;}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation:none !important;transition:none !important;scroll-behavior:auto !important;}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) {animation:none !important;}
  html .dash-hero::before,html .app-body .page-header::before {transform:none;will-change:auto;}
}
html[data-motion="reduce"] *,html[data-motion="reduce"] *::before,html[data-motion="reduce"] *::after {animation:none !important;transition:none !important;scroll-behavior:auto !important;}
html[data-motion="reduce"]::view-transition-group(*),html[data-motion="reduce"]::view-transition-old(*),html[data-motion="reduce"]::view-transition-new(*) {animation:none !important;}
/* Pass 2: a semantic ink scale, rather than one accent for every text role. */
:root {
  --ascot-text-heading:#F4F9F3; --ascot-text-body:#E1EEDF;
  --ascot-text-secondary:#B7CCBD; --ascot-text-label:#CEE2D0;
  --ascot-text-link:#A8DDB0; --ascot-text-link-hover:#D5EED5;
  --ascot-text-placeholder:#AFC6B5; --ascot-text-disabled:#A3BAA9;
  --ascot-text-on-green:#FFF9E8; --ascot-text-on-gold:#183E27;
  --ascot-text-error:#FFB7BD; --ascot-text-success:#A8DDB0;
  --ascot-text-warning:#F7D775; --ascot-text-info:#A8DDB0;
  --ascot-text-inverse:#FFF9E8;
  --ascot-surface-success:#1C3828; --ascot-surface-warning:#3E3216;
  --ascot-surface-error:#3D2227; --ascot-control-border:#779A80;
  --text:var(--ascot-text-heading) !important;
  --text-muted:var(--ascot-text-secondary) !important;
  --text-dim:var(--ascot-text-secondary) !important;
}
html[data-theme="light"] {
  --ascot-text-heading:#183E27; --ascot-text-body:#284B36;
  --ascot-text-secondary:#526459; --ascot-text-label:#365B43;
  --ascot-text-link:#236A34; --ascot-text-link-hover:#174625;
  --ascot-text-placeholder:#5A6B5F; --ascot-text-disabled:#617267;
  --ascot-text-error:#A52A36; --ascot-text-success:#236A34;
  --ascot-text-warning:#795A08; --ascot-text-info:#236A34;
  --ascot-surface-success:#E8F3E7; --ascot-surface-warning:#FFF5CC;
  --ascot-surface-error:#FBECEF; --ascot-control-border:#6E8972;
}
html body {color:var(--ascot-text-body);line-height:1.6;}
html a {color:var(--ascot-text-link);}
html a:where(:not(.btn):not(.btn-primary):not(.sb-link):not(.sb-brand):not(.sb-logout)):hover {color:var(--ascot-text-link-hover);}
html :is(h1,h2,h3,h4,h5,h6,.page-title,.card-title,.stat-value) {color:var(--ascot-text-heading);}
html :is(label,.form-label,.field-label,th,legend) {color:var(--ascot-text-label);}
html :is(.text-muted,.muted,.help-text,.form-text,.breadcrumb,.breadcrumbs,time,figcaption) {color:var(--ascot-text-secondary);}
html :is(input,textarea)::placeholder {color:var(--ascot-text-placeholder) !important;opacity:1 !important;}
html body :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea){border-color:var(--ascot-control-border)!important;}
html body :is(.sca-field,.ctrl,.form-input-wrap,.search-input-wrap){border-color:var(--ascot-control-border)!important;}
html body :is(input,select,textarea):focus-visible{outline:2px solid var(--ascot-text-link);outline-offset:2px;}
html body :focus-visible{outline-color:var(--ascot-text-link)!important;}
html body #appSidebar :focus-visible,html body .efs :focus-visible{outline-color:#FFF9E8!important;}
html body .erams-certificate :focus-visible{outline-color:#236A34!important;}
html .maintenance-switch i{background:var(--bg3)!important;border-color:var(--ascot-control-border)!important;}
html .maintenance-switch i::after{background:var(--ascot-text-secondary)!important;}
html .maintenance-switch input:checked+i{background:#1F5A2E!important;background-image:none!important;}
html .maintenance-switch input:checked+i::after{background:#FFF9E8!important;}
html .maintenance-switch input:focus-visible+i{outline:3px solid var(--ascot-text-link);outline-offset:3px;}
html :is(input,select,textarea,button):disabled {color:var(--ascot-text-disabled);opacity:1;}
html :is(.btn-primary,.btn-gradient,.ev-cta) :is(span,strong,small) {color:var(--ascot-text-on-gold) !important;}
html .btn-success {background:#1F5A2E;color:var(--ascot-text-on-green);}
html .badge-success {background:var(--ascot-surface-success) !important;color:var(--ascot-text-success) !important;}
html .badge-warning {background:var(--ascot-surface-warning) !important;color:var(--ascot-text-warning) !important;}
html .badge-danger {background:var(--ascot-surface-error) !important;color:var(--ascot-text-error) !important;}
html .btn-danger {background:var(--ascot-surface-error) !important;color:var(--ascot-text-error) !important;border:1px solid var(--ascot-text-error) !important;}
html table:not(.sr-only) thead :is(th,td) {background:var(--bg3) !important;color:var(--ascot-text-label) !important;}
html table:not(.sr-only) tbody tr:nth-child(even) {background:color-mix(in srgb,var(--bg3) 45%,var(--bg2));}
html table:not(.sr-only) tbody tr:hover {background:var(--glass-hover);}
html .btn:active {transform:translateY(0) scale(.98);}
html .maintenance-btn {background:var(--bg2) !important;color:var(--ascot-text-link) !important;border-color:var(--ascot-control-border) !important;}
html .maintenance-btn.primary {background:#F4C430 !important;color:#183E27 !important;border-color:var(--ascot-control-border) !important;}
html .maintenance-card {background:var(--bg2) !important;color:var(--ascot-text-body) !important;border:1px solid var(--border);box-shadow:var(--shadow-md);}
html .maintenance-card h1,html .maintenance-card h1 em {color:var(--ascot-text-heading) !important;background:none !important;-webkit-text-fill-color:var(--ascot-text-heading) !important;}
html .maintenance-card :is(p,.maintenance-subtitle,.mnt-sub,.maintenance-info-label,dt) {color:var(--ascot-text-secondary) !important;}
html .maintenance-card :is(strong,.maintenance-info-value,dd) {color:var(--ascot-text-heading) !important;}
html body.maintenance-lock .maintenance-card {background:var(--bg2) !important;}
html[data-theme="light"] .rw-podium :is(.n,.pd) {color:var(--ascot-text-warning) !important;}
html .rw-avatar {background:var(--ascot-surface-success) !important;color:var(--ascot-text-success) !important;}
html .rw-hero {background:#174625 !important;box-shadow:var(--shadow-md);}
html .rw-hero .rw-kpi {background:#143D24 !important;}
html .cln-list.cln-list-yes h4 {color:var(--ascot-text-success) !important;}
html #scorerRole {background:#174625 !important;color:#FFF9E8 !important;border:1px solid #779A80;}
html .maintenance-admin-hero {background:#174625 !important;}
html .maintenance-admin-hero h2 {color:#FFF9E8 !important;}
html .maintenance-admin-hero p {color:#E1EEDF !important;}
html .maintenance-active-strip {background:var(--ascot-surface-warning) !important;}
html .maintenance-active-strip > div > :is(strong,p) {color:var(--ascot-text-warning) !important;}
html .maintenance-manager-card {background:var(--bg2) !important;}
html .maintenance-config-body :is(input:not([type="checkbox"]),textarea,select) {background:var(--bg3) !important;color:var(--ascot-text-body) !important;border-color:var(--ascot-control-border) !important;font-weight:500;}
html .admin-users-table {min-width:850px;}
html .admin-users-table :is(.badge,.role-pill,.user-role) {white-space:nowrap;}
html .rw-hero .btn-secondary {background:#FFF9E8 !important;color:#183E27 !important;border-color:#C7D9C8 !important;}
html .app-body .page-header {padding-bottom:48px;}
html .app-body .page-header::before,html .dash-hero::before {background-image:linear-gradient(90deg,#FFFFFF 12%,rgba(255,255,255,.96)65%,rgba(255,255,255,.88)),url('assets/ascot/campus-banner.webp');}
html:not([data-theme="light"]) .app-body .page-header::before,html:not([data-theme="light"]) .dash-hero::before {background-image:linear-gradient(90deg,#162D20 12%,rgba(22,45,32,.96)65%,rgba(22,45,32,.94)),url('assets/ascot/campus-banner.webp');}
@media(max-width:760px){html .app-body .page-header,html .dash-hero {padding-bottom:58px;}}
html .app-body .page-header::after,html .dash-hero::after {opacity:.9;}
@media(max-width:760px){html .stats-grid.admin-stats-compact .stat-card {min-height:145px;padding:16px;gap:8px;}html .stats-grid.admin-stats-compact .stat-value {font-size:30px;}}
html .stats-grid .stat-card:not(:has(.stat-head)) {min-height:150px;}
html .event-summary-stats .stat-card {min-height:130px;padding:18px;}
@media(max-width:760px){html .stats-grid .stat-card:not(:has(.stat-head)) {min-height:145px;}html .chat-rail {max-height:none;}html .chat-rail-empty {padding:14px 16px;gap:8px;}html .chat-rail-empty > img {width:42px;height:42px;}html .chat-rail-empty p {margin:0;}}
html .evr-wrap {max-width:100%;overflow-x:auto;}
html .evr-table {min-width:650px;}
@media(max-width:760px){html .lb-head {margin-top:70px;}html #main > .ev-tabs:first-child {margin-top:70px;}}
@media(max-width:760px){html #main > .sr-only + .ev-tabs {margin-top:70px;}}
html .top3-avatar {background:#174625 !important;color:#FFF9E8 !important;}
html .top3-tile::before {display:none !important;}
html .top3-tile:nth-child(1) {background:#1F5A2E !important;}
html .top3-tile:nth-child(2) {background:#F4C430 !important;}
html .top3-tile:nth-child(3) {background:#E8F3E7 !important;}
html .top3-tile:nth-child(1) :is(.top3-name,.top3-score,.top3-sub) {color:#FFF9E8 !important;}
html .top3-tile:nth-child(2) :is(.top3-name,.top3-score,.top3-sub),html .top3-tile:nth-child(3) :is(.top3-name,.top3-score,.top3-sub) {color:#183E27 !important;}
html .app-download-panel {background:var(--bg2) !important;}
html .app-download-hero {background:var(--bg3) !important;}
html .app-download-kicker {color:var(--ascot-text-link) !important;}
html .app-download-hero p {color:var(--ascot-text-secondary) !important;}
html .btn:not(.btn-secondary):not(.secondary):not(.btn-danger):not(.danger):not(.btn-outline):not(.btn-ghost):not(.btn-success):not(.btn-warning) {background:#F4C430 !important;color:#183E27 !important;border-color:#B18C16 !important;}
html .btn:not(.btn-secondary):not(.secondary):not(.btn-danger):not(.danger):not(.btn-outline):not(.btn-ghost):not(.btn-success):not(.btn-warning):disabled {background:var(--bg3) !important;color:var(--ascot-text-disabled) !important;border-color:var(--ascot-control-border) !important;}
html .btn.danger{background:var(--ascot-surface-error)!important;color:var(--ascot-text-error)!important;border-color:var(--ascot-text-error)!important;}
html .sca-hero h1::after{display:none;}
html :is(input[type="url"],input[type="tel"]) {width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--ascot-control-border);border-radius:10px;background:var(--bg2);color:var(--ascot-text-body);font:inherit;}
html .analytics-table-wrap {max-width:100%;overflow-x:auto;}
html .analytics-table-wrap table {min-width:440px;}
@media(max-width:760px){html .ntf-hero {display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;margin-top:70px;align-items:start;}html .ntf-hero-disc {width:56px;height:56px;border-radius:16px;}html .ntf-hero-disc img {width:38px;height:38px;}html .ntf-hero-copy {min-width:0;}html .ntf-hero > form {grid-column:1/-1;}html .ntf-headbtn {min-height:44px;}}
html:not([data-theme="light"]) body.maintenance-lock.maintenance-lock.maintenance-lock {background:radial-gradient(ellipse at 88% 14%,#234B2D 0,transparent 48%),#102917 !important;}
html .theme-toggle-icon {display:inline-block;width:26px;height:26px;flex:none;font-size:0;line-height:0;background:center/contain no-repeat url("assets/ascot/icons/light-mode@3x.webp");}
html[data-theme="light"] .theme-toggle-icon {background-image:url("assets/ascot/icons/dark-mode@3x.webp");}
html .sidebar {background-color:#174625 !important;}
html :is(.alert,.flash,.toast,.notice) {border-radius:12px;line-height:1.6;}
html :is(.alert-success,.flash-success,.toast-success) {background:var(--ascot-surface-success) !important;color:var(--ascot-text-success) !important;border-color:var(--ascot-control-border);}
html :is(.alert-warning,.flash-warning,.toast-warning) {background:var(--ascot-surface-warning) !important;color:var(--ascot-text-warning) !important;}
html :is(.alert-danger,.alert-error,.flash-error,.toast-error,.error-message,.invalid-feedback) {background:var(--ascot-surface-error) !important;color:var(--ascot-text-error) !important;}
html :is(.alert-info,.flash-info,.toast-info) {background:var(--ascot-surface-success) !important;color:var(--ascot-text-info) !important;}
html :is(.alert-error,.alert-danger,.bak-danger-banner) strong {color:var(--ascot-text-error) !important;}
html .bak-danger-banner {background:var(--ascot-surface-error) !important;color:var(--ascot-text-error) !important;}
html .erams-face-pill.result-matched {background:var(--ascot-surface-success) !important;color:var(--ascot-text-success) !important;}
html .erams-face-pill.result-mismatch {background:var(--ascot-surface-error) !important;color:var(--ascot-text-error) !important;}
html #livePillText {color:var(--ascot-text-success) !important;}
html .maintenance-stat-warn strong {color:var(--ascot-text-warning) !important;}
html .maintenance-admin-metrics .is-hot strong {color:var(--ascot-text-warning) !important;}
html .maintenance-active-chip span {color:var(--ascot-text-link) !important;}
html .maintenance-bulk-bar {background:var(--bg3) !important;color:var(--ascot-text-label) !important;border-color:var(--border2) !important;}
html .maintenance-bulk-bar>span {color:var(--ascot-text-label) !important;}
html :is(i.t-purple,i.t-pink,i.t-green,i.t-orange) {background:var(--ascot-surface-success) !important;color:var(--ascot-text-success) !important;}
html .hof-count.is-orange {background:var(--ascot-surface-warning) !important;color:var(--ascot-text-warning) !important;}
html .erams-verify-icon {background:var(--ascot-surface-error) !important;color:var(--ascot-text-error) !important;}
html #faceUploadForm {background:var(--bg3) !important;color:var(--ascot-text-body);}
html #faceUploadForm>label {color:var(--ascot-text-label) !important;}
html :is(input,textarea,select):focus {border-color:var(--ascot-text-link) !important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent) !important;}
html :is(input[type="checkbox"],input[type="radio"],input[type="range"]) {accent-color:#28783A;}
html input::file-selector-button {background:var(--bg3);color:var(--ascot-text-link);border:1px solid var(--ascot-control-border);border-radius:8px;padding:8px 12px;margin-right:12px;font:inherit;cursor:pointer;}
html :is(.dropdown-menu,.popover,.a11y-panel,.modal-content,.dialog-content) {background:var(--bg2);color:var(--ascot-text-body);border-color:var(--border2);box-shadow:var(--shadow-md);}
html :is(.dropdown-item,.menu-item,.pagination a,.pagination button) {color:var(--ascot-text-link);}
html :is(.dropdown-item,.menu-item):hover {background:var(--glass-hover);color:var(--ascot-text-link-hover);}
html :is(.tooltip,.perf-tip) {background:#183E27;color:#FFF9E8;border-color:#719776;}
html :is(.skeleton,.skeleton-line,.skeleton-card) {background:linear-gradient(100deg,var(--bg3) 25%,var(--glass-hover) 45%,var(--bg3) 65%);background-size:220% 100%;animation:ascot-shimmer 1.7s ease-in-out infinite;}
@keyframes ascot-shimmer {to {background-position:-220% 0;}}

/* Premium generated objects have no CSS filters: retain their ceramic material. */
.ascot-icon {display:inline-block;width:24px;height:24px;object-fit:contain;vertical-align:middle;flex-shrink:0;filter:none !important;}
html .sb-ic {width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;}
html .sb-ic .ascot-icon {width:27px;height:27px;}
html .sb-link {gap:11px;padding:7px 13px;min-height:43px;font-size:12.5px;}
html .sb-group-label {font-size:10px;letter-spacing:.12em;}
html .sb-logout {display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;}
html .sb-logout .ascot-icon {width:23px;height:23px;}
html .rhyze-fab .ascot-icon {width:44px;height:44px;}
html .rhyze-brand-icon .ascot-icon {width:32px;height:32px;}
html .rhyze-brand-copy small {color:#E1EEDF;}
html .rhyze-input::placeholder {color:var(--ascot-text-placeholder);}
html .rhyze-status {color:var(--ascot-text-secondary);}
html .rhyze-chip {font-size:12px;line-height:1.25;}

/* Dashboard: fewer competing weights, readable fact lists, measured whitespace. */
html .dash-hero {min-height:146px;margin-top:24px;padding:28px 30px;}
html .dh-title {font-size:30px;letter-spacing:-.8px;line-height:1.22;}
html .dh-kicker {font-size:10.5px;letter-spacing:.11em;}
html .dash-chip {font-size:11px;line-height:1.4;padding:8px 11px;gap:7px;}
html .dash-chip .ascot-icon {width:22px;height:22px;}
html .dash-chips {position:relative;padding-bottom:26px;}
html .stats-grid {gap:16px;}
html .stats-grid .stat-card {padding:20px;min-height:200px;gap:16px;border:1px solid var(--border);box-shadow:0 7px 26px rgba(19,62,35,.045);}
html .stats-grid .stat-head {gap:12px;}
html .stats-grid .stat-icon {width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:var(--ascot-surface-success);}
html .stats-grid :is(.teal,.amber) .stat-icon {background:var(--ascot-surface-warning);}
html .stats-grid .stat-icon .ascot-icon {width:43px;height:43px;}
html .stats-grid .stat-label {text-transform:none;letter-spacing:0;font-size:12px;font-weight:750;line-height:1.4;color:var(--ascot-text-label) !important;}
html .stats-grid .stat-value {font-size:38px;letter-spacing:-1.2px;}
html .stat-body {gap:15px;align-items:center;}
html .stat-facts {gap:5px;}
html .stat-facts li {font-size:11px;line-height:1.45;color:var(--ascot-text-secondary) !important;white-space:normal;}
html .stat-ringnote {font-size:10px;letter-spacing:.025em;line-height:1.4;padding-top:1px;}
html .ascot-stat-meter {height:4px;margin-top:auto;}
html .stat-open {color:var(--ascot-text-secondary);min-width:26px;}
html .dashboard-calendar {overflow:hidden;}
html .calendar-main,html .calendar-agenda {padding:24px;}
html .calendar-main .card-title {display:flex;align-items:center;gap:9px;font-size:16px;}
html .card-title .ascot-icon {width:30px;height:30px;}
html .calendar-subtitle {font-size:12px;line-height:1.5;}
html .calendar-weekdays span {font-size:10px;letter-spacing:.08em;padding:6px 0;border-radius:6px;background:var(--bg3);color:var(--ascot-text-label);}
html .calendar-grid {gap:6px;}
html .calendar-day {border:1px solid var(--border);background:var(--bg2) !important;border-radius:10px;}
html .calendar-day-number {font-size:12px;font-weight:750;}
html .dashboard-calendar .calendar-day {background:var(--bg2) !important;border:1px solid var(--border) !important;color:var(--ascot-text-heading) !important;}
html .dashboard-calendar .calendar-day.is-selected {background:var(--glass-hover) !important;border-color:var(--accent) !important;}
html .dashboard-calendar .calendar-day.is-today {border-color:var(--ascot-control-border) !important;}
html .dashboard-calendar .calendar-weekdays span {color:var(--ascot-text-label) !important;border:0 !important;}
html .dashboard-calendar .calendar-empty {color:var(--ascot-text-secondary) !important;background:var(--bg3) !important;border:1px dashed var(--border2) !important;}
html .dashboard-calendar :is(.calendar-recent-meta,.calendar-recent-foot,.calendar-agenda-item small,.calendar-subtitle) {color:var(--ascot-text-secondary) !important;}
html .dashboard-calendar :is(.calendar-nav-btn,.calendar-today-btn) {color:var(--ascot-text-link) !important;border-color:var(--ascot-control-border) !important;background:var(--bg2) !important;}
html .calendar-day.is-today {border-color:var(--ascot-control-border);}
html .calendar-day.is-selected {background:var(--glass-hover) !important;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);}
html .calendar-day.is-today .calendar-day-number {background:#F4C430;color:#183E27 !important;}
html .calendar-day.is-selected:not(.is-today) .calendar-day-number {background:#1F5A2E;color:#FFF9E8 !important;}
html .calendar-day[disabled],html .calendar-day.is-outside {color:var(--ascot-text-disabled);opacity:1;}
html .calendar-month-label {font-size:16px;font-weight:750;}
html .calendar-nav-btn,html .calendar-today-btn {border-color:var(--ascot-control-border);min-height:34px;}
html .calendar-empty {display:flex;align-items:center;gap:13px;min-height:88px;padding:18px;background:var(--bg3);color:var(--ascot-text-secondary);font-size:12px;line-height:1.6;border:1px dashed var(--border2);}
html .calendar-empty .ascot-icon {width:48px;height:48px;}
html .calendar-agenda-head {font-size:11px;color:var(--ascot-text-secondary);}
html .calendar-agenda-item {font-size:13px;padding:13px;}
html .calendar-recent-head {font-size:14px;color:var(--ascot-text-heading);}
html .calendar-recent-head .ascot-icon {width:25px;height:25px;margin-right:7px;}
html .calendar-recent-item {padding:12px 14px;background:var(--bg2);border-color:var(--border);}
html .calendar-recent-title {font-size:13px;font-weight:750;line-height:1.45;}
html .calendar-recent-meta,html .calendar-recent-foot {font-size:11px;line-height:1.5;color:var(--ascot-text-secondary) !important;}
html .dh-next {padding:18px;border-radius:14px;}
html .dh-next .nk {font-size:10px;letter-spacing:.09em;color:#FFF5CC;}
html .dh-next .nt {font-size:19px;line-height:1.35;color:#FFF9E8;}
html .dh-next .nm {font-size:12px;line-height:1.55;color:#FFF9E8;}
html .dh-next .nm .ascot-icon {width:21px;height:21px;}
html .dh-next .dh-cell b {font-size:19px;color:#FFF9E8;}
html .dh-next .dh-cell span {font-size:9px;letter-spacing:.07em;color:#FFF9E8;}
html .dh-next .btn {min-height:38px;font-size:12px;}
html .perf-head h3 {font-size:17px;display:flex;align-items:center;gap:9px;}
html .perf-head h3 .ascot-icon {width:29px;height:29px;}
html .perf-title {display:flex;align-items:center;gap:9px;font-size:16px;line-height:1.4;}
html .perf-title .ascot-icon {width:29px;height:29px;}
html :is(.perf-sub,.perf-legend,.acts-list small) {font-size:11px;color:var(--ascot-text-secondary) !important;}
html .dash-row2 .perf-svg {margin-top:20px !important;min-height:210px;max-height:255px;}
html .dash-row2 .acts-list {gap:14px;justify-content:flex-start;max-height:285px;overflow:auto;}
html .dash-row2 .top3-grid {padding-top:12px;padding-bottom:12px;}
html .perf-svg text {fill:var(--ascot-text-secondary);}
html .scorer-head {background:#1F5A2E;color:#FFF9E8;}
html .scorer-head :is(strong,small,span) {color:#FFF9E8;opacity:1;}
html .scorer-x {background:#F4C430;color:#183E27;}
html .scorer-card :is(dt,small) {color:var(--ascot-text-secondary);}
html .site-footer,html .ascot-photo-credit {font-size:11px;color:var(--ascot-text-secondary);}
html[data-contrast="high"] {--ascot-text-heading:#102F1C;--ascot-text-body:#183E27;--ascot-text-secondary:#284632;--ascot-text-label:#183E27;}
html:not([data-theme="light"])[data-contrast="high"] {--ascot-text-heading:#FFFFFF;--ascot-text-body:#F4F9F3;--ascot-text-secondary:#E2F2E4;--ascot-text-label:#F4F9F3;}
@media (max-width:1100px) and (min-width:769px) {html .sb-link {padding:7px 0;justify-content:center;}html .sb-logout .ascot-icon {display:none;}}
@media (max-width:1100px) {html .calendar-agenda {border-left:0;}html .stats-grid .stat-card {padding:18px;}}
@media (max-width:768px) {
  html .scan-face-panel-head--pro{display:flex;flex-direction:column;align-items:stretch;gap:14px;}
  html .scan-face-panel-head-left,html .scan-face-panel-copy{min-width:0;}
  html .scan-face-title-row{flex-wrap:wrap;gap:8px;}
  html .scan-face-title-row strong{font-size:17px;line-height:1.35;white-space:normal;}
  html .scan-face-secure-badge{align-self:flex-start;margin-left:48px;}
  html .sca-hero{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;margin-top:70px;align-items:start;}
  html .sca-hero-disc{width:56px;height:56px;margin-top:4px;}
  html .sca-hero h1{font-size:27px;line-height:1.18;margin-bottom:10px;}
  html .sca-hero p{font-size:13px;line-height:1.6;}
  html .sca-secure{grid-column:2;justify-self:start;margin-top:0;}
  html .dash-hero {padding:22px 18px 34px;min-height:172px;margin-top:70px;}
  html .dh-title {font-size:27px;line-height:1.2;}
  html .dash-hero::after {font-size:30px;bottom:5px;right:14px;opacity:.7;}
  html .dash-chip {font-size:10px;padding:7px 9px;}
  html .dash-chip .ascot-icon {width:19px;height:19px;}
  html .dash-chips {padding-bottom:0;}
  html .stats-grid {gap:12px;}
  html .stats-grid .stat-card {padding:16px;min-height:245px;gap:12px;}
  html .stats-grid .stat-head {gap:8px;}
  html .stats-grid .stat-icon {width:44px;height:44px;flex-basis:44px;}
  html .stats-grid .stat-icon .ascot-icon {width:40px;height:40px;}
  html .stats-grid .stat-label {font-size:12px;flex-basis:100%;line-height:1.35;}
  html .stats-grid .stat-value {font-size:33px;}
  html .stat-body {gap:9px;}
  html .stat-ring {width:100%;height:36px;}
  html .stat-facts li {font-size:10.5px;line-height:1.5;}
  html .stat-ringnote {font-size:9px;}
  html .calendar-main,html .calendar-agenda {padding:16px;}
  html .calendar-grid {gap:4px;grid-auto-rows:minmax(52px,64px);}
  html .calendar-day {padding:5px;}
  html .calendar-day-number {font-size:11px;}
  html .calendar-weekdays span {font-size:9px;letter-spacing:.02em;}
  html .calendar-month-label {font-size:14px;}
  html .calendar-empty {padding:14px;}
  html .sb-link {min-height:43px;padding:7px 13px;}
  html .rhyze-fab .ascot-icon {width:38px;height:38px;}
}
@media (prefers-reduced-motion:reduce) {html :is(.skeleton,.skeleton-line,.skeleton-card) {animation:none;}}
html[data-motion="reduce"] :is(.skeleton,.skeleton-line,.skeleton-card) {animation:none;}

/* Pass 3: clean paper, vivid campus photography, and a footer that fits its rail.
   Keep copy on opaque surfaces; the photograph itself has no global color veil. */
html[data-theme="light"] {--bg:#FFFFFF !important;--shell-page-bg:#FFFFFF;}
/* Initials stay on forest ink even when the dark theme accent becomes pale. */
html .chat-avatar {background:#1F5A2E;color:#FFF9E8;}
html .sidebar .sb-nav {min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;}
html .sidebar :is(.sb-brand,.sb-group,.sb-settings,.sb-user,.sb-foot) {flex-shrink:0;}
html .sb-foot {
  display:grid;grid-template-columns:minmax(0,1fr) 38px 44px;
  gap:8px;align-items:center;padding:12px 0 0;min-width:0;max-width:100%;
}
html .sb-foot .nav-role-badge {min-width:0;max-width:100%;padding:5px 6px;font-size:9px;letter-spacing:.035em;text-align:center;}
html .sb-foot .nav-lang-toggle {display:grid;place-items:center;width:38px;min-height:38px;padding:0;justify-self:center;}
html .sb-foot .theme-toggle {position:relative;display:flex;justify-content:center;justify-self:end;width:44px;height:44px;min-width:44px;padding:0;gap:0;}
html .sb-foot .theme-toggle-text {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
html .sb-foot .sb-logout {grid-column:1/-1;width:100%;margin:0;}
html .app-body .page-header,html .dash-hero {min-height:180px;padding:28px 30px 56px;background:var(--bg2);}
html .app-body .page-header::before,html .dash-hero::before,
html:not([data-theme="light"]) .app-body .page-header::before,html:not([data-theme="light"]) .dash-hero::before {
  background-image:linear-gradient(90deg,var(--bg2) 0%,var(--bg2) 54%,transparent 67%),url('assets/ascot/campus-banner.webp');
  background-size:100% 100%,auto 100%;background-position:left center,right center;background-repeat:no-repeat;
}
html .dash-hero>div:first-child {max-width:54%;}
html .app-body .page-header>:not(.btn):not(.page-actions):not(.page-header-actions) {max-width:54%;}
html .dash-chips {max-width:43%;padding-bottom:0;}
html .app-body .page-header::after,html .dash-hero::after,
html:not([data-theme="light"]) .app-body .page-header::after,html:not([data-theme="light"]) .dash-hero::after {
  bottom:12px;right:18px;padding:6px 12px 6px 43px;border:1px solid #779A80;border-radius:12px;
  background:#174625 url('assets/ascot/ascot-seal.webp') 9px center/28px 28px no-repeat;
  color:#FFF9E8;font-size:32px;opacity:1;transform:rotate(-5deg);line-height:1.1;
}
@media (max-width:1100px) and (min-width:769px) {
  html .sb-foot {display:flex;flex-direction:column;align-items:center;gap:9px;}
  html .sb-foot .nav-role-badge {display:none;}
  html .sb-foot .sb-logout {width:44px;padding:6px 0;}
}
@media (max-width:768px) {
  html .app-body .page-header,html .dash-hero {min-height:280px;padding:22px 18px 148px;gap:14px;}
  html .app-body .page-header::before,html .dash-hero::before,
  html:not([data-theme="light"]) .app-body .page-header::before,html:not([data-theme="light"]) .dash-hero::before {
    inset:auto 0 0;height:128px;background-image:url('assets/ascot/campus-banner.webp');
    background-size:180% auto;background-position:right center;transform:none;
  }
  html .dash-hero>div:first-child,html .app-body .page-header>:not(.btn):not(.page-actions):not(.page-header-actions) {max-width:100%;}
  html .dash-chips {max-width:100%;justify-content:flex-start;}
  html .app-body .page-header::after,html .dash-hero::after {right:12px;bottom:10px;font-size:28px;}
}
@media print {html,html body {background:#FFF !important;color:#183E27 !important;} .ascot-photo-credit {display:none;}}
