/* SpotDex / katalog fotograficzny. Warstwa wizualna, bez zmian danych i brandingu. */

/* Typografia i wspólne elementy */
.container { width:min(1280px,calc(100% - 64px)); }
.page { padding-top:40px; }
.page-head { padding-bottom:24px; border-bottom:1px solid var(--line-strong); }
.page-head h1 { font-size:clamp(2.2rem,4.6vw,3.8rem); }
.section { margin-top:44px; }
.section-head { padding-top:16px; border-top:1px solid var(--line-strong); }
.section-head h2 { font-size:clamp(1.4rem,2.5vw,2rem); }
.eyebrow { color:var(--muted); letter-spacing:.12em; font-size:.75rem; }
.btn,.btn-sm,.input,.select,.textarea,.pill,.filter-tab,.tab { border-radius:3px; }
.btn { font-size:.875rem; }
.btn-icon { border-radius:4px; }
.card { border-radius:4px; }
.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.empty { padding:36px 20px; border-style:solid; border-inline:0; border-radius:0; }
.empty-icon { background:none; border:0; color:var(--muted); }
.progress-track,.progress-fill { border-radius:0; }
.progress-fill { animation:none; }
.toast,.modal,.search-results,.account-menu { box-shadow:none; animation:none; }
.toast,.modal,.dropzone,.premium-settings,.premium-preview,.registration-choice > span,.auth-alert,.registration-mode-note { border-radius:4px; }
.modal-backdrop,.modal-head { backdrop-filter:none; }
.modal-head { background:#15181e; }
.superlike-action { color:var(--muted); }
.superlike-action.active svg { filter:none; }
.photo-action.liked svg { animation:none; }
.comment-like:active,.comment-reply:active,.comment-delete:hover { transform:none; }

/* Nawigacja: stała, nieprzezroczysta i bez pływających kapsułek. */
.topbar { background:var(--bg); backdrop-filter:none; }
.nav-inner { grid-template-columns:auto minmax(150px,1fr) auto; gap:24px; }
.nav-search { min-width:0; }
.search-box .input { border-radius:3px; background:transparent; }
.nav-link { padding:24px 10px 22px; border-radius:0; border-bottom:2px solid transparent; }
.nav-link.active { border-bottom-color:var(--accent); background:transparent; }
.nav-link:hover { background:transparent; color:var(--accent-bright); }
.nav-actions { gap:6px; }
.topbar-guest .nav-inner { gap:18px; }
.topbar-guest .nav-actions > .btn { padding-inline:12px; white-space:nowrap; }
.spotmapa-button { background:transparent; border-color:var(--line-strong); }
.spotmapa-button img,.btn-spotmap img { border-radius:0; object-fit:contain; }
.search-results,.account-menu { border-radius:4px; background:#17191d; }
.search-result > span:not(.avatar) { min-width:0; flex:1; }
.search-result > span > span:not(.username),.search-result strong { overflow-wrap:anywhere; }
.search-result > span.avatar { display:inline-grid; flex:0 0 auto; }
.search-group-label { font-size:.75rem; }
.search-result strong,.menu-item { font-size:.875rem; }
.search-result > span > span:not(.username) { font-size:.8125rem; }
.account-head > span { overflow-wrap:anywhere; }
.menu-item { border-radius:3px; min-height:42px; }

/* Nick i koronka są jednym elementem niezależnie od podpisu otaczającego zdjęcie. */
.username { display:inline-flex; align-items:center; vertical-align:baseline; gap:4px; max-width:100%; line-height:inherit; }
.username .username-text { display:inline; font-size:inherit; line-height:inherit; }
.username .premium-crown { display:inline-grid; flex:0 0 14px; overflow:visible; }
.username .premium-crown svg { position:static; transform:none; display:block; width:14px; height:14px; color:#ffd873; }
.eyebrow .username { text-transform:none; letter-spacing:normal; }

/* Okładka i dziennik */
.journal-landing .landing-nav { position:static; height:78px; }
.journal-public-nav,.journal-account-nav { display:flex; align-items:center; gap:24px; }
.journal-public-nav { margin-right:auto; margin-left:24px; font-size:.875rem; }
.journal-public-nav a:hover,.journal-text-link:hover,.journal-footer a:hover { color:var(--accent-bright); }
.journal-account-nav { gap:8px; }
.journal-text-link { display:inline-flex; align-items:center; gap:7px; font-size:.875rem; font-weight:650; }
.journal-intro .journal-intro-note { margin:18px 0 0; font-size:.8125rem; color:var(--muted); }
.journal-feature figcaption small { display:block; margin-top:3px; font-size:.75rem; }
.journal-feature figcaption a { display:inline-flex; align-items:center; gap:4px; flex-shrink:0; }
.journal-catalog > .journal-section-head { margin-top:42px; border-top:0; }
.journal-catalog-note { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-top:24px; }
.journal-catalog-note p { max-width:630px; margin:0; font-size:.875rem; }
.journal-dashboard .dashboard-grid { grid-template-columns:minmax(0,1.7fr) minmax(270px,.7fr); gap:48px; }
.journal-dashboard .photo-grid { grid-template-columns:1fr; }
.journal-dashboard .photo-media { aspect-ratio:3/2; }
.journal-dashboard .aircraft-grid { grid-template-columns:1fr; gap:16px; }
.journal-dashboard .aircraft-card { display:grid; grid-template-columns:180px minmax(0,1fr); align-items:start; gap:18px; padding-bottom:16px; }
.journal-dashboard .aircraft-body { padding:0; }
.journal-log .section-head h3 { font-size:1.15rem; }
.journal-activity-summary strong { font-family:var(--heading-font); color:var(--text); font-size:2.5rem; }
.journal-hero { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:48px; align-items:center; padding-block:56px 40px; }
.journal-intro { min-width:0; }
.journal-hero h1 { max-width:650px; margin:15px 0 24px; font-size:clamp(3.2rem,5.8vw,5.8rem); font-weight:750; line-height:.98; letter-spacing:-.045em; }
.journal-hero h1 span { display:block; color:var(--accent); }
.journal-intro > p { max-width:420px; margin-bottom:28px; font-size:1rem; line-height:1.7; }
.journal-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; }
.journal-feature { min-width:0; margin:0; }
.journal-feature > a { display:block; }
.journal-feature img { width:100%; aspect-ratio:5/4; object-fit:cover; }
.journal-feature figcaption { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding-top:12px; font-size:.8125rem; color:var(--muted); }
.journal-feature figcaption strong { color:var(--text); font-weight:600; }
.journal-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; padding:0; border-block:1px solid var(--line-strong); }
.journal-stats > div { min-width:0; padding:22px 24px; border-right:1px solid var(--line); }
.journal-stats > div:first-child { padding-left:0; }
.journal-stats > div:last-child { border-right:0; }
.journal-stats dt { color:var(--muted); font-size:.8125rem; }
.journal-stats dd { margin:4px 0 0; font-family:var(--heading-font); font-size:2.1rem; font-weight:650; font-variant-numeric:tabular-nums; line-height:1.2; }
.journal-section { padding-top:44px; }
.journal-section-head { display:flex; align-items:end; justify-content:space-between; gap:20px; padding-top:15px; margin-bottom:24px; border-top:1px solid var(--line-strong); }
.journal-section-head h2 { margin:0; font-size:clamp(1.7rem,3vw,2.5rem); }
.journal-section-head p { margin:8px 0 0; }
.journal-footer { display:flex; justify-content:space-between; gap:16px; padding:28px 0 36px; margin-top:48px; border-top:1px solid var(--line-strong); color:var(--muted); font-size:.8125rem; }
.journal-page-head { display:flex; align-items:end; justify-content:space-between; gap:20px; padding-bottom:26px; }
.journal-page-head h1 { margin:8px 0; font-size:clamp(2.2rem,4.8vw,4rem); }
.journal-page-head p { margin:0; }
.journal-page-head .username { font-family:inherit; font-size:inherit; }
.journal-dashboard .journal-stats { grid-template-columns:repeat(6,minmax(0,1fr)); }
.journal-dashboard .journal-stats > div { padding:18px; }
.journal-dashboard .journal-stats dd { font-size:1.8rem; }
.journal-collection-progress { display:grid; grid-template-columns:1fr 1fr; gap:32px; padding-block:24px; border-bottom:1px solid var(--line); }
.journal-collection-progress .collection-progress { margin:0; padding:0; border:0; background:none; }
.journal-collection-progress .progress-track { height:3px; }
.journal-log .panel { padding:0; border:0; background:none; }
.journal-log .panel + .panel { padding-top:24px; margin-top:24px; border-top:1px solid var(--line); }
.activity-list { gap:0; }
.activity-item { padding:14px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.activity-icon { width:30px; height:30px; background:none; border-radius:0; color:var(--muted); }
.activity-copy > strong { font-size:.875rem; }
.activity-copy > span { font-size:.8125rem; }

/* Kolekcja: fotografie i podpisy zamiast pudełek z nakładkami. */
.aircraft-grid { gap:32px 24px; }
.aircraft-card,.photo-card { border:0; border-bottom:1px solid var(--line-strong); border-radius:0; background:transparent; }
.aircraft-card:hover { border-color:var(--accent); }
.aircraft-image { aspect-ratio:3/2; }
.aircraft-image.fallback-image { background:#181b20; }
.aircraft-no-photo { height:100%; display:grid; align-content:center; justify-items:center; gap:12px; color:var(--muted); font-size:.8125rem; }
.aircraft-no-photo svg { width:32px; height:32px; }
.journal-index { display:grid; align-content:center; border-block:1px solid var(--line-strong); min-height:400px; }
.journal-index > .eyebrow { margin:20px 0; }
.journal-index > a { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; border-top:1px solid var(--line); }
.journal-index strong { font-family:var(--heading-font); font-size:1.3rem; }
.journal-index small { display:block; color:var(--muted); font-size:.8125rem; }
.aircraft-body { padding:14px 0 20px; }
.aircraft-caption { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; color:var(--muted); font-size:.75rem; }
.aircraft-status { position:static; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.aircraft-status.is-collected { color:var(--success); }
.aircraft-status svg { width:13px; height:13px; }
.aircraft-body h3 { margin-bottom:9px; font-size:1.65rem; line-height:1.08; }
.aircraft-meta { align-items:baseline; margin-top:0; }
.aircraft-meta span { font-size:.8125rem; }
.aircraft-meta > span:last-child { flex-shrink:0; font-variant-numeric:tabular-nums; }
.collection-switcher { display:flex; gap:0; margin-bottom:20px; border-bottom:1px solid var(--line-strong); }
.collection-switch { flex:1; display:grid; grid-template-columns:1fr auto; padding:16px 20px; gap:4px 16px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; }
.collection-switch:first-child { padding-left:0; }
.collection-switch > span { font-size:.875rem; }
.collection-switch strong { grid-column:2; grid-row:1 / span 2; align-self:center; font-family:var(--heading-font); font-size:1.5rem; font-variant-numeric:tabular-nums; }
.collection-switch small { grid-column:1; font-size:.75rem; }
.collection-switch.active,.collection-switch.show.active { border-color:var(--accent); background:transparent; }
.filters { flex-wrap:wrap; top:var(--nav-h); padding:12px 0; border:0; border-block:1px solid var(--line); border-radius:0; background:var(--bg); backdrop-filter:none; }
.filter-tab { font-size:.875rem; }
.filter-tab.active { background:var(--surface-3); }
.filters .select { font-size:.875rem; }
.results-count { font-size:.8125rem; }

/* Zdjęcia społeczności: obraz jest pierwszy, podpis i reakcje pod nim. */
.photo-grid { gap:32px 24px; }
.photo-card { display:flex; flex-direction:column; }
.photo-media { order:-1; }
.photo-card-head { padding:14px 0 4px; }
.photo-card-head strong { font-size:.875rem; }
.photo-aircraft-label { display:block; margin-top:2px; font-size:.8125rem; color:var(--muted); }
.photo-actions { padding:6px 0; }
.photo-action { min-width:40px; min-height:40px; padding-inline:8px; font-size:.8125rem; border-radius:3px; }
.photo-copy { padding:0 0 18px; }
.photo-copy p { font-size:.875rem; }
.photo-copy span { font-size:.8125rem; }
.photo-copy svg { vertical-align:-2px; }

/* Karta maszyny: bez przyciemniania fotografii. */
.detail-hero { display:flex; flex-direction:column; min-height:0; background:var(--bg); }
.detail-hero::after { content:none; }
.detail-hero > img { position:static; width:min(1280px,calc(100% - 64px)); height:clamp(280px,39vw,500px); margin:24px auto 0; object-fit:cover; }
.detail-content { padding-block:24px 32px; }
.detail-title h1 { font-size:clamp(2.4rem,5.5vw,5rem); }
.breadcrumbs { margin-bottom:18px; }
.spec-card { padding:0 0 0 24px; border:0; border-left:1px solid var(--line-strong); border-radius:0; background:transparent; }
.spec-row > span { font-size:.8125rem; }
.spec-row > strong { font-size:.875rem; }
.facts { gap:0; border-block:1px solid var(--line); }
.fact { padding:20px 20px 20px 0; border:0; background:none; }
.fact span { font-size:.8125rem; }
.profile-head { padding:8px 0 28px; border:0; border-bottom:1px solid var(--line-strong); border-radius:0; background:none; }
.profile-stats { border-inline:0; border-radius:0; background:none; }
.profile-stat { text-align:left; }
.profile-stat span { font-size:.8125rem; }
.table-wrap.card { border-inline:0; border-radius:0; background:none; }
.table th { font-size:.75rem; }
.table td { font-size:.875rem; }
.table tbody tr:hover { background:#14161a; }
.achievement { border:0; border-bottom:1px solid var(--line); border-radius:0; background:none; }
.achievement-icon { border:0; background:none; color:var(--muted); }
.notification { border-inline:0; border-radius:0; }
.notification-icon { border-radius:0; background:none; }

/* Formularze i podgląd: czytelne metadane, niezależny przewijany panel. */
.auth-wrap > .logo { display:flex; width:max-content; margin-bottom:40px; }
.auth-wrap h1 { font-size:3rem; }
.auth-divider { font-size:.8125rem; }
.auth-divider span { max-width:270px; }
.auth-legal { font-size:.8125rem; }
.spotmap-account-head img { box-shadow:none; }
.lightbox-side { overflow-y:auto; }
.lightbox-side > .avatar-lg { width:40px; height:40px; }
.lightbox-side > h2 { margin-top:12px!important; font-size:1.5rem; }
.lightbox-side > p { font-size:.875rem; }
.lightbox-side .spec-row { display:grid; grid-template-columns:100px minmax(0,1fr); gap:12px; padding:8px 0; }
.lightbox-side .spec-row > strong { margin:0; }
.lightbox-side .comments { flex:1 0 240px; min-height:240px; }
.lightbox-side .comments-list { min-height:110px; max-height:46dvh; }
.comment strong,.comment span { font-size:.8125rem; }
.comment p { font-size:.875rem; overflow-wrap:anywhere; }

@media (max-width:1100px) {
  .nav-link { display:none; }
  .journal-hero { gap:28px; }
  .journal-hero h1 { font-size:clamp(3rem,6vw,4.5rem); }
  .journal-dashboard .journal-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .journal-dashboard .journal-stats > div:nth-child(3) { border-right:0; }
  .journal-dashboard .journal-stats > div:nth-child(n+4) { border-top:1px solid var(--line); }
  .journal-dashboard .journal-stats > div:nth-child(4) { padding-left:0; }
}

@media (max-width:1000px) {
  .journal-dashboard .dashboard-grid { grid-template-columns:1fr; gap:0; }
  .journal-log { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
}

@media (max-width:760px) {
  :root { --nav-h:120px; }
  .container { width:calc(100% - 28px); }
  .journal-landing .landing-nav { height:auto; }
  .journal-landing .landing-nav .nav-inner { display:flex; flex-wrap:wrap; padding-block:14px; gap:16px 10px; }
  .journal-account-nav { margin-left:auto; gap:0; }
  .journal-account-nav .btn { padding-inline:9px; min-height:40px; font-size:.8125rem; }
  .journal-public-nav { order:3; flex-basis:100%; margin:0; gap:22px; }
  .journal-landing .landing-nav .btn:first-of-type { display:inline-flex; }
  .journal-landing .logo img { width:118px; }
  .journal-catalog-note { flex-direction:column; gap:12px; }
  .journal-dashboard .dashboard-grid { grid-template-columns:1fr; gap:0; }
  .journal-log { display:block; }
  .journal-dashboard .aircraft-card { grid-template-columns:110px minmax(0,1fr); gap:14px; }
  .journal-dashboard .aircraft-caption { flex-direction:column; align-items:start; gap:3px; margin-bottom:7px; }
  .journal-dashboard .aircraft-body h3 { font-size:1.3rem; }
  .journal-dashboard .aircraft-meta { flex-direction:column; gap:2px; }
  .nav-inner { min-height:0; grid-template-columns:auto minmax(0,1fr) auto; gap:8px 10px; }
  .nav-link { padding:10px; }
  .topbar-guest .nav-inner { gap:8px; }
  .topbar-guest .nav-actions { gap:0; }
  .topbar-guest .nav-actions > .btn { min-height:40px; padding:0 9px; font-size:.8125rem; }
  .topbar-guest .logo img { width:118px; }
  .search-results { position:absolute; top:calc(100% + 8px); left:0; right:0; max-height:60dvh; }
  .page { padding-top:24px; }
  .page-head { padding-bottom:20px; }
  .page-head h1 { font-size:2.5rem; }
  .section-head { flex-wrap:wrap; }
  .journal-hero { grid-template-columns:1fr; padding-top:32px; gap:28px; }
  .journal-hero h1 { max-width:520px; margin-top:8px; font-size:clamp(3rem,10vw,4.5rem); }
  .journal-intro > p { max-width:520px; margin-bottom:20px; }
  .journal-feature img { aspect-ratio:3/2; }
  .journal-feature figcaption { gap:12px; }
  .journal-feature figcaption a { flex-shrink:1; text-align:right; }
  .journal-stats,.journal-dashboard .journal-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .journal-stats > div { padding:16px; }
  .journal-stats > div:nth-child(2n) { border-right:0; }
  .journal-stats > div:nth-child(2n+1) { padding-left:0; }
  .journal-stats > div:nth-child(n+3) { border-top:1px solid var(--line); }
  .journal-dashboard .journal-stats > div:nth-child(3) { border-right:1px solid var(--line); }
  .journal-dashboard .journal-stats > div:nth-child(4) { padding-left:16px; }
  .journal-stats dd { font-size:1.7rem; }
  .journal-page-head { align-items:start; flex-direction:column; gap:16px; }
  .journal-page-head h1 { font-size:2.6rem; }
  .journal-collection-progress { grid-template-columns:1fr; gap:20px; }
  .journal-section-head { flex-wrap:wrap; align-items:start; }
  .journal-footer { flex-direction:column; gap:8px; }
  .collection-switch { padding:12px; grid-template-columns:1fr; gap:4px; }
  .collection-switch strong { grid-column:1; grid-row:auto; }
  .collection-switch small { font-size:.75rem; }
  .filters { position:static; overflow:visible; padding:12px 0; margin-inline:0; gap:8px; background:var(--bg); }
  .filter-tabs { flex:1 1 100%; min-width:0; overflow-x:auto; }
  .filter-tab { white-space:nowrap; }
  .filters .select { display:block; flex:1 1 120px; width:0; min-width:0; min-height:44px; font-size:.875rem; }
  .aircraft-grid,.photo-grid { gap:28px; }
  .photo-card-head { padding:12px 0 4px; }
  .photo-actions { padding:5px 0; justify-content:flex-start; }
  .photo-action { min-height:44px; min-width:44px; }
  .detail-hero > img { width:100%; height:clamp(220px,55vw,400px); margin:0; }
  .detail-content { padding-block:22px; }
  .spec-card { padding:20px 0 0; border-left:0; border-top:1px solid var(--line); }
  .profile-stat { padding:14px; }
  .mobile-link { font-size:.75rem; }
  .mobile-link.add { width:44px; height:44px; border-radius:4px; }
  .modal { border-radius:4px 4px 0 0; }
  .lightbox-media { flex-basis:34dvh; padding-top:12px; }
  .lightbox-media img { max-height:calc(34dvh - 24px); }
  .lightbox-side { overflow-y:auto; }
  .lightbox-side > .avatar-lg { display:none; }
  .lightbox-side > h2 { margin-top:0!important; }
  .lightbox-side .comments { flex:1 0 260px; min-height:260px; }
  .lightbox-side .comments-list { max-height:40dvh; }
}

@media (max-width:360px) {
  .topbar-guest .logo img { width:104px; }
  .topbar-guest .nav-actions > .btn { padding-inline:7px; }
  .aircraft-caption { align-items:start; flex-direction:column; gap:3px; }
}

@media (max-height:500px) and (orientation:landscape) {
  .lightbox { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.85fr); }
  .lightbox-media { padding:16px; }
  .lightbox-media img { max-height:calc(100dvh - 32px); }
  .lightbox-side { height:100dvh; border-top:0; }
}
