/* Shared WellO primitives. Page styles remain responsible for layout and
   product-specific composition; these tokens and variants keep the visual
   language consistent while surfaces are migrated incrementally. */
:root {
  --pg-font-family: Tahoma, "Segoe UI", sans-serif;
  --pg-bg: #f1f6f4;
  --pg-auth-bg: #edf4ef;
  --pg-auth-mint: #d8eee2;
  --pg-auth-peach: #f9dfd2;
  --pg-surface: #ffffff;
  --pg-surface-soft: #f5f8f7;
  --pg-ink: #173f36;
  --pg-muted: #6b807a;
  --pg-line: #dce8e3;
  --pg-primary: #215d4f;
  --pg-primary-strong: #173f36;
  --pg-accent: #d8f36a;
  --pg-accent-soft: #eef6c9;
  --pg-success: #167650;
  --pg-warning: #6a581f;
  --pg-danger: #a44141;
  --pg-danger-soft: #fde2e2;
  --pg-radius-control: 11px;
  --pg-radius-card: 18px;
  --pg-radius-hero: 24px;
  --pg-shadow-card: 0 14px 36px rgba(21, 62, 49, .08);
  --pg-shadow-auth: 0 28px 80px rgba(23, 63, 54, .13);
  --pg-focus-ring: 0 0 0 3px rgba(74, 151, 116, .22);
}

body[data-page]:not([data-page="index"]) {
  font-family: var(--pg-font-family);
  color: var(--pg-ink);
}

body[data-page]:not([data-page="index"]) :is(button, input, select, textarea) {
  font-family: inherit;
}

body[data-page]:not([data-page="index"]) :is(button, a, input, select, textarea):focus-visible {
  outline: 3px solid rgba(169, 217, 94, .72);
  outline-offset: 2px;
}

.pg-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: var(--pg-radius-control);
  padding: 10px 15px;
  font: inherit;
  font-weight: 800;
  line-height: 1.3;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, opacity .18s ease, transform .18s ease;
}

.pg-button:hover:not(:disabled) {
  transform: translateY(-1px);
}

.pg-button:disabled {
  cursor: wait;
  opacity: .62;
}

.pg-button-primary {
  border-color: var(--pg-primary);
  color: #fff;
  background: var(--pg-primary);
}

.pg-button-secondary {
  border-color: #87aaa0;
  color: var(--pg-primary);
  background: transparent;
}

.pg-button-danger {
  border-color: #d7a09b;
  color: var(--pg-danger);
  background: var(--pg-danger-soft);
}

.pg-card {
  border: 1px solid var(--pg-line);
  border-radius: var(--pg-radius-card);
  background: var(--pg-surface);
  box-shadow: var(--pg-shadow-card);
}

.pg-status {
  min-height: 20px;
  color: var(--pg-muted);
}

.pg-status-success { color: var(--pg-success); }
.pg-status-warning { color: var(--pg-warning); }
.pg-status-error { color: var(--pg-danger); }

.pg-ltr {
  direction: ltr;
  text-align: left;
}

.brand-mark.brand-logo {
  display: block;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  object-fit: cover;
  background: transparent;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
