/* SOSTAV-STRUKT-1104 BEGIN · только содержимое #gg-lp-roster. Размеры колонок и gg-sostav-1104 не меняются. */
#gg-ladder #gg-lp-roster[data-sostav-strukt] h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:0}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-title{flex:1;font-size:13px;letter-spacing:.035em}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .rc{margin:0;font-size:10px;letter-spacing:0;text-transform:none}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-rtabs{flex:0 0 100%;margin:2px 0 0;gap:6px}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-rtabs button{flex:1;min-height:30px;border-color:var(--gg-ld-line-2);border-radius:3px;font-size:10px}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-rtabs button[aria-selected=true]{color:var(--gg-ld-text);border-color:var(--gg-ld-text-2);background:var(--gg-ld-hover)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-found{display:block;min-height:16px;margin-top:5px;color:var(--gg-ld-muted);font:500 10px/16px var(--gg-font-mono)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .ros-l{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:8px}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-prow{display:grid;grid-template-columns:8px 32px 24px minmax(0,1fr) 36px 43px;gap:6px;min-height:32px;padding:2px 0;align-items:center;flex-wrap:nowrap}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-prow>*{min-width:0}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-prow>.gg-ava{display:inline-flex;margin:0}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-prow__pts{display:block;font:500 11px/1 var(--gg-font-mono);white-space:nowrap}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-person{display:flex;align-items:center;gap:5px;min-width:0}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-prow__nick{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-person>.gg-presence{flex:none}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-person>.gg-presence>span:not(.gg-sr){display:none}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-place{color:var(--gg-ld-muted);font:500 10px/1 var(--gg-font-mono);text-align:right;white-space:nowrap}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-prow__x{padding:0;margin:0;display:flex;justify-content:center;gap:3px;order:initial}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-label{display:none}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-mark{font:700 10px/18px var(--gg-font-mono);text-align:center;color:var(--gg-ld-text-2);white-space:nowrap}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-mark[data-search=true]{border:1px solid var(--gg-ld-line-3);border-radius:3px;padding:0 4px;color:var(--gg-ld-text)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-dot{width:7px;height:7px;border:1px solid var(--gg-ld-muted);border-radius:50%;box-sizing:border-box}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-dot[data-status=search]{background:var(--gg-warning);border-color:var(--gg-warning)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-dot[data-status=match]{background:var(--gg-info);border-color:var(--gg-info)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-dot[data-status=online]{background:var(--gg-success);border-color:var(--gg-success)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-group{margin:0;padding:0}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .gg-prow__group{padding:8px 0 5px;letter-spacing:.1em;font-size:9px;color:var(--gg-ld-muted)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .rf{position:relative;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;min-height:24px}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-legend{flex:1;color:var(--gg-ld-muted);font:500 9px/1.3 var(--gg-font-long);white-space:nowrap}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-help summary{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--gg-ld-line-3);border-radius:50%;list-style:none;cursor:pointer;font:700 12px/1 var(--gg-font-mono)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-help summary::-webkit-details-marker{display:none}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-help>div{position:absolute;bottom:32px;right:0;width:min(320px,100%);padding:12px;box-sizing:border-box;background:var(--gg-ld-raised);color:var(--gg-ld-text);border:1px solid var(--gg-ld-line-3);border-radius:4px;box-shadow:0 4px 20px #0005;font:500 12px/1.5 var(--gg-font-long);z-index:10}
#gg-ladder #gg-lp-roster[data-sostav-strukt] :is(button,summary,input):focus-visible{outline:2px solid var(--gg-ld-text);outline-offset:2px}
/* Вариант 2: пояснение под ником, место и очки остаются по краям. */
#gg-ladder #gg-lp-roster[data-sostav-variant="2"] .gg-prow{grid-template-columns:8px 32px 24px minmax(0,1fr) 43px;grid-template-rows:20px 16px;row-gap:0;min-height:44px;padding:4px 0}
#gg-ladder #gg-lp-roster[data-sostav-variant="2"] :is(.sos-dot,.sos-place,.gg-ava){grid-row:1/3}
#gg-ladder #gg-lp-roster[data-sostav-variant="2"] .sos-person{grid-column:4;grid-row:1}
#gg-ladder #gg-lp-roster[data-sostav-variant="2"] .gg-prow__x{grid-column:4;grid-row:2;justify-content:flex-start}
#gg-ladder #gg-lp-roster[data-sostav-variant="2"] .sos-label{display:inline;color:var(--gg-ld-muted);font:500 10px/16px var(--gg-font-long)}
#gg-ladder #gg-lp-roster[data-sostav-variant="2"] .sos-mark{font-size:10px;line-height:14px}
#gg-ladder #gg-lp-roster[data-sostav-variant="2"] .gg-prow__pts{grid-column:5;grid-row:1/3}
/* Телефон: высоту исходного блока измеряет sosOriginalMobileHeight; полный состав прокручивается внутри. */
@media(max-width:759px){
#gg-ladder #gg-lp-roster[data-sostav-strukt]{box-sizing:border-box;min-height:0}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .ros-l{flex:1 1 0;min-height:0}
}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-help summary::before,
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-help summary::after{display:none;content:none}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .rc b{color:var(--gg-ld-text)}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-help{margin:0;padding:0;border:0;background:none;flex:none}
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-help summary{padding:0;min-height:0;min-width:0;background:transparent;color:var(--gg-ld-text);box-shadow:none}
/* SOSTAV-STRUKT-1104 END */
/* SOSTAV-STRUKT-1104 · Claude 04.11: пустые группы не показывать — место под игроков */
#gg-ladder #gg-lp-roster[data-sostav-strukt] .sos-group:has(> .gg-prow__group b[data-sos-count="0"]){display:none}
