/* M3E-VNEXT-20261016. Shared semantic colors, loaded after page presentation. */
html[data-design-system="expressive"][data-m3e-theme] {
  --m3e-primary:#006B5F; --m3e-container:#C4EFE2; --m3e-on-container:#073B31;
  --m3e-accent:#FFD8BE; --m3e-on-accent:#4F290F;
  --m3e-bg:#F4FAF7; --m3e-surface:#FFFFFF; --m3e-low:#E8F2ED; --m3e-high:#D9E8E0;
  --m3e-ink:#142D25; --m3e-muted:#4E655B; --m3e-outline:#AFCCC0;
  --m3e-control-outline:var(--m3e-muted);
  --md-primary:var(--m3e-primary); --md-on-primary:#fff;
  --md-primary-container:var(--m3e-container); --md-on-primary-container:var(--m3e-on-container);
  --md-accent:var(--m3e-accent); --md-on-accent:var(--m3e-on-accent);
  --md-surface:var(--m3e-bg); --md-surface-container:var(--m3e-low); --md-surface-high:var(--m3e-high);
  --md-on-surface:var(--m3e-ink); --md-muted:var(--m3e-muted); --md-outline:var(--m3e-outline);
  --work-red:#B3261E; --work-below-bg:#FFE9E6; --work-below-ink:#8C1D18;
  --md-error:#a52b25; --md-error-container:#ffdad6; --md-success:#276048; --md-success-container:#d8f0df;
  --ticket-navy:var(--m3e-on-container); --ticket-navy-deep:var(--m3e-low);
  --ticket-blue:var(--m3e-primary); --ticket-blue-strong:var(--m3e-on-container); --ticket-blue-soft:var(--m3e-container);
  --ticket-canvas:var(--m3e-bg); --ticket-ink:var(--m3e-ink); --ticket-muted:var(--m3e-muted);
  --ticket-line:var(--m3e-outline); --ticket-focus:var(--m3e-primary);
  --focus-ring:0 0 0 3px color-mix(in srgb,var(--m3e-primary) 24%,transparent);
  --m3e-ease:cubic-bezier(.2,0,0,1);
}
html[data-design-system="expressive"][data-m3e-theme="indigo-mist"] {
  --m3e-primary:#4056A8; --m3e-container:#DFE4FF; --m3e-on-container:#102768;
  --m3e-accent:#F0E2BC; --m3e-on-accent:#4D3E15;
  --m3e-bg:#F8F9FF; --m3e-low:#EEF0FA; --m3e-high:#E0E4F3;
  --m3e-ink:#1C263E; --m3e-muted:#566176; --m3e-outline:#BCC6DD;
}
html[data-design-system="expressive"][data-m3e-theme="berry-pink"] {
  --m3e-primary:#85508B; --m3e-container:#F5D9F4; --m3e-on-container:#421D49;
  --m3e-accent:#FFDCE5; --m3e-on-accent:#602B3C;
  --m3e-bg:#FFF7FC; --m3e-low:#F6EAF3; --m3e-high:#EEDCEB;
  --m3e-ink:#352336; --m3e-muted:#705972; --m3e-outline:#D3BDD0;
}
html[data-design-system="expressive"][data-m3e-theme="terracotta-sand"] {
  --m3e-primary:#9C432A; --m3e-container:#FFDDCE; --m3e-on-container:#582713;
  --m3e-accent:#E1EBCB; --m3e-on-accent:#384B24;
  --m3e-bg:#FFF8F4; --m3e-low:#F7EBE3; --m3e-high:#EFDDD0;
  --m3e-ink:#36271F; --m3e-muted:#735C4D; --m3e-outline:#D1BDAE;
}
html[data-m3e-theme] .tn-theme-control[hidden] { display:none!important; }

/* Modal surfaces own scrolling until the final nested layer closes. */
html[data-m3e-modal-open="true"],
html[data-m3e-modal-open="true"] body { overflow:hidden!important; }

html[data-m3e-theme] #moduleViewWorkbench .compare.up {
  color:var(--md-success); background:var(--md-success-container);
}
html[data-m3e-theme] #moduleViewWorkbench .compare.down {
  color:var(--md-error); background:var(--md-error-container);
}

/* Controls need a stronger boundary than decorative dividers in every theme. */
html[data-design-system="expressive"][data-m3e-theme] body :is(
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  textarea, select, .site-date-trigger, .site-choice-search, .search-control, .date-control
):not(:disabled):not([aria-disabled="true"]) {
  border-color:var(--m3e-control-outline)!important;
}

/* The shared picker is used by the host and embedded business pages. */
html[data-m3e-theme] body .site-date-field>.site-date-trigger { background:var(--m3e-surface)!important; color:var(--md-on-surface); border-color:var(--m3e-control-outline)!important; }
html[data-m3e-theme] body .site-date-panel { background:var(--m3e-surface); color:var(--md-on-surface); border-color:var(--md-outline); box-shadow:0 16px 48px color-mix(in srgb,var(--md-on-surface) 16%,transparent); }
html[data-m3e-theme] body .site-date-overlay { background:color-mix(in srgb,var(--md-on-surface) 36%,transparent); }
html[data-m3e-theme] body .site-date-panel .site-choice-search { color:var(--md-on-surface); background:var(--md-surface-container); border-color:var(--md-outline); }
html[data-m3e-theme] body .site-date-panel button[aria-pressed="true"] { background:var(--md-primary); color:var(--md-on-primary); }
html[data-m3e-theme] body .site-date-panel :is(button,input):focus-visible { outline:3px solid var(--md-primary); outline-offset:2px; }
html[data-m3e-theme][data-site-keyboard="true"] body .site-date-field>.site-date-trigger:focus { outline:3px solid var(--md-primary)!important; outline-offset:3px; }

/* Google Material Symbols, locally hosted subset. Apache 2.0. */
@font-face { font-family:'Material Symbols Rounded'; font-style:normal; font-weight:500; font-display:block; src:url('./fonts/material-symbols-rounded-operations.ttf') format('truetype'); }
.m3e-symbol { font-family:'Material Symbols Rounded'!important; font-weight:500!important; font-style:normal!important; font-size:24px; line-height:1; letter-spacing:normal; text-transform:none; display:inline-block; flex-shrink:0; white-space:nowrap; word-wrap:normal; direction:ltr; vertical-align:middle; font-feature-settings:'liga'; -webkit-font-smoothing:antialiased; }
.ph.m3e-symbol::before { content:none!important; }

/* Performance attention is semantic, independent of the selected palette. */
html[data-m3e-theme] .hour-card.is-below-average { color:var(--work-below-ink)!important; background:var(--work-below-bg)!important; border-color:var(--work-red)!important; }
html[data-m3e-theme] .hour-card.is-below-average :is(header strong,dd) { color:var(--work-below-ink)!important; }
html[data-m3e-theme] #workHourDetailSheet .hour-sheet-peers td.hour-peer-attention strong { color:var(--work-red); }
html[data-m3e-theme] .work-hour-detail-sheet [data-attention="true"] .hour-sheet-reason { color:var(--work-below-ink); background:var(--work-below-bg); border-color:var(--work-red); }
html[data-m3e-theme] .work-hour-detail-sheet [data-attention="true"] .hour-sheet-reason :is(h3,p) { color:inherit; }
html[data-m3e-theme] #workHourAnalysisDialog .work-hour-attention-row :is(th,td) { color:var(--work-below-ink); background:var(--work-below-bg); }
