/* modules/checkout/freemium.css
   Free plan: /activate/?tier=freemium and the "Activate your free plan" card on /dashboard/.
   Loaded: the dashboard route, and /activate/ in free-plan mode (tz_freemium_css_applies(), core/assets.php).
   Builds on checkout.css (.tz-buy, .tz-activate-*, .tz-buy-success) and dashboard.css / workspace.css (.dashboard-card).
   Only what those files lack lives here. */

/* Locked account email */
.tz-fm-lock { position: relative; }
.tz-fm-lock .tz-input { padding-right: 44px; text-overflow: ellipsis; }
.tz-fm-lock .tz-icon { position: absolute; right: 14px; top: 50%; margin-top: -8px; color: var(--text-muted); pointer-events: none; }
.tz-activate .tz-input[readonly] { background: var(--bg-surface); color: var(--text-secondary); cursor: default; }
.tz-activate .tz-input[readonly]:focus-visible { border-color: var(--border-hover); }
/* checkout.css gives every .tz-activate-row a second column at 640px and below (label | value | aside).
   A stacked row (label, input, help) must stay one column, or the input is squeezed to ~30px. */
.tz-freemium .tz-activate-row--stack { grid-template-columns: minmax(0, 1fr); }
/* account.css pulls every .tz-field-help up by 10px with !important (for its own stacked auth fields).
   Here the help sits directly under an input, so it would overlap the input's bottom edge. */
.tz-freemium .tz-field-help { margin: 6px 0 0 !important; }
/* The inline error sits between the label and the field. */
.tz-freemium .tz-activate-row .callout { margin: 2px 0 4px; }

/* Plan limits (values come from the catalog) */
.tz-fm-facts { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 8px 0 0; padding: 0; list-style: none; font-size: .84rem; color: var(--text-secondary); }
.tz-fm-facts strong { color: var(--text-primary); font-weight: 700; }
.tz-fm-facts--center { justify-content: center; margin: 0 0 14px; }

/* Active / success panel */
.tz-fm-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 560px; margin-left: auto; margin-right: auto; }
.tz-fm-note { margin: 18px 0 0; }
.tz-fm-note a { color: var(--accent); }
.tz-freemium .tz-buy-success .tz-buy-muted { margin: 10px 0 0; }

/* Dashboard card */
.tz-freemium-card { border-color: var(--border-accent); background: linear-gradient(135deg, rgba(249,115,22,.07), var(--bg-card) 60%); }
.tz-freemium-facts { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 14px 0 0; padding: 0; list-style: none; }
.tz-freemium-facts li { font-size: .85rem; color: var(--text-secondary); }
.tz-freemium-facts strong { color: var(--text-primary); font-weight: 700; }
.tz-freemium-card .tz-dashboard-actions { margin-top: 18px; }

@media (max-width: 640px) {
    .tz-fm-summary { grid-template-columns: minmax(0, 1fr); max-width: 320px; }
}
