/* ============================================================================
   ZKCAP-X · V3 CANDIDATE · RESPONSIVE RECOMPOSITION
   Layer 6 of 6.
   ----------------------------------------------------------------------------
   Every rule keys off [data-vp] on the viewport frame, resolved by the runtime
   from the frame's measured width (or forced by ?vp=). This means a 390px
   render is identical regardless of the real browser window, and QA does not
   need to resize anything.
   ----------------------------------------------------------------------------
   Mobile is not compressed desktop:
     · desktop multi-column assessment  → mobile single-column step flow
     · desktop contextual drawer        → mobile bottom sheet
     · desktop comparison table         → mobile stacked decision cards
     · desktop mega navigation          → mobile navigation sheet
   ========================================================================== */

/* ===========================================================================
   TABLET — 768 bucket
   ========================================================================== */

[data-vp="768"] .nav-links,
[data-vp="768"] .nav-right .nav-link-quiet {
  display: none;
}

[data-vp="768"] .nav-menu-btn {
  display: inline-flex;
}

[data-vp="768"] .hero {
  padding-block: var(--s-16) var(--s-12);
}

[data-vp="768"] .hero-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-12);
}

[data-vp="768"] .hero-title {
  max-width: 24ch;
}

[data-vp="768"] .lifecycle-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

[data-vp="768"] .family-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

[data-vp="768"] .goal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

[data-vp="768"] .grid-3,
[data-vp="768"] .grid-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

[data-vp="768"] .grid-sidebar,
[data-vp="768"] .grid-sidebar-start {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-10);
}

[data-vp="768"] .grid-sidebar-start > aside,
[data-vp="768"] .grid-sidebar > aside {
  order: -1;
}

[data-vp="768"] .sticky-rail {
  position: static;
}

[data-vp="768"] .model-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-8);
}

[data-vp="768"] .final-cta {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-8);
}

[data-vp="768"] .final-cta-actions {
  flex-direction: row;
  flex-wrap: wrap;
}

[data-vp="768"] .market-switcher {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

[data-vp="768"] .market-tab {
  border-bottom: 1px solid var(--line-soft);
}

[data-vp="768"] .market-facts {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
}

[data-vp="768"] .assess-layout {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-10);
}

[data-vp="768"] .assess-rail {
  order: 2;
}

[data-vp="768"] .auth-layout {
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
}

[data-vp="768"] .auth-aside {
  padding: var(--s-10) var(--shell-gutter);
  border-right: 0;
  border-bottom: 1px solid var(--navy-700);
}

[data-vp="768"] .auth-main {
  padding: var(--s-10) var(--shell-gutter);
}

[data-vp="768"] .onboard-body {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-8);
}

[data-vp="768"] .onboard-rail {
  order: 2;
}

[data-vp="768"] .foot-top {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-10);
}

[data-vp="768"] .foot-cols {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

[data-vp="768"] .foot-bottom {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
}

[data-vp="768"] .foot-legal {
  align-items: flex-start;
}

[data-vp="768"] .section-head-split {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
  align-items: start;
}

[data-vp="768"] .dl-row {
  grid-template-columns: minmax(130px, 0.4fr) minmax(0, 1fr);
}

[data-vp="768"] .prov-card {
  grid-template-columns: 44px minmax(0, 1fr);
}

[data-vp="768"] .prov-side {
  grid-column: 1 / -1;
  align-items: flex-start;
  text-align: left;
  min-width: 0;
  padding-top: var(--s-4);
  border-top: 1px solid var(--line-soft);
}

[data-vp="768"] .exec-head {
  flex-direction: column;
  gap: var(--s-4);
}

[data-vp="768"] .exec-actions {
  flex-wrap: wrap;
}

[data-vp="768"] .plan-row-status {
  width: 132px;
}

[data-vp="768"] .overlay-drawer {
  width: min(460px, 96%);
}

/* ===========================================================================
   MOBILE — 390 bucket
   ========================================================================== */

[data-vp="390"] .shell,
[data-vp="390"] .shell-wide {
  padding-inline: var(--s-5);
}

[data-vp="390"] .band {
  padding-block: var(--s-10);
}

[data-vp="390"] .band-loose {
  padding-block: var(--s-12);
}

[data-vp="390"] .nav-links,
[data-vp="390"] .nav-right .nav-link-quiet,
[data-vp="390"] .nav-right .btn {
  display: none;
}

[data-vp="390"] .nav-menu-btn {
  display: inline-flex;
}

[data-vp="390"] .nav-inner {
  height: 60px;
}

[data-vp="390"] .brand-word {
  font-size: 1.0625rem;
}

/* --- Hero recomposed as a stacked narrative --- */

[data-vp="390"] .hero {
  padding-block: var(--s-12) var(--s-10);
}

[data-vp="390"] .hero-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-10);
}

[data-vp="390"] .hero-title {
  max-width: none;
  font-size: 2.125rem;
  line-height: 1.1;
}

[data-vp="390"] .hero-lede {
  font-size: var(--fs-body);
  margin-top: var(--s-5);
}

[data-vp="390"] .hero-goal {
  margin-top: var(--s-8);
  padding: var(--s-4);
}

[data-vp="390"] .hero-goal-row {
  flex-direction: column;
}

[data-vp="390"] .hero-goal-row .btn {
  width: 100%;
}

[data-vp="390"] .hero-goal-note {
  flex-direction: column;
  gap: var(--s-2);
}

/* On mobile the headline leads; the diagram is supporting material, and its
   diagram labels are illegible at this scale so they are removed. */
[data-vp="390"] .hero-visual {
  order: 2;
}

[data-vp="390"] .rd-label {
  display: none;
}

[data-vp="390"] .hero-visual-caption {
  display: none;
}

[data-vp="390"] .hero-trust {
  flex-direction: column;
  gap: var(--s-3);
}

/* --- Structural grids collapse to single column --- */

[data-vp="390"] .lifecycle-grid,
[data-vp="390"] .family-grid,
[data-vp="390"] .goal-grid,
[data-vp="390"] .grid-2,
[data-vp="390"] .grid-3,
[data-vp="390"] .grid-4,
[data-vp="390"] .grid-sidebar,
[data-vp="390"] .grid-sidebar-start,
[data-vp="390"] .model-grid,
[data-vp="390"] .final-cta,
[data-vp="390"] .market-switcher,
[data-vp="390"] .market-facts,
[data-vp="390"] .foot-top,
[data-vp="390"] .foot-cols,
[data-vp="390"] .foot-bottom,
[data-vp="390"] .section-head-split,
[data-vp="390"] .outcome-grid,
[data-vp="390"] .stat-row,
[data-vp="390"] .field-row,
[data-vp="390"] .assess-layout,
[data-vp="390"] .auth-layout,
[data-vp="390"] .onboard-body,
[data-vp="390"] .exec-authority {
  grid-template-columns: minmax(0, 1fr);
}

/* Defensive: grid and flex children default to min-width:auto, which lets a
   long word or a wide child push a whole layout past the viewport. */
[data-vp="390"] .foot-cols,
[data-vp="390"] .foot-col,
[data-vp="390"] .foot-top,
[data-vp="390"] .grid-sidebar > *,
[data-vp="390"] .grid-sidebar-start > *,
[data-vp="390"] .auth-layout > *,
[data-vp="390"] .onboard-body > *,
[data-vp="390"] .assess-layout > * {
  min-width: 0;
}

[data-vp="390"] .foot-col a,
[data-vp="390"] .foot-statement,
[data-vp="390"] .foot-note {
  overflow-wrap: anywhere;
}

[data-vp="390"] .lifecycle-grid {
  border-left: 0;
}

[data-vp="390"] .lifecycle-step {
  border-right: 0;
}

[data-vp="390"] .family-grid {
  background: transparent;
  border: 0;
  gap: var(--s-4);
}

[data-vp="390"] .family-block {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}

[data-vp="390"] .market-switcher {
  border: 0;
  gap: var(--s-2);
}

[data-vp="390"] .market-tab {
  border: 1px solid var(--line);
  border-radius: var(--radius-xs);
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: var(--s-3) var(--s-4);
}

[data-vp="390"] .market-tab-active {
  border-color: var(--navy-850);
}

[data-vp="390"] .sticky-rail {
  position: static;
}

[data-vp="390"] .final-cta-actions {
  flex-direction: column;
}

[data-vp="390"] .final-cta-actions .btn {
  width: 100%;
}

[data-vp="390"] .foot {
  padding-block: var(--s-10) var(--s-6);
}

[data-vp="390"] .foot-top {
  gap: var(--s-8);
}

[data-vp="390"] .foot-legal {
  align-items: flex-start;
}

/* --- Assessment becomes a single-column step flow --- */

[data-vp="390"] .assess-rail {
  order: 2;
  margin-top: var(--s-8);
}

[data-vp="390"] .q-head {
  grid-template-columns: 26px minmax(0, 1fr);
  gap: var(--s-3);
}

[data-vp="390"] .q-prompt {
  font-size: 1.0625rem;
}

[data-vp="390"] .opt {
  grid-template-columns: 20px minmax(0, 1fr);
  gap: var(--s-3);
  padding: var(--s-4);
}

[data-vp="390"] .assess-nav {
  flex-direction: column-reverse;
  align-items: stretch;
  gap: var(--s-3);
}

[data-vp="390"] .assess-nav .btn,
[data-vp="390"] .assess-nav-right .btn {
  width: 100%;
}

[data-vp="390"] .assess-nav-right {
  margin-left: 0;
}

/* --- Path: plan rows stack, status moves above the title --- */

[data-vp="390"] .plan-row {
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s-3);
}

[data-vp="390"] .plan-row-status {
  width: auto;
}

[data-vp="390"] .plan-row > svg {
  display: none;
}

[data-vp="390"] .exec-card {
  padding: var(--s-5);
}

[data-vp="390"] .exec-head {
  flex-direction: column;
}

[data-vp="390"] .exec-actions {
  width: 100%;
  flex-direction: column;
  align-items: stretch;
}

[data-vp="390"] .exec-actions .btn {
  width: 100%;
}

/* --- Provider cards stack --- */

[data-vp="390"] .prov-card {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-4);
  padding: var(--s-5);
}

[data-vp="390"] .prov-side {
  grid-column: auto;
  min-width: 0;
  align-items: stretch;
  text-align: left;
  padding-top: var(--s-4);
  border-top: 1px solid var(--line-soft);
}

[data-vp="390"] .prov-side .btn {
  width: 100%;
}

[data-vp="390"] .prov-facts {
  flex-direction: column;
  gap: var(--s-3);
}

[data-vp="390"] .provider-head {
  grid-template-columns: minmax(0, 1fr);
}

/* --- Tables become stacked decision cards --- */

[data-vp="390"] .table-wrap {
  border: 0;
  background: transparent;
  overflow: visible;
}

[data-vp="390"] .table,
[data-vp="390"] .table tbody,
[data-vp="390"] .table tr,
[data-vp="390"] .table td {
  display: block;
  width: 100%;
}

[data-vp="390"] .table thead {
  display: none;
}

[data-vp="390"] .table tr {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--paper-000);
  margin-bottom: var(--s-3);
  padding: var(--s-4) var(--s-5);
}

[data-vp="390"] .table td {
  border: 0;
  padding: 0;
  font-size: var(--fs-body-sm);
}

[data-vp="390"] .table td + td {
  margin-top: var(--s-2);
  color: var(--ink-600);
}

[data-vp="390"] .table td:first-child {
  font-size: var(--fs-title-3);
  font-family: var(--font-sans);
  font-weight: 600;
  color: var(--ink-900);
}

[data-vp="390"] .dl-row {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-2);
}

/* --- Auth: context panel becomes a compact header block --- */

[data-vp="390"] .auth-layout {
  min-height: 0;
}

[data-vp="390"] .auth-aside {
  padding: var(--s-8) var(--s-5);
}

[data-vp="390"] .auth-aside .t-display-3 {
  font-size: 1.5rem;
}

[data-vp="390"] .auth-main {
  padding: var(--s-8) var(--s-5) var(--s-12);
}

[data-vp="390"] .auth-card-head,
[data-vp="390"] .auth-card-body {
  padding: var(--s-5);
}

[data-vp="390"] .auth-card-foot {
  padding: var(--s-4) var(--s-5);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s-3);
}

[data-vp="390"] .nav-focused-meta .t-micro {
  display: none;
}

/* --- Onboarding --- */

[data-vp="390"] .onboard-head {
  padding-block: var(--s-6);
}

[data-vp="390"] .onboard-head .split {
  flex-direction: column;
  align-items: flex-start;
  gap: var(--s-3);
}

[data-vp="390"] .onboard-body {
  padding: var(--s-8) var(--s-5);
}

[data-vp="390"] .onboard-rail {
  order: 2;
}

[data-vp="390"] .onboard-foot-inner {
  flex-direction: column-reverse;
  align-items: stretch;
  gap: var(--s-3);
}

[data-vp="390"] .onboard-foot-inner .btn,
[data-vp="390"] .onboard-foot-inner .cluster .btn {
  width: 100%;
}

[data-vp="390"] .onboard-foot-inner .cluster {
  flex-direction: column;
}

/* --- Overlays: drawers become sheets --- */

[data-vp="390"] .overlay-drawer,
[data-vp="390"] .overlay-drawer-left {
  top: auto;
  left: 0;
  right: 0;
  bottom: 0;
  width: auto;
  max-height: 88%;
  border-left: 0;
  border-right: 0;
  border-top: 1px solid var(--line-strong);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

[data-vp="390"] .overlay-modal {
  top: auto;
  left: 0;
  right: 0;
  bottom: 0;
  transform: none;
  width: auto;
  max-height: 88%;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

[data-vp="390"] .overlay-head,
[data-vp="390"] .overlay-body {
  padding-inline: var(--s-5);
}

[data-vp="390"] .overlay-foot {
  padding-inline: var(--s-5);
  flex-direction: column;
  align-items: stretch;
}

[data-vp="390"] .overlay-foot .btn {
  width: 100%;
}

/* --- Type scale adjustments for narrow composition --- */

[data-vp="390"] .t-display-1 { font-size: 2.125rem; }
[data-vp="390"] .t-display-2 { font-size: 1.75rem; }
[data-vp="390"] .t-display-3 { font-size: 1.375rem; }
[data-vp="390"] .t-title-1 { font-size: 1.3125rem; }
[data-vp="390"] .t-body-lg { font-size: 1rem; }

[data-vp="390"] .section-head {
  margin-bottom: var(--s-8);
}

[data-vp="390"] .surface-head {
  padding-block: var(--s-8) var(--s-6);
}

/* --- Filter rails scroll horizontally rather than stacking forever --- */

[data-vp="390"] .filter-rail .filter-bar {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: var(--s-2);
  scrollbar-width: none;
}

[data-vp="390"] .filter-rail .filter-bar::-webkit-scrollbar {
  display: none;
}

[data-vp="390"] .chip {
  flex: none;
}

[data-vp="390"] .steps {
  gap: var(--s-1);
}

[data-vp="390"] .step-sep {
  width: 8px;
}

/* --- Runtime index is dev chrome; keep it usable but out of the way --- */

[data-vp="390"] .toast-host {
  bottom: var(--s-4);
}
