.photo-view-shell { display:grid; grid-template-columns:minmax(0, 1.9fr) 360px; gap:28px; align-items:start; }
.photo-stage { background:#050505; border:1px solid #1f1f1f; min-height:720px; display:flex; align-items:center; justify-content:center; padding:18px; }
.photo-stage img { display:block; max-width:100%; max-height:78vh; }
.photo-sidebar { background:#232323; color:#fff; border:1px solid #383838; padding:22px 26px; }
.photo-sidebar .meta-block { margin:0 0 16px; }
.photo-sidebar .meta-label { display:block; font-size:1.02rem; font-weight:800; line-height:1.2; }
.photo-sidebar .meta-value { display:block; margin-top:2px; color:#fff; }
.photo-sidebar .meta-value.muted { color:#d0d0d0; }
.photo-sidebar hr { border:0; border-top:1px solid #3d3d3d; margin:14px 0; }
.photo-breadcrumb--view { margin-bottom:10px; font-size:0.98rem; }
.photo-breadcrumb--view a { color:#4d2aa5; text-decoration:underline; }
.photo-view-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:16px; }
.photo-navlinks { display:flex; justify-content:space-between; gap:14px; margin-bottom:16px; }
.photo-navlinks a, .photo-inline-links a { color:#7a0a0a; text-decoration:none; font-weight:800; }
.photo-inline-links { display:flex; gap:10px; justify-content:flex-end; }
.photo-stars { display:flex; gap:2px; align-items:center; }
.photo-star { background:none; border:0; color:#8f8f8f; font-size:1.45rem; line-height:1; padding:0; cursor:pointer; }
.photo-star.active { color:#ffc933; }
.photo-star:disabled { cursor:default; }
.photo-rating-summary { display:flex; flex-direction:column; gap:6px; }
.photo-rating-avg { position:relative; display:inline-block; line-height:1; font-size:1.2rem; letter-spacing:2px; color:#6f6f6f; }
.photo-rating-avg-base, .photo-rating-avg-fill { display:block; white-space:nowrap; }
.photo-rating-avg-fill { position:absolute; inset:0 auto 0 0; overflow:hidden; color:#ffc933; width:0%; }
.photo-rating-copy { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.photo-manage-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; }
.photo-delete-form { margin-top: 12px; }
@media (max-width: 980px) {
    .photo-view-shell { grid-template-columns:1fr; }
    .photo-stage { min-height:420px; }
}
