/* Контейнер SVG */

.svg-container {
  display: flex; 
  flex-wrap: wrap;
  justify-content: center;
}

.svg-item {
  flex: 1;
  min-width: 300px;
  max-width: 400px;
  width: 100%;
}

#wuxing-svg {
    max-width: 100%;
    max-height: 100%; 
    margin: 0 auto;
}

/* ==================== ЛИНИИ И СТРЕЛКИ ==================== */
.cycle-line {
    fill: none;
    stroke: #888;
    stroke-width: 1.5;
}
.cycle-arrow { fill: #888; stroke: none; }

.pentagram-line {
    fill: none;
    stroke: #462525a6;
    stroke-width: 1.2;
    stroke-dasharray: 3, 3;
}
.pentagram-arrow { fill: #462525a6; stroke: none; }


.right-half { opacity: 0.15; }
.left-half { opacity: 0.05;}

.left-half:hover,
.right-half:hover {
    cursor: pointer;
    opacity: 0.3;
}

/* ==================== ЭЛЕМЕНТЫ КРУГОВ ==================== */
.element-circle {
    fill: var(--bg-color);
    stroke-width: 1.8;
    opacity: 1;
}

.wave-divider {
    fill: none;
    stroke-width: 1.2;
    opacity: 1;
}

/* ==================== КРУГ ИНЬЯН ==================== */

.center-circle {
    fill: none;
    stroke: #666;
    stroke-width: 1;
    opacity: 0.9;
}

.center-circle.yin { fill: var(--water); }
.center-circle.yang { fill: var(--fire); }

/* ==================== ТЕКСТ НЕБЕСНЫХ СТВОЛОВ ==================== */
.gan-text {
    font-size: 15px;
    font-weight: 400;
    dominant-baseline: middle;
    text-anchor: middle;
    pointer-events: none;
}

/* ==================== 10 БОЖЕСТВ ==================== */
.tenGods {
    font-size: 13px;
    fill: #7d7676;
    font-weight: 500;
    dominant-baseline: middle;
}

.tenGods.top { text-anchor: end; }
.tenGods.bottom { text-anchor: start; }

/* ==================== ЦВЕТА СТИХИЙ ==================== */

[class*="element-"] .element-circle,
[class*="element-"] .wave-divider { stroke: currentColor; }
[class*="element-"] .yang,
[class*="element-"] .gan-text { opacity: 1; }
[class*="element-"] .yin { opacity: 0.5; }

.element-wood { fill: var(--wood); color: var(--wood); }
.element-fire { fill: var(--fire); color: var(--fire); }
.element-earth { fill: var(--earth); color: var(--earth); }
.element-metal { fill: var(--metal); color: var(--metal); }
.element-water { fill: var(--water); color: var(--water); }

/* ==================== АНИМАЦИИ ==================== */

.left-half:hover, .right-half:hover {
    animation: pulse 1s;
    stroke-width: 2.8;
}

[class*="element-"]:hover .element-circle {
    stroke-width: 2.8;
    transition: stroke-width 0.5s ease, stroke 0.5s ease;
}



/* гистограма */

.balance-chart-double {
    width: 100%;
    min-width: 350px;
    background: #ffffff;
    border-radius: 12px;
    padding: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    box-sizing: border-box;
}

.chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e8e8e8;
}

.chart-header h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    color: #333;
}

.total-balance {
    display: flex;
    gap: 10px;
    font-size: 11px;
    font-weight: 500;
}

.total-yin {
    color: #4776e6;
}

.total-yang {
    color: #CD4F39;
}

/* Контейнер для групп элементов */
.double-bars-container {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 10px;
}

/* Группа элемента */
.element-group {
    flex: 1;
    min-width: 50px;
    text-align: center;
}

/* Два столбика - близко друг к другу */
.double-bars {
    display: flex;
    justify-content: center;
    gap: 2px;
    margin-bottom: 8px;
    align-items: flex-end;
}

.bar-wrapper {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 20px;
}

.bar-container {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    height: 120px;
    width: 100%;
    position: relative;
}

.bar {
    width: 100%;
    max-width: 18px;
    min-width: 20px;
    border-radius: 3px 3px 2px 2px;
    position: relative;
    transition: height 0.5s ease-out;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.bar-yin {
    background-color: #4CAF50;
}

.bar-yang {
    background-color: #4CAF50;
    opacity: 0.5;
}

.bar-value {
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 8px;
    font-weight: 500;
    color: #333;
    white-space: nowrap;
    background: rgba(255,255,255,0.9);
    padding: 2px 4px;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

/* Подписи Инь/Ян под каждым столбом */
.bar-label-side {
    font-size: 10px;
    color: #888;
    margin-top: 4px;
    font-weight: 400;
    text-align: center;
}

/* Подписи элементов под группой столбов */
.element-label {
    margin-top: 12px;
    text-align: center;
}

.element-icon {
    font-size: 14px;
    font-weight: 500;
    display: block;
}

.element-name {
    font-size: 10px;
    color: #666;
    margin-top: 4px;
    display: block;
}

/* Hover эффект */
.bar:hover {
    transform: scale(1.03);
    transition: transform 0.2s ease;
}

.bar:hover .bar-value {
    background: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.15);
    font-weight: bold;
}