/* Pastikan kanvas SVG pas di dalam kontainer */
#lineSvgCanvas {
    outline: none;
    user-select: none;
    touch-action: none;
    max-width: 100% !important;
    height: auto !important;
}

/* Penegasan garis border di semua kartu modul */
.pembelajaran-container [class*="border"] {
    border-style: solid;
}

/* Penyesuaian font heading */
.pembelajaran-container h1, 
.pembelajaran-container h2, 
.pembelajaran-container h3, 
.pembelajaran-container h4, 
.pembelajaran-container .font-heading {
    font-family: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Styling spinner number input */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    opacity: 1;
}

/* Desain Bola Dinamis */
.ball-token {
    width: 24px;
    height: 24px;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 11px;
    line-height: 1;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.ball-pos {
    background: radial-gradient(circle at 30% 30%, #34d399, #059669);
    color: #ffffff;
    border: 1.5px solid #047857;
}

.ball-neg {
    background: radial-gradient(circle at 30% 30%, #f87171, #dc2626);
    color: #ffffff;
    border: 1.5px solid #991b1b;
}

/* Animasi Pasangan Nol Netral */
.zero-pair-token {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px 6px;
    border-radius: 9999px;
    background-color: rgba(255, 255, 255, 0.08);
    border: 1px dashed rgba(255, 255, 255, 0.3);
    opacity: 0.6;
}