.photo-stage{
    width:100vw;
    min-height:0;
    max-height:none;
    margin-left:calc(50% - 50vw);
    overflow:hidden;
    align-items:flex-start;
    justify-content:center;
}

.photo-stage img{
    display:block;
    width:auto;
    max-width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
}

.detail-grid{
    grid-template-columns:360px minmax(0,1fr);
    gap:46px;
    align-items:stretch;
}

.photographer-card{
    padding:28px;
    gap:19px;
    background:#171d18;
}

.photographer-card>img,
.avatar-fallback{
    width:78px;
    height:78px;
    flex-basis:78px;
}

.photographer-card small{
    font-size:9px;
    font-weight:800;
    letter-spacing:1.8px;
}

.photographer-card h3{
    margin:9px 0 5px;
    font-size:19px;
    line-height:1.2;
}

.photographer-card b{
    color:#c3ccc2;
    font-size:11px;
    font-weight:700;
}

.photographer-card p{
    color:#b0bab0;
    font-size:11px;
    line-height:1.65;
}

.photo-copy{
    padding:7px 0;
    display:grid;
    grid-template-columns:minmax(230px,.8fr) minmax(390px,1.2fr);
    gap:32px;
    align-items:start;
}

.photo-copy h1{
    margin:12px 0 16px;
    font-size:43px;
    font-weight:800;
}

.species-heading{
    display:flex;
    align-items:baseline;
    gap:12px;
    flex-wrap:wrap;
}

.species-heading strong{
    color:var(--accent2);
    font:800 18px Montserrat,sans-serif;
}

.species-heading em{
    color:#d3dad2;
    font-size:13px;
    font-weight:600;
}

.photo-copy>p{
    color:#d3dad2;
    font-size:14px;
    font-weight:500;
}

.bird-summary>p{
    color:#d3dad2;
    font-size:14px;
    font-weight:500;
    line-height:1.75;
    margin:23px 0 0;
}

.detail-exif{
    min-height:190px;
    padding:21px;
    border:1px solid var(--sky-line, var(--line));
    background:linear-gradient(145deg,rgba(74,113,67,.12),rgba(23,29,24,.72));
}

.detail-exif-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-top:15px;
}

.detail-exif-grid>div{
    min-width:0;
    display:grid;
    grid-template-columns:30px minmax(0,1fr);
    gap:10px;
    align-items:center;
    padding:10px;
    border:1px solid rgba(95,143,82,.2);
    background:rgba(8,14,11,.42);
}

.detail-exif-grid svg{
    width:27px;
    height:27px;
    fill:none;
    stroke:var(--sky,#5f8f52);
    stroke-width:1.5;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.detail-exif-grid span,
.detail-exif-grid b{
    display:block;
    min-width:0;
}

.detail-exif-grid span{
    color:#839083;
    font-size:8px;
    font-weight:800;
    letter-spacing:.7px;
    text-transform:uppercase;
}

.detail-exif-grid b{
    margin-top:4px;
    overflow:hidden;
    color:#eef3ed;
    font-size:10px;
    letter-spacing:0;
    text-overflow:ellipsis;
    text-transform:none;
    white-space:nowrap;
}

.photo-copy>.photo-facts{
    grid-column:1/3;
}

.photo-facts span{
    min-width:145px;
    color:#e0e6df;
    font-size:11px;
    font-weight:650;
}

.photo-facts span b{
    display:block;
    margin-bottom:5px;
    color:#899489;
    font-size:8px;
    letter-spacing:1px;
    text-transform:uppercase;
}

.related-grid b{
    color:#f2f5ef;
    font-size:13px;
    font-weight:800;
}

.related-grid small{
    color:#aeb8ae;
    font-size:10px;
    font-weight:600;
}

.like-button{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:13px;
}

.approval-panel{
    margin:18px 0 0;
}

.comment-list header span i{
    font-style:normal;
}

.like-button>span{
    flex:0 0 auto;
    font-size:46px;
    line-height:1;
}

.like-button b{
    flex:0 0 auto;
    font-size:25px;
    line-height:1;
}

.like-button small{
    align-self:center;
    margin-left:1px;
    font-size:10px;
    font-weight:700;
}

@media(max-width:850px){
    .detail-grid{grid-template-columns:1fr;gap:18px}
    .photo-stage{justify-content:center}
    .photo-stage img{margin-inline:0}
    .photo-copy{grid-template-columns:1fr}
    .photo-copy>.photo-facts{grid-column:1}
}

@media(max-width:520px){
    .detail-exif-grid{grid-template-columns:1fr}
}

/* Compact photo detail layout */
.detail-grid{
    grid-template-columns:260px minmax(0,1fr);
    gap:28px;
    padding:25px 0 22px;
}

.photographer-card{
    align-items:center;
    align-self:start;
    padding:4px 20px 4px 0;
    border:0;
    border-right:1px solid var(--line);
    background:transparent;
}

.photographer-card>img,
.avatar-fallback{
    width:54px;
    height:54px;
    flex-basis:54px;
    font-size:18px;
}

.photographer-card h3{
    margin:5px 0 3px;
    font-size:15px;
}

.photographer-card b{
    font-size:9px;
}

.photographer-card p{
    display:none;
}

.photo-copy{
    grid-template-columns:minmax(210px,.7fr) minmax(440px,1.3fr);
    gap:24px;
    padding:0;
}

.photo-copy h1{
    margin:8px 0 9px;
    font-size:31px;
}

.species-heading strong{
    font-size:14px;
}

.species-heading em{
    font-size:11px;
}

.bird-summary>p{
    margin-top:13px;
    font-size:11px;
    line-height:1.55;
}

.detail-exif{
    min-height:0;
    padding:0 0 0 20px;
    border:0;
    border-left:1px solid var(--line);
    background:transparent;
}

.detail-exif-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:0;
    margin-top:10px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.detail-exif-grid>div{
    display:flex;
    min-height:68px;
    gap:7px;
    padding:10px 8px;
    border:0;
    border-right:1px solid var(--line);
    background:transparent;
}

.detail-exif-grid>div:last-child{
    border-right:0;
}

.detail-exif-grid svg{
    width:20px;
    height:20px;
    flex:0 0 20px;
}

.detail-exif-grid span{
    font-size:7px;
}

.detail-exif-grid b{
    font-size:8px;
}

.photo-copy>.photo-facts{
    gap:0;
    margin-top:-3px;
    border-top:1px solid var(--line);
}

.photo-facts span{
    min-width:0;
    padding:9px 14px 4px 0;
    border:0;
    background:transparent;
    font-size:9px;
}

.photo-facts span+span{
    padding-left:14px;
    border-left:1px solid var(--line);
}

.approval-panel{
    min-height:0;
    margin:10px 0 0;
    padding:10px 13px;
    background:transparent;
}

.owner-actions a,
.owner-actions button{
    padding:7px 10px;
}

.engagement{
    grid-template-columns:145px 1fr;
    gap:9px;
    padding:10px 0 22px;
}

.like-button,
.rating-box{
    min-height:70px;
    padding:11px 14px;
}

.like-button>span{
    font-size:36px;
}

.like-button b{
    font-size:21px;
}

.rating-box{
    grid-template-columns:150px minmax(260px,1fr);
}

.star-rating{
    font-size:25px;
}

@media(max-width:1050px){
    .detail-grid{grid-template-columns:220px minmax(0,1fr)}
    .photo-copy{grid-template-columns:1fr}
    .detail-exif{padding:15px 0 0;border-left:0;border-top:1px solid var(--line)}
    .photo-copy>.photo-facts{grid-column:1}
}

@media(max-width:700px){
    .detail-grid{grid-template-columns:1fr}
    .photographer-card{padding:0 0 16px;border-right:0;border-bottom:1px solid var(--line)}
    .detail-exif-grid{grid-template-columns:1fr 1fr}
    .detail-exif-grid>div{border-bottom:1px solid var(--line)}
    .engagement{grid-template-columns:1fr}
    .rating-box{grid-template-columns:1fr}
    .rating-box output{grid-column:1}
}

/* Threaded public photo comments */
.comment-list>.comment-thread{display:block;padding:21px 4px}.comment-main,.comment-reply{display:grid;grid-template-columns:48px 1fr;gap:13px}.comment-replies{margin:14px 0 0 54px;border-left:1px solid #3d4b3d;padding-left:18px}.comment-list .comment-reply{position:relative;padding:16px 3px;border-top:1px solid #283129;border-bottom:0;background:linear-gradient(90deg,rgba(75,99,66,.08),transparent)}.comment-list .comment-reply:before{content:"";position:absolute;left:-19px;top:29px;width:14px;height:1px;background:#536353}.comment-reply .comment-avatar{width:36px;height:36px}.reply-context{display:block;margin-top:5px;color:var(--accent);font-size:8px}.comment-reply-trigger{margin-top:3px;padding:0;border:0;background:none;color:#91a18f;font:700 8px Inter;cursor:pointer}.comment-reply-trigger:hover{color:var(--accent)}.comments-section .comment-reply-form{display:grid;grid-template-columns:1fr;margin:13px 0 2px 54px;border:1px solid #445344;background:#101511}.comment-reply .comment-reply-form{grid-column:1/-1;margin-left:0}.comment-reply-form textarea{min-height:72px}.comment-reply-form>div{display:flex;justify-content:flex-end;border-top:1px solid var(--line)}.comment-reply-form>div button{height:38px;padding:0 14px;border:0;border-left:1px solid var(--line);background:var(--accent);color:#10150f;font:800 8px Inter;cursor:pointer}.comment-reply-form>div button+button{background:transparent;color:var(--muted)}.comment-reply-form>p{color:#e39891!important;font-size:8px}
@media(max-width:650px){.comment-replies{margin-left:18px;padding-left:12px}.comments-section .comment-reply-form{margin-left:18px}.comment-main,.comment-reply{grid-template-columns:40px 1fr}}

@media(max-width:480px){
    .detail-exif-grid{grid-template-columns:1fr}
    .photo-facts span+span{padding-left:0;border-left:0}
}
.approval-panel:has(.approval-vote-history){display:grid;grid-template-columns:minmax(230px,.7fr) minmax(420px,1.6fr) auto;gap:22px;align-items:start}.approval-vote-history{min-width:0}.approval-vote-history>span{display:block;margin-bottom:8px;color:var(--accent);font-size:8px;font-weight:800;letter-spacing:1.4px}.approval-vote-history ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.approval-vote-history li{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(210px,1.3fr);gap:14px;padding:9px 11px;border-left:2px solid #72904d;background:#111712}.approval-vote-history li>div{display:grid;gap:3px}.approval-vote-history li b,.approval-vote-history li a,.approval-vote-history li strong{font-size:9px}.approval-vote-history li small,.approval-vote-history li em{color:var(--muted);font-size:7px;font-style:normal}.approval-vote-history li a{color:#d3eba5}.approval-vote-history li i{display:block;margin-top:2px;color:#91a391;font-size:7px;font-weight:400}@media(max-width:900px){.approval-panel:has(.approval-vote-history){grid-template-columns:1fr}.approval-vote-history li{grid-template-columns:1fr}.approval-panel .owner-actions{justify-self:start}}
