/* QA51: every rule is tablet-only. QA50 phone/desktop styles remain unchanged. */
@media (min-width:700px) and (max-width:1180px) {
  :root { --tablet-header:68px; --tablet-dock-space:92px; }
  html { scroll-padding-top:84px; scroll-padding-bottom:calc(112px + env(safe-area-inset-bottom,0px)); }
  body { padding-bottom:calc(112px + env(safe-area-inset-bottom,0px)); }
  .wrap { max-width:1048px; padding-left:24px; padding-right:24px; }
  #app>main.page { padding-top:18px; min-height:0; }
  #app>main .page-title { font-size:24px; line-height:1.25; }
  header .nav { min-height:var(--tablet-header); flex-wrap:nowrap; gap:12px; padding-top:10px; padding-bottom:10px; }
  header .nav .navlinks,header .nav>[data-add],#app a[href="#/assistant"] { display:none; }
  header .nav .brand { margin-right:auto; font-size:23px; }
  header .nav .lang { margin-left:0; }
  header .nav .ha-trigger,header .nav .header-messages,header .nav .account-entry { width:44px; flex-basis:44px; }
  /* The existing mobile component owns icons, labels, routes, active state and Add. */
  .mobile-nav { position:fixed; z-index:20; left:50%; right:auto; bottom:calc(12px + env(safe-area-inset-bottom,0px)); transform:translateX(-50%); display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); width:min(560px,calc(100% - 48px)); padding:6px; gap:4px; border:1px solid var(--border-default); border-radius:18px; background:var(--bg-elevated); box-shadow:0 5px 24px var(--shadow-color); }
  .mobile-nav>a,.mobile-nav>button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:54px; min-width:0; margin:0; padding:5px 7px; border:0; border-radius:12px; color:var(--text-secondary); background:transparent; font:inherit; font-size:12px; font-weight:600; line-height:1.2; text-align:center; }
  .mobile-nav svg { width:21px; height:21px; flex:none; }
  .mobile-nav [aria-current=page] { color:var(--green); background:var(--theme-bg-accent,#e3f2e9); }
  .mobile-nav .mobile-post { color:var(--theme-text-on-brand,#fff); background:var(--brand-green); }
  .mobile-nav>[hidden] { display:none; }
  .mobile-nav :is(a,button):focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
  body:has(dialog[open]) .mobile-nav,body:has(main input:focus,main textarea:focus) .mobile-nav { visibility:hidden; pointer-events:none; }
  body:has(#hawzion-assistant[open]),html:has(#hawzion-assistant[open]) { overflow:hidden; }

  /* Reuse the actual Back node and its callback, inline on tablet only. */
  html.tablet-layout body #floating-back,html.tablet-layout .pi-detail .floating-back { position:static; inset:auto; width:fit-content; max-width:100%; min-height:44px; padding:8px 12px; margin:0 0 12px; box-shadow:none; border-radius:9px; }
  html.tablet-layout .pi-detail .floating-back { margin:12px 0 0; }
  .pi-detail { padding-bottom:12px; }
  .filter-actions,.detail-nav { top:var(--tablet-header); }
  .chat-composer { bottom:calc(var(--tablet-dock-space) + env(safe-area-inset-bottom,0px)); }
  body:has(.chat-composer textarea:focus) .chat-composer { bottom:0; }
  #toast { bottom:calc(104px + env(safe-area-inset-bottom,0px)); }
  footer { margin-top:28px; padding:22px 0; }
  .footer-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; }
  .footer-row .links { margin:0; gap:6px 14px; }
  .footer-row .footer-tagline { margin:6px 0 0; }
  .footer-row .footer-copyright { margin:0; }

  /* Same category layout in either orientation; listing density may change. */
  .home-page .category-discovery { max-width:760px; margin-inline:auto; }
  .home-page .category-discovery .categories { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
  .home-page .category-discovery .category { height:94px; min-height:94px; padding:10px 8px; gap:6px; }
  .home-page .category-discovery .category b { line-height:1.25; }
  .home-page .home-search { max-width:760px; }
  .home-page .grid,.market-page .grid,.community-page .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .compact-market .search-suggest-wrap,.compact-market .compact-search-actions { max-width:840px; }
  .saved-page { max-width:1000px; }
  .saved-page>.market-search,.saved-page>.discovery-tools,.saved-page>.filter-chips,.saved-page>.filter-actions { max-width:800px; }
  .saved-page>.discovery-tools { grid-template-columns:minmax(0,1fr); gap:8px; }
  .saved-page #results>.empty { padding:28px 20px; }

  /* One owner list model, including landscape. No cards -> table switch. */
  .my-hub { max-width:948px; }
  .my-hub .hub-tabs,.my-hub .hub-quick-actions { max-width:none; }
  .my-hub .inventory table { display:none; }
  .my-hub .inventory-cards { display:block; }
  .my-hub .inventory-card.inventory-compact,
  :lang(de) .my-hub .inventory-card.inventory-compact { display:grid; grid-template-columns:128px minmax(0,1fr) 116px; gap:16px; padding:12px; min-height:144px; align-items:stretch; }
  .my-hub .inventory-compact .inventory-card-photo { position:relative; display:grid; place-items:center; width:100%; height:auto; min-height:120px; align-self:stretch; overflow:hidden; border-radius:9px; }
  .my-hub .inventory-compact .inventory-card-photo img { position:absolute; inset:0; width:100%; height:100%; max-height:none; object-fit:contain; }
  .my-hub .inventory-compact .inventory-card-heading { align-self:center; min-width:0; }
  .my-hub .inventory-compact .inventory-card-heading h2 { font-size:16px; line-height:1.35; margin:0 0 5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .my-hub .inventory-compact .inventory-card-heading small { font-size:13px; line-height:1.35; margin-bottom:5px; }
  .my-hub .inventory-side-actions { display:flex; flex-direction:column; gap:6px; justify-content:space-between; }
  .my-hub .inventory-side-actions .btn { min-height:44px; padding:8px; font-size:13px; }
  .my-hub .private-inventory { max-width:800px; }
  .pi-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .pi-list { max-width:680px; }
  .pi-summary>div { padding:10px 12px; }

  /* Public profile / settings only. Account drawer and Inbox remain their current UI. */
  .community-page[data-tablet-route="profile"],.community-page[data-tablet-route="seller"] { max-width:1000px; }
  .community-page[data-tablet-route="profile"]>.panel,.community-page[data-tablet-route="seller"]>.panel { padding:18px; margin:14px 0; }
  .community-page[data-tablet-route="profile"] .account-profile,.community-page[data-tablet-route="seller"] .account-profile { margin-bottom:6px; }
  .community-page[data-tablet-route="profile"] .seller-actions,.community-page[data-tablet-route="seller"] .seller-actions { margin:6px 0 0; }
  .community-page[data-tablet-route="settings"] { max-width:840px; padding-bottom:24px; }
  .community-page[data-tablet-route="settings"]>.account-menu { padding:16px; gap:4px; }
  .community-page[data-tablet-route="settings"]>.account-menu>a { min-height:44px; padding:10px 12px; }

  /* Final mobile semantics, expressed as a linear tablet summary at every width. */
  .detail-page { max-width:900px; padding-bottom:24px; }
  .detail-page .detail { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; margin:0 0 18px; }
  .detail-page .gallery-frame .media { height:clamp(300px,42vw,440px); }
  .detail-page .detail-summary { display:flex; flex-direction:column; min-width:0; }
  .detail-visitor .visitor-columns,.detail-visitor .visitor-listing,.detail-visitor .visitor-actions { display:contents; }
  .detail-page .detail-meta { order:0; margin:0 0 8px; }
  .detail-visitor .visitor-title-row { order:1; margin:0 0 8px; gap:14px; }
  .detail-page .detail-summary h1 { margin:0; font-size:28px; line-height:1.2; }
  .detail-page .detail-price-actions { display:block; order:2; margin:0 0 8px; }
  .detail-page .detail-price-actions .price { margin:0; font-size:28px; }
  .detail-page .detail-quick-info { order:3; margin:0 0 6px; gap:6px 12px; }
  .detail-page .detail-lifecycle { order:3; margin:0 0 6px; }
  .detail-page .detail-location { order:4; margin:0 0 6px; font-size:14px; }
  .detail-visitor .visitor-actions .share-entry { order:5; display:inline-flex; align-self:flex-start; margin:0 0 8px; min-height:44px; max-width:100%; gap:2px; }
  .detail-visitor .visitor-actions .listing-share { min-height:44px; padding:8px 12px; font-size:13px; }
  .detail-visitor .visitor-actions .share-choose { min-height:44px; width:44px; padding:8px; }
  .detail-visitor .visitor-seller { order:6; margin:0; min-width:0; }
  .detail-visitor .visitor-seller .seller { display:flex; flex-direction:column; gap:0; margin:0; padding:12px 0 0; border:0; border-top:1px solid var(--border-default); border-radius:0; background:none; }
  .detail-visitor .seller-profile-text { display:none; }
  .detail-visitor .community-seller .account-profile { display:flex; flex-direction:row; align-items:flex-start; gap:10px; margin:0; }
  .detail-visitor .community-seller .account-avatar { width:44px; height:44px; flex:0 0 44px; }
  .detail-visitor .community-seller .account-profile>div { min-width:0; gap:0; }
  .detail-visitor .community-seller .account-profile strong { font-size:15px; line-height:1.3; }
  .detail-visitor .community-seller .account-profile .seller-secondary { width:auto; margin:0; font-size:13px; line-height:1.35; }
  .detail-visitor .community-seller>p { margin:4px 0 0 54px; }
  .detail-visitor .seller-summary-row { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,.9fr) minmax(0,1.3fr); align-items:stretch; gap:8px; margin-top:8px; width:100%; }
  .detail-visitor .seller-reputation { display:flex; align-items:center; min-width:0; }
  .detail-visitor .seller-summary-row .review-badge { min-height:44px; padding:3px 0; font-size:12px; line-height:1.3; gap:4px; white-space:normal; }
  .detail-visitor .seller-summary-row .muted { margin:0; font-size:12px; }
  .detail-visitor .seller-summary-row>a.btn { min-width:0; min-height:44px; padding:6px 4px; font-size:12px; line-height:1.3; text-align:center; white-space:normal; color:var(--link); background:none; border:0; }
  .detail-visitor .seller-summary-row .compact-save-seller { min-width:0; width:100%; max-width:none; min-height:44px; margin:0; padding:6px; font-size:12px; line-height:1.3; white-space:normal; }
  .detail-visitor .visitor-actions #contact { order:7; position:fixed; z-index:19; left:50%; right:auto; bottom:calc(var(--tablet-dock-space) + env(safe-area-inset-bottom,0px)); transform:translateX(-50%); width:min(804px,calc(100% - 48px)); max-width:none; min-height:48px; margin:0; padding:12px 18px; font-size:15px; line-height:1.3; border-radius:12px; box-shadow:0 3px 16px var(--shadow-color); }
  body:has(.detail-visitor) { padding-bottom:calc(176px + env(safe-area-inset-bottom,0px)); }
  .detail-page .detail-information { margin:0; padding:18px; }
  .detail-page .detail-information .public-attributes { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-page .owner-actions { flex-wrap:wrap; margin:12px 0; }

  /* Assistant portrait sheet: existing internal scroll/composer/keyboard behavior. */
  .ha-panel:not(.ha-keyboard),.ha-panel.ha-expanded:not(.ha-keyboard) { top:auto; bottom:calc(var(--tablet-dock-space) + env(safe-area-inset-bottom,0px)); left:50%; right:auto; transform:translateX(-50%); width:min(88vw,620px); max-width:calc(100vw - 48px); height:min(700px,calc(100dvh - 184px - env(safe-area-inset-bottom,0px))); max-height:calc(100dvh - 184px - env(safe-area-inset-bottom,0px)); margin:0; }
  .ha-panel .ha-scroll { min-height:0; flex:1; overflow-y:auto; overscroll-behavior:contain; padding:14px 16px; }
  .ha-panel .ha-head,.ha-panel .ha-input { flex:0 0 auto; }
  .ha-panel.ha-keyboard { transform:none; left:50%; translate:-50% 0; right:auto; width:min(88vw,620px); max-width:calc(100vw - 24px); }
}
@media (min-width:700px) and (max-width:1180px) and (orientation:landscape) {
  .home-page .grid,.market-page .grid,.community-page .grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .saved-page>.discovery-tools { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .saved-page>.discovery-tools>details[open] { grid-column:auto; }
  .pi-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .detail-page { max-width:1120px; }
  .detail-page .detail { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); align-items:start; gap:24px; }
  .detail-page .gallery-frame .media { height:clamp(280px,48dvh,420px); }
  .detail-page .detail-gallery>.detail-information { margin-top:18px; }
  .detail-page .detail-information .public-attributes { grid-template-columns:minmax(0,1fr); }
  .detail-visitor .visitor-actions #contact { position:static; inset:auto; transform:none; width:100%; margin:14px 0 0; box-shadow:none; }
  body:has(.detail-visitor) { padding-bottom:calc(112px + env(safe-area-inset-bottom,0px)); }
  .ha-panel:not(.ha-keyboard),.ha-panel.ha-expanded:not(.ha-keyboard) { top:calc(var(--tablet-header) + 12px); left:auto; right:24px; bottom:calc(var(--tablet-dock-space) + env(safe-area-inset-bottom,0px)); transform:none; width:460px; max-width:calc(100vw - 48px); height:calc(100dvh - 172px - env(safe-area-inset-bottom,0px)); max-height:calc(100dvh - 172px - env(safe-area-inset-bottom,0px)); }
  .ha-panel.ha-keyboard { left:auto; right:24px; translate:none; width:460px; }
}

/* QA53: visitor summary only, tablet landscape only. */
@media (min-width:700px) and (max-width:1180px) and (orientation:landscape) {
  .detail-visitor .detail-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:10px; row-gap:0; align-items:start; }
  .detail-visitor .detail-meta { grid-column:1/-1; grid-row:1; margin-bottom:6px; }
  .detail-visitor .visitor-title-row { grid-column:1/-1; grid-row:2; margin-bottom:6px; }
  .detail-visitor .detail-price-actions { grid-column:1/-1; grid-row:3; margin-bottom:6px; }
  .detail-visitor .detail-location { grid-column:1; grid-row:4; align-self:center; min-width:0; margin:0; }
  .detail-visitor .visitor-actions .share-entry { grid-column:2; grid-row:4; justify-self:end; align-self:center; margin:0; }
  .detail-visitor .visitor-actions .listing-share { padding:8px; }
  .detail-visitor .detail-quick-info { grid-column:1/-1; grid-row:5; margin:2px 0 0; }
  .detail-visitor .detail-lifecycle { grid-column:1/-1; grid-row:6; margin:2px 0 0; }
  .detail-visitor .visitor-seller { grid-column:1/-1; grid-row:7; margin-top:6px; }
  .detail-visitor .visitor-seller .seller { padding-top:8px; }
  .detail-visitor .community-seller .account-profile { gap:8px; }
  .detail-visitor .community-seller>p { margin:3px 0 0 52px; }
  .detail-visitor .seller-summary-row { gap:6px; margin-top:4px; }
  .detail-visitor .seller-summary-row .compact-save-seller { padding:4px 5px; gap:4px; }
  .detail-visitor .visitor-actions #contact { grid-column:1/-1; grid-row:8; margin-top:10px; }
}
