/**
 * Deductifi shared UI tokens + base components.
 * Member accents use logo-aligned green (not marketing purple).
 */
:root {
  --df-primary: #5ca001;
  --df-primary-hover: #4a8001;
  --df-primary-soft: #f0f6ec;
  --df-primary-soft-border: #cce0cc;
  --df-heading: #0f131f;
  --df-body: #35415b;
  --df-muted: #727f9f;
  --df-surface: #f2f4f7;
  --df-surface-elevated: #ffffff;
  --df-border: #e3e7f0;
  --df-footer: #0f131f;
  --df-danger: #b91c1c;
  --df-danger-bg: #fef2f2;
  --df-danger-border: #fecaca;
  --df-warning: #b45309;
  --df-warning-bg: #fff7ed;
  --df-warning-border: #fed7aa;
  --df-success: #047857;
  --df-success-bg: #ecfdf5;
  --df-success-border: #a7f3d0;
  --df-radius: 8px;
  --df-radius-lg: 12px;
  --df-shadow: 0 4px 18px rgba(15, 23, 42, 0.08);
  --df-font: inherit;
  --df-content-max: 1120px;
}

/* Shared callout (retired forms, notices) */
.deductifi-callout {
  max-width: 780px;
  margin: 0 auto 16px;
  padding: 12px 14px;
  border: 1px solid var(--df-border);
  border-radius: var(--df-radius);
  background: var(--df-surface);
  color: var(--df-body);
}

.deductifi-callout strong {
  display: block;
  margin-bottom: 4px;
  color: var(--df-heading);
}

/* Shared primary / secondary buttons used by member UIs */
.df-btn,
.deductifi-ui .btn-primary,
.dash-card a,
.assets-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--df-radius);
  border: 1px solid var(--df-primary);
  background: var(--df-primary);
  color: #fff !important;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(92, 160, 1, 0.22);
  transition: background-color 120ms ease, border-color 120ms ease, transform 120ms ease;
}

.df-btn:hover,
.deductifi-ui .btn-primary:hover,
.dash-card a:hover,
.assets-card a:hover {
  background: var(--df-primary-hover) !important;
  border-color: var(--df-primary-hover);
  color: #fff !important;
}

.df-btn--ghost,
.deductifi-ghost-btn {
  background: transparent;
  border: 1px solid var(--df-primary-soft-border);
  color: var(--df-primary) !important;
  box-shadow: none;
  font-weight: 600;
  border-radius: var(--df-radius);
  padding: 6px 12px;
  cursor: pointer;
}

.df-btn--ghost:hover,
.deductifi-ghost-btn:hover {
  background: var(--df-primary-soft);
  color: var(--df-heading) !important;
}

/* Shared cards / panels */
.df-card,
.dash-card,
.assets-card,
.wu-card,
.deductifi-todos__item {
  border: 1px solid var(--df-border);
  border-radius: var(--df-radius-lg);
  background: var(--df-surface-elevated);
  box-shadow: var(--df-shadow);
}

/* Status pills — semantic colors only */
.df-pill,
.deductifi-status-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid var(--df-border);
  background: var(--df-surface);
  color: var(--df-body);
}

.deductifi-status-pill {
  background: var(--df-primary-soft);
  color: var(--df-primary-hover);
  border-color: var(--df-primary-soft-border);
}

/* Form controls baseline for member shortcodes */
.df-input,
.deductifi-ui input[type="text"],
.deductifi-ui input[type="number"],
.deductifi-ui input[type="date"],
.deductifi-ui input[type="email"],
.deductifi-ui select,
.deductifi-ui textarea {
  border: 1px solid var(--df-border);
  border-radius: var(--df-radius);
  background: #fff;
  color: var(--df-heading);
  padding: 8px 10px;
}

.df-input:focus,
.deductifi-ui input:focus,
.deductifi-ui select:focus,
.deductifi-ui textarea:focus {
  outline: 2px solid rgba(92, 160, 1, 0.28);
  outline-offset: 1px;
  border-color: var(--df-primary);
}

/* Report table chrome */
.deductifi-summary thead tr,
.deductifi-group thead tr,
.deductifi-depr-report table thead tr {
  background: var(--df-heading) !important;
  color: #fff !important;
}

.deductifi-summary th,
.deductifi-summary td,
.deductifi-group th,
.deductifi-group td {
  border-color: var(--df-border);
}

/* Formidable + MemberPress form chrome (plugin defaults → brand) */
.frm_forms .frm_primary_label,
.frm_forms .frm_description,
.mepr-form label,
.mepr-checkout-form label {
  color: var(--df-heading);
}

.frm_forms input[type="text"],
.frm_forms input[type="email"],
.frm_forms input[type="tel"],
.frm_forms input[type="url"],
.frm_forms input[type="number"],
.frm_forms input[type="password"],
.frm_forms input[type="date"],
.frm_forms select,
.frm_forms textarea,
.mepr-form input[type="text"],
.mepr-form input[type="email"],
.mepr-form input[type="tel"],
.mepr-form input[type="password"],
.mepr-form select,
.mepr-form textarea {
  border: 1px solid var(--df-border) !important;
  border-radius: var(--df-radius) !important;
  color: var(--df-heading);
  background: #fff;
}

.frm_forms input:focus,
.frm_forms select:focus,
.frm_forms textarea:focus,
.mepr-form input:focus,
.mepr-form select:focus,
.mepr-form textarea:focus {
  border-color: var(--df-primary) !important;
  box-shadow: 0 0 0 3px rgba(92, 160, 1, 0.18) !important;
  outline: none;
}

.frm_forms .frm_button_submit,
.frm_forms .frm_submit input[type="submit"],
.mepr-form .mepr-submit,
.mepr-form input[type="submit"],
.mepr-form button[type="submit"] {
  background: var(--df-primary) !important;
  border: 1px solid var(--df-primary) !important;
  color: #fff !important;
  border-radius: var(--df-radius) !important;
  font-weight: 600 !important;
  box-shadow: 0 6px 18px rgba(92, 160, 1, 0.22);
}

.frm_forms .frm_button_submit:hover,
.frm_forms .frm_submit input[type="submit"]:hover,
.mepr-form .mepr-submit:hover,
.mepr-form input[type="submit"]:hover {
  background: var(--df-primary-hover) !important;
  border-color: var(--df-primary-hover) !important;
}

.frm_error,
.frm_error_style,
.mepr-form .mepr-form-has-errors,
.mepr-form .cc-error {
  color: var(--df-danger) !important;
}
