/* Public pages share the app palette without importing its layout rules. */
.tp-public {
  --public-error: #b91c1c;
}

.tp-public[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0b1321;
  --surface: #111c2e;
  --text: #e5e7eb;
  --muted: #a8b3c5;
  --border: #334155;
  --brand-dark: #4ade80;
  --brand-soft: rgba(34,197,94,.12);
  --public-secondary: #18253a;
  --public-control-border: #8191a9;
  --public-error: #fca5a5;
  --card: #111c2e;
  --link: #93c5fd;
  --shadow: 0 10px 30px rgba(0,0,0,.3);
  background: var(--bg);
  color: var(--text);
}

.tp-public[data-theme="dark"] body {
  background: var(--bg);
  color: var(--text);
}

.tp-public[data-theme="dark"] .brand img[src$="logo.svg"] {
  filter: invert(1);
}

.tp-public[data-theme="dark"] .btn,
.tp-public-auth[data-theme="dark"] .pw-toggle {
  background: var(--surface);
  border-color: var(--public-control-border);
  color: var(--text);
}

.tp-public[data-theme="dark"] .btn:hover,
.tp-public-auth[data-theme="dark"] .pw-toggle:hover {
  background: var(--public-secondary);
  border-color: #4ade80;
}

.tp-public[data-theme="dark"] .btn.primary {
  background: #22c55e;
  border-color: transparent;
  color: #0b1220;
}

.tp-public[data-theme="dark"] .btn.primary:hover {
  background: #4ade80;
}

/* Authentication forms, including password rules and verification states. */
.tp-public-auth[data-theme="dark"] input {
  background: var(--surface);
  border-color: var(--public-control-border);
  color: var(--text);
  caret-color: var(--text);
}

.tp-public-auth[data-theme="dark"] input::placeholder {
  color: var(--muted);
  opacity: 1;
}

.tp-public-auth[data-theme="dark"] input:focus {
  border-color: #4ade80;
}

.tp-public-auth[data-theme="dark"] input:-webkit-autofill {
  -webkit-text-fill-color: var(--text);
  box-shadow: 0 0 0 1000px var(--surface) inset;
}

.tp-public-auth[data-theme="dark"] input:-webkit-autofill:focus {
  box-shadow: 0 0 0 1000px var(--surface) inset, 0 0 0 4px rgba(34,197,94,.14);
}

.tp-public-auth[data-theme="dark"] .btn.primary,
.tp-public-auth[data-theme="dark"] .btn.primary:disabled:hover {
  background: var(--public-secondary);
  border-color: var(--public-control-border);
  color: var(--text);
}

.tp-public-auth[data-theme="dark"] .btn.primary:not(:disabled):hover {
  background: #24344a;
  border-color: #4ade80;
}

.tp-public-auth[data-theme="dark"] label,
.tp-public-auth[data-theme="dark"] .helper a,
.tp-public-auth[data-theme="dark"] .step-title,
.tp-public-auth[data-theme="dark"] .mini-link,
.tp-public-auth[data-theme="dark"] .forgot-link {
  color: var(--text);
}

.tp-public-auth[data-theme="dark"] .legal,
.tp-public-auth[data-theme="dark"] .legal a,
.tp-public-auth[data-theme="dark"] .pw-inline-label {
  color: var(--muted);
}

.tp-public-auth[data-theme="dark"] .divider::before,
.tp-public-auth[data-theme="dark"] .divider::after,
.tp-public-auth[data-theme="dark"] .pw-bar {
  background: var(--border);
}

.tp-public-auth[data-theme="dark"] .hero-panel {
  border-color: var(--border);
  background: radial-gradient(ellipse at 30% 30%, #18253a, #111c2e);
}

.tp-public-auth[data-theme="dark"] .pill {
  color: #86efac;
  border-color: var(--border);
}

.tp-public-auth[data-theme="dark"] .pw-rules {
  --pw-bg: #18253a;
  --pw-border: #8191a9;
}

.tp-public-auth[data-theme="dark"] .pw-dot { border-color: var(--public-control-border); }
.tp-public-auth[data-theme="dark"] .pw-item.ok .pw-dot { border-color: #4ade80; }
.tp-public-auth[data-theme="dark"] .pw-inline-label.l1 { color: #fca5a5; }
.tp-public-auth[data-theme="dark"] .pw-inline-label.l2 { color: #fde68a; }
.tp-public-auth[data-theme="dark"] .pw-inline-label.l3 { color: #86efac; }
.tp-public-auth[data-theme="dark"] .pw-strength-1 .pw-bars .pw-bar:nth-child(1) { background: #f87171; }
.tp-public-auth[data-theme="dark"] .pw-strength-2 .pw-bars .pw-bar:nth-child(-n+2) { background: #facc15; }
.tp-public-auth[data-theme="dark"] .pw-strength-3 .pw-bars .pw-bar { background: #4ade80; }

/* Landing content keeps its existing geometry and intentionally dark showcase. */
.tp-public-landing[data-theme="dark"] .nav-wrap,
.tp-public-landing[data-theme="dark"] .mobile-panel {
  background: rgba(11,19,33,.94);
}

.tp-public-landing[data-theme="dark"] .hamburger,
.tp-public-landing[data-theme="dark"] .guided-step,
.tp-public-landing[data-theme="dark"] .mode-step,
.tp-public-landing[data-theme="dark"] .mode-step-icon,
.tp-public-landing[data-theme="dark"] .mode-review-loop,
.tp-public-landing[data-theme="dark"] .habit-card,
.tp-public-landing[data-theme="dark"] .habit-card-icon,
.tp-public-landing[data-theme="dark"] .landing-plan.is-free,
.tp-public-landing[data-theme="dark"] .card,
.tp-public-landing[data-theme="dark"] .icon,
.tp-public-landing[data-theme="dark"] .intro-tile,
.tp-public-landing[data-theme="dark"] .intro-ico,
.tp-public-landing[data-theme="dark"] .pack {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

.tp-public-landing[data-theme="dark"] .hamburger { border-color: var(--public-control-border); }
.tp-public-landing[data-theme="dark"] .btn.ghost { background: transparent; border-color: transparent; }
.tp-public-landing[data-theme="dark"] .btn.ghost:hover { background: var(--brand-soft); }
.tp-public-landing[data-theme="dark"] .btn.offer-cta { background: #22c55e; color: #0b1220; }
.tp-public-landing[data-theme="dark"] .btn.offer-cta:hover { background: #4ade80; }
.tp-public-landing[data-theme="dark"] .cta .btn.primary { color: #0b1220; }
.tp-public-landing[data-theme="dark"] .mode-step-icon,
.tp-public-landing[data-theme="dark"] .habit-card-icon,
.tp-public-landing[data-theme="dark"] .mode-review-loop { color: var(--brand-dark); }
.tp-public-landing[data-theme="dark"] .badge,
.tp-public-landing[data-theme="dark"] .price .tag { color: #86efac; }

.tp-public-landing[data-theme="dark"] .landing-demo,
.tp-public-landing[data-theme="dark"] .landing-practice-iframe {
  background: var(--bg);
  border-color: var(--border);
}

.tp-public-landing[data-theme="dark"] #how {
  background: var(--bg);
  border-color: var(--border);
}

.tp-public-landing[data-theme="dark"] .mode-step.active,
.tp-public-landing[data-theme="dark"] .mode-sequence-note {
  background: var(--public-secondary);
  border-color: rgba(74,222,128,.55);
}

.tp-public-landing[data-theme="dark"] .mode-step:not(:last-child)::after { background: var(--surface); }
.tp-public-landing[data-theme="dark"] .mode-step.active:not(:last-child)::after { background: var(--public-secondary); }
.tp-public-landing[data-theme="dark"] .mode-step:hover,
.tp-public-landing[data-theme="dark"] .card:hover,
.tp-public-landing[data-theme="dark"] .intro-tile:hover,
.tp-public-landing[data-theme="dark"] .pack:hover { border-color: rgba(74,222,128,.55); }
.tp-public-landing[data-theme="dark"] .pack:hover { background: var(--public-secondary); }
.tp-public-landing[data-theme="dark"] .guided-step-number,
.tp-public-landing[data-theme="dark"] .mode-step-number,
.tp-public-landing[data-theme="dark"] .day.done .day-dot,
.tp-public-landing[data-theme="dark"] .landing-back-to-top { color: #0b1220; }

.tp-public-landing[data-theme="dark"] .queue-row {
  background: var(--public-secondary);
  border-color: var(--border);
}

.tp-public-landing[data-theme="dark"] .queue-row span,
.tp-public-landing[data-theme="dark"] .goal-line,
.tp-public-landing[data-theme="dark"] .day,
.tp-public-landing[data-theme="dark"] .chart-labels,
.tp-public-landing[data-theme="dark"] .list,
.tp-public-landing[data-theme="dark"] .footer,
.tp-public-landing[data-theme="dark"] .footer a { color: var(--muted); }
.tp-public-landing[data-theme="dark"] .footer a:hover { color: var(--text); }
.tp-public-landing[data-theme="dark"] .queue-row:first-child strong { color: #fdba74; }
.tp-public-landing[data-theme="dark"] .queue-row:nth-child(2) strong { color: #93c5fd; }
.tp-public-landing[data-theme="dark"] .day-dot,
.tp-public-landing[data-theme="dark"] .progress-track { background: var(--border); }
.tp-public-landing[data-theme="dark"] .day.done .day-dot { background: #22c55e; }
.tp-public-landing[data-theme="dark"] .chart-grid-line { stroke: var(--border); }
.tp-public-landing[data-theme="dark"] .chart-point { fill: var(--surface); }

.tp-public-landing[data-theme="dark"] .landing-plan.is-pro {
  background: linear-gradient(145deg, #14382a, #18253a);
  color: var(--text);
}

.tp-public-landing[data-theme="dark"] .landing-plan-unit,
.tp-public-landing[data-theme="dark"] .landing-plan-help,
.tp-public-landing[data-theme="dark"] .landing-plan-old {
  color: var(--muted);
  opacity: 1;
}

.tp-public-landing[data-theme="dark"] .landing-plan-features li::before {
  background: var(--brand-soft);
  color: #86efac;
}

.tp-public-landing[data-theme="dark"] .landing-billing { background: var(--bg); }
.tp-public-landing[data-theme="dark"] .landing-billing button { color: var(--text); }
.tp-public-landing[data-theme="dark"] .landing-billing button[aria-pressed="true"],
.tp-public-landing[data-theme="dark"] .landing-plan-cta {
  background: #22c55e;
  color: #0b1220;
}

.tp-public-landing[data-theme="dark"] .landing-plan-cta.is-free {
  background: var(--public-secondary);
  border-color: var(--public-control-border);
  color: var(--text);
}

.tp-public-landing[data-theme="dark"] details { border-color: var(--border); }
.tp-public-landing[data-theme="dark"] .cta { color: var(--text); }
.tp-public-landing[data-theme="dark"] .cta p { color: var(--muted); }

/* Standalone error, legal and payment pages. */
.tp-public-error[data-theme="dark"] .eyebrow { color: #86efac; }
.tp-public-checkout[data-theme="dark"] main {
  background: var(--surface);
  border-color: var(--border);
}
.tp-public-checkout[data-theme="dark"] p { color: var(--muted); }
.tp-public-checkout[data-theme="dark"] a { color: var(--link); }
.tp-public-diagnostic[data-theme="dark"] button {
  background: var(--surface);
  border-color: var(--public-control-border);
  color: var(--text);
}
