.device-gallery__main { position: relative; }
.device-gallery__credit {
  position: absolute; right: 10px; bottom: 8px; max-width: calc(100% - 20px);
  padding: 2px 8px; border-radius: 999px;
  background: rgba(255, 255, 255, .88); color: var(--color-ink-soft, #64748b);
  font-size: 11.5px; line-height: 1.6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  pointer-events: none;
}
.device-gallery__credit[hidden] { display: none; }
/* Zdjęcie od użytkownika — wyróżnione, żeby nie mylić go z materiałami producenta.
   Ikona osoby to maska SVG (nie zależy od czcionki ikon). */
.device-gallery__credit--user { background: rgba(29, 78, 216, .9); color: #fff; }
.device-gallery__credit--user::before {
  content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 5px; vertical-align: -1px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.device-gallery__thumb { position: relative; }
.device-gallery__thumb[data-source="user"]::after {
  content: ""; position: absolute; right: 3px; bottom: 3px; width: 16px; height: 16px; border-radius: 50%;
  background: var(--color-primary, #1d4ed8)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='white'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6'/%3E%3C/svg%3E")
    center / 10px no-repeat;
}

/* Brak zdjęć — zachęta w miejscu zdjęcia */
.device-gallery__empty-cta {
  display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 24px; text-align: center;
}
.device-gallery__empty-cta .device-gallery__no-image { font-size: 64px; line-height: 1; }
.device-gallery__empty-text { margin: 0; font-size: 14px; line-height: 1.5; color: var(--color-ink-soft, #64748b); max-width: 260px; }
.device-gallery__empty-text strong { display: block; color: var(--color-ink, #0f172a); font-size: 15px; margin-bottom: 2px; }

/* Są zdjęcia — dyskretny link pod miniaturami */
.dp-link {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; padding: 0;
  background: none; border: 0; font: inherit; font-size: 13.5px; font-weight: 600;
  color: var(--color-primary, #1d4ed8); cursor: pointer;
}
.dp-link:hover { text-decoration: underline; }
.dp-link .bi { font-size: 15px; }

/* ── Okno ─────────────────────────────────────────────────────────────── */
.dp-dialog {
  /* margin: auto — globalny reset zeruje marginesy, a natywny <dialog> centruje się właśnie nimi */
  margin: auto; inset: 0;
  width: min(620px, calc(100vw - 24px)); max-height: calc(100dvh - 24px);
  padding: 0; border: 0; border-radius: 16px; overflow: auto;
  background: var(--color-surface, #fff); color: var(--color-ink, #0f172a);
  box-shadow: 0 24px 60px rgba(15, 23, 42, .28);
}
.dp-dialog::backdrop { background: rgba(15, 23, 42, .55); }
.dp-form { display: flex; flex-direction: column; }

.dp-head { display: flex; gap: 14px; align-items: flex-start; padding: 20px 22px 14px; border-bottom: 1px solid var(--color-border, #e2e8f0); }
.dp-head__icon {
  width: 42px; height: 42px; flex-shrink: 0; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: var(--color-primary-xlight, #eff6ff); color: var(--color-primary, #1d4ed8); font-size: 20px;
}
.dp-head__text { flex: 1; min-width: 0; }
.dp-head__title { margin: 0 0 3px; font-size: 17px; font-weight: 700; line-height: 1.3; }
.dp-head__sub { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--color-ink-soft, #64748b); }
.dp-close {
  flex-shrink: 0; width: 34px; height: 34px; border: 0; border-radius: 8px; background: transparent;
  color: var(--color-ink-soft, #64748b); font-size: 16px; cursor: pointer;
}
.dp-close:hover { background: var(--color-bg, #f1f5f9); color: var(--color-ink, #0f172a); }

.dp-body { padding: 16px 22px 4px; }
.dp-body[hidden] { display: none; }

/* Pole pliku */
.dp-drop {
  position: relative; display: flex; align-items: center; justify-content: center; min-height: 170px;
  border: 2px dashed #bfdbfe; border-radius: 12px; background: var(--color-primary-xlight, #eff6ff);
  cursor: pointer; overflow: hidden; transition: border-color .15s, background .15s;
}
.dp-drop:hover, .dp-drop--over { border-color: var(--color-primary, #1d4ed8); }
.dp-drop:focus-within { box-shadow: 0 0 0 3px rgba(29, 78, 216, .18); }
.dp-drop--has { background: #fff; border-style: solid; border-color: var(--color-border, #e2e8f0); }
.dp-drop__input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.dp-drop__empty { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 18px; text-align: center; font-size: 14px; color: var(--color-ink-mid, #334155); pointer-events: none; }
.dp-drop__empty .bi { font-size: 34px; color: var(--color-primary, #1d4ed8); margin-bottom: 4px; }
.dp-drop__empty small { font-size: 12px; color: var(--color-ink-muted, #94a3b8); }
.dp-drop__preview { display: block; max-width: 100%; max-height: 260px; object-fit: contain; pointer-events: none; }

.dp-tips { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; font-size: 12.5px; color: var(--color-ink-soft, #64748b); }
.dp-tips li { display: flex; gap: 6px; align-items: flex-start; line-height: 1.45; }
.dp-tips .bi-check2 { color: #16a34a; }
.dp-tips .bi-x { color: #dc2626; }

.dp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; margin-top: 16px; }
.dp-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.dp-field--wide { grid-column: 1 / -1; }
.dp-field__label { font-size: 13px; font-weight: 600; color: var(--color-ink-mid, #334155); }
.dp-field__opt { font-weight: 400; color: var(--color-ink-muted, #94a3b8); }
.dp-field__hint { font-size: 11.5px; color: var(--color-ink-muted, #94a3b8); }
.dp-field__input {
  width: 100%; box-sizing: border-box; padding: 9px 11px; font: inherit; font-size: 14px;
  color: var(--color-ink, #0f172a); background: #fff;
  border: 1.5px solid var(--color-border, #e2e8f0); border-radius: 9px;
}
.dp-field__input:focus { outline: none; border-color: var(--color-primary, #1d4ed8); box-shadow: 0 0 0 3px rgba(29, 78, 216, .12); }
.dp-check { display: flex; gap: 9px; align-items: flex-start; font-size: 13.5px; line-height: 1.45; color: var(--color-ink-mid, #334155); cursor: pointer; }
.dp-check input { margin-top: 3px; flex-shrink: 0; accent-color: var(--color-primary, #1d4ed8); }
.dp-check--req { padding: 10px 12px; border-radius: 9px; background: var(--color-bg, #f8fafc); }
.dp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dp-legal { margin: 12px 0 0; font-size: 11.5px; line-height: 1.5; color: var(--color-ink-soft, #64748b); }
.dp-legal a, .dp-check a { color: var(--color-primary, #1d4ed8); text-decoration: underline; }

.dp-msg { margin: 12px 22px 0; padding: 11px 14px; border-radius: 9px; font-size: 14px; line-height: 1.5; }
.dp-msg[hidden] { display: none; }
.dp-msg--ok   { background: #dcfce7; color: #166534; }
.dp-msg--err  { background: #fee2e2; color: #991b1b; }
.dp-msg--info { background: var(--color-primary-xlight, #eff6ff); color: var(--color-ink, #0f172a); }

.dp-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 16px 22px 20px; }
.dp-actions .btn[hidden] { display: none; }
.dp-progress { flex: 1 1 120px; height: 6px; border-radius: 999px; background: var(--color-border, #e2e8f0); overflow: hidden; }
.dp-progress[hidden] { display: none; }
.dp-progress span { display: block; height: 100%; width: 0; background: var(--color-primary, #1d4ed8); transition: width .15s; }

@media (max-width: 560px) {
  .dp-head { padding: 16px 16px 12px; }
  .dp-body { padding: 14px 16px 4px; }
  .dp-msg { margin: 12px 16px 0; }
  .dp-actions { padding: 14px 16px 18px; }
  .dp-grid, .dp-tips { grid-template-columns: 1fr; }
  .dp-actions .btn { flex: 1 1 auto; justify-content: center; }
}

/* ── Punkty za zdjęcie (migracja 28) ─────────────────────────────────── */
.dp-points {
  margin: 0 0 14px; padding: 10px 12px; border-radius: 10px;
  background: #f0fdf4; border: 1px solid #bbf7d0; font-size: 13px; line-height: 1.5; color: #14532d;
}
.dp-points__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-weight: 600; }
.dp-points__sep { color: #86efac; }
.dp-points__badge {
  display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 800;
  background: #16a34a; color: #fff;
}
.dp-points__badge--gold { background: #ca8a04; }
.dp-points__note { margin-top: 4px; font-size: 12.5px; color: #166534; }
.dp-points__note[hidden] { display: none; }
.dp-points__note a { color: #15803d; font-weight: 600; text-decoration: underline; }

/* Brak zdjęcia w porównywarce — przycisk pod ikoną */
.compare-slot__photo-cta {
  display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; padding: 4px 10px;
  border: 1px dashed var(--color-primary, #1d4ed8); border-radius: 999px; background: #fff;
  color: var(--color-primary, #1d4ed8); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
}
.compare-slot__photo-cta:hover { background: var(--color-primary-xlight, #eff6ff); }
.compare-slot__img--empty { display: flex; flex-direction: column; align-items: center; justify-content: center; }
