    /* MLX initial-login + TOTP bootstrap page — page-scoped utilities. */

    /* ── Admin-only repair UI warning banner (T-3 jargon localize) ── */
    .admin-warning {
      background: var(--alert-warning-bg, rgba(212, 131, 10, 0.08));
      border: 1px solid var(--alert-warning, rgba(212, 131, 10, 0.4));
      border-left: 3px solid var(--alert-warning, #d4830a);
      border-radius: var(--radius-md);
      padding: var(--space-md) var(--space-lg);
      margin-bottom: var(--space-lg);
      font-size: 0.875rem;
      line-height: 1.5;
      color: var(--text-primary);
    }
    .admin-warning strong { color: var(--alert-warning, #d4830a); }

    .help {
      background: var(--bg-secondary); border: 1px solid var(--border-default);
      border-radius: var(--radius-md); padding: var(--space-md) var(--space-lg);
      margin-bottom: var(--space-lg); font-size: 0.8125rem;
      color: var(--text-secondary); line-height: 1.6;
    }

    .sync-panel,
    .csv-panel {
      margin-bottom: var(--space-lg);
    }

    .sync-panel-header {
      display: flex; align-items: flex-start; justify-content: space-between;
      gap: var(--space-md); margin-bottom: var(--space-sm); flex-wrap: wrap;
    }

    .section-title {
      margin: 0 0 4px; font-size: 1rem; font-weight: 700;
      color: var(--text-primary);
    }

    .section-description {
      margin: 0; color: var(--text-secondary); font-size: 0.8125rem;
      line-height: 1.6;
    }

    .sync-panel-header button,
    .provision-mlx-btn {
      border: 1px solid var(--border-default); border-radius: var(--radius-sm);
      padding: 6px 12px; font-family: var(--font-body); font-size: 0.8125rem;
      background: var(--bg-subtle); color: var(--text-primary); cursor: pointer;
      white-space: nowrap; transition: background 150ms ease, opacity 150ms ease;
    }

    .sync-panel-header button:hover:not(:disabled),
    .provision-mlx-btn:hover:not(:disabled) {
      background: var(--bg-tertiary);
    }

    .sync-panel-header button:disabled,
    .provision-mlx-btn:disabled {
      opacity: 0.45; cursor: not-allowed;
    }

    .provision-mlx-btn {
      background: var(--accent); border-color: var(--accent);
      color: #fff;
    }

    .provision-mlx-btn:hover:not(:disabled) {
      background: var(--accent-hover);
    }

    .inline-status {
      min-height: 1.25rem; margin: 0 0 var(--space-sm);
      color: var(--text-secondary); font-size: 0.8125rem;
    }

    .inline-status.success { color: var(--status-active); }
    .inline-status.warning { color: var(--alert-warning); }
    .inline-status.error { color: var(--status-error); }

    .upload-form {
      display: flex; gap: var(--space-md); align-items: center;
      margin-bottom: var(--space-lg); flex-wrap: wrap;
    }
    .upload-form input[type="file"] {
      font-family: var(--font-body); font-size: 0.8125rem;
      padding: 6px 8px; border: 1px solid var(--border-default);
      border-radius: var(--radius-sm); background: var(--bg-subtle);
    }
    .upload-form button {
      border: 1px solid var(--border-default); border-radius: var(--radius-sm);
      padding: 6px 14px; font-family: var(--font-body); font-size: 0.8125rem;
      background: var(--bg-subtle); color: var(--text-primary); cursor: pointer;
      transition: background 150ms ease;
    }
    .upload-form button:hover { background: var(--bg-tertiary); }

    .action-row {
      display: flex; gap: var(--space-md); align-items: center;
      margin-top: var(--space-lg); margin-bottom: var(--space-md);
    }
    .action-row button {
      background: var(--accent); color: #fff; border: none;
      border-radius: var(--radius-sm); padding: 8px 18px;
      font-family: var(--font-body); font-size: 0.875rem; cursor: pointer;
      transition: opacity 150ms;
    }
    .action-row button:hover:not(:disabled) { background: var(--accent-hover); }
    .action-row button:disabled { opacity: 0.4; cursor: not-allowed; }
    .action-row #dispatch-status {
      font-size: 0.8125rem; color: var(--text-secondary);
    }

    #poll-indicator {
      font-size: 0.75rem; color: var(--text-tertiary);
      margin-top: var(--space-md);
    }

    /* utility — used by .hidden on rows that should not render until populated */
    .hidden { display: none !important; }
