/* JayT V2 — unified implementation of the three approved architecture boards.
   Derivative staging only; semantic states never impersonate live partner evidence. */
:root { --screen-motion-close: var(--motion-sheet); --skeleton-duration: 1200ms; }
body[data-staging-revamp]:not([data-master-design]) h1, body[data-staging-revamp]:not([data-master-design]) h2 { font-family: var(--font-display); }
body[data-staging-revamp]:not([data-master-design]) :is(input,select,button,.product-price,.market-comparison,.manual-market-row) { font-family: var(--font-ui); }
body[data-staging-revamp]:not([data-master-design]) .button, body[data-staging-revamp]:not([data-master-design]) .icon-button {
  transition: background var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-press);
}
body[data-staging-revamp]:not([data-master-design]) .button:active:not(:disabled) { transform: translateY(var(--motion-distance-press)); }
body[data-staging-revamp]:not([data-master-design]) .deal-card.product-card { transition: border-color var(--motion-card),box-shadow var(--motion-card); }
body[data-staging-revamp]:not([data-master-design]) [data-view]:not([hidden]) { animation: d22-route-reveal var(--motion-route) var(--ease-standard); }
@keyframes d22-route-reveal { from { opacity: .6; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

body[data-staging-revamp]:not([data-master-design]) .hero { min-height: 570px; }
body[data-staging-revamp]:not([data-master-design]) .hero-copy { padding-bottom: 150px; }
body[data-staging-revamp]:not([data-master-design]) .hero-location { display:flex; align-items:center; gap:8px; min-width:0; }
body[data-staging-revamp]:not([data-master-design]) .hero-location select { width:100%; max-width:210px; min-height:44px; border:0; background:transparent; color:var(--ink); font-size:var(--type-sm); }
body[data-staging-revamp]:not([data-master-design]) .hero[data-bridge-period] .hero-photo { opacity:0; visibility:visible; transition:opacity var(--motion-route) var(--ease-standard); }
body[data-staging-revamp]:not([data-master-design]) .hero[data-bridge-period=day] .hero-photo-day { opacity:1; filter:brightness(1.1) saturate(.85); }
body[data-staging-revamp]:not([data-master-design]) .hero[data-bridge-period=sunset] .hero-photo-light,
body[data-staging-revamp]:not([data-master-design]) .hero[data-bridge-period=night] .hero-photo-dark { opacity:1; }
.bridge-cycle-controls { position:absolute; bottom:64px; left:var(--space-3); right:var(--space-3); z-index:3; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.bridge-cycle-controls button { min-height:44px; border:1px solid var(--hero-copy-soft); border-radius:var(--radius-pill); padding:8px 14px; background:var(--primary); color:var(--primary-foreground); font:inherit; font-size:var(--type-xs); }
.bridge-cycle-controls button[aria-pressed=true] { background:var(--accent); color:var(--accent-foreground); border-color:var(--accent); }
.bridge-cycle-controls span { width:100%; color:var(--hero-copy); font-size:var(--type-xs); }
body[data-staging-revamp]:not([data-master-design]) .utility-shortcuts { grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--space-2); }
body[data-staging-revamp]:not([data-master-design]) .utility-shortcuts .shortcut { flex-direction:column; align-items:flex-start; gap:var(--space-2); padding:var(--space-2); min-width:0; }
body[data-staging-revamp]:not([data-master-design]) .utility-shortcuts .shortcut strong { white-space:normal; }
body[data-staging-revamp]:not([data-master-design]) .utility-shortcuts .shortcut .chevron { display:none; }
body[data-staging-revamp]:not([data-master-design]) .product-district { display:flex; align-items:center; gap:6px; font-size:var(--type-xs); color:var(--ink-muted); margin-bottom:var(--space-1); }
.product-district .icon { width:16px; height:16px; }
.decision-badge { display:inline-flex; align-items:center; gap:4px; background:var(--surface-soft); color:var(--ink); border:1px solid var(--line-strong); padding:6px 9px; border-radius:var(--radius-pill); font:600 var(--type-overline)/var(--line-copy) var(--font-ui); }
.product-card-media > .decision-badge { position:absolute; left:10px; top:10px; max-width:calc(100% - 64px); }
.product-card-media:has(.product-visual-pending) > .decision-badge {position:relative;left:auto;top:auto;margin:10px;}
.product-card-media:has(.product-visual-pending) .product-category-chip {display:none;}
body[data-staging-revamp]:not([data-master-design]) .product-card-media:has(.product-visual-pending) .product-card-save {top:auto;bottom:10px;}
.decision-badge[data-decision=BUY] { background:var(--success-soft); color:var(--success); }
.decision-badge[data-decision=WAIT] { background:var(--danger-soft); color:var(--danger); }
.verified-discount { position:absolute; bottom:12px; right:12px; padding:6px; background:var(--success-soft); color:var(--success); border-radius:var(--radius-2); font-size:var(--type-xs); }
body[data-staging-revamp]:not([data-master-design]) .product-sku { top:auto; bottom:10px; right:12px; left:auto; }

.market-table-scroll { max-width:100%; overflow-x:auto; margin-top:var(--space-3); }
.market-comparison { width:100%; border-collapse:collapse; text-align:left; font-size:var(--type-sm); }
.market-comparison caption { text-align:left; padding-bottom:var(--space-2); color:var(--ink-secondary); }
.market-comparison th, .market-comparison td { padding:var(--space-2) var(--space-detail); border-bottom:1px solid var(--line); vertical-align:top; }
.market-comparison th { font-weight:600; }
.market-comparison td small { display:block; font-size:var(--type-xs); color:var(--ink-muted); max-width:30ch; margin-top:4px; }
.market-comparison .is-lowest, .manual-market-row.is-lowest { background:var(--success-soft); }
.cost-decision-flow { list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--space-1); padding:0; margin:var(--space-3) 0; counter-reset:cost-flow; }
.cost-decision-flow li { padding:var(--space-detail); border-radius:var(--radius-2); background:var(--surface-soft); font-size:var(--type-xs); }
.cost-decision-flow li::before { counter-increment:cost-flow; content:counter(cost-flow,decimal-leading-zero); display:block; color:var(--gold-ink); margin-bottom:var(--space-1); }
.manual-compare summary { padding:var(--space-2) 0; min-height:44px; font-weight:600; }
.manual-compare p { font-size:var(--type-sm); margin-bottom:var(--space-2); }
.manual-market-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-2); }
.manual-market-grid fieldset { min-width:0; padding:var(--space-2); border:1px solid var(--line); border-radius:var(--radius-3); }
.manual-market-grid legend { font-weight:600; padding:0 4px; }
.manual-market-grid label { display:block; font-size:var(--type-xs); margin-top:var(--space-1); }
.manual-market-grid input { width:100%; min-height:44px; border:1px solid var(--ink-muted); border-radius:var(--radius-2); background:var(--surface); color:var(--ink); padding:8px; font-size:1rem; }
.manual-market-row { display:flex; justify-content:space-between; gap:var(--space-2); flex-wrap:wrap; padding:var(--space-2); border-bottom:1px solid var(--line); font-size:var(--type-sm); }
.manual-disclosure { padding:var(--space-2); background:var(--info-soft); color:var(--info); }
.sheet-drag-handle { display:none; }
.skeleton-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-2); grid-column:1/-1; }
.skeleton-card { border:1px solid var(--line); border-radius:var(--radius-3); padding:var(--space-detail); }
.skeleton-media { aspect-ratio:16/9; width:100%; }
.skeleton-line { height:14px; margin-top:var(--space-2); }
.skeleton-line.short { width:60%; }
.skeleton-card-grid + .feed-state { grid-column:1/-1; }

@media(max-width:1050px) {
  body[data-staging-revamp]:not([data-master-design]) .utility-shortcuts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .manual-market-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  body[data-staging-revamp]:not([data-master-design]) .hero { min-height:640px; }
  body[data-staging-revamp]:not([data-master-design]) .hero-copy { padding-bottom:190px; }
  body[data-staging-revamp]:not([data-master-design]) .hero-search { grid-template-columns:24px minmax(0,1fr); }
  body[data-staging-revamp]:not([data-master-design]) .hero-search .hero-location { grid-column:1/-1; border-top:1px solid var(--line); }
  body[data-staging-revamp]:not([data-master-design]) .hero-search .hero-location select { max-width:none; }
  body[data-staging-revamp]:not([data-master-design]) .hero-search .button { grid-column:1/-1; }
  .bridge-cycle-controls { left:var(--space-2); right:var(--space-2); bottom:60px; gap:6px; }
  .bridge-cycle-controls button { padding:8px 10px; }
  .market-comparison thead { display:none; }
  .market-comparison tbody, .market-comparison tr { display:block; }
  .market-comparison tr { margin-bottom:var(--space-2); border:1px solid var(--line); border-radius:var(--radius-3); padding:var(--space-detail); }
  .market-comparison th { display:block; border:0; }
  .market-comparison td { display:grid; grid-template-columns:90px minmax(0,1fr); padding:var(--space-1); overflow-wrap:anywhere; }
  .market-comparison td::before { content:attr(data-label); color:var(--ink-muted); }
  .market-comparison td small { grid-column:2; }
  .cost-decision-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .manual-market-grid { grid-template-columns:1fr; }
  .skeleton-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .skeleton-card:last-child { display:none; }
  .product-image-fallback .product-monogram {display:none;}
  dialog::before { display:none; }
  .sheet-drag-handle { display:flex; align-items:center; justify-content:center; min-height:44px; width:100%; border:0; background:transparent; color:var(--ink); touch-action:none; margin:-10px 0 8px; }
  .sheet-drag-handle span { width:40px; height:4px; background:var(--ink-muted); border-radius:var(--radius-pill); }
  /* Voucher cards share the same upward swipe contract as other sheet openers.
     Otherwise Chromium begins vertical scrolling and cancels the pointer. */
  [data-compare],[data-voucher-compare],.mobile-dock [data-panel],[data-sheet-opener] { touch-action:pan-x; }
  dialog[data-dragging=true] { animation:none !important; translate:0 var(--sheet-drag-y,0px); }
}
@media(max-width:380px) {
  body[data-staging-revamp]:not([data-master-design]) .utility-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bridge-cycle-controls { bottom:48px; }
}
@media(prefers-reduced-motion:reduce) {
  body[data-staging-revamp]:not([data-master-design]) [data-view]:not([hidden]) { animation:none; }
}
html[data-reduce-motion=true] :is([data-view],.button,.icon-button,.deal-card,.hero-photo,dialog) { animation:none!important; transition:none!important; }
.detail-tabs {overflow-x:auto;scrollbar-width:thin;max-width:100%;overscroll-behavior-inline:contain}
.detail-tabs button {flex:0 0 auto;white-space:nowrap}
.detail-tab-group [role=tabpanel] {overflow-wrap:anywhere}
