/* Visibility must never depend on JavaScript finishing successfully. */
.reveal { opacity: 1; transform: none; }
.reveal.will-reveal:not(.visible) { opacity: 0; transform: translateY(20px); }
@media (prefers-reduced-motion: reduce) { .reveal.will-reveal { opacity: 1; transform: none; } }
.tabs a { display: inline-flex; align-items: center; justify-content: center; padding: 13px 23px; border-radius: 9px; background: #eff1f5; color: #1d252f; font-weight: 800; text-decoration: none; }
.tabs a.active { background: #d71920; color: #fff; }
.tabs a:focus-visible { outline: 3px solid #297be6; outline-offset: 3px; }
.form-save-error { background: #fff0f0; color: #a10e15; padding: 16px; border: 1px solid #f1b6b6; border-radius: 10px; margin: 16px 0; overflow-wrap: anywhere; }
.form-save-error[hidden], .upload-controls button[hidden] { display: none; }
.photo-repair-form { max-width: 820px; margin: 24px 0; }
.detail-layout > article { min-width: 0; }
.detail-layout .gallery-slide { margin: 0; }
.detail-layout .gallery-slide img { object-fit: contain; }
.data-table td .btn { margin-top: 6px; white-space: nowrap; }
.admin-layout { grid-template-columns: minmax(0,245px) minmax(0,1fr); }
.admin-main { min-width: 0; overflow-x: hidden; }
.admin-main .admin-filter { grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); }
.admin-main .admin-filter .filter-actions { grid-column: 1 / -1; flex-wrap: wrap; }
.admin-main .admin-panel.table-wrap { max-width: 100%; overflow-x: auto; }
.admin-main .inline-form { flex-wrap: wrap; min-width: 360px; }
@media (max-width: 680px) {
  .admin-layout { grid-template-columns: minmax(0,1fr); }
  .admin-main .admin-filter { grid-template-columns: minmax(0,1fr); }
  .admin-main .inline-form { min-width: 310px; }
}
