/* Physical AI Parts v47 — site-wide responsive safety layer.
   Loaded last so desktop rules cannot override mobile behavior. */

:root { --mobile-gutter: clamp(16px, 4.5vw, 24px); }
html { width: 100%; overflow-x: hidden; -webkit-text-size-adjust: 100%; }
body { width: 100%; min-width: 0; overflow-x: hidden; }
img, video, iframe, canvas, svg { max-width: 100%; }
input, select, textarea, button { max-width: 100%; font-size: 16px; }
pre, code, .part-number, .order-id { overflow-wrap: anywhere; word-break: break-word; }

/* Floating language control: compact, stable and clear of phone safe areas. */
.language-launcher {
  right: max(12px, env(safe-area-inset-right)) !important;
  bottom: max(12px, env(safe-area-inset-bottom)) !important;
}

/* Tablet */
@media (max-width: 980px) {
  .topbar {
    min-height: 68px;
    padding: 9px var(--mobile-gutter) !important;
    flex-wrap: nowrap;
  }
  .topbar .brand { min-width: 0; }
  .topbar .brand img { width: min(220px, 64vw) !important; max-width: 100% !important; }
  .topbar .menu-btn {
    display: inline-grid !important;
    place-items: center;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border: 1px solid #24536a;
    border-radius: 11px;
    background: #071722;
    position: relative;
    z-index: 2;
  }
  .topbar .nav {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-height: calc(100dvh - 68px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 14px var(--mobile-gutter) calc(22px + env(safe-area-inset-bottom)) !important;
    background: rgba(3, 10, 15, .985) !important;
    border-bottom: 1px solid #24536a;
    box-shadow: 0 22px 45px rgba(0, 0, 0, .55);
  }
  .topbar .nav.open { display: grid !important; gap: 14px !important; }
  .topbar .nav-links,
  .topbar .nav-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
    width: 100%;
  }
  .topbar .nav-links a,
  .topbar .nav-actions button {
    width: 100% !important;
    min-width: 0;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 11px 12px !important;
    border: 1px solid #173e52;
    border-radius: 10px;
    background: #07151e;
    white-space: normal !important;
    text-align: left !important;
  }

  .hero, .split-section, .agent-card, .community-chat-card,
  .listing-detail, .seo-hero, .principles, .engine-section {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .hero { min-height: 0 !important; padding-top: 48px !important; }
  .hero-copy, .hero-media, .split-copy, .split-media,
  .listing-gallery, .listing-info { min-width: 0; }
  .parts-grid, .listing-grid, .seo-grid, .category-grid,
  .company-listings, .grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .community-card, .contact-card, .cta, .section-head, .head {
    align-items: flex-start !important;
  }
  .marketplace-toolbar, .source-search { flex-wrap: wrap; }
}

/* Phones */
@media (max-width: 680px) {
  body { padding-bottom: env(safe-area-inset-bottom); }
  .topbar { position: sticky !important; top: 0; }
  .topbar .nav-links,
  .topbar .nav-actions { grid-template-columns: minmax(0, 1fr); }

  .hero, .section, .split-section, .used-section, .principles, .cta,
  .panel, .seo-main, .source-hero, .provider-section, .results-section,
  .reward-dashboard, .earn-section {
    padding-left: var(--mobile-gutter) !important;
    padding-right: var(--mobile-gutter) !important;
  }
  .hero { padding-top: 34px !important; padding-bottom: 48px !important; gap: 28px !important; }
  h1, .hero h1, .seo-hero h1, .source-hero h1, .reward-hero h1 {
    font-size: clamp(34px, 10vw, 44px) !important;
    line-height: 1.08 !important;
    overflow-wrap: anywhere;
  }
  h2, .section-head h2, .head h2 { font-size: clamp(27px, 8vw, 36px) !important; }
  .hero-copy p, .hero p, .seo-hero p { font-size: 16px !important; line-height: 1.62 !important; }
  .hero-actions, .actions, .seo-actions, .modal-actions,
  .order-card-actions, .seller-listing-actions, .admin-review-actions,
  .card-actions, .form-actions { flex-direction: column; align-items: stretch; }
  .hero-actions > *, .actions > *, .seo-actions > *, .modal-actions > *,
  .order-card-actions > *, .seller-listing-actions > *,
  .admin-review-actions > *, .form-actions > * { width: 100%; }

  .parts-grid, .listing-grid, .seo-grid, .category-grid,
  .company-listings, .grid, .form, .provider-grid, .offer-list,
  .balance-grid, .earn-grid, .impact-strip, .support-grid,
  .disclosure-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .section-head, .head, .community-card, .contact-card, .cta,
  footer, .seo-footer { flex-direction: column !important; align-items: stretch !important; }
  .search-wrap, .search-wrap input, .filters, .community-actions { width: 100% !important; }
  .marketplace-toolbar, .source-search { display: grid !important; grid-template-columns: 1fr !important; }

  /* Listing/seller windows become phone-native full screens. */
  .modal-backdrop {
    place-items: stretch !important;
    padding: 0 !important;
    background: #03090e !important;
  }
  .modal-card, .modal-wide, .admin-modal-card {
    width: 100% !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: calc(62px + env(safe-area-inset-top)) var(--mobile-gutter) calc(30px + env(safe-area-inset-bottom)) !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
  .modal-close {
    position: fixed !important;
    top: max(10px, env(safe-area-inset-top)) !important;
    right: 12px !important;
    z-index: 110;
    width: 44px;
    height: 44px;
    border: 1px solid #24536a !important;
    border-radius: 10px !important;
    background: #071722 !important;
  }
  .two-col-form, .ops-grid, .seller-fulfillment-form,
  .provider-form, .rights-grid, .mapping-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .full-span, .full, .provider-form > label, .provider-form > * {
    grid-column: 1 !important;
  }
  .stack-form input, .stack-form select, .stack-form textarea,
  .trust-form input, .trust-form select, .trust-form textarea {
    min-height: 48px;
  }
  .stack-form textarea, .trust-form textarea { min-height: 120px; }

  /* Listing detail reads correctly in portrait orientation. */
  .listing-shell { padding-top: 24px !important; }
  .listing-detail { display: grid !important; gap: 20px !important; }
  .listing-gallery, .listing-info { width: 100% !important; padding: 18px !important; }
  .listing-gallery img { width: 100%; height: auto !important; max-height: 62dvh; object-fit: contain !important; }
  .listing-info h1 { font-size: clamp(28px, 8vw, 38px) !important; overflow-wrap: anywhere; }
  .listing-facts { grid-template-columns: minmax(0, 1fr) !important; }
  .listing-facts div { min-width: 0; }
  .listing-description { white-space: pre-wrap; overflow-wrap: anywhere; }
  .trust-section { grid-template-columns: minmax(0, 1fr) !important; }

  .seller-listing-card, .admin-review-card { grid-template-columns: 1fr !important; }
  .seller-listing-body, .admin-review-body { padding: 0 16px 16px !important; min-width: 0; }
  .seller-listing-top, .admin-review-top, .order-card-head,
  .request-card header, .part-result > header { align-items: flex-start !important; flex-direction: column !important; }
  .seller-stock-control { display: grid !important; grid-template-columns: 1fr !important; }
  .orders-queue, .seller-listings-queue, .admin-queue { max-height: none !important; overflow: visible !important; }

  .community-chat-card { padding: 20px !important; }
  .chatango-wrap { height: min(430px, 65dvh) !important; min-height: 360px !important; }
  .live-chat-shell { min-height: 0 !important; }

  .language-launcher {
    width: 46px !important;
    height: 46px !important;
    padding: 0 !important;
    justify-content: center !important;
    overflow: hidden;
    font-size: 0 !important;
  }
  .language-launcher::before { content: "🌐"; font-size: 20px; }
  .language-dialog { width: 100% !important; max-height: 92dvh !important; border-radius: 16px !important; }
  .language-grid { grid-template-columns: 1fr !important; }

  .cycle-visual { width: min(300px, 86vw) !important; }
  .cycle-node { font-size: 9px !important; padding: 9px !important; }
  .seo-topbar, .company-topbar, .reward-topbar, .source-topbar,
  body > header:not(.topbar) {
    padding-left: var(--mobile-gutter) !important;
    padding-right: var(--mobile-gutter) !important;
    flex-wrap: wrap;
  }
  body > header:not(.topbar) nav,
  .seo-topbar .seo-nav,
  .company-topbar .company-nav {
    display: flex !important;
    width: 100%;
    gap: 8px !important;
    padding: 6px 0 2px;
    overflow-x: auto;
    flex-wrap: nowrap !important;
    scrollbar-width: thin;
  }
  body > header:not(.topbar) nav a,
  .seo-topbar .seo-nav a,
  .company-topbar .company-nav a {
    flex: 0 0 auto;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding: 8px 10px;
    border: 1px solid rgba(36, 83, 106, .72);
    border-radius: 9px;
    background: rgba(7, 24, 35, .86);
  }
  .seo-nav, .company-nav { gap: 10px !important; font-size: 12px !important; }
  .seo-copy, .truth-card, .auth-card, .history-card, .part-result,
  form { padding: 20px !important; }
}

@media (max-width: 380px) {
  .topbar .brand img { width: min(190px, 60vw) !important; }
  h1, .hero h1, .seo-hero h1 { font-size: 32px !important; }
  .hero-pills, .reward-badges { gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
