.companion-shell { width: min(760px, 100%); }
.companion-access { display: grid; grid-template-columns: 1fr; gap: 8px; }
.companion-access label:not(:first-child) { margin-top: 6px; }
.field-help { margin: 2px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.field-help code { color: var(--cyan); }
.companion-camera { margin-bottom: 14px; }
.companion-camera-stage { aspect-ratio: 4 / 3; }
.companion-camera-stage img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #020706;
}
.companion-camera-stage.stale img { opacity: .48; filter: saturate(.6); }
.preview-meta { display: flex; justify-content: space-between; gap: 12px; padding: 8px 4px 0; color: var(--muted); font-size: .76rem; }
.preview-meta span:first-child { color: var(--cyan); font-weight: 750; }
.companion-controls { margin-bottom: 14px; }
.companion-controls .primary-actions { margin: 0; }
.companion-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.companion-ai-control { margin-top: 12px; }
.companion-summary { margin-bottom: 14px; }
.companion-summary p { margin-bottom: 10px; color: var(--text); line-height: 1.55; }
.object-summary { color: var(--muted); font-size: .84rem; line-height: 1.55; }
.companion-cloud { margin-bottom: 14px; }
.companion-metrics { grid-template-columns: repeat(5, 1fr); }
.back-link { margin: 14px 0 0; text-align: center; }
.back-link a { color: var(--cyan); }
.navigation-card.idle { border-left-color: rgba(165,196,180,.5); }
.navigation-card.offline { border-color: rgba(255,102,95,.45); border-left-color: var(--red); }

@media (max-width: 520px) {
  .companion-shell .hero { align-items: flex-start; }
  .companion-controls .button { min-height: 54px; font-size: 1rem; }
  .companion-ai-control { align-items: flex-start; flex-direction: column; }
  .companion-ai-control > span { text-align: left; }
  .preview-meta { align-items: flex-start; flex-direction: column; gap: 3px; }
  .companion-metrics { grid-template-columns: 1fr 1fr; }
}
