/* Lightweight UX-only overrides. Avoid compositor-heavy effects on the 3D stage. */
button:focus-visible,
a:focus-visible {
  outline:3px solid rgba(23,63,49,.2);
  outline-offset:2px;
}

.topbar {
  min-height:64px;
  padding:12px 18px;
}
.loading-state { top:64px; min-height:calc(100svh - 64px); }
.error-state { min-height:calc(100svh - 64px); }
.error-state p { max-width:34ch; line-height:1.65; }
.error-retry {
  min-height:46px;
  margin-top:8px;
  border:0;
  border-radius:13px;
  padding:11px 18px;
  background:var(--accent);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:850;
  text-decoration:none;
}
.error-retry:active { transform:translateY(1px); background:var(--accent-dark); }

.dish-card { padding-top:23px; }
.action-stack { align-items:stretch; }
.ar-button { min-width:0; box-shadow:none; }
.share-dish-button { background:#faf8f4; color:#5e594f; }
.share-dish-button:hover { border-color:#d4cec3; background:#f6f2eb; }

.ar-entry-button:focus-visible {
  outline:3px solid color-mix(in srgb, var(--ar-button-bg, #173f31) 30%, transparent);
  outline-offset:3px;
}
.ar-entry-button:disabled { transform:none; filter:none; box-shadow:none; }

@media (max-width:480px) {
  .topbar { min-height:60px; padding:10px 16px; }
  .loading-state { top:60px; min-height:calc(100svh - 60px); }
  .error-state { min-height:calc(100svh - 60px); padding:26px 22px; }
  .model-stage { height:54svh; min-height:370px; }
  .dish-card { margin-top:-16px; padding:22px 16px 10px; }
  .dish-card h1 { font-size:clamp(27px,8vw,38px); }
  .description { font-size:13px; line-height:1.7; }
  .action-stack { grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:18px; }
  .ar-button { min-height:52px; font-size:14px; }
  .share-dish-button { min-width:104px; min-height:52px; padding-inline:12px; font-size:12px; }
}

@media (prefers-reduced-motion:reduce) {
  .error-retry,.ar-entry-button { transition:none!important; }
}
