/* Semantic dark appearance for UI chrome, not customer documents or print.
   Keep foreground/background pairs together; never borrow a light badge fill.
   Loaded after component styles so the same token has the same meaning everywhere. */
@media screen {
  html[data-theme="dark"] {
    --control-surface: #2c2c2e;
    --control-hover: #3a3a3c;
    --control-border: #545458;
    --surface-raised: #242426;
    --label-neutral-bg: #303034;
    --label-neutral-fg: #d1d1d6;
    --label-blue-bg: #24364a;
    --label-blue-fg: #91caff;
    --label-green-bg: #203b2d;
    --label-green-fg: #81e1aa;
    --label-amber-bg: #403522;
    --label-amber-fg: #ffd17a;
    --label-orange-bg: #402e22;
    --label-orange-fg: #ffb880;
    --label-red-bg: #40282d;
    --label-red-fg: #ffa1ab;
    --label-purple-bg: #352c48;
    --label-purple-fg: #d0bbff;
    --focus-ring: #91caff;
  }

  /* Explicit UI boundaries leave light invoice documents untouched. */
  html[data-theme="dark"] :is(.shell,.portal-experience,.vendor-portal-page,#modal) :is(.button.light,.back,.close):not(.invoice-paper *) {
    background:var(--control-surface);color:var(--ink);border-color:var(--control-border);box-shadow:none;
  }
  html[data-theme="dark"] :is(.shell,.portal-experience,.vendor-portal-page,#modal) :is(.button.light,.back,.close):hover:not(:disabled):not(.invoice-paper *) {
    background:var(--control-hover);color:var(--ink);
  }
  html[data-theme="dark"] :is(.shell,.portal-experience,.vendor-portal-page,#modal) .button.primary:not(.invoice-paper *) {
    background:linear-gradient(120deg,#0868d7,#5c51d6);color:#fff;
  }
  html[data-theme="dark"] :is(.shell,.portal-experience,.vendor-portal-page,#modal) :is(button,a,summary,select):focus-visible:not(.invoice-paper *) {
    outline:2px solid var(--focus-ring);outline-offset:3px;
  }
  html[data-theme="dark"] :is(.contractor-avatar,.profile-avatar,.avatar,.order-import-icon,.doc-icon,.connection-steps span):not(.invoice-paper *, .customer-invoice-portal *) {
    background:var(--label-blue-bg);color:var(--label-blue-fg);box-shadow:none;
  }
  html[data-theme="dark"] :is(.sow-status,.hour-rule,.vendor-status,.vendor-inline-status,.role-pill,.forecast-badge,.leader-badge) {
    --semantic-bg:var(--label-neutral-bg);--semantic-fg:var(--label-neutral-fg);
    background:var(--semantic-bg);color:var(--semantic-fg);border-color:var(--control-border);
  }
  html[data-theme="dark"] .sow-status { --sow-color:var(--semantic-fg); }
  html[data-theme="dark"] :is(.sow-status.healthy,.sow-status.days_30,.vendor-status.paid,.vendor-status.approved,.vendor-inline-status.paid) {
    --semantic-bg:var(--label-green-bg);--semantic-fg:var(--label-green-fg);
  }
  html[data-theme="dark"] :is(.sow-status.days_15,.hour-rule.monthly_recurring,.vendor-status.needs_review,.vendor-status.need_clarification,.vendor-status.partially_paid,.vendor-inline-status.need_clarification,.leader-badge) {
    --semantic-bg:var(--label-amber-bg);--semantic-fg:var(--label-amber-fg);
  }
  html[data-theme="dark"] .sow-status.days_5 { --semantic-bg:var(--label-orange-bg);--semantic-fg:var(--label-orange-fg); }
  html[data-theme="dark"] :is(.sow-status.expired,.vendor-status.not_paid,.vendor-inline-status.not_paid) {
    --semantic-bg:var(--label-red-bg);--semantic-fg:var(--label-red-fg);
  }
  html[data-theme="dark"] :is(.hour-rule.onboarding,.vendor-status.ready,.vendor-status.pending,.vendor-inline-status.pending,.role-pill.finance,.forecast-badge) {
    --semantic-bg:var(--label-blue-bg);--semantic-fg:var(--label-blue-fg);
  }
  html[data-theme="dark"] .role-pill.admin { --semantic-bg:var(--label-purple-bg);--semantic-fg:var(--label-purple-fg); }
  html[data-theme="dark"] .source-pill { background:var(--label-purple-bg);color:var(--label-purple-fg); }

  /* Nested assignments sit above the card surface, not in black cutouts. */
  html[data-theme="dark"] .vendor-operations-workspace .contractor-assignment-list .contractor-assignment,
  html[data-theme="dark"] .vendor-operations-workspace .contractor-rate-list span {
    background:var(--surface-raised);border-color:var(--line);
  }
  html[data-theme="dark"] :is(.contractor-assignment .work-project-link,.contractor-more-assignments>summary) { color:var(--label-blue-fg); }
  html[data-theme="dark"] .vendor-operations-workspace .contractor-summary .cell-sub { color:var(--muted); }

  @media(prefers-contrast:more) {
    html[data-theme="dark"] { --control-border:#98989d;--line:#98989d;--muted:#d1d1d6; }
  }
}

/* Web-native symbols share one stroke and cap-height with their text labels. */
.vendor-directory-actions :is(.button,.view-toggle button){display:inline-flex;align-items:center;justify-content:center;gap:8px}
.vendor-directory-actions svg{width:1.15em;height:1.15em;flex:0 0 1.15em;vertical-align:middle}
.vendor-operations-workspace .contractor-grid :is(strong,.work-project-link),.vendor-directory-actions button{font-weight:600}
.vendor-operations-workspace .contractor-grid .sow-status{font-weight:600}
