/**
 * TW-OPS-WORLD-CONSTITUTION-001 — application-admin world grammar enforcement.
 * Loaded after ops_stabilization.css via theme_ops_contract.html.
 */

/* ── Zone: command surfaces (elevated) ── */
[data-tw-object="utility-selector"][data-tw-variant="theme-preset"] {
  box-shadow: var(--tw-ops-shadow);
}

body.tw-admin-ops-surface h1,
body.tw-admin-ops-cluster h1 {
  font-weight: var(--tw-ops-heading-weight, 700);
}

/* ── Zone: operational tiles (structured, primary) ── */
a[data-tw-object="ops-card"][data-tw-variant="service-tile"] {
  z-index: 1;
}

/* ── Zone: diagnostics (quiet institutional — secondary infrastructure) ── */
a[data-tw-object="diagnostic-card"][data-tw-variant="dashboard-tile"] {
  transition:
    border-color var(--tw-ops-transition),
    background var(--tw-ops-transition),
    opacity var(--tw-ops-transition);
}

a[data-tw-object="diagnostic-card"][data-tw-variant="dashboard-tile"]:hover {
  transform: none;
  box-shadow: var(--tw-ops-diagnostic-shadow, none);
  background: var(--tw-ops-diagnostic-bg);
  filter: none;
}

a[data-tw-object="diagnostic-card"][data-tw-variant="dashboard-tile"] .tile-icon {
  font-size: 34px;
  margin-bottom: 10px;
  opacity: 0.85;
}

/* Diagnostics must not compete with service tiles on hover lift */
body.tw-admin-ops-surface .admin-grid a[data-tw-object="ops-card"][data-tw-variant="service-tile"]:hover,
body.tw-admin-ops-cluster .admin-grid a[data-tw-object="ops-card"][data-tw-variant="service-tile"]:hover {
  z-index: 2;
}

/* ── Zone: secondary utilities (low-attention static tiles) ── */
div[data-tw-object="ops-card"][data-tw-variant="service-tile"].is-static {
  opacity: 0.9;
  box-shadow: none;
}

div[data-tw-object="ops-card"][data-tw-variant="service-tile"].is-static:hover {
  transform: none;
}

/* ── Zone: alerts (restrained) ── */
[data-tw-object="alert-banner"][data-tw-variant="info"] {
  font-weight: 500;
  letter-spacing: 0.01em;
}

/* ── Zone: controls (institutional) ── */
[data-tw-object="utility-selector"][data-tw-variant="theme-preset"] .theme-radio {
  font-weight: 500;
}

[data-tw-object="primary-action"][data-tw-variant="button"],
[data-tw-object="secondary-action"][data-tw-variant="button"] {
  letter-spacing: 0.02em;
}

/* ── Detail convergence: secondary weight vs primary cluster ── */
body.tw-admin-ops-detail h1 {
  font-weight: 600;
  letter-spacing: 0.015em;
}

body.tw-admin-ops-detail [data-tw-object="diagnostic-card"][data-tw-variant="infra-readout"],
body.tw-admin-ops-detail [data-tw-object="diagnostic-card"][data-tw-variant="verification"],
body.tw-admin-ops-detail [data-tw-object="surface-zone"][data-tw-variant="form-surface"],
body.tw-admin-ops-detail [data-tw-object="surface-zone"][data-tw-variant="registry-surface"] {
  opacity: 1;
}

body.tw-admin-ops-cluster:not(.tw-admin-ops-detail) h1 {
  font-weight: var(--tw-ops-heading-weight, 700);
}

/* TW-RUNTIME-WAVE-C-001 — operational status utilities (no inline hex) */
.tw-ops-msg-ok {
  color: var(--ok);
}

.tw-ops-msg-fail {
  color: var(--err);
}

.tw-ops-btn-danger {
  background: var(--tw-ops-provision-failed-bg);
  color: var(--tw-ops-provision-failed-text);
}
