@layer components {
  /* ── Photos toolbar ── */
  .photos-toolbar-form {
    display: contents;
  }

  .filter-select {
    font-family: var(--font-ui);
    font-size: 13px;
    color: var(--ink-600);
    background: var(--ink-50);
    border: 1px solid var(--ink-150, var(--ink-200));
    border-radius: var(--r-md);
    padding: 7px 28px 7px 10px;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    cursor: pointer;
  }

  .filter-select:focus {
    border-color: var(--forest-500);
    box-shadow: 0 0 0 3px var(--forest-100);
  }

  .filter-select:hover {
    border-color: var(--ink-300);
  }

  /* ── Thumbnail column ── */
  .col-thumb { width: 48px; }

  .upload-thumbnail {
    width: 40px;
    height: 30px;
    border-radius: var(--r-sm);
    object-fit: cover;
    display: block;
  }

  .upload-thumbnail-placeholder {
    width: 40px;
    height: 30px;
    border-radius: var(--r-sm);
    background: var(--ink-100);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink-300);
  }

  .upload-thumbnail-placeholder svg {
    width: 16px;
    height: 16px;
  }

  /* ── Photo ID column ── */
  .photo-id-cell {
    font-family: var(--font-mono);
    font-size: 13px;
    letter-spacing: 0.03em;
  }

  /* ── Admin photo show layout ── */
  .admin-photo-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 0;
    border: 1px solid var(--ink-100);
    border-radius: var(--r-lg);
    overflow: hidden;
    background: #fff;
  }

  .admin-photo-layout .photo-section {
    min-height: 400px;
  }

  .admin-photo-layout .photo-actions-bar {
    max-width: 580px;
  }

  .admin-photo-layout .btn svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
  }

  /* ── Jury status in detail panel ── */
  .jury-status {
    font-size: 13px;
    margin: 0 0 12px;
  }

  .jury-status--eligible { color: var(--forest-600, #3d8b40); }
  .jury-status--excluded { color: var(--amber-600, #d97706); }

  .btn-block,
  .detail-section .btn-block { width: 100%; text-align: center; }

  @media (max-width: 900px) {
    .admin-photo-layout {
      grid-template-columns: 1fr;
    }

    .admin-photo-layout .detail-panel {
      border-left: none;
      border-top: 1px solid var(--ink-100);
    }
  }
}
