/* Shared controls and progressive enhancement; mobile layout starts below. */
.icon { width:21px; height:21px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.icon-button { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; flex:none; padding:0; border:1px solid var(--line); border-radius:6px; background:white; color:inherit; cursor:pointer; }
.mobile-only,.mobile-back,.mobile-language,.mobile-bottom-nav,.mobile-contact-bar { display:none; }
.skip-link { position:fixed; top:-80px; left:12px; z-index:2000; padding:12px; background:white; color:var(--brand); }
.skip-link:focus { top:12px; }
.bike-logo { width:160px; height:auto; }
:focus-visible { outline:3px solid #789ff1; outline-offset:3px; }
.page-title,.news-card h2 { letter-spacing:0; overflow-wrap:anywhere; }
.page-title { font-size:2rem; }
.browse-search { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:start; position:relative; }
.browse-search-input { min-width:0; min-height:46px; display:flex; align-items:center; gap:10px; border-radius:6px; padding:0 12px; background:#f1f3f5; }
.browse-search-input input { width:100%; min-width:0; padding:10px 0; background:none; border:0; color:inherit; font-size:16px; }
.browse-search-input:focus-within { outline:2px solid var(--brand); }
.browse-search-input input:focus-visible { outline:0; }
.filter-toggle { position:relative; display:flex; gap:8px; min-height:46px; align-items:center; justify-content:center; list-style:none; border:1px solid var(--line); border-radius:6px; padding:10px; cursor:pointer; }
summary::-webkit-details-marker { display:none; }
.filter-dot { position:absolute; width:7px; height:7px; top:6px; right:6px; border-radius:50%; background:var(--brand); }
.filter-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:18px 0; }
.filter-fields label { display:flex; flex-direction:column; gap:7px; min-width:0; font-size:14px; font-weight:600; }
.filter-fields .form-control,.filter-fields .form-select { font-size:16px; min-height:46px; }
.filter-disclosure[open] { display:contents; }
.filter-disclosure[open] > summary { grid-column:3; grid-row:1; }
.filter-disclosure[open] .filter-fields { grid-column:1/-1; }
.filter-actions { display:flex; align-items:end; gap:12px; justify-content:space-between; }
.clear-filters { color:var(--brand); font-size:14px; min-height:44px; display:inline-flex; align-items:center; }
.browse-tabs { display:flex; overflow-x:auto; scrollbar-width:none; gap:24px; border-bottom:1px solid var(--line); margin:12px 0 4px; }
.browse-tabs::-webkit-scrollbar { display:none; }
.browse-tabs a { flex:none; min-height:48px; display:inline-flex; align-items:center; border-bottom:2px solid transparent; font-size:14px; font-weight:600; color:var(--muted); white-space:nowrap; }
.browse-tabs a[aria-current] { color:var(--text); border-color:var(--text); }
.applied-filters { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:13px; margin-top:10px; overflow-wrap:anywhere; }
.applied-filters a { color:var(--brand); }
.result-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0; }
.sort-control { min-width:0; max-width:60%; }
.sort-control select { min-height:44px; width:100%; border:0; background:transparent; color:var(--muted); font-size:13px; text-overflow:ellipsis; }
.result-copy { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 16px; }
.public-results .result-price { grid-column:2; grid-row:1; white-space:nowrap; }
.public-results .result-title { grid-column:1; grid-row:1; }
.public-results .result-meta,.public-results .result-description { grid-column:1/-1; }
.result-photo { min-width:0; position:relative; overflow:hidden; background:white; border-radius:6px; }
.result-photo .result-thumb { border-radius:6px; object-fit:contain; background:white; }
.result-title { overflow-wrap:anywhere; }
.photo-fallback,.empty-photo { display:flex; align-items:center; justify-content:center; gap:10px; min-height:110px; padding:16px; color:var(--muted); background:#f3f5f6; font-size:14px; text-align:center; }
.photo-fallback[hidden] { display:none; }
.empty-state { padding:30px 0; }
.image-zoom { display:block; position:relative; width:100%; border:0; background:white; padding:0; cursor:zoom-in; }
.image-zoom img { display:block; width:100%; }
.listing-detail { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr); gap:24px; grid-template-areas:'heading heading' 'photos facts' 'description contact'; align-items:start; }
.detail-heading { grid-area:heading; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.detail-heading h1 { flex:1; }
.detail-heading .page-subtitle,.detail-heading .alert { flex-basis:100%; }
.detail-photos { grid-area:photos; min-width:0; }
.detail-facts { grid-area:facts; }
.detail-description { grid-area:description; }
.detail-description p { white-space:pre-line; overflow-wrap:anywhere; }
.detail-contact { grid-area:contact; min-width:0; }
.detail-description h2,.detail-contact h2 { font-size:20px; margin-bottom:16px; }
.detail-contact a,.detail-contact strong { overflow-wrap:anywhere; }
.vehicle-gallery { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.vehicle-gallery::-webkit-scrollbar { display:none; }
.vehicle-photo { flex:0 0 100%; scroll-snap-align:start; aspect-ratio:4/3; }
.vehicle-photo img { height:100%; object-fit:contain; }
.zoom-mark { position:absolute; display:grid; place-items:center; width:36px; height:36px; right:16px; bottom:16px; background:white; border:1px solid var(--line); border-radius:6px; }
.gallery-controls { display:flex; justify-content:center; align-items:center; gap:16px; font-size:13px; padding:8px 0; }
.gallery-controls button:disabled { opacity:.35; cursor:default; }
.vehicle-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.vehicle-facts dt { color:var(--muted); font-size:13px; font-weight:400; }
.vehicle-facts dd { margin:4px 0 0; font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.news-feed-source { display:flex; gap:7px; align-items:center; margin-top:12px; font-size:13px; overflow-wrap:anywhere; }
.news-feed-source .icon { width:16px; height:16px; color:#087866; }
.news-article-source { border-color:var(--line); }
.news-article-source a { color:#087866; }
dialog.mobile-sheet { border:0; background:white; color:var(--text); width:min(100%,600px); max-width:100%; max-height:88dvh; padding:20px; margin:auto auto 0; border-radius:8px 8px 0 0; overscroll-behavior:contain; }
.mobile-sheet header { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.mobile-sheet h2 { margin:0; font-size:22px; }
.mobile-sheet header .icon-button { border:0; }
dialog::backdrop { background:rgba(24,27,32,.55); }
body.dialog-open { overflow:hidden; }
dialog.image-lightbox { display:none; position:fixed; inset:0; margin:auto; width:min(96vw,1200px); height:fit-content; max-width:96vw; max-height:94dvh; padding:52px 12px 12px; border:0; border-radius:8px; background:white; backdrop-filter:none; overflow:auto; }
dialog.image-lightbox[open] { display:block; }
dialog.image-lightbox img { width:100%; height:auto; max-width:100%; max-height:calc(94dvh - 68px); object-fit:contain; border-radius:0; box-shadow:none; }
dialog.image-lightbox .image-lightbox-close { top:4px; right:8px; border-radius:6px; box-shadow:none; }
.upload-preview { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:12px; margin-top:16px; }
.upload-preview figure { margin:0; min-width:0; }
.upload-preview img { width:100%; aspect-ratio:4/3; object-fit:contain; background:#f3f5f6; border-radius:6px; }
.upload-preview figcaption { display:flex; gap:4px; align-items:center; justify-content:space-between; margin-top:4px; }
.upload-preview figcaption span { font-size:12px; }
.upload-preview .icon-button { width:40px; height:44px; }
.form-label { font-size:14px; font-weight:600; }
.mobile-help { display:flex; gap:8px; align-items:center; margin-top:24px; color:var(--brand); min-height:44px; }
@media (max-width:1080px) and (min-width:769px) {
    .listing-detail { grid-template-columns:1fr; grid-template-areas:'heading' 'photos' 'facts' 'description' 'contact'; }
    .filter-fields { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
    :root { --text:#181b20; --muted:#626971; --line:#e5e8eb; --brand:#205bd7; }
    body.bike-app { background:white; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
    body.bike-app * { letter-spacing:0; }
    .bike-shell { display:block; min-height:100dvh; padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
    .bike-header { height:60px; min-height:60px; flex-direction:row; align-items:center; padding:0 20px; position:relative; z-index:30; background:white; backdrop-filter:none; }
    .bike-header-primary { flex-direction:row; align-items:center; width:auto; }
    .bike-logo { width:120px; height:36px; object-fit:contain; object-position:left center; }
    .bike-primary-nav,.bike-lang-switcher,.bike-sidebar,.desktop-only { display:none !important; }
    .mobile-only { display:inline; }
    .mobile-language { display:block; position:relative; }
    .mobile-language summary { display:flex; align-items:center; justify-content:center; gap:5px; min-height:44px; min-width:44px; font-size:13px; font-weight:600; cursor:pointer; list-style:none; }
    .mobile-language summary .icon { width:15px; height:15px; }
    .language-options { position:absolute; right:0; top:100%; background:white; border:1px solid var(--line); padding:8px; border-radius:6px; box-shadow:0 8px 24px #181b2014; min-width:100px; }
    .language-options,.language-options form { display:grid; gap:6px; }
    .language-options .lang-pill { display:grid; place-items:center; min-height:44px; width:100%; border-radius:4px; }
    .bike-main { padding:20px; }
    .content-surface { padding:0; border:0; border-radius:0; box-shadow:none; background:white; min-height:0; }
    .bike-breadcrumbs { display:none; }
    .page-header { margin:0 0 16px; gap:10px; }
    .page-title { font-size:27px; line-height:1.2; font-weight:750; }
    .page-subtitle { font-size:15px; line-height:1.5; color:var(--muted); }
    .panel { border:0; border-radius:0; box-shadow:none; }
    .panel-body { padding:0; }
    .listing-card:hover,.listing-card:focus-visible { transform:none; box-shadow:none; }
    .browse-heading { margin-bottom:16px; }
    .browse-search { grid-template-columns:minmax(0,1fr) 46px; gap:10px; }
    .search-submit { display:none; }
    .filter-toggle { width:46px; height:46px; }
    .filter-disclosure[open] > summary { grid-column:2; }
    .filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); padding:16px 0; gap:16px; }
    .filter-fields label:nth-child(1),.filter-fields label:nth-child(2),.filter-fields label:nth-child(5),.filter-actions { grid-column:1/-1; }
    .filter-actions { align-items:center; padding-top:8px; padding-bottom:env(safe-area-inset-bottom); }
    .filter-actions .btn { flex:1; }
    .filter-actions .clear-filters { max-width:40%; line-height:1.3; }
    .browse-tabs { margin:12px -20px 0; padding:0 20px; gap:22px; }
    .result-toolbar { padding:8px 0; min-height:56px; }
    .result-toolbar .result-meta { font-size:12px; }
    .sort-control select { font-size:12px; }
    .public-results { gap:22px; }
    .public-results .listing-card { border-bottom:1px solid var(--line); padding-bottom:22px; margin:0; }
    .public-results .result-row { padding:0; gap:12px; grid-template-columns:minmax(0,1fr); }
    .result-photo { aspect-ratio:3/2; border:1px solid #f0f1f2; }
    .result-photo .result-thumb { width:100%; height:100%; object-fit:contain; }
    .result-photo .photo-fallback { width:100%; height:100%; }
    .public-results .result-copy { display:flex; flex-direction:column; gap:7px; }
    .public-results .result-price { color:var(--text); font-size:24px; font-weight:750; line-height:1.2; }
    .public-results .result-title { margin:0; font-size:19px; font-weight:650; line-height:1.3; }
    .public-results .result-meta { font-size:13px; line-height:1.5; }
    .public-results .result-description { display:none; }
    .mobile-bottom-nav { position:fixed; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); bottom:0; left:0; right:0; z-index:40; border-top:1px solid var(--line); background:rgba(255,255,255,.97); backdrop-filter:blur(12px); padding:7px 6px calc(8px + env(safe-area-inset-bottom)); }
    .mobile-bottom-nav a { min-width:0; min-height:52px; padding:2px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; color:var(--muted); font-size:10px; font-weight:550; text-align:center; line-height:1.3; }
    .mobile-bottom-nav a span { max-width:100%; overflow-wrap:anywhere; }
    .mobile-bottom-nav a[aria-current] { color:var(--brand); font-weight:700; }
    .mobile-add .icon { background:var(--brand); color:white; border-radius:6px; padding:4px; width:27px; height:27px; margin-top:-3px; }
    .mobile-contact-bar { position:fixed; left:0; right:0; bottom:0; display:flex; gap:10px; z-index:40; background:rgba(255,255,255,.97); border-top:1px solid var(--line); padding:12px 20px calc(12px + env(safe-area-inset-bottom)); }
    .mobile-contact-bar .btn { display:flex; align-items:center; justify-content:center; gap:8px; flex:1; min-width:0; font-size:14px; line-height:1.3; overflow-wrap:anywhere; }
    .page-listing-detail .bike-header-primary,.page-news-detail .bike-header-primary { display:none; }
    .mobile-back { display:flex; align-items:center; gap:8px; min-height:44px; font-size:14px; min-width:0; }
    .page-listing-detail .bike-header,.page-news-detail .bike-header { height:56px; min-height:56px; }
    .listing-detail { display:flex; flex-direction:column; gap:0; }
    .listing-detail > * { width:100%; min-width:0; }
    .detail-photos { order:-2; width:calc(100% + 40px); margin:-20px -20px 20px; }
    .listing-detail > .detail-photos { width:calc(100% + 40px); }
    .detail-heading { order:-1; display:flex; flex-direction:column; align-items:stretch; gap:8px; }
    .detail-heading .detail-price { order:-1; font-size:30px; font-weight:750; line-height:1.2; color:var(--text); }
    .detail-heading h1 { font-size:25px; font-weight:700; }
    .detail-heading .page-subtitle { margin:0; font-size:13px; }
    .vehicle-photo { border-bottom:1px solid var(--line); }
    .vehicle-facts { margin:22px 0; padding:18px 0; }
    .vehicle-facts dt { font-size:12px; }
    .vehicle-facts dd { font-size:15px; }
    .detail-description h2,.detail-contact h2 { font-size:18px; margin-bottom:12px; }
    .detail-description p { font-size:16px; line-height:1.65; margin-bottom:0; }
    .detail-contact { border-top:1px solid var(--line); margin-top:24px; padding-top:20px; }
    .detail-list { font-size:14px; }
    .news-topics { margin-bottom:20px; }
    .page-news .page-title { font:700 31px/1.15 Georgia,serif; }
    .news-feed { gap:26px; }
    .news-card { gap:0; overflow:visible; padding:0 0 24px; border-bottom:1px solid var(--line); margin:0 !important; }
    .news-card-image { aspect-ratio:3/2; object-fit:cover; min-height:0; height:auto; border-radius:4px; }
    .news-card-body { padding:0; }
    .news-card-meta { gap:10px; margin:14px 0 9px; }
    .news-card-label { padding:0; background:none; border-radius:0; color:#087866; font-size:11px; font-weight:700; text-transform:none; }
    .news-card-time { font-size:11px; font-weight:400; }
    .news-card h2 { font:700 25px/1.16 Georgia,serif; margin:0 0 10px; }
    .news-card p { font-size:15px; line-height:1.5; }
    .news-read-link { font-size:13px; min-height:44px; align-items:center; margin-top:6px; font-weight:600; }
    .news-feed-source { font-size:12px; margin-top:0; min-height:32px; }
    .news-detail .page-title { font:700 31px/1.14 Georgia,serif; }
    .news-detail .page-subtitle { font-size:18px; line-height:1.55; padding:16px 0 24px; border-bottom:1px solid var(--line); margin:0; }
    .news-detail .page-header { margin-bottom:24px; }
    .news-article-body { gap:24px; }
    .news-article-body p { font-size:17px; line-height:1.7; overflow-wrap:anywhere; }
    .news-article-figure { margin:0 -20px; }
    .news-article-figure img { max-height:none; border-radius:0; object-fit:contain; }
    .news-article-source { padding-top:18px; font-size:14px; }
    .form-section { padding:0 0 24px; margin:0; border-bottom:1px solid var(--line); }
    .form-section h2 { font-size:19px; margin-bottom:16px; }
    .form-grid { gap:24px; }
    .form-control,.form-select { font-size:16px; min-height:48px; border-radius:6px; border-color:#cdd1d5; }
    .form-check { display:flex; align-items:center; gap:10px; min-height:44px; padding-left:0; }
    .form-check .form-check-input { width:20px; height:20px; margin:0; flex:none; }
    .form-help { font-size:13px; line-height:1.5; }
    .form-actions .btn { flex:1; }
    .btn { border-radius:6px; min-height:48px; padding:11px 14px; font-size:15px; white-space:normal; }
    .page-link { border-radius:6px; min-width:44px; min-height:44px; }
    .result-row { min-width:0; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; } }
