body{ width: 100%; overflow-x: hidden; background-color: #f8f9fa; }

.disabled{ color: gray; }
.info-popup { position: absolute; background: #333; color: #fff; padding: 8px 12px; border-radius: 6px; font-size: 14px; max-width: 200px; z-index: 1000; box-shadow: 0 2px 8px rgba(0,0,0,0.2); pointer-events: none; opacity: 0; transition: opacity 0.2s ease; }
.info-icon { color: #0d6efd; cursor: pointer; margin-left: 6px; font-size: 1rem; vertical-align: middle; }

.text-small { font-size: 85%; }
.bi { vertical-align: -0.125em; fill: currentColor; }
.section-title { border-bottom: 2px solid #0d6efd; margin-bottom: 1rem; padding-bottom: 0.25rem; }
.table th, .table td { vertical-align: middle; }

.editor-wrapper input { min-width: 0; }
.editor-wrapper button { flex-shrink: 0; }
.editor-wrapper { display: flex; align-items: center; position: relative;}

.lock-btn { background: transparent; font-size: 1rem; padding: 0 0.5rem; cursor: pointer; }
.income-row.table-primary { background-color: #dbeafe !important;}

.auto-calc-toggle {
    width: 2.25rem; /* Approximate button width for btn-sm */
    height: 1.5rem; /* Approximate button height for btn-sm */
    margin-right: 0.5rem !important; /* To match .me-1 on buttons */
    vertical-align: middle;
    flex-shrink: 0; /* Prevent it from shrinking in flex container */
    cursor: pointer;
}

@media (max-width: 768px) {
    td { font-size: 0.9rem; padding: 0.5rem; }
    input.form-control { font-size: 0.9rem; padding: 0.4rem; }
    .btn-sm { padding: 0.3rem 0.6rem; font-size: 0.8rem; }
}