/* sofa_bench */
.post-entry[data-sofa-bench-floor],
.sofa-bench-podium,
.sofa-bench-admin{
    --sofa-bench-gold:#d4a017;
    --sofa-bench-silver:#8f9dab;
    --sofa-bench-bronze:#b87333;
}

.post-entry[data-sofa-bench-floor]{
    position:relative;
    isolation:isolate;
    align-content:start;
    min-height:104px;
}
/* 更多操作菜单是 position:fixed，但 isolation 会把菜单困在本楼的层叠上下文里，
   被下一个同样 isolate 的回帖盖住（1、2 楼最明显），导致菜单看得到却点不到。
   菜单打开时把本楼层抬高一档，菜单就能压在后续回帖之上。 */
.post-entry[data-sofa-bench-floor]:has(.post-ops-menu.is-open){
    z-index:1;
}

.post-entry[data-sofa-bench-floor]>.sofa-bench-furniture{
    position:absolute;
    top:50%;
    right:22px;
    z-index:-1;
    width:128px;
    height:min(102px,100%);
    transform:translateY(-50%);
    overflow:hidden;
    pointer-events:none;
    user-select:none;
}
.post-entry[data-sofa-bench-floor="1"]>.sofa-bench-furniture{color:color-mix(in srgb,var(--sofa-bench-gold) 46%,transparent)}
.post-entry[data-sofa-bench-floor="2"]>.sofa-bench-furniture{color:color-mix(in srgb,var(--sofa-bench-silver) 48%,transparent)}
.post-entry[data-sofa-bench-floor="3"]>.sofa-bench-furniture{color:color-mix(in srgb,var(--sofa-bench-bronze) 46%,transparent)}
.sofa-bench-furniture__fill{
    fill:currentColor;
    fill-opacity:.06;
    stroke:none;
}
.sofa-bench-furniture__lines{
    fill:none;
    stroke:currentColor;
    stroke-opacity:.5;
    stroke-width:3;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.sofa-bench-podium{
    margin:16px 0 2px;
    padding:16px 8px 0;
    border-top:1px dashed var(--line-soft);
}
.sofa-bench-podium__stage{
    position:relative;
    isolation:isolate;
    width:100%;
    max-width:430px;
    margin:0 auto;
    aspect-ratio:360/240;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--panel);
}
.sofa-bench-podium__art{
    position:absolute;
    z-index:0;
    inset:0;
    width:100%;
    height:100%;
    color:color-mix(in srgb,var(--text) 40%,transparent);
}
.sofa-bench-podium__frame{
    fill:color-mix(in srgb,currentColor 7%,var(--panel));
    stroke:currentColor;
    stroke-width:3;
    stroke-linejoin:round;
}
.sofa-bench-podium__leg{
    fill:color-mix(in srgb,currentColor 20%,var(--panel));
    stroke:currentColor;
    stroke-width:3;
}
.sofa-bench-podium__back{
    fill:color-mix(in srgb,currentColor 12%,var(--panel));
    stroke:currentColor;
    stroke-opacity:.5;
    stroke-width:2.5;
}
.sofa-bench-podium__cushion{
    stroke-width:3;
    stroke-linejoin:round;
}
.sofa-bench-podium__cushion--1{fill:color-mix(in srgb,var(--sofa-bench-gold) 26%,var(--panel));stroke:var(--sofa-bench-gold)}
.sofa-bench-podium__cushion--2{fill:color-mix(in srgb,var(--sofa-bench-silver) 26%,var(--panel));stroke:var(--sofa-bench-silver)}
.sofa-bench-podium__cushion--3{fill:color-mix(in srgb,var(--sofa-bench-bronze) 26%,var(--panel));stroke:var(--sofa-bench-bronze)}

.sofa-bench-podium__avatar{
    position:absolute;
    z-index:1;
    width:11.5%;
    aspect-ratio:1;
    transform:translate(-50%,-100%);
    border-radius:50%;
    overflow:hidden;
    background:var(--panel);
}
.sofa-bench-podium__avatar--1{
    left:50%;
    top:40%;
    box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--sofa-bench-gold);
}
.sofa-bench-podium__avatar--2{
    left:25%;
    top:49.2%;
    box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--sofa-bench-silver);
}
.sofa-bench-podium__avatar--3{
    left:75%;
    top:57.5%;
    box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--sofa-bench-bronze);
}

.sofa-bench-podium__name{
    position:absolute;
    z-index:2;
    max-width:27%;
    overflow:hidden;
    transform:translate(-50%,-50%);
    color:var(--text-muted);
    font-size:var(--font-size-sm);
    line-height:1.2;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.sofa-bench-podium__name--1{
    left:50%;
    top:47%;
    color:var(--text);
    font-weight:600;
}
.sofa-bench-podium__name--2{left:25%;top:56%}
.sofa-bench-podium__name--3{left:75%;top:64%}

@media (max-width:720px){
    .post-entry[data-sofa-bench-floor]{min-height:80px}
    .post-entry[data-sofa-bench-floor]>.sofa-bench-furniture{
        right:10px;
        width:88px;
        height:min(72px,100%);
    }
    .sofa-bench-podium{padding:12px 2px 0}
    .sofa-bench-podium__name{
        max-width:30%;
        font-size:var(--font-size-xs);
    }
}

@media (prefers-reduced-transparency:reduce){
    .post-entry[data-sofa-bench-floor="1"]>.sofa-bench-furniture{color:var(--sofa-bench-gold)}
    .post-entry[data-sofa-bench-floor="2"]>.sofa-bench-furniture{color:var(--sofa-bench-silver)}
    .post-entry[data-sofa-bench-floor="3"]>.sofa-bench-furniture{color:var(--sofa-bench-bronze)}
}

.sofa-bench-admin-form{display:grid;gap:12px}
.sofa-bench-admin-options{display:grid;gap:10px}
.sofa-bench-admin-option{
    display:flex;
    align-items:center;
    gap:14px;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--bg);
    cursor:pointer;
}
.sofa-bench-admin-option:hover{border-color:var(--brand)}
.sofa-bench-admin-option:has(input:checked){
    border-color:var(--brand);
    background:var(--brand-soft);
}
.sofa-bench-admin-option input[type=radio]{
    -webkit-appearance:none;
    appearance:none;
    position:relative;
    flex:none;
    width:18px;
    height:18px;
    margin:0;
    padding:0;
    border:2px solid var(--line);
    border-radius:50%;
    background:var(--panel);
    cursor:pointer;
}
.sofa-bench-admin-option input[type=radio]:checked{border-color:var(--brand)}
.sofa-bench-admin-option input[type=radio]:checked::after{
    content:"";
    position:absolute;
    inset:3px;
    border-radius:50%;
    background:var(--brand);
}
.sofa-bench-admin-option input[type=radio]:focus-visible{
    outline:2px solid var(--focus-ring);
    outline-offset:2px;
}
.sofa-bench-admin-option-body{
    display:grid;
    gap:4px;
    min-width:0;
}
.sofa-bench-admin-option-title{
    color:var(--text);
    font-size:var(--font-size-md);
    font-weight:600;
}
.sofa-bench-admin-option-desc{
    color:var(--text-muted);
    font-size:var(--font-size-sm);
    line-height:1.6;
}
.sofa-bench-admin-preview{
    display:flex;
    flex:none;
    align-items:flex-end;
    justify-content:center;
    gap:4px;
    width:124px;
    height:52px;
    color:var(--text-muted);
}
.sofa-bench-admin-preview .sofa-bench-preview-art{display:block;flex:none}
.sofa-bench-admin-actions{display:flex;justify-content:flex-start}

@media (max-width:720px){
    .sofa-bench-admin-preview{display:none}
}