.floating-point-visualization {
    --input-focus: color-mix(in srgb, #1D1D1D 30%, transparent);
    --code-red: #E23940; /* Darker red matching code blocks */
    background: var(--bg);
    margin-bottom: 1em;
    overflow: visible;
}

.floating-point-visualization .operation-line {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 1.2em;
    margin: 2.8em 0 2.4em 0;
    font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;
    font-size: 1.3em;
    overflow: visible;
    position: relative;
}

.floating-point-visualization .number-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3em;
    position: relative;
}

.floating-point-visualization .number-input {
    width: 110px;
    padding: 0.4em 0.6em;
    font-size: 0.9em;
    /* Subtle border matching figure-light-border */
    border: 1px solid color-mix(in srgb, var(--fg4) 20%, var(--bg) 80%);
    border-radius: 6px;
    font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;
    text-align: left;
    transition: border-color 0.15s ease;
    background-color: var(--bg);
    color: var(--fg);
    /* Use box-shadow for focus state to avoid layout shift */
    box-sizing: border-box;
}

.floating-point-visualization .number-input:focus,
.floating-point-visualization .number-input:focus-visible {
    outline: none;
    border-color: var(--input-focus);
    /* Use box-shadow instead of changing border-width to prevent layout shift */
    box-shadow: 0 0 0 1px var(--input-focus);
}

.floating-point-visualization .representation {
    font-size: 1rem;
    color: var(--fg3);
}

.floating-point-visualization .operator {
    color: var(--fg3);
    font-size: 1em;
}

.floating-point-visualization .result-representation {
    font-size: 0.9em;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6em;
    /* Fixed width to prevent layout shifts */
    min-width: 180px;
    position: relative;
}

.floating-point-visualization .result-representation #result-rep {
    /* Align with the number representations */
    margin-bottom: 0;
    /* Prevent overflow with ellipsis for very long numbers */
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    position: relative;
}


.floating-point-visualization .lost-digits {
    color: var(--code-red);
    background: color-mix(in srgb, var(--code-red) 10%, transparent);
    /* padding: 0 0.15em; */
    border-radius: 2px;
}

.floating-point-visualization .exact-value {
    color: var(--fg3);
    font-size: 1rem;
    margin-top: 0;
    /* Match result width constraints */
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    position: relative;
}



@media (max-width: 768px) {
    .floating-point-visualization .operation-line {
        flex-wrap: wrap;
    }

    .floating-point-visualization .number-input {
        width: 120px;
    }
}
