/* =========================================================
   PHOTO LIGHTBOX — Direction C
   ========================================================= */
.photo-grid-thumb { cursor: pointer; }
.photo-grid-thumb:active { opacity: 0.85; }

.photo-lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 25000;
  background: rgba(10,14,18,0.96);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  animation: lightboxFadeIn 0.2s ease;
  -webkit-user-select: none;
  user-select: none;
}
@keyframes lightboxFadeIn { from { opacity: 0; } to { opacity: 1; } }

.photo-lightbox-overlay.photo-lightbox-closing {
  animation: lightboxFadeOut 0.2s ease forwards;
}
@keyframes lightboxFadeOut { from { opacity: 1; } to { opacity: 0; } }

.photo-lightbox-topbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(var(--safe-top) + 10px) 14px 12px;
}
.photo-lightbox-counter {
  font-size: var(--t-12);
  font-weight: var(--w-semibold);
  color: #fff;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  padding: 6px 12px;
  border-radius: var(--r-sm);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  text-transform: uppercase;
  letter-spacing: var(--ls-wider);
  font-variant-numeric: tabular-nums;
}
.photo-lightbox-close {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;
  width: 36px;
  height: 36px;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 18px;
  font-weight: var(--w-medium);
  line-height: 1;
  padding: 0;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  transition: background var(--dur-fast) var(--ease);
}
.photo-lightbox-close:active { background: rgba(255,255,255,0.28); }

.photo-lightbox-body {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  touch-action: none;
}
.photo-lightbox-img-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  transition: transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity var(--dur-base) ease;
  will-change: transform, opacity;
}
.photo-lightbox-img {
  max-width: 95%;
  max-height: 90%;
  object-fit: contain;
  border-radius: var(--r-xs);
  cursor: zoom-in;
}

.photo-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.16);
  color: #fff;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 20px;
  font-weight: var(--w-regular);
  line-height: 1;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
  z-index: 3;
}
.photo-lightbox-nav:active {
  background: rgba(255,255,255,0.25);
  transform: translateY(-50%) scale(0.92);
}
.photo-lightbox-prev { left: 12px; }
.photo-lightbox-next { right: 12px; }

@media (max-width: 500px) {
  .photo-lightbox-nav { width: 40px; height: 40px; font-size: 18px; }
  .photo-lightbox-prev { left: 6px; }
  .photo-lightbox-next { right: 6px; }
}

/* Stars display on calendar */
.cal-block-stars {
  font-size: 7px;
  line-height: 1;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0;
  color: var(--gold);
  letter-spacing: -1px;
}

@media (prefers-color-scheme: dark) {
  .cleaning-form-info { background: var(--surface); border-color: var(--line-1); }
  .cleaning-select-btn { background: var(--surface); border-color: var(--line-2); color: var(--ink-1); }
  .cleaning-select-btn.selected { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
  .cleaning-dropzone { background: var(--surface); border-color: var(--line-2); }
  .cleaning-dropzone:active,
  .cleaning-dropzone.dragover { border-color: var(--accent); background: var(--accent-soft); }
}
