/* Adaptive Layout System for Different Agent Counts */

/* ===== BILATERAL (2 agents) ===== */
.layout-bilateral .agent-node:nth-child(1) {
    left: 30%;
    top: 45%;
}

.layout-bilateral .agent-node:nth-child(2) {
    left: 70%;
    top: 45%;
}

.layout-bilateral .agent-node {
    width: 212px;
    height: 212px;
}

.layout-bilateral .diamond {
    width: 150px;
    height: 150px;
}

.layout-bilateral .agent-name {
    font-size: 16px;
}

.layout-bilateral .agent-vote {
    font-size: 36px;
}

.layout-bilateral .agent-model {
    font-size: 10px;
}

/* ===== TRIANGLE / MAGI (3 agents) ===== */
/* Top agent: label goes above */
.layout-triangle .agent-node:nth-child(1) {
    left: 50%;
    top: 26%;
}

.layout-triangle .agent-node:nth-child(1) .agent-label {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: 6px;
}

.layout-triangle .agent-node:nth-child(2) {
    left: 25%;
    top: 68%;
}

.layout-triangle .agent-node:nth-child(3) {
    left: 75%;
    top: 68%;
}

.layout-triangle .agent-node {
    width: 184px;
    height: 184px;
}

.layout-triangle .diamond {
    width: 130px;
    height: 130px;
}

.layout-triangle .agent-name {
    font-size: 15px;
}

.layout-triangle .agent-vote {
    font-size: 32px;
}

/* ===== POLYGON (4-7 agents) ===== */
.layout-polygon .agent-node {
    width: 156px;
    height: 156px;
}

.layout-polygon .diamond {
    width: 110px;
    height: 110px;
}

.layout-polygon .agent-name {
    font-size: 11px;
    letter-spacing: 1px;
}

.layout-polygon .agent-vote {
    font-size: 24px;
}

.layout-polygon .agent-model {
    font-size: 8px;
}

/* ===== POSITIONED (map/geo layout, agents have x,y coords) ===== */
.layout-positioned .agent-node {
    width: 140px;
    height: 140px;
}

.layout-positioned .diamond {
    width: 100px;
    height: 100px;
}

.layout-positioned .agent-name {
    font-size: 11px;
    letter-spacing: 1px;
}

.layout-positioned .agent-vote {
    font-size: 22px;
}

/* ===== GRID (8+ agents) ===== */

.layout-grid .agents-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    align-content: flex-start;
    gap: 10px;
    padding: 20px;
    position: relative;
}

.layout-grid .agent-node {
    position: relative !important;
    transform: none !important;
    left: auto !important;
    top: auto !important;
}

.layout-grid .agent-node {
    width: 113px;
    height: 113px;
}

.layout-grid .diamond {
    width: 80px;
    height: 80px;
}

.layout-grid .agent-name {
    font-size: 9px;
    max-width: 65px;
    letter-spacing: 1px;
}

.layout-grid .agent-model {
    font-size: 7px;
}

.layout-grid .agent-vote {
    font-size: 14px;
}

/* Cluster group boxes in grid mode */
.cluster-group {
    border: 1px solid var(--vis-panel-border);
    padding: 10px;
    margin: 5px;
    position: relative;
}

.cluster-group-label {
    position: absolute;
    top: -8px;
    left: 10px;
    background: var(--vis-panel);
    padding: 0 6px;
    font-size: 9px;
    letter-spacing: 2px;
    color: var(--vis-text-dim);
}

/* Center panel adjustments per layout */
.layout-bilateral .center-panel {
    top: 45%;
    min-width: 150px;
}

.layout-triangle .center-panel {
    top: 48%;
}

.layout-grid .center-panel {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    width: 100%;
    max-width: none;
    margin-top: 10px;
}

.layout-grid .connection-layer {
    display: none;
}
