/*
  v5 visual target (landing.html / app.html).
  Requires html.lzp4 (v4 layers) + html.lzp5 (this file) + lzp-v5-tokens.css.
  Semantic colour for bars, status, achievement, profit/loss, income/expense,
  assets, categories, and icons. Layout and locked §10 numbers unchanged.
*/

/* —— Status chips (kind → ROLE B / C) —— */
html.lzp5 .z-chip-ok {
  background: var(--z-status-on-track-container);
  color: var(--z-status-on-track);
}
html.lzp5 .z-chip-progress {
  background: var(--z-status-progress-container);
  color: var(--z-status-progress);
}
html.lzp5 .z-chip-warn {
  background: var(--z-status-risk-container);
  color: var(--z-status-risk);
}
html.lzp5 .z-chip-bad {
  background: var(--z-status-critical-container);
  color: var(--z-status-critical);
}
html.lzp5 .z-chip-idle {
  background: var(--z-status-idle-container);
  color: var(--z-status-idle);
}
html.lzp5 .z-chip-achieved {
  background: var(--z-achieved-container);
  color: var(--z-achieved);
}
html.lzp5 .z-chip-income {
  background: var(--z-income-container);
  color: var(--z-income);
}
html.lzp5 .z-chip-expense {
  background: var(--z-expense-container);
  color: var(--z-expense);
}

html.lzp5 .bg-secondary-container.text-on-secondary-container {
  background: var(--z-status-on-track-container) !important;
  color: var(--z-status-on-track) !important;
}
html.lzp5 .bg-tertiary-fixed.text-on-tertiary-fixed-variant {
  background: var(--z-status-risk-container) !important;
  color: var(--z-status-risk) !important;
}
html.lzp5 .bg-error-container.text-on-error-container {
  background: var(--z-status-critical-container) !important;
  color: var(--z-status-critical) !important;
}

/* —— Profit / loss —— */
html.lzp5 .z-pnl-pos { color: var(--z-profit); font-weight: 600; }
html.lzp5 .z-pnl-neg { color: var(--z-loss); font-weight: 600; }
html.lzp5 .z-pnl-flat { color: var(--z-flat); }

/* —— Hero accent: net-worth teal, not generic green —— */
html.lzp5 .lzp-hero {
  border-left-color: var(--z-networth);
}

/* —— Meters: achievement fill —— */
html.lzp5 .lzp-meter-fill {
  background: linear-gradient(90deg, var(--z-networth) 0%, var(--z-income) 100%);
}

/* —— Status dots (8px) —— */
html.lzp5 .z-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 0.35rem;
  vertical-align: middle;
}
html.lzp5 .z-dot-ok { background: var(--z-status-on-track); }
html.lzp5 .z-dot-progress { background: var(--z-status-progress); }
html.lzp5 .z-dot-warn { background: var(--z-status-risk); }
html.lzp5 .z-dot-idle { background: var(--z-status-idle); }
html.lzp5 .z-dot-bad { background: var(--z-status-critical); }
html.lzp5 .z-dot-achieved { background: var(--z-achieved); }

/* —— Nav icons (idle only; active stays on-primary) —— */
html.lzp5 #sidebar a:not(.bg-primary) .nav-icon-overview,
html.lzp5 #mobile-nav a:not(.bg-primary) .nav-icon-overview { color: var(--z-icon-overview); }
html.lzp5 #sidebar a:not(.bg-primary) .nav-icon-life,
html.lzp5 #mobile-nav a:not(.bg-primary) .nav-icon-life { color: var(--z-icon-life); }
html.lzp5 #sidebar a:not(.bg-primary) .nav-icon-fire,
html.lzp5 #mobile-nav a:not(.bg-primary) .nav-icon-fire { color: var(--z-icon-fire); }
html.lzp5 #sidebar a:not(.bg-primary) .nav-icon-wealth,
html.lzp5 #mobile-nav a:not(.bg-primary) .nav-icon-wealth { color: var(--z-icon-wealth); }
html.lzp5 #sidebar a:not(.bg-primary) .nav-icon-invest,
html.lzp5 #mobile-nav a:not(.bg-primary) .nav-icon-invest { color: var(--z-icon-invest); }

html.lzp5 .z-nav-kicker {
  pointer-events: none;
  opacity: 0.7;
}

html.lzp5 .z-nav-group {
  margin: 0;
}
html.lzp5 .z-nav-group > .z-nav-group-toggle {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem;
  width: 100%;
  user-select: none;
  border-radius: 0.125rem;
}
html.lzp5 .z-nav-group > .z-nav-group-toggle::-webkit-details-marker,
html.lzp5 .z-nav-group > .z-nav-group-toggle::marker {
  display: none;
  content: "";
}
html.lzp5 .z-nav-group > .z-nav-group-toggle:hover {
  color: var(--z-ink, #0b1c30);
}
html.lzp5 .z-nav-group > .z-nav-group-toggle:focus-visible {
  outline: 2px solid #000000;
  outline-offset: 1px;
}
html.lzp5 .z-nav-group > .z-nav-group-toggle .z-nav-group-chevron {
  font-size: 1rem;
  line-height: 1;
  color: inherit;
  transition: transform 0.12s ease;
}
html.lzp5 .z-nav-group:not([open]) > .z-nav-group-toggle .z-nav-group-chevron {
  transform: rotate(-90deg);
}

html.lzp5 #header-search + .material-symbols-outlined,
html.lzp5 header .material-symbols-outlined:first-child { color: var(--z-icon-search); }
html.lzp5 header span.material-symbols-outlined { color: var(--z-label); }
html.lzp5 .text-error,
html.lzp5 [class*="bg-error"] + .material-symbols-outlined { color: var(--z-icon-alert); }

/* Header utility icons */
html.lzp5 #btn-notice,
html.lzp5 header button .material-symbols-outlined,
html.lzp5 header a .material-symbols-outlined {
  color: var(--z-label);
}
html.lzp5 header .relative .material-symbols-outlined {
  color: var(--z-icon-search);
}

/* —— Six pillars (landing tiles + orbit labels) —— */
html.lzp5 [data-pillar="money"] { color: var(--z-pillar-money); }
html.lzp5 [data-pillar="family"] { color: var(--z-pillar-family); }
html.lzp5 [data-pillar="health"] { color: var(--z-pillar-health); }
html.lzp5 [data-pillar="learning"] { color: var(--z-pillar-learning); }
html.lzp5 [data-pillar="dreams"] { color: var(--z-pillar-dreams); }
html.lzp5 [data-pillar="friends"] { color: var(--z-pillar-friends); }

html.lzp5 .bg-inverse-surface [data-pillar="money"] { color: #8df9a8; }
html.lzp5 .bg-inverse-surface [data-pillar="family"] { color: #93c5fd; }
html.lzp5 .bg-inverse-surface [data-pillar="health"] { color: #5eead4; }
html.lzp5 .bg-inverse-surface [data-pillar="learning"] { color: #c4b5fd; }
html.lzp5 .bg-inverse-surface [data-pillar="dreams"] { color: #ffb77d; }
html.lzp5 .bg-inverse-surface [data-pillar="friends"] { color: #f9a8d4; }

html.lzp5 [data-pillar="money"] .w-9,
html.lzp5 [data-pillar="money"] .z-pillar-n,
html.lzp5 .z-tile-money { background: var(--z-income-container); color: var(--z-pillar-money); border-color: var(--z-income); }
html.lzp5 [data-pillar="family"] .w-9,
html.lzp5 [data-pillar="family"] .z-pillar-n,
html.lzp5 .z-tile-family { background: var(--z-plan-container); color: var(--z-pillar-family); border-color: var(--z-pillar-family); }
html.lzp5 [data-pillar="health"] .w-9,
html.lzp5 [data-pillar="health"] .z-pillar-n,
html.lzp5 .z-tile-health { background: #ccfbf1; color: var(--z-pillar-health); border-color: var(--z-pillar-health); }
html.lzp5 [data-pillar="learning"] .w-9,
html.lzp5 [data-pillar="learning"] .z-pillar-n,
html.lzp5 .z-tile-learning { background: #ede9fe; color: var(--z-pillar-learning); border-color: var(--z-pillar-learning); }
html.lzp5 [data-pillar="dreams"] .w-9,
html.lzp5 [data-pillar="dreams"] .z-pillar-n,
html.lzp5 .z-tile-dreams { background: var(--z-status-risk-container); color: var(--z-pillar-dreams); border-color: var(--z-pillar-dreams); }
html.lzp5 [data-pillar="friends"] .w-9,
html.lzp5 [data-pillar="friends"] .z-pillar-n,
html.lzp5 .z-tile-friends { background: #fce7f0; color: var(--z-pillar-friends); border-color: var(--z-pillar-friends); }

html.lzp5 [aria-label="Six life pillars"] a[data-pillar] .w-9 {
  border-width: 1px;
  border-style: solid;
}

/* Unified landing hero — one canvas, no split */
html.lzp5 .z-hero-wrap {
  position: relative;
  z-index: 1;
  padding-top: 8rem;
  padding-bottom: 2.25rem;
}
@media (min-width: 1024px) {
  html.lzp5 .z-hero-wrap { padding-top: 7.25rem; }
}

/* 14c + 14n — decorative wash + declining path on GET / #top only */
html.lzp5 #top {
  position: relative;
  overflow: hidden;
}
html.lzp5 .lzp-hero-wash {
  position: absolute;
  top: 4rem;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
html.lzp5 .lzp-hero-wash::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 55% at 18% 28%, rgba(141, 249, 168, 0.12) 0%, transparent 62%),
    radial-gradient(ellipse 55% 50% at 72% 42%, rgba(255, 220, 195, 0.12) 0%, transparent 58%),
    radial-gradient(ellipse 60% 48% at 48% 88%, rgba(211, 228, 254, 0.12) 0%, transparent 60%);
  animation:
    lzp-hero-wash-breath 48s ease-in-out alternate infinite,
    lzp-hero-wash-welcome 18s ease-in-out alternate infinite;
}
html.lzp5 .lzp-hero-wash::after {
  content: "";
  position: absolute;
  inset: -6%;
  pointer-events: none;
  background:
    radial-gradient(ellipse 48% 42% at 86% 18%, rgba(211, 228, 254, 0.10) 0%, transparent 68%),
    radial-gradient(ellipse 42% 36% at 22% 78%, rgba(255, 220, 195, 0.10) 0%, transparent 64%);
  animation:
    lzp-hero-wash-breath-b 56s ease-in-out alternate infinite,
    lzp-hero-wash-welcome 20s ease-in-out alternate infinite;
}
html.lzp5 .lzp-hero-wash-path {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
  animation: lzp-hero-path-drift 48s ease-in-out alternate infinite;
}
html.lzp5 .lzp-hero-wash-stroke,
html.lzp5 .lzp-hero-wash-glow,
html.lzp5 .lzp-hero-wash-gleam {
  fill: none;
  stroke-linecap: round;
}
html.lzp5 .lzp-hero-wash-stroke {
  stroke: var(--z-series-main);
  stroke-width: 1.2;
  opacity: 0.18;
  animation: lzp-hero-path-welcome 14s ease-in-out alternate infinite;
}
html.lzp5 .lzp-hero-wash-glow {
  stroke: #8df9a8;
  stroke-width: 12;
  opacity: 0.14;
  stroke-dasharray: 160 840;
  animation: lzp-hero-path-gleam 18s linear infinite;
}
html.lzp5 .lzp-hero-wash-gleam {
  stroke: #8df9a8;
  stroke-width: 1.5;
  opacity: 0.55;
  stroke-dasharray: 88 912;
  animation: lzp-hero-path-gleam 18s linear infinite;
}
@keyframes lzp-hero-wash-breath {
  from { transform: translate(0, 0); }
  to { transform: translate(12px, 8px); }
}
@keyframes lzp-hero-wash-breath-b {
  from { transform: translate(0, 0); }
  to { transform: translate(-10px, 6px); }
}
@keyframes lzp-hero-wash-welcome {
  from { opacity: 0.72; }
  to { opacity: 1; }
}
@keyframes lzp-hero-path-drift {
  from { transform: translateY(0); }
  to { transform: translateY(6px); }
}
@keyframes lzp-hero-path-welcome {
  from { opacity: 0.14; }
  to { opacity: 0.32; }
}
@keyframes lzp-hero-path-gleam {
  from { stroke-dashoffset: 0; }
  to { stroke-dashoffset: -1000; }
}
@media (prefers-reduced-motion: reduce) {
  html.lzp5 .lzp-hero-wash::before,
  html.lzp5 .lzp-hero-wash::after,
  html.lzp5 .lzp-hero-wash-path,
  html.lzp5 .lzp-hero-wash-stroke,
  html.lzp5 .lzp-hero-wash-glow,
  html.lzp5 .lzp-hero-wash-gleam {
    animation: none;
  }
  html.lzp5 .lzp-hero-wash-glow,
  html.lzp5 .lzp-hero-wash-gleam {
    opacity: 0;
  }
}
html.lzp5 .z-hero-aside {
  max-width: 36rem;
  margin: 0.85rem 0 0;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--z-ink);
}

/* Brand lockup: mark + Live Zero Path */
html.lzp5 .z-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  color: var(--z-ink);
  min-width: 0;
}
html.lzp5 .z-logo-mark {
  width: 1.85rem;
  height: 1.85rem;
  flex-shrink: 0;
  display: block;
}
html.lzp5 .z-logo-type {
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
  min-width: 0;
}
html.lzp5 .z-logo-name {
  margin: 0;
  font-family: Manrope, sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: inherit;
}
html.lzp5 .z-logo-tag {
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
  line-height: 1.2;
}
html.lzp5 .z-logo--nav .z-logo-tag {
  display: none;
}
@media (min-width: 640px) {
  html.lzp5 .z-logo--nav .z-logo-name { font-size: 1.125rem; }
  html.lzp5 .z-logo--nav .z-logo-mark { width: 2rem; height: 2rem; }
}
html.lzp5 .z-logo--stack {
  align-items: flex-start;
}
html.lzp5 .z-logo--stack .z-logo-mark {
  width: 2.15rem;
  height: 2.15rem;
  margin-top: 0.05rem;
}
html.lzp5 .z-logo--stack .z-logo-name {
  font-size: 1.12rem;
}
html.lzp5 .z-hero-proof {
  margin-top: 1.75rem;
  padding: 0;
  overflow: hidden;
  border-left: 3px solid var(--z-networth);
}
html.lzp5 .z-hero-proof-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin: 0;
  padding: 0.65rem 1rem;
}
html.lzp5 .z-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  background: transparent;
  color: var(--z-ink);
}
html.lzp5 .z-hero-kpis {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--z-grid);
  border-top: 1px solid var(--z-grid);
  border-bottom: 1px solid var(--z-grid);
}
html.lzp5 .z-hero-kpi {
  background: var(--z-card);
  padding: 0.7rem 0.85rem 0.75rem;
}
html.lzp5 .z-hero-kpi .font-label {
  margin: 0;
  min-height: 2.2em;
  line-height: 1.25;
}
html.lzp5 .z-hero-kpi-val {
  margin: 0.28rem 0 0;
  text-align: left;
  font-size: 1.35rem;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: var(--z-ink);
}
html.lzp5 .z-hero-kpi--lead .z-hero-kpi-val {
  font-size: 1.5rem;
}
@media (min-width: 768px) {
  html.lzp5 .z-hero-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  html.lzp5 .z-hero-kpi {
    padding: 0.8rem 1rem 0.85rem;
  }
  html.lzp5 .z-hero-kpi-val {
    font-size: 1.5rem;
  }
  html.lzp5 .z-hero-kpi--lead .z-hero-kpi-val {
    font-size: 1.65rem;
  }
}
html.lzp5 .z-hero-chart {
  margin: 0;
  padding: 0.55rem 0.85rem 0.65rem;
  background: var(--z-plot);
}
html.lzp5 .z-hero-stages {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 0 0.2rem;
  font-family: Inter, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-hero-stages span i {
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  margin-left: 0.35rem;
  opacity: 0.8;
}
html.lzp5 .z-hero-svg {
  display: block;
  width: 100%;
  height: 4.25rem;
}
@media (min-width: 640px) {
  html.lzp5 .z-hero-svg { height: 5rem; }
}
html.lzp5 .z-hero-chart figcaption {
  margin: 0.4rem 0 0;
  font-family: Inter, sans-serif;
  font-size: 10px;
  line-height: 1.35;
  color: var(--z-label);
}
html.lzp5 .z-hero-pillars {
  list-style: none;
  margin: 0;
  padding: 0.55rem 0.45rem 0.6rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.2rem 0.15rem;
  border-top: 1px solid var(--z-grid);
}
@media (min-width: 768px) {
  html.lzp5 .z-hero-pillars { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
html.lzp5 .z-hero-pillars a {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  padding: 0.2rem 0.4rem;
  color: var(--z-ink);
  text-decoration: none;
}
html.lzp5 .z-hero-pillars a span:last-child {
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
html.lzp5 .z-hero-pillars .w-9 {
  width: 1.55rem;
  height: 1.55rem;
  flex-shrink: 0;
}
html.lzp5 .z-hero-pillars a:hover .w-9 {
  filter: brightness(0.97);
}

/* Six-pillar chart + measure table */
html.lzp5 .z-pillar-stage {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}
@media (min-width: 960px) {
  html.lzp5 .z-pillar-stage {
    grid-template-columns: minmax(16rem, 0.95fr) minmax(0, 1.05fr);
    gap: 2rem 2.75rem;
  }
}
html.lzp5 .z-pillar-chart {
  display: none;
}
@media (min-width: 640px) {
  html.lzp5 .z-pillar-chart {
    display: grid;
    place-items: center;
  }
}
html.lzp5 .z-hex {
  display: block;
  width: 100%;
  height: auto;
}
html.lzp5 .pillar-orbit .z-hex {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
html.lzp5 .z-hex-face {
  fill: var(--z-plot);
  stroke: var(--z-grid);
  stroke-width: 1.15;
}
html.lzp5 .z-hex-spokes line {
  stroke: var(--z-grid);
  stroke-width: 0.7;
}
html.lzp5 .z-hex-lab {
  font-family: Manrope, sans-serif;
  font-size: 8.25px;
  font-weight: 800;
  fill: var(--z-ink);
}
html.lzp5 .z-hex-v[data-pillar="family"] { fill: var(--z-pillar-family); }
html.lzp5 .z-hex-v[data-pillar="health"] { fill: var(--z-pillar-health); }
html.lzp5 .z-hex-v[data-pillar="learning"] { fill: var(--z-pillar-learning); }
html.lzp5 .z-hex-v[data-pillar="dreams"] { fill: var(--z-pillar-dreams); }
html.lzp5 .z-hex-v[data-pillar="friends"] { fill: var(--z-pillar-friends); }
html.lzp5 .z-hex-v[data-pillar="money"] { fill: var(--z-pillar-money); }
html.lzp5 .z-pillar-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6.75rem;
  height: 6.75rem;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0.6rem;
  background: var(--z-ink);
  color: #eaf1ff;
  border-radius: 0.125rem;
}
html.lzp5 .z-pillar-core .font-label {
  color: rgba(234, 241, 255, 0.62);
}
html.lzp5 .z-pillar-table {
  list-style: none;
  margin: 0;
  padding: 0;
  background: var(--z-card);
  border: 1px solid color-mix(in srgb, var(--z-grid) 92%, transparent);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.92) inset;
}
html.lzp5 .z-pillar-table li {
  display: grid;
  grid-template-columns: 2.15rem minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
  padding: 0.72rem 0.9rem;
  color: var(--z-ink);
  border-bottom: 1px solid var(--z-grid);
  border-left: 3px solid var(--z-grid);
}
html.lzp5 .z-pillar-table li[data-pillar="money"] { border-left-color: var(--z-pillar-money); }
html.lzp5 .z-pillar-table li[data-pillar="family"] { border-left-color: var(--z-pillar-family); }
html.lzp5 .z-pillar-table li[data-pillar="health"] { border-left-color: var(--z-pillar-health); }
html.lzp5 .z-pillar-table li[data-pillar="learning"] { border-left-color: var(--z-pillar-learning); }
html.lzp5 .z-pillar-table li[data-pillar="dreams"] { border-left-color: var(--z-pillar-dreams); }
html.lzp5 .z-pillar-table li[data-pillar="friends"] { border-left-color: var(--z-pillar-friends); }
html.lzp5 .z-pillar-table li:last-child { border-bottom: 0; }
html.lzp5 .z-pillar-n {
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  border: 1px solid;
  border-radius: 0.125rem;
}
html.lzp5 .z-pillar-name {
  margin: 0.05rem 0 0.15rem;
  font-size: 0.9375rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
html.lzp5 .z-pillar-line {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--z-label);
}

/* Landing section rhythm */
html.lzp5 #philosophy,
html.lzp5 #pillars,
html.lzp5 #system,
html.lzp5 #estimator,
html.lzp5 #freedom,
html.lzp5 #path,
html.lzp5 #main > section:not(#top) {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
@media (min-width: 1024px) {
  html.lzp5 #philosophy,
  html.lzp5 #pillars,
  html.lzp5 #system,
  html.lzp5 #estimator,
  html.lzp5 #freedom,
  html.lzp5 #path,
  html.lzp5 #main > section:not(#top) {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}
html.lzp5 #philosophy .lzp-card h3 {
  font-size: 1.0625rem;
  line-height: 1.3;
}
html.lzp5 #main section h2 {
  font-size: 1.5rem;
  line-height: 1.22;
  letter-spacing: -0.03em;
}
@media (min-width: 640px) {
  html.lzp5 #main section h2 { font-size: 1.75rem; }
}
@media (min-width: 1024px) {
  html.lzp5 #main section h2 { font-size: 1.9375rem; }
}
html.lzp5 #philosophy blockquote p {
  font-size: 1.0625rem;
  line-height: 1.4;
}
@media (min-width: 640px) {
  html.lzp5 #philosophy blockquote p { font-size: 1.1875rem; }
}
html.lzp5 #philosophy .lzp-card .tabular-nums {
  font-size: 1.25rem;
}
html.lzp5 #result-age {
  font-size: 1.875rem;
}
html.lzp5 #estimator .lzp-result .text-4xl {
  font-size: 1.5rem;
}
html.lzp5 #estimator .lzp-result .text-2xl {
  font-size: 1.25rem;
}
html.lzp5 #freedom .text-2xl {
  font-size: 1.25rem;
}
html.lzp5 #system .z-sys {
  margin-top: 1.35rem;
}

/* —— Review swatches (spec-review chrome only) —— */
html.lzp5 .z-swatch {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 10px;
  opacity: 0.95;
}
html.lzp5 .z-swatch b {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

/* —— Shared surfaces (landing + signed-in): card · well · table · box —— */
html.lzp5 .lzp-card,
html.lzp5 #main .bg-surface-container-lowest,
html.lzp5 article.bg-surface-container-lowest,
html.lzp5 form.bg-surface-container-lowest,
html.lzp5 .overlay-shadow,
html.lzp5 .z-ob-panel,
html.lzp5 .z-ob-flow-item,
html.lzp5 .z-ob-cards > article,
html.lzp5 .z-ptz-tape article,
html.lzp5 .z-steps {
  background: var(--z-card);
  border: 1px solid color-mix(in srgb, var(--z-grid) 92%, transparent);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.92) inset,
    0 1px 2px rgba(11, 28, 48, 0.04),
    0 12px 28px -18px rgba(33, 49, 69, 0.42);
}
html.lzp5 .z-well,
html.lzp5 .z-ob-paste,
html.lzp5 .z-ob-saved,
html.lzp5 .z-ob-demo-banner,
html.lzp5 .z-season-shift {
  background: var(--z-plot);
  border: 1px solid var(--z-grid);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72) inset;
}
html.lzp5 .lzp-table-wrap,
html.lzp5 .z-ob-preview-wrap,
html.lzp5 .z-season-table-wrap,
html.lzp5 .z-fire-status {
  border: 1px solid var(--z-grid);
  background: var(--z-card);
  overflow-x: auto;
  overflow-y: hidden;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}
html.lzp5 .lzp-table thead,
html.lzp5 .z-ob-preview thead,
html.lzp5 .z-season-table thead {
  background: var(--z-header-wash);
}
html.lzp5 .lzp-table,
html.lzp5 .z-ob-preview,
html.lzp5 .z-season-table,
html.lzp5 #main table {
  font-size: 12px;
  line-height: 1.25;
  border-collapse: collapse;
}
html.lzp5 .lzp-table th,
html.lzp5 .lzp-table td,
html.lzp5 .z-ob-preview th,
html.lzp5 .z-ob-preview td,
html.lzp5 .z-season-table th,
html.lzp5 .z-season-table td,
html.lzp5 #main table th,
html.lzp5 #main table td {
  padding: 0.22rem 0.5rem;
  vertical-align: middle;
}
html.lzp5 .lzp-table thead th,
html.lzp5 .z-ob-preview thead th,
html.lzp5 .z-season-table thead th,
html.lzp5 #main table thead th {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding-top: 0.32rem;
  padding-bottom: 0.32rem;
}
html.lzp5 .lzp-table td:last-child,
html.lzp5 .lzp-table th:last-child,
html.lzp5 .z-ob-preview td:last-child,
html.lzp5 .z-ob-preview th:last-child,
html.lzp5 .z-season-table td:last-child,
html.lzp5 .z-season-table th:last-child,
html.lzp5 #main table td:last-child,
html.lzp5 #main table th:last-child {
  white-space: nowrap;
}
html.lzp5 .lzp-table tbody tr:nth-child(even),
html.lzp5 .z-ob-preview tbody tr:nth-child(even),
html.lzp5 .z-season-table tbody tr:nth-child(even) {
  background: var(--z-canvas);
}
html.lzp5 .lzp-table tbody tr:hover,
html.lzp5 .z-ob-preview tbody tr:hover,
html.lzp5 .z-season-table tbody tr:hover {
  background: var(--z-plot);
}
html.lzp5 #site-header,
html.lzp5 #app-shell header,
html.lzp5 #bottom-nav {
  border-color: color-mix(in srgb, var(--z-grid) 80%, transparent);
}
html.lzp5 #site-header {
  border-bottom: 1px solid color-mix(in srgb, var(--z-grid) 80%, transparent);
}
html.lzp5 #contact {
  border-top: 1px solid color-mix(in srgb, var(--z-grid) 80%, transparent);
}
html.lzp5 #header-search {
  background: var(--z-plot);
  border: 1px solid var(--z-grid);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72) inset;
}
html.lzp5 #header-search:focus {
  outline: none;
  border-color: var(--z-income);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--z-income) 28%, transparent);
  background: var(--z-card);
}
html.lzp5 .z-ghost-btn {
  background: var(--z-card);
  color: var(--z-ink);
  border: 1px solid var(--z-grid);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
html.lzp5 .z-ghost-btn:hover {
  background: var(--z-plot);
}
html.lzp5 #sso-block[hidden],
html.lzp5 #sso-google[hidden],
html.lzp5 #sso-apple[hidden] {
  display: none !important;
}
html.lzp5 #add-scrim aside.lzp-card {
  border-radius: 0;
  box-shadow: -16px 0 32px -18px rgba(33, 49, 69, 0.45);
}

/* —— Cash-flow table: tint inflow vs deduction section titles if marked —— */
html.lzp5 .z-section-income { border-left: 3px solid var(--z-income); padding-left: 0.75rem; }
html.lzp5 .z-section-expense { border-left: 3px solid var(--z-expense); padding-left: 0.75rem; }
html.lzp5 .z-section-asset { border-left: 3px solid var(--z-asset); padding-left: 0.75rem; }
html.lzp5 .z-section-liability { border-left: 3px solid var(--z-liability); padding-left: 0.75rem; }

/* FIRE achieved table row: gold wash instead of mint if marked */
html.lzp5 .lzp-row-mark td {
  background: var(--z-achieved-container) !important;
  color: var(--z-ink);
}

/* —— Life Vision: this season’s mix (priority · time · effort) —— */
html.lzp5 .z-lv-season-hero {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.85rem;
  font-size: 0.95rem !important;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: -0.02em;
  max-width: 22rem;
}
html.lzp5 .z-lv-season-hero span b {
  font-variant-numeric: tabular-nums;
  margin-left: 0.2rem;
}
html.lzp5 .z-lv-mix {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-top: 0.85rem;
}
html.lzp5 .z-lv-mix-head,
html.lzp5 .z-lv-row {
  display: grid;
  grid-template-columns: 4.4rem minmax(0, 1fr) 4.8rem 5.4rem;
  gap: 0.35rem 0.45rem;
  align-items: center;
}
html.lzp5 .z-lx-mix .z-lv-mix-head,
html.lzp5 .z-lx-mix .z-lv-row {
  grid-template-columns: 4.6rem minmax(0, 1fr) 5.2rem 4.4rem;
}
html.lzp5 .z-lv-mix-head {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-lv-row {
  font-size: 11px;
  line-height: 1.2;
}
html.lzp5 .z-lv-row-name {
  font-weight: 700;
  color: currentColor;
}
html.lzp5 .z-lv-pri {
  height: 6px;
  background: var(--z-plot);
  border-radius: 99px;
  overflow: hidden;
}
html.lzp5 .z-lv-pri i {
  display: block;
  height: 100%;
  border-radius: 99px;
  background: currentColor;
}
html.lzp5 .z-lv-row-time,
html.lzp5 .z-lv-row-effort {
  color: var(--z-ink);
  font-variant-numeric: tabular-nums;
}
html.lzp5 .z-lv-pte {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.55rem;
  margin: 0.7rem 0 0.35rem;
  padding: 0.55rem 0;
  border-top: 1px solid var(--z-grid);
  border-bottom: 1px solid var(--z-grid);
}
html.lzp5 .z-lv-pte dt {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-lv-pte dd {
  font-size: 13px;
  font-weight: 800;
  margin-top: 0.12rem;
  font-variant-numeric: tabular-nums;
  color: var(--z-ink);
}
html.lzp5 .z-lv-def {
  font-size: 12px;
  color: var(--z-label);
  line-height: 1.4;
  margin-top: 0.15rem;
}
html.lzp5 .z-lv-radar {
  background: var(--z-plot);
  border: 1px solid var(--z-grid);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72) inset;
  padding: 0.45rem 0.35rem 0.25rem;
}
html.lzp5 .z-lv-radar svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
html.lzp5 .z-lv-radar.z-lv-plot {
  overflow: hidden;
}
html.lzp5 .z-lv-radar.z-lv-plot svg {
  height: 100%;
  overflow: hidden;
}
html.lzp5 .lzp-plot {
  overflow: hidden;
}
html.lzp5 .z-lv-lead {
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--z-ink);
  max-width: 42rem;
}
html.lzp5 .z-lv-phil {
  font-size: 13px;
  line-height: 1.55;
  color: var(--z-label);
  max-width: 46rem;
}
html.lzp5 .z-lv-verts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1.5rem;
  max-width: 46rem;
  list-style: none;
  padding: 0;
  margin: 1.15rem 0 0;
}
@media (min-width: 768px) {
  html.lzp5 .z-lv-verts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
html.lzp5 .z-lv-verts li {
  font-size: 13px;
  line-height: 1.4;
  color: var(--z-label);
}
html.lzp5 .z-lv-verts li span {
  display: block;
  font-weight: 800;
  margin-bottom: 0.12rem;
}
html.lzp5 .z-lv-verts li[data-pillar="money"] span { color: var(--z-pillar-money); }
html.lzp5 .z-lv-verts li[data-pillar="family"] span { color: var(--z-pillar-family); }
html.lzp5 .z-lv-verts li[data-pillar="health"] span { color: var(--z-pillar-health); }
html.lzp5 .z-lv-verts li[data-pillar="learning"] span { color: var(--z-pillar-learning); }
html.lzp5 .z-lv-verts li[data-pillar="dreams"] span { color: var(--z-pillar-dreams); }
html.lzp5 .z-lv-verts li[data-pillar="friends"] span { color: var(--z-pillar-friends); }
html.lzp5 .z-ptz-tape {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}
html.lzp5 .z-stk-tape[data-cols="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
html.lzp5 .z-stk-tape[data-cols="4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
html.lzp5 .z-stk-chart + .z-stk-tape {
  margin-top: 0.85rem;
}
@media (max-width: 720px) {
  html.lzp5 .z-stk-tape[data-cols="4"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
html.lzp5 .z-ptz-tape article {
  padding: 0.7rem 0.75rem 0.8rem;
}
html.lzp5 .z-ptz-suggest {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.4rem;
}
html.lzp5 .z-ptz-suggest button {
  background: #fff;
  border: 1px solid var(--z-grid);
  border-radius: 6px;
  padding: 0.2rem 0.55rem;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--z-ink);
}
html.lzp5 .z-ptz-suggest button.is-on {
  background: var(--z-ink);
  color: #fff;
  border-color: var(--z-ink);
}
html.lzp5 .z-ptz-traj {
  max-height: 24rem;
  overflow: auto;
}
html.lzp5 .z-ptz-traj thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fbfbfd;
}
html.lzp5 .z-ptz-spend,
html.lzp5 .z-ptz-spend-h {
  color: #c45e00;
  font-weight: 800;
}
html.lzp5 .z-ptz-live-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  font-size: 12px;
  line-height: 1.4;
  color: var(--z-label);
  margin: 0 0 0.65rem;
}
html.lzp5 .z-ptz-live-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #0f7a45;
  box-shadow: 0 0 0 3px rgba(15, 122, 69, 0.18);
  flex: none;
}
html.lzp5 .z-ptz-derived-tag {
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: #86868b;
  margin-left: 0.2rem;
}
html.lzp5 .z-ptz-chart.z-lv-radar.z-lv-plot,
html.lzp5 .z-fire-chart.z-lv-radar.z-lv-plot {
  overflow: visible;
  background: linear-gradient(180deg, #fbfbfd 0%, #ffffff 100%);
  border: 1px solid var(--z-grid);
  border-radius: 12px;
  padding: 0.65rem 0.4rem 0.2rem;
}
html.lzp5 .z-stk-chart.z-lv-radar.z-lv-plot {
  overflow: visible;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}
html.lzp5 .z-ptz-chart.z-lv-radar.z-lv-plot svg,
html.lzp5 .z-fire-chart.z-lv-radar.z-lv-plot svg,
html.lzp5 .z-stk-chart.z-lv-radar.z-lv-plot svg {
  overflow: visible;
  height: auto;
  min-height: 20rem;
}
html.lzp5 .z-stk-chart.z-lv-radar.z-lv-plot svg {
  min-height: 16.5rem;
}
html.lzp5 .z-stk-plot-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  margin-bottom: 0.65rem;
}
html.lzp5 .z-stk-plot-kicker {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
  margin: 0 0 0.35rem;
}
html.lzp5 .z-stk-plot-hero {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin: 0;
  color: #1d1d1f;
}
html.lzp5 .z-stk-plot-hero .tabular {
  font-size: inherit;
  font-weight: inherit;
}
html.lzp5 .z-stk-plot-delta {
  font-size: 13px;
  font-weight: 700;
  margin: 0.4rem 0 0;
  letter-spacing: -0.01em;
}
html.lzp5 .z-stk-plot-delta.is-up { color: var(--z-profit); }
html.lzp5 .z-stk-plot-delta.is-down { color: var(--z-loss); }
html.lzp5 .z-stk-plot-delta .z-pnl-pos,
html.lzp5 .z-stk-plot-delta .z-pnl-neg,
html.lzp5 .z-stk-plot-delta .z-pnl-flat {
  color: inherit;
  font-weight: inherit;
}
html.lzp5 .z-stk-book-pnl {
  margin: 0.85rem 0 0.15rem;
  padding: 0.75rem 0.85rem 0.85rem;
  border-radius: 10px;
  background: linear-gradient(180deg, #fbfbfd 0%, #ffffff 100%);
  border: 1px solid var(--z-grid);
}
html.lzp5 .z-stk-book-pnl-kicker {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
  color: var(--z-label);
}
html.lzp5 .z-stk-book-pnl-hero {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.45rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin: 0.3rem 0 0;
}
html.lzp5 .z-stk-book-pnl-hero span {
  font-size: 0.85rem;
  font-weight: 700;
  margin-left: 0.35rem;
}
html.lzp5 .z-stk-book-pnl.is-up .z-stk-book-pnl-hero,
html.lzp5 .z-stk-book-pnl.is-up .z-stk-book-pnl-hero .z-pnl-pos { color: var(--z-profit); }
html.lzp5 .z-stk-book-pnl.is-down .z-stk-book-pnl-hero,
html.lzp5 .z-stk-book-pnl.is-down .z-stk-book-pnl-hero .z-pnl-neg { color: var(--z-loss); }
html.lzp5 .z-stk-book-pnl-sub {
  font-size: 12px;
  color: var(--z-label);
  margin: 0.35rem 0 0;
  line-height: 1.4;
}
html.lzp5 [data-stk-extras] > .grid.grid-cols-2 {
  margin-top: 0.55rem;
}
html.lzp5 .z-stk-chart .lzp-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1.1rem;
  padding: 0.15rem 0 0;
  font-size: 12px;
  font-weight: 600;
  color: #6e6e73;
}
html.lzp5 .z-fire-chart .lzp-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  padding: 0 0.5rem 0.25rem;
  font-size: 11px;
  font-weight: 600;
}
html.lzp5 .z-lv-form.z-ptz-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem 0.9rem;
}
html.lzp5 .z-lv-form.z-ptz-form.z-fire-form {
  grid-template-columns: 1fr;
}
html.lzp5 .z-lv-form.z-edu-form,
html.lzp5 .z-lv-form.z-stk-form,
html.lzp5 .z-lv-form.z-sec-form,
html.lzp5 .z-lv-form.z-bs-form,
html.lzp5 .z-lv-form.z-cf-form,
html.lzp5 .z-lv-form.z-ins-form,
html.lzp5 .z-lv-form.z-ob-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem 0.85rem;
}
html.lzp5 .z-lv-form.z-edu-form .z-ptz-span,
html.lzp5 .z-lv-form.z-edu-form .z-lv-card-actions,
html.lzp5 .z-lv-form.z-stk-form .z-ptz-span,
html.lzp5 .z-lv-form.z-stk-form .z-lv-card-actions,
html.lzp5 .z-lv-form.z-sec-form .z-ptz-span,
html.lzp5 .z-lv-form.z-sec-form .z-lv-card-actions,
html.lzp5 .z-lv-form.z-bs-form .z-ptz-span,
html.lzp5 .z-lv-form.z-bs-form .z-lv-card-actions,
html.lzp5 .z-lv-form.z-cf-form .z-ptz-span,
html.lzp5 .z-lv-form.z-cf-form .z-lv-card-actions,
html.lzp5 .z-lv-form.z-ins-form .z-ptz-span,
html.lzp5 .z-lv-form.z-ins-form .z-lv-card-actions,
html.lzp5 .z-lv-form.z-ob-form .z-ptz-span,
html.lzp5 .z-lv-form.z-ob-form .z-lv-card-actions {
  grid-column: 1 / -1;
}
@media (max-width: 767px) {
  html.lzp5 .z-lv-form.z-edu-form,
  html.lzp5 .z-lv-form.z-stk-form,
  html.lzp5 .z-lv-form.z-sec-form,
  html.lzp5 .z-lv-form.z-bs-form,
  html.lzp5 .z-lv-form.z-cf-form,
  html.lzp5 .z-lv-form.z-ins-form,
  html.lzp5 .z-lv-form.z-ob-form { grid-template-columns: 1fr; }
}
html.lzp5 .z-fire-toggle {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
html.lzp5 .z-fire-identity {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
  background: linear-gradient(180deg, #fbfbfd 0%, #ffffff 100%);
  border: 1px solid var(--z-grid);
  font-size: 13px;
  line-height: 1.5;
}
html.lzp5 .z-fire-identity .z-fire-op {
  color: var(--z-label);
  font-weight: 700;
  padding: 0 0.1rem;
}
html.lzp5 .z-fire-more {
  border-top: 1px solid var(--z-grid);
  padding-top: 0.85rem;
}
html.lzp5 .z-fire-more > summary {
  cursor: pointer;
  list-style: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--z-label);
  padding: 0.35rem 0;
}
html.lzp5 .z-fire-more > summary::-webkit-details-marker {
  display: none;
}
html.lzp5 .z-fire-more > summary::before {
  content: "+ ";
  font-weight: 800;
}
html.lzp5 .z-fire-more[open] > summary::before {
  content: "– ";
}
html.lzp5 .z-fire-more > summary:hover {
  color: var(--z-ink);
}
html.lzp5 .z-fire-traj {
  max-height: 24rem;
  overflow: auto;
}
html.lzp5 .z-fire-traj .lzp-row-mark td:first-child,
html.lzp5 .z-fire-status .lzp-row-mark td:first-child {
  box-shadow: inset 4px 0 0 0 var(--z-achieved);
}
html.lzp5 .z-fire-traj thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fbfbfd;
}
html.lzp5 .z-ptz-form .z-ptz-span {
  grid-column: 1 / -1;
}
html.lzp5 .lzp-hero .z-ptz-form {
  gap: 0.45rem 0.65rem;
  margin-top: 0.15rem;
}
html.lzp5 .lzp-hero .z-ptz-form label {
  margin-top: 0;
}
html.lzp5 .lzp-hero .z-ptz-form .field-line {
  font-size: 13px;
}
html.lzp5 .z-ptz-now,
html.lzp5 .z-ptz-derived {
  font-size: 11px;
  line-height: 1.45;
  color: var(--z-label);
  margin: 0;
}
html.lzp5 .lzp-hero .z-ptz-form .z-lv-hint {
  font-size: 10px;
  line-height: 1.4;
  margin: 0;
}
html.lzp5 .lzp-hero .z-ptz-suggest {
  margin-top: 0.25rem;
}
html.lzp5 .lzp-hero .z-lv-card-actions {
  margin-top: 0.15rem;
}
html.lzp5 .lzp-hero .z-lv-notice {
  margin: 0;
  font-size: 11px;
}
@media (max-width: 767px) {
  html.lzp5 .z-lv-form.z-ptz-form { grid-template-columns: 1fr; }
  html.lzp5 .z-ptz-tape { grid-template-columns: 1fr; }
}
html.lzp5 .z-fire-tape {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0.15rem 0 0.35rem;
}
html.lzp5 .z-fire-tape article {
  padding: 0.7rem 0.75rem 0.8rem;
  border-radius: 10px;
  background: linear-gradient(180deg, #fbfbfd 0%, #ffffff 100%);
  border: 1px solid var(--z-grid);
}
@media (max-width: 767px) {
  html.lzp5 .z-fire-tape { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
html.lzp5 .z-ef-tape {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}
@media (min-width: 768px) {
  html.lzp5 .z-ef-tape { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
html.lzp5 .z-ef-tape article.is-target {
  box-shadow: inset 0 0 0 1.5px #0f7a45;
}
html.lzp5 .z-ef-target {
  display: grid;
  gap: 0.4rem;
  margin: 0.05rem 0 0.1rem;
  padding: 0.85rem 0.9rem 0.9rem;
  background: #f2f2f7;
  border-radius: 12px;
}
html.lzp5 .z-ef-target-kicker {
  margin: 0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #0f7a45;
}
html.lzp5 .z-ef-target-lead {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -0.02em;
  color: #1d1d1f;
  line-height: 1.3;
}
html.lzp5 .z-ef-seg {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 3px;
  background: #e5e5ea;
  border-radius: 10px;
  padding: 3px;
}
html.lzp5 .z-ef-seg button {
  appearance: none;
  border: 0;
  background: transparent;
  font-family: Inter, system-ui, sans-serif;
  color: #6e6e73;
  cursor: pointer;
  border-radius: 8px;
  padding: 0.45rem 0.1rem 0.4rem;
  min-height: 2.55rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
}
html.lzp5 .z-ef-seg button.is-on {
  background: #ffffff;
  color: #0f7a45;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.08);
}
html.lzp5 .z-ef-seg-n {
  font-size: 15px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
}
html.lzp5 .z-ef-seg-u {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.72;
}
html.lzp5 .lzp-hero .z-ef-target .lzp-caption {
  margin: 0;
  line-height: 1.4;
}
html.lzp5 .z-ef-flag-note {
  margin: 0 0 0.45rem;
  font-size: 12px;
  line-height: 1.45;
  color: #6e6e73;
}
html.lzp5 .z-lv-radar .z-sankey-foot {
  font-size: 10px;
  color: #86868b;
  line-height: 1.45;
  margin: 0.2rem 0.35rem 0.15rem;
}

/* —— Apple-style flow (comparison skin: §12.10 cash flow, §12.9 mix) —— */
html.lzp5 .z-cf-seg {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  background: #f2f2f7;
  border-radius: 9px;
  padding: 2px;
  gap: 1px;
}
html.lzp5 .z-cf-seg button {
  appearance: none;
  border: 0;
  background: transparent;
  font-family: Inter, system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: -0.01em;
  padding: 5px 12px;
  border-radius: 7px;
  color: #6e6e73;
  cursor: pointer;
  line-height: 1.2;
}
html.lzp5 .z-cf-seg button.is-on {
  background: #ffffff;
  color: #1d1d1f;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.1);
}
html.lzp5 .z-sankey-inline {
  background: linear-gradient(180deg, #fbfbfd 0%, #ffffff 72%);
  border-radius: 12px;
  padding: 0.35rem 0.15rem 0.15rem;
}
html.lzp5 .z-sankey-inline .z-sankey-foot {
  font-size: 10px;
  color: #86868b;
  line-height: 1.45;
  margin: 0.2rem 0.35rem 0.15rem;
}
html.lzp5 .z-sankey-inline svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

/* Dashboard: three questions, then quieter cells — not a 13-cell dump */
html.lzp5 .z-dash-q {
  font-size: 0.98rem;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0.1rem 0 0.15rem;
}
html.lzp5 .z-dash-questions,
html.lzp5 .z-dash-quiet {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
  margin-top: 1.15rem;
}
@media (min-width: 768px) {
  html.lzp5 .z-dash-questions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  html.lzp5 .z-dash-quiet {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  html.lzp5 .z-dash-questions .z-lv-pte,
  html.lzp5 .z-dash-quiet .z-lv-pte {
    grid-template-columns: 1fr;
  }
}
html.lzp5 .z-dash-quiet {
  margin-top: 1.5rem;
}

/* Life Vision: edit the six catalog goals (never add/delete a pillar) */
html.lzp5 .z-lv-closed {
  font-size: 11px;
  line-height: 1.4;
  color: var(--z-label);
}
html.lzp5 .z-lv-hint,
html.lzp5 .z-lv-empty-goal {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--z-ink);
  margin-top: 0.5rem;
}
html.lzp5 .z-lv-notice {
  margin: -0.5rem 0 1.25rem;
  padding: 0.65rem 0.85rem;
  background: var(--z-plot);
  border-left: 3px solid var(--z-pillar-family);
  font-size: 0.8125rem;
  line-height: 1.4;
}
html.lzp5 .z-lv-vision {
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--z-grid);
}
html.lzp5 .z-lv-vision-kicker {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
  margin-bottom: 0.35rem;
}
html.lzp5 .z-lv-form label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
  margin-top: 0.35rem;
}
html.lzp5 .z-lv-form textarea.field-line {
  min-height: 3.1rem;
  resize: vertical;
}
html.lzp5 .z-lv-ticks {
  display: flex;
  gap: 0.35rem;
  margin: 0.55rem 0 0.25rem;
}
html.lzp5 .z-lv-ticks i {
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  width: 1.45rem;
  height: 1.45rem;
  display: grid;
  place-items: center;
  border-radius: 2px;
  background: var(--z-plot);
  color: var(--z-label);
}
html.lzp5 .z-lv-ticks i.is-on {
  color: #fff;
}
html.lzp5 [data-pillar="money"] .z-lv-ticks i.is-on { background: var(--z-pillar-money); }
html.lzp5 [data-pillar="family"] .z-lv-ticks i.is-on { background: var(--z-pillar-family); }
html.lzp5 [data-pillar="health"] .z-lv-ticks i.is-on { background: var(--z-pillar-health); }
html.lzp5 [data-pillar="learning"] .z-lv-ticks i.is-on { background: var(--z-pillar-learning); }
html.lzp5 [data-pillar="dreams"] .z-lv-ticks i.is-on { background: var(--z-pillar-dreams); }
html.lzp5 [data-pillar="friends"] .z-lv-ticks i.is-on { background: var(--z-pillar-friends); }
html.lzp5 .z-lv-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  margin-top: 0.55rem;
}
html.lzp5 .z-hh-sit {
  display: grid;
  gap: 0.7rem;
  margin: 0.85rem 0.35rem 0.15rem;
}
html.lzp5 .z-hh-sit-row {
  display: grid;
  grid-template-columns: 4.2rem minmax(0, 1fr) auto;
  gap: 0.55rem 0.75rem;
  align-items: center;
}
html.lzp5 .z-hh-sit-k {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-hh-sit-track {
  position: relative;
  height: 8px;
  background: var(--z-plot);
  border-radius: 99px;
}
html.lzp5 .z-hh-sit-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  background: var(--z-pillar-health);
  border-radius: 99px;
  opacity: 0.88;
}
html.lzp5 .z-hh-sit-band {
  position: absolute;
  top: -3px;
  bottom: -3px;
  background: rgba(11, 28, 48, 0.07);
  border-left: 1px dashed #86868b;
  border-right: 1px dashed #86868b;
  border-radius: 2px;
}
html.lzp5 .z-hh-sit-mark {
  position: absolute;
  top: 50%;
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border-radius: 99px;
  background: var(--z-ink);
  border: 1.5px solid #ffffff;
  box-shadow: 0 0 0 1px var(--z-ink);
}
html.lzp5 .z-hh-sit-n {
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--z-ink);
  white-space: nowrap;
}
html.lzp5 .z-hh-scale {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 1.25rem;
  margin-top: 0.35rem;
}
html.lzp5 .z-hh-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: center;
  margin: 0.85rem 0 0.5rem;
}
html.lzp5 .z-stk-lots-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem 1rem;
  margin-bottom: 0.35rem;
}
html.lzp5 .z-ins-more {
  margin-top: 0.35rem;
}
html.lzp5 .z-ins-more summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #1d1d1f;
  list-style: none;
}
html.lzp5 .z-ins-more summary::-webkit-details-marker { display: none; }
html.lzp5 .z-ins-more summary::after {
  content: " ·";
  color: #86868b;
}
html.lzp5 .z-ins-more[open] summary {
  margin-bottom: 0.35rem;
}
html.lzp5 .z-stk-row-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0;
  white-space: nowrap;
}
html.lzp5 .z-stk-row-actions .z-lv-ghost {
  padding: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  text-decoration: none;
  line-height: inherit;
  color: var(--z-label);
}
html.lzp5 .z-stk-row-actions .z-lv-ghost + .z-lv-ghost {
  margin-left: 0.4rem;
  padding-left: 0.45rem;
  border-left: 1px solid var(--z-grid);
}
html.lzp5 .z-bs-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1.1rem;
  align-items: center;
  padding: 0.15rem 0 0.25rem;
}
html.lzp5 .z-bs-flag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 13px;
  font-weight: 600;
  color: #1d1d1f;
}
html.lzp5 td a[data-path="/emergency-fund"],
html.lzp5 td a[data-path="/education"],
html.lzp5 td a[data-path="/life-goals"],
html.lzp5 td a[data-path="/investments/stocks"],
html.lzp5 td a[data-path="/investments/secure"],
html.lzp5 td a[data-path="/property"],
html.lzp5 td a[data-path="/cash"],
html.lzp5 td a[data-path="/debts"] {
  font-weight: 700;
}
html.lzp5 .z-bs-flag input {
  margin: 0;
}
html.lzp5 .z-stk-legs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin: 0.15rem 0 0.7rem;
}
html.lzp5 .z-stk-legs article {
  padding: 0.7rem 0.75rem 0.8rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--z-grid);
}
html.lzp5 .z-stk-gap {
  margin-top: 0.85rem;
}
html.lzp5 .z-stk-gap-track {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  width: 4.5rem;
  height: 8px;
}
html.lzp5 .z-stk-gap-neg,
html.lzp5 .z-stk-gap-pos {
  display: block;
  height: 100%;
  position: relative;
  background: #f3f4f6;
}
html.lzp5 .z-stk-gap-neg i,
html.lzp5 .z-stk-gap-pos i {
  display: block;
  height: 100%;
}
html.lzp5 .z-stk-gap-neg i {
  margin-left: auto;
  background: var(--z-loss);
}
html.lzp5 .z-stk-gap-pos i {
  background: var(--z-profit);
}
html.lzp5 .z-stk-gap-tag {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--z-profit);
  margin-left: 0.35rem;
}
html.lzp5 .z-stk-gap-tag.is-off {
  color: var(--z-loss);
}
html.lzp5 .z-stk-gap-foot td {
  font-weight: 700;
  border-top: 1px solid var(--z-grid);
}
@media (max-width: 640px) {
  html.lzp5 .z-stk-legs { grid-template-columns: 1fr; }
}
html.lzp5 tr[data-hh-log-edit],
html.lzp5 tr[data-lx-log-edit] {
  cursor: pointer;
}
html.lzp5 .z-hh-file {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-hh-file input[type="file"] {
  display: block;
  margin-top: 0.35rem;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--z-ink);
}
@media (max-width: 640px) {
  html.lzp5 .z-hh-scale { grid-template-columns: 1fr; }
}
html.lzp5 .z-lv-ghost {
  background: transparent;
  border: 0;
  padding: 0.15rem 0;
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--z-label);
  text-decoration: none;
  cursor: pointer;
  line-height: 1.25;
}
html.lzp5 a.z-lv-ghost {
  display: inline-flex;
  align-items: center;
}
html.lzp5 .z-lv-ghost:hover,
html.lzp5 .z-lv-ghost:focus-visible {
  color: var(--z-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}
html.lzp5 .z-lv-ghost:focus-visible {
  outline: 2px solid #0b1c30;
  outline-offset: 2px;
}
html.lzp5 .z-lv-card-actions .z-lv-ghost + .z-lv-ghost {
  margin-left: 0.15rem;
  padding-left: 0.55rem;
  border-left: 1px solid var(--z-grid);
}
html.lzp5 .z-ob-pages {
  display: flex;
  flex-direction: column;
  margin: 0 0 1.25rem;
  border: 1px solid color-mix(in srgb, var(--z-grid) 92%, transparent);
  background: var(--z-card);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.92) inset;
}
html.lzp5 .z-ob-how {
  margin: 0;
  padding: 0.5rem 0.75rem 0.35rem;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-ob-pages-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  border-top: 1px solid color-mix(in srgb, var(--z-grid) 70%, transparent);
}
html.lzp5 .z-ob-pages-row button,
html.lzp5 .z-ob-pages-row a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 0.12rem;
  width: 100%;
  margin: 0;
  padding: 0.2rem 0.45rem 0.7rem;
  min-height: 3.15rem;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
  text-decoration: none;
  text-align: center;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
}
html.lzp5 .z-ob-pages-row button + button,
html.lzp5 .z-ob-pages-row a + a {
  border-left: 1px solid color-mix(in srgb, var(--z-grid) 70%, transparent);
}
html.lzp5 .z-ob-pane-k {
  display: block;
  margin: 0;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.2;
  color: inherit;
  opacity: 0.72;
}
html.lzp5 .z-ob-pane-k-spacer {
  opacity: 0;
}
html.lzp5 .z-ob-pane-lab {
  display: block;
}
html.lzp5 .z-ob-pages-row button.is-on,
html.lzp5 .z-ob-pages-row a.is-on {
  color: var(--z-on-primary, #fff);
  background: var(--z-ink, #0b1c30);
}
html.lzp5 .z-ob-pages-row button.is-on .z-ob-pane-k,
html.lzp5 .z-ob-pages-row a.is-on .z-ob-pane-k {
  opacity: 0.88;
}
html.lzp5 .z-ob-pages-row button:focus-visible,
html.lzp5 .z-ob-pages-row a:focus-visible {
  outline: 2px solid #0b1c30;
  outline-offset: -2px;
}
html.lzp5 .z-ob-top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
  padding: 0.55rem 0.75rem 0.65rem;
  background: var(--z-card);
  border: 1px solid color-mix(in srgb, var(--z-grid) 92%, transparent);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.92) inset,
    0 1px 2px rgba(11, 28, 48, 0.04),
    0 12px 28px -18px rgba(33, 49, 69, 0.42);
}
html.lzp5 .z-ob-rail {
  display: flex;
  flex: 1 1 18rem;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
}
html.lzp5 .z-ob-rail button {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  padding: 0.15rem 0.2rem 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--z-label);
  min-width: 0;
  position: relative;
}
html.lzp5 .z-ob-rail button + button::before {
  content: "";
  position: absolute;
  left: 0;
  right: 50%;
  top: 0.7rem;
  height: 1px;
  background: color-mix(in srgb, var(--z-grid) 80%, transparent);
  pointer-events: none;
}
html.lzp5 .z-ob-rail button + button.is-done::before,
html.lzp5 .z-ob-rail button.is-done + button::before {
  background: var(--z-ink);
}
html.lzp5 .z-ob-rail-n {
  width: 1.4rem;
  height: 1.4rem;
  display: grid;
  place-items: center;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
  background: var(--z-plot);
  color: var(--z-ink);
  position: relative;
  z-index: 1;
}
html.lzp5 .z-ob-rail button.is-done .z-ob-rail-n {
  background: var(--z-ink);
  color: #fff;
}
html.lzp5 .z-ob-rail button.is-on .z-ob-rail-n {
  box-shadow: 0 0 0 2px var(--z-canvas, #f5f8ff), 0 0 0 3px var(--z-ink);
}
html.lzp5 .z-ob-rail-t {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
  text-align: center;
}
html.lzp5 .z-ob-rail button.is-on {
  color: var(--z-ink);
}
html.lzp5 .z-ob-rail button.is-done {
  color: var(--z-ink);
}
html.lzp5 .z-ob-rail button:focus-visible {
  outline: 2px solid #0b1c30;
  outline-offset: 3px;
}
html.lzp5 .z-ob-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  margin: 0 0 1.15rem;
}
html.lzp5 .z-steps {
  padding: 0.35rem 1.35rem 0.5rem;
}
html.lzp5 .z-ob-skip-now {
  background: transparent;
  border: 0;
  padding: 0.2rem 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  flex: 0 0 auto;
}
html.lzp5 .z-ob-panel {
  background: var(--z-card);
  padding: 0.75rem 0.85rem 0.85rem;
}
html.lzp5 .z-ob-panel h2 {
  font-family: inherit;
  font-size: 1.1rem;
  line-height: 1.25;
  margin-top: 0.12rem;
}
html.lzp5 .z-ob-you .z-lv-form.z-ob-form label:first-of-type {
  margin-top: 0;
}
html.lzp5 .z-ob-k {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--z-label);
  margin: 0 0 0.2rem;
}
html.lzp5 .z-ob-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
}
html.lzp5 .z-ob-mark {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-status-idle);
  background: var(--z-status-idle-container);
  padding: 0.2rem 0.5rem;
}
html.lzp5 .z-ob-mark.is-done {
  color: var(--z-status-on-track, #0f7a45);
  background: var(--z-status-on-track-container);
}
html.lzp5 .z-ob-you {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
  align-items: start;
}
html.lzp5 .z-ob-hand > .lzp-caption {
  margin: 0 0 0.65rem;
}
html.lzp5 .z-ob-next {
  margin: 1.15rem 0 0;
  font-size: 0.875rem;
  color: var(--z-label);
}
html.lzp5 .z-ob-next a {
  color: var(--z-ink);
  font-weight: 700;
  text-underline-offset: 3px;
}
html.lzp5 .z-ob-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}
html.lzp5 .z-ob-cards > article {
  padding: 0.75rem 0.85rem 0.85rem;
}
html.lzp5 .z-ob-cards > article p.text-sm {
  color: var(--z-label);
}
html.lzp5 .z-ob-file-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: center;
}
html.lzp5 .z-ob-file {
  font-size: 12px;
  font-weight: 600;
  color: var(--z-label);
}
html.lzp5 .z-ob-file input {
  display: block;
  margin-top: 0.35rem;
  font-size: 12px;
}
html.lzp5 .z-ob-preview-wrap { overflow-x: auto; margin-top: 0.35rem; }
html.lzp5 .z-ob-preview {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
html.lzp5 .z-ob-preview th,
html.lzp5 .z-ob-preview td {
  border-bottom: 1px solid var(--z-grid);
  padding: 0.22rem 0.5rem;
  text-align: left;
}
html.lzp5 .z-ob-preview th {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-ob-saved {
  list-style: none;
  padding: 0.75rem 1rem;
  margin: 1rem 0 0;
  display: grid;
  gap: 0.4rem;
  font-size: 0.875rem;
}
html.lzp5 .z-ob-demo-banner {
  margin: 0 0 1.1rem;
  padding: 0.7rem 0.95rem;
  font-size: 0.8125rem;
  line-height: 1.4;
}
html.lzp5 .z-lv-form.z-ob-form fieldset {
  display: contents;
}
html.lzp5 .z-ob-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}
html.lzp5 .z-ob-flow-item {
  padding: 0.75rem 0.85rem 0.9rem;
}
html.lzp5 .z-ob-flow-n {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--z-label);
  margin: 0 0 0.45rem;
}
html.lzp5 .z-ob-flow-field {
  display: grid;
  gap: 0.25rem;
  margin: 0.55rem 0 0.5rem;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-ob-import-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  margin-top: 0.75rem;
  position: relative;
}
html.lzp5 .z-ob-import-actions .cta-metal {
  margin: 0;
}
html.lzp5 .z-ob-import-actions .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
html.lzp5 .z-ob-import-actions a.z-lv-ghost {
  display: inline-flex;
  align-items: center;
}
html.lzp5 .z-ob-import-preview {
  list-style: none;
  padding: 0.65rem 0.75rem;
  margin: 0.35rem 0 0;
  display: grid;
  gap: 0.2rem;
  font-size: 0.875rem;
  background: var(--z-plot);
  border: 1px solid var(--z-grid);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.72) inset;
}
html.lzp5 .z-lv-form.z-ob-paste textarea.field-line {
  min-height: 4.75rem;
}
html.lzp5 .z-lv-form.z-ob-form label {
  margin-top: 0;
}
html.lzp5 .z-ob-panel .z-lv-form.z-ob-form,
html.lzp5 .z-ob-you .z-lv-form.z-ob-form {
  margin-top: 0.55rem;
}
html.lzp5 .z-ob-panel .z-lv-form.z-ob-form.mt-6 {
  margin-top: 0.65rem;
}
html.lzp5 .z-ob-paste {
  padding: 0.7rem 0.8rem 0.8rem;
  margin-top: 0.75rem;
}
@media (max-width: 959px) {
  html.lzp5 .z-ob-you,
  html.lzp5 .z-ob-flow { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  html.lzp5 .z-ob-rail { flex-wrap: wrap; }
  html.lzp5 .z-ob-rail button { flex: 1 1 30%; }
  html.lzp5 .z-ob-rail button + button::before { display: none; }
  html.lzp5 .z-ob-cards { grid-template-columns: 1fr; }
}
/* —— Sample households header control (not the login avatar) —— */
html.lzp5 .z-lives-btn {
  color: var(--z-label);
  perspective: 360px;
}
html.lzp5 .z-lives-btn:hover { color: var(--z-ink); }
html.lzp5 .z-lives-btn.is-on {
  background: var(--z-status-risk-container);
  color: var(--z-status-risk);
}
html.lzp5 .z-lives-btn > .material-symbols-outlined {
  display: inline-block;
  transform-origin: 18% 55%;
  transform-style: preserve-3d;
  animation: z-lives-flip 2.6s ease-in-out infinite;
}
html.lzp5 .z-lives-btn:hover > .material-symbols-outlined,
html.lzp5 .z-lives-btn:focus-visible > .material-symbols-outlined {
  animation-duration: 1.35s;
}
html.lzp5 .z-lives-now { color: var(--z-status-risk); }
@keyframes z-lives-flip {
  0%, 100% {
    transform: translate3d(0, 0, 0) rotate(-4deg) rotateY(0deg) scale(1);
  }
  22% {
    transform: translate3d(0, -2px, 8px) rotate(-10deg) rotateY(-48deg) scale(1.08);
  }
  44% {
    transform: translate3d(0, 0.5px, 0) rotate(3deg) rotateY(12deg) scale(1.03);
  }
  66% {
    transform: translate3d(0, -1px, 5px) rotate(-7deg) rotateY(-26deg) scale(1.05);
  }
}
@media (prefers-reduced-motion: reduce) {
  html.lzp5 .z-lives-btn > .material-symbols-outlined {
    animation: none;
  }
}

html.lzp5 .z-season-top {
  display: grid;
  gap: 0.7rem;
}
html.lzp5 .z-season-how {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
  margin: 0;
}
html.lzp5 .z-season-top + .z-season-rail {
  margin-top: -1.35rem;
}
html.lzp5 .z-season-rail {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.45rem;
  position: sticky;
  top: 0;
  z-index: 5;
  padding: 0.35rem 0 0.55rem;
  background: linear-gradient(180deg, var(--z-canvas, #f5f8ff) 70%, transparent);
}
html.lzp5 .z-season-rail button {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  align-items: flex-start;
  text-align: left;
  padding: 0.7rem 0.75rem 0.8rem;
  border: 1px solid var(--z-grid);
  background: var(--z-card);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.92) inset, 0 1px 2px rgba(11, 28, 48, 0.04);
  cursor: pointer;
  color: var(--z-ink);
}
html.lzp5 .z-season-rail button:focus-visible {
  outline: 2px solid #0b1c30;
  outline-offset: 2px;
}
html.lzp5 .z-season-rail button.is-on {
  background: #0b1c30;
  border-color: #0b1c30;
  color: #fff;
  box-shadow: none;
}
html.lzp5 .z-season-rail button.is-seed:not(.is-on) {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.92) inset, inset 0 -2px 0 #006d35;
}
html.lzp5 .z-season-decade {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
html.lzp5 .z-season-age,
html.lzp5 .z-season-who {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.72;
  line-height: 1.25;
}
html.lzp5 .z-season-rail button.is-on .z-season-age,
html.lzp5 .z-season-rail button.is-on .z-season-who {
  opacity: 0.88;
}
html.lzp5 .z-season-shift {
  margin: 0.85rem 0 0;
  padding: 0.65rem 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
}
html.lzp5 .z-season-shift span {
  display: block;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
  margin-bottom: 0.2rem;
}
html.lzp5 .z-season-mix {
  display: flex;
  height: 1.15rem;
  overflow: hidden;
  border-radius: 2px;
  background: var(--z-plot);
}
html.lzp5 .z-season-mix span { min-width: 2px; }
html.lzp5 .z-season-mix [data-pillar="money"],
html.lzp5 .z-season-mix-key [data-pillar="money"] { background: var(--z-pillar-money); }
html.lzp5 .z-season-mix [data-pillar="family"],
html.lzp5 .z-season-mix-key [data-pillar="family"] { background: var(--z-pillar-family); }
html.lzp5 .z-season-mix [data-pillar="health"],
html.lzp5 .z-season-mix-key [data-pillar="health"] { background: var(--z-pillar-health); }
html.lzp5 .z-season-mix [data-pillar="learning"],
html.lzp5 .z-season-mix-key [data-pillar="learning"] { background: var(--z-pillar-learning); }
html.lzp5 .z-season-mix [data-pillar="dreams"],
html.lzp5 .z-season-mix-key [data-pillar="dreams"] { background: var(--z-pillar-dreams); }
html.lzp5 .z-season-mix [data-pillar="friends"],
html.lzp5 .z-season-mix-key [data-pillar="friends"] { background: var(--z-pillar-friends); }
html.lzp5 .z-season-mix-key {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  margin-top: 0.7rem;
  padding: 0;
  list-style: none;
  font-size: 12px;
}
html.lzp5 .z-season-mix-key li {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
html.lzp5 .z-season-mix-key i {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 1px;
  display: inline-block;
}
html.lzp5 .z-season-table-wrap { overflow-x: auto; }
html.lzp5 .z-season-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
html.lzp5 .z-season-table th,
html.lzp5 .z-season-table td {
  padding: 0.22rem 0.5rem;
  border-bottom: 1px solid var(--z-grid);
  text-align: left;
}
html.lzp5 .z-season-table th {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .z-season-table td:last-child,
html.lzp5 .z-season-table th:last-child { text-align: right; }
html.lzp5 .z-season-vision { display: grid; gap: 0.45rem; }
html.lzp5 .z-season-vrow {
  display: grid;
  grid-template-columns: 5.5rem 1.5rem 1fr;
  gap: 0.5rem;
  align-items: center;
  font-size: 12px;
}
html.lzp5 .z-season-vrow b {
  display: block;
  height: 0.45rem;
  background: var(--z-plot);
  border-radius: 2px;
  overflow: hidden;
}
html.lzp5 .z-season-vrow i {
  display: block;
  height: 100%;
  background: currentColor;
}
html.lzp5 .z-season-vrow[data-pillar="money"] { color: var(--z-pillar-money); }
html.lzp5 .z-season-vrow[data-pillar="family"] { color: var(--z-pillar-family); }
html.lzp5 .z-season-vrow[data-pillar="health"] { color: var(--z-pillar-health); }
html.lzp5 .z-season-vrow[data-pillar="learning"] { color: var(--z-pillar-learning); }
html.lzp5 .z-season-vrow[data-pillar="dreams"] { color: var(--z-pillar-dreams); }
html.lzp5 .z-season-vrow[data-pillar="friends"] { color: var(--z-pillar-friends); }
@media (max-width: 767px) {
  html.lzp5 .z-season-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html.lzp5 .z-season-title { display: none; }
  html.lzp5 .z-season-rail button { padding: 0.55rem 0.6rem 0.65rem; }
}

/* —— Density: one viewport shell, compact nav, tighter pages (signed-in only) —— */
html.lzp5:has(#app-shell),
html.lzp5:has(#app-shell) body {
  height: 100dvh;
  overflow: hidden;
}
html.lzp5 #workspace,
html.lzp5 #sidebar-nav,
html.lzp5 #mobile-drawer {
  scrollbar-width: thin;
}
html.lzp5 #sidebar .material-symbols-outlined,
html.lzp5 #drawer-nav .material-symbols-outlined {
  font-size: 1.125rem;
}
html.lzp5 #workspace #main .gap-8 {
  gap: 1.15rem;
}
html.lzp5 #workspace #main .mt-8 {
  margin-top: 1.1rem;
}
html.lzp5 #workspace #main .mb-8,
html.lzp5 #workspace #main .z-lv-purpose {
  margin-bottom: 0.75rem;
}
html.lzp5 #workspace #main .z-lv-purpose {
  margin-top: 0;
}
html.lzp5 #workspace #main .p-6 {
  padding: 0.72rem 0.82rem;
}
html.lzp5 #workspace #main .min-h-\[480px\] {
  min-height: 0;
}
html.lzp5 #workspace #main .h-\[320px\] {
  height: 13.5rem;
}
html.lzp5 #workspace #main .h-56 {
  height: 10.5rem;
}
html.lzp5 #workspace #main .text-4xl {
  font-size: 1.75rem;
  line-height: 1.15;
}

/* Compact fields: beat v4 wells + Tailwind forms plugin (landing + signed-in) */
html.lzp5 .field-line,
html.lzp5 input.field-line,
html.lzp5 select.field-line,
html.lzp5 textarea.field-line,
html.lzp5 [type="text"].field-line,
html.lzp5 [type="email"].field-line,
html.lzp5 [type="number"].field-line,
html.lzp5 [type="password"].field-line,
html.lzp5 [type="search"].field-line,
html.lzp5 [type="date"].field-line,
html.lzp5 [type="month"].field-line {
  appearance: none;
  -webkit-appearance: none;
  font-size: 13px;
  line-height: 1.25;
  padding: 0.26rem 0.48rem;
  margin-top: 0.12rem;
  min-height: 1.875rem;
  height: auto;
  border-radius: 0.2rem;
  background-color: var(--z-plot);
  border: 1px solid var(--z-grid);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}
html.lzp5 select.field-line {
  height: 1.875rem;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 0.48rem;
  padding-right: 1.5rem;
  line-height: 1.875rem;
  background-color: var(--z-plot);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23747878' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");
  background-position: right 0.3rem center;
  background-size: 0.95rem 0.95rem;
  background-repeat: no-repeat;
}
html.lzp5 input.field-line[type="date"],
html.lzp5 input.field-line[type="month"] {
  height: auto;
  min-height: 1.875rem;
  line-height: 1.25;
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
}
html.lzp5 .field-line:focus,
html.lzp5 input.field-line:focus,
html.lzp5 select.field-line:focus,
html.lzp5 textarea.field-line:focus {
  outline: none;
  border-color: #006d35;
  box-shadow: 0 0 0 2px rgba(141, 249, 168, 0.35);
  background-color: var(--z-card);
}
html.lzp5 .z-lv-form textarea.field-line {
  min-height: 3.1rem;
  height: auto;
  line-height: 1.4;
}
html.lzp5 .lzp-hero .z-ptz-form .field-line {
  font-size: 12px;
  padding: 0.2rem 0.38rem;
  min-height: 1.7rem;
}
html.lzp5 .lzp-hero .z-ptz-form select.field-line {
  height: 1.7rem;
  line-height: 1.7rem;
}

/* Compact cards (Tailwind p-6 = 1.5rem, p-8 = 2rem) */
html.lzp5 .lzp-card.p-8,
html.lzp5 form.lzp-card.p-8,
html.lzp5 .lzp-result.p-8 {
  padding: 1.05rem 1.15rem;
}
html.lzp5 #philosophy .lzp-card.p-8,
html.lzp5 #estimator .lzp-card.p-8,
html.lzp5 #estimator .lzp-result.p-8 {
  padding: 1.2rem 1.3rem 1.35rem;
}
html.lzp5 .lzp-card.p-6,
html.lzp5 #add-scrim aside.p-6 {
  padding: 0.72rem 0.82rem;
}
html.lzp5 .lzp-card.p-5 {
  padding: 0.62rem 0.72rem;
}
html.lzp5 .lzp-card.p-4 {
  padding: 0.55rem 0.65rem;
}
html.lzp5 #fire-form .space-y-6 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.7rem;
}
html.lzp5 #fire-form .mt-8 {
  margin-top: 0.85rem;
}

/* Settings, drawer, and stacked form labels */
html.lzp5 #main label.block.text-sm,
html.lzp5 #add-scrim label.block.text-sm,
html.lzp5 #cmd-scrim label {
  font-size: 12px;
  line-height: 1.3;
}
html.lzp5 #main label.block.text-sm.mb-3,
html.lzp5 #add-scrim label.block.mb-4 {
  margin-bottom: 0.5rem;
}
html.lzp5 #add-scrim label.block.mb-6 {
  margin-bottom: 0.65rem;
}
html.lzp5 .z-lv-card-actions .cta-metal,
html.lzp5 #main form .cta-metal,
html.lzp5 #add-scrim .cta-metal {
  padding: 0.38rem 0.85rem;
}
html.lzp5 .z-ptz-traj {
  max-height: 16rem;
}
html.lzp5 .z-lv-verts {
  margin-top: 0.65rem;
}
html.lzp5 .lzp-table tbody td .font-bold {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--z-label);
}
html.lzp5 .lzp-table tbody td strong {
  font-size: 12px;
}
html.lzp5 [data-bs-accts-section] .lzp-caption,
html.lzp5 [data-bs-table] .lzp-caption {
  margin-top: 0.35rem;
  margin-bottom: 0.45rem;
}
html.lzp5 .lzp-table th.p-3,
html.lzp5 .lzp-table td.p-3,
html.lzp5 #main table th.p-3,
html.lzp5 #main table td.p-3,
html.lzp5 .z-fire-status th.p-3,
html.lzp5 .z-fire-status td.p-3 {
  padding: 0.22rem 0.5rem;
}
html.lzp5 [data-bs-table] .lzp-table th,
html.lzp5 [data-bs-table] .lzp-table td {
  white-space: nowrap;
}
html.lzp5 .lzp-table td a,
html.lzp5 #main table td a {
  font-size: inherit;
  line-height: inherit;
}
html.lzp5 .lzp-table .z-col-act,
html.lzp5 #main table .z-col-act {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
html.lzp5 .z-security-block + .z-security-block,
html.lzp5 .z-settings-block + .z-settings-block {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--z-grid);
}
html.lzp5 .z-me-avatar {
  position: relative;
  display: inline-block;
  width: 4rem;
  height: 4rem;
  cursor: pointer;
}
html.lzp5 .z-me-avatar-disk {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 999px;
  background: var(--z-plot);
  overflow: hidden;
  font-size: 0.875rem;
  font-weight: 700;
}
html.lzp5 .z-me-avatar input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
html.lzp5 .z-me-avatar input:disabled {
  cursor: not-allowed;
}
html.lzp5 .z-security-switch {
  appearance: none;
  width: 2.55rem;
  height: 1.4rem;
  margin: 0;
  border: 0;
  border-radius: 99px;
  background: var(--z-grid);
  position: relative;
  vertical-align: middle;
  cursor: pointer;
  flex-shrink: 0;
}
html.lzp5 .z-security-switch::after {
  content: "";
  position: absolute;
  top: 0.15rem;
  left: 0.15rem;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 99px;
  background: #fff;
  transition: transform 0.15s ease;
}
html.lzp5 .z-security-switch:checked {
  background: var(--z-ink);
}
html.lzp5 .z-security-switch:checked::after {
  transform: translateX(1.15rem);
}
html.lzp5 .z-security-switch:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
html.lzp5 .z-security-qr-wrap {
  width: 10.5rem;
  height: 10.5rem;
  padding: 0.45rem;
  background: #fff;
  border: 1px solid var(--z-grid);
}
html.lzp5 .z-security-qr {
  width: 100%;
  height: 100%;
  display: block;
}
html.lzp5 .z-security-codes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 1rem;
  margin: 0;
  padding-left: 1.1rem;
  font-variant-numeric: tabular-nums;
  font-size: 0.8125rem;
}

/* Public landing: signed-in books, summarized */
html.lzp5 .z-sys {
  display: grid;
  gap: 0.7rem;
}
@media (min-width: 768px) {
  html.lzp5 .z-sys { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1100px) {
  html.lzp5 .z-sys { grid-template-columns: 1fr 1fr 1fr; }
}
html.lzp5 .z-sys-group {
  padding: 0.85rem 0.95rem 0.95rem;
  border-top: 3px solid var(--z-ink);
}
html.lzp5 .z-sys-group[data-sys="life"] { border-top-color: var(--z-pillar-family); }
html.lzp5 .z-sys-group[data-sys="fire"] { border-top-color: var(--z-pillar-money); }
html.lzp5 .z-sys-group[data-sys="wealth"] { border-top-color: var(--z-asset); }
html.lzp5 .z-sys-group[data-sys="invest"] { border-top-color: var(--z-pillar-dreams); }
html.lzp5 .z-sys-group--wide {
  grid-column: 1 / -1;
}
@media (min-width: 1100px) {
  html.lzp5 .z-sys-group--wide { grid-column: span 2; }
}
html.lzp5 .z-sys-k {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--z-label);
  margin: 0;
}
html.lzp5 .z-sys-group h3 {
  font-size: 1.15rem;
  line-height: 1.25;
  margin: 0.2rem 0 0.35rem;
}
html.lzp5 .z-sys-lead {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--z-label);
  margin: 0;
}
html.lzp5 .z-sys-list {
  list-style: none;
  margin: 0.65rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
html.lzp5 .z-sys-list li {
  display: grid;
  gap: 0.12rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--z-grid);
}
html.lzp5 .z-sys-list li:first-child {
  border-top: 0;
  padding-top: 0;
}
html.lzp5 .z-sys-page {
  font-size: 0.8125rem;
  font-weight: 800;
  color: var(--z-ink);
}
html.lzp5 .z-sys-why {
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--z-label);
}
html.lzp5 .z-sys-sub {
  display: grid;
  gap: 0.85rem;
  margin-top: 0.75rem;
}
@media (min-width: 720px) {
  html.lzp5 .z-sys-group--wide .z-sys-sub {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem 1.1rem;
  }
}
html.lzp5 .z-sys-sub h4 {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--z-label);
  margin: 0 0 0.4rem;
}
html.lzp5 .z-sys-ritual {
  display: grid;
  gap: 0.65rem;
  margin-top: 0.7rem;
}
@media (min-width: 768px) {
  html.lzp5 .z-sys-ritual { grid-template-columns: 1fr 1fr; }
}
html.lzp5 .z-sys-ritual article {
  padding: 0.75rem 0.9rem;
}

html.lzp5 .z-lv-notice--ok {
  background: var(--z-status-on-track-container);
  border-left-color: var(--z-status-on-track);
  color: var(--z-status-on-track);
}

html.lzp5 input.field-line[type="date"] {
  padding-right: 1.7rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Crect x='3.2' y='4.2' width='13.6' height='12.4' rx='1.4' stroke='%23747878' stroke-width='1.4'/%3E%3Cpath stroke='%23747878' stroke-width='1.4' d='M3.2 8.2h13.6M7 2.8v2.8M13 2.8v2.8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.35rem center;
  background-size: 0.95rem 0.95rem;
}
html.lzp5 input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0;
  display: none;
}

html.lzp5 .lzp-datepicker {
  position: fixed;
  z-index: 70;
  width: 17.75rem;
  padding: 0.65rem 0.7rem 0.5rem;
  box-sizing: border-box;
}
html.lzp5 .lzp-datepicker-nav {
  display: grid;
  grid-template-columns: 1.75rem minmax(0, 1fr) 5.35rem 1.75rem;
  gap: 0.3rem;
  align-items: center;
  margin-bottom: 0.45rem;
}
html.lzp5 .lzp-datepicker-nav .field-line {
  margin-top: 0;
  width: 100%;
  min-width: 0;
}
html.lzp5 .lzp-datepicker-shift {
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 1px solid var(--z-grid);
  border-radius: 0.2rem;
  background: var(--z-plot);
  color: var(--z-ink);
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
}
html.lzp5 .lzp-datepicker-shift:hover,
html.lzp5 .lzp-datepicker-shift:focus-visible {
  border-color: #006d35;
  outline: none;
}
html.lzp5 .lzp-datepicker-dows,
html.lzp5 .lzp-datepicker-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.12rem;
  text-align: center;
}
html.lzp5 .lzp-datepicker-dows span {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--z-label);
  padding: 0.15rem 0 0.25rem;
}
html.lzp5 .lzp-datepicker-grid button,
html.lzp5 .lzp-datepicker-blank {
  min-height: 1.85rem;
  border: 0;
  border-radius: 0.2rem;
  background: transparent;
  color: var(--z-ink);
  font-family: inherit;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
}
html.lzp5 .lzp-datepicker-grid button:hover:not(:disabled) {
  background: var(--z-plot);
}
html.lzp5 .lzp-datepicker-grid button.is-on {
  background: var(--z-cta);
  color: #fff;
}
html.lzp5 .lzp-datepicker-grid button.is-today:not(.is-on) {
  box-shadow: inset 0 0 0 1px var(--z-status-on-track);
}
html.lzp5 .lzp-datepicker-grid button:disabled {
  color: var(--z-label);
  opacity: 0.4;
  cursor: default;
}
html.lzp5 .lzp-datepicker-foot {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.4rem;
  padding-top: 0.3rem;
  border-top: 1px solid var(--z-grid);
}

html.lzp5.lzp-plus-readonly #main {
  opacity: 0.72;
  pointer-events: none;
}
html.lzp5 .lzp-plus-readonly-panel {
  opacity: 0.72;
  pointer-events: none;
}
html.lzp5.lzp-plus-sleeve-ef [data-cash-acct-new="emergency"],
html.lzp5.lzp-plus-sleeve-edu [data-cash-acct-new="education"] {
  display: none;
}
html.lzp5 #plus-readonly-banner[hidden],
html.lzp5 #plus-readonly-banner.hidden {
  display: none !important;
}
html.lzp5 #plus-readonly-banner:not([hidden]) {
  display: flex;
  position: relative;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem 0.85rem;
  padding: 0.7rem 1.15rem 0.7rem 1.35rem;
  overflow: hidden;
  color: var(--z-ink);
  background: linear-gradient(90deg, var(--z-tick) 0%, var(--z-achieved-container) 42%, var(--z-tick) 220%);
  border-bottom: 1px solid var(--z-achieved);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--z-card) 70%, transparent),
    0 3px 12px color-mix(in srgb, var(--z-achieved) 22%, transparent);
}
html.lzp5 #plus-readonly-banner:not([hidden])::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: linear-gradient(180deg, var(--z-tick) 0%, var(--z-achieved) 100%);
}
html.lzp5 #plus-readonly-banner:not([hidden])::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -40%;
  width: 40%;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--z-card) 60%, transparent), transparent);
  pointer-events: none;
  animation: lzp-plus-sheen 3.4s ease-in-out infinite;
}
html.lzp5 #plus-readonly-banner .plus-readonly-icon {
  position: relative;
  z-index: 1;
  font-size: 1.4rem;
  color: var(--z-achieved);
  font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;
}
html.lzp5 #plus-readonly-banner .plus-readonly-kicker {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.5rem;
  border-radius: 0.125rem;
  background: var(--z-achieved);
  color: var(--z-card);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
html.lzp5 #plus-readonly-banner .plus-readonly-copy {
  position: relative;
  z-index: 1;
  flex: 1 1 12rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--z-ink);
  line-height: 1.35;
}
html.lzp5 #plus-readonly-banner #plus-readonly-cta {
  position: relative;
  z-index: 1;
  margin-left: auto;
  text-decoration: none;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--z-card) 35%, transparent);
}
@keyframes lzp-plus-sheen {
  0% { transform: translateX(0); opacity: 0; }
  18% { opacity: 1; }
  55% { transform: translateX(380%); opacity: 0.85; }
  100% { transform: translateX(380%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html.lzp5 #plus-readonly-banner:not([hidden])::after {
    animation: none;
    display: none;
  }
}
html.lzp5 #plus-upgrade-header[hidden],
html.lzp5 #plus-upgrade-header.hidden {
  display: none !important;
}
html.lzp5 #plus-upgrade-header:not([hidden]) {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  line-height: 1.2;
}
html.lzp5 #plus-upgrade-header .plus-upgrade-narrow {
  display: none;
}
@media (max-width: 40rem) {
  html.lzp5 #plus-upgrade-header .plus-upgrade-wide {
    display: none;
  }
  html.lzp5 #plus-upgrade-header .plus-upgrade-narrow {
    display: inline;
  }
}

html.lzp5 main.lzp-legal-page {
  padding-top: 5.5rem;
}
html.lzp5 article.lzp-legal {
  max-width: 36rem;
}
html.lzp5 article.lzp-legal h1 {
  font-size: 1.25rem;
  font-weight: 700;
}
html.lzp5 article.lzp-legal h2 {
  font-size: 0.875rem;
  font-weight: 700;
}
html.lzp5 article.lzp-legal .lzp-legal-body {
  font-size: 13px;
  line-height: 1.55;
}
