:root {
    --calculator-table-bg: var(--bg-secondary); /* NEW: Calc table bg */
    --bs-table-bg: var(--bg-secondary); /* NEW: Calc table bg */
    --calculator-table-stripe-bg: var(--bg-tertiary); /* NEW: Calc table stripe */
    --calculator-table-border: var(--border-color-strong); /* NEW: Calc table border */
    --calculator-table-header-color: var(--accent-primary); /* NEW: Calc table header text */
    --calculator-table-body-color: var(--text-primary); /* NEW: Calc table body text */
    --calculator-table-secondary-color: var(--text-secondary); /* NEW: Calc table secondary text */
}

body.light-mode {
    --calculator-table-bg: var(--bg-secondary); /* Light: White */
    --bs-table-bg: var(--bg-secondary); /* Light: White */
    --calculator-table-stripe-bg: var(--bg-tertiary); /* Light: Light Grey */
    --calculator-table-border: var(--border-color-strong); /* Light: Grey border */
    --calculator-table-header-color: var(--accent-primary); /* Light: Blue header */
    --calculator-table-body-color: var(--text-primary); /* Light: Dark text */
    --calculator-table-secondary-color: var(--text-secondary); /* Light: Grey secondary text */
}


/* --- Calculator Section --- */
#calculator label {
    color: var(--text-primary);
    font-weight: 700; /* Bolder labels */
    margin-bottom: 0.5rem;
    transition: color 0.3s ease;
}

/* Unified input style */
.form-control-themed {
    background-color: var(--input-bg);
    border: 1px solid var(--input-border); /* Use variable */
    color: var(--text-primary);
    border-radius: 5px;
    padding: 10px 15px;
    transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease;
    width: 100%;
}

.form-control-themed::placeholder {
    color: var(--input-placeholder);
    opacity: 1; /* Standard opacity */
    transition: color 0.3s ease;
}

.form-control-themed:focus {
    background-color: var(--input-bg); /* Keep bg consistent */
    border-color: var(--input-focus-border);
    box-shadow: 0 0 0 0.2rem var(--input-focus-shadow);
    outline: none;
    color: var(--text-primary);
}

.form-control-themed.is-invalid {
    border-color: var(--accent-secondary); /* Use secondary/red for errors */
    box-shadow: 0 0 0 0.2rem rgba(var(--accent-secondary-rgb), 0.25);
}

.form-control-themed.is-invalid:focus {
    border-color: var(--accent-secondary);
    box-shadow: 0 0 0 0.2rem rgba(var(--accent-secondary-rgb), 0.25);
}


.language-list-container {
    border: 1px solid var(--border-color);
    background-color: rgba(var(--bg-secondary-rgb), 0.3);
    padding: 25px;
    border-radius: 8px;
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

.language-list-container.highlight-error { /* For JS validation */
    border-color: var(--accent-secondary);
    box-shadow: 0 0 0 0.2rem rgba(var(--accent-secondary-rgb), 0.25);
    border: 1px solid var(--bs-danger);
    /*padding: 0.5rem;*/
    /*border-radius: 0.25rem;*/

}

.language-list {
    /*columns: 2;*/
    /*-webkit-columns: 2;*/
    /*-moz-columns: 2;*/
    /*column-gap: 20px;*/
}

.language-list .form-check {
    margin-bottom: 12px;
    min-width: 155px;
    /*break-inside: avoid-column;*/
}

.language-list .form-check-label {
    color: var(--text-secondary);
    cursor: pointer;
    transition: color 0.2s ease;
    font-weight: 400; /* Reset potential bolding */
}

.language-list .form-check-input {
    cursor: pointer;
    border-color: var(--checkbox-border);
    background-color: var(--input-bg); /* Use input bg for consistency */
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.language-list .form-check-input:checked {
    background-color: var(--checkbox-checked-bg);
    border-color: var(--checkbox-checked-border);
    box-shadow: none; /* Remove default glow */
}

.language-list .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem var(--checkbox-focus-shadow);
    border-color: var(--input-focus-border); /* Match input focus */
    outline: none;
}

.language-list .form-check-label:hover {
    color: var(--text-primary);
}

hr.themed-hr {
    border: none;
    height: 1px; /* Use height for dashed */
    background-image: linear-gradient(to right, transparent, var(--hr-border-color), transparent); /* Faded effect */
    border: 0;
    /* border-top: 1px dashed var(--hr-border-color); */ /* Alternative dashed */
    transition: border-color 0.3s ease;
}


h3.result-heading { /* Specific styling for estimate heading */
    color: var(--accent-primary);
    font-weight: 700;
    transition: color 0.3s ease;
}

/* Calculator Results Table Styling */
#resultsTableContainer .calculator-results-table {
    background-color: var(--calculator-table-bg) !important;
    border: 1px solid var(--calculator-table-border) !important;
    margin-top: 1rem;
    color: var(--calculator-table-body-color) !important;
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

#resultsTableContainer thead {
    border-bottom: 2px solid var(--accent-primary);
    transition: border-color 0.3s ease;
}

#resultsTableContainer th {
    color: var(--calculator-table-header-color) !important;
    font-family: var(--font-primary);
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-size: 0.9rem;
    background-color: var(--calculator-table-bg) !important;
    transition: color 0.3s ease, background-color 0.3s ease;
    vertical-align: middle;
}

#resultsTableContainer td {
    border-color: var(--calculator-table-border) !important;
    background-color: var(--calculator-table-bg) !important;
    vertical-align: middle;
    transition: color 0.3s ease, border-color 0.3s ease;
    color: var(--calculator-table-body-color) !important;
}

#resultsTableContainer tbody tr:nth-of-type(odd) td {
    background-color: var(--calculator-table-stripe-bg) !important;
    transition: background-color 0.3s ease;
}

#resultsTableContainer tbody tr:hover td {
    background-color: rgba(var(--accent-primary-rgb), 0.1); /* Subtle hover */
}


#resultsTableContainer .text-secondary { /* Target standard secondary text */
    color: var(--calculator-table-secondary-color) !important; /* Use variable */
    font-size: 0.85em;
    transition: color 0.3s ease;
}


#grandTotalContainer {
    font-size: 1.5em; /* Larger total */
    font-weight: 700;
    color: var(--accent-success);
    margin-top: 1.5rem;
    text-align: right;
    padding-top: 1rem;
    border-top: 1px solid var(--hr-border-color);
    transition: color 0.3s ease, border-color 0.3s ease;
}

#grandTotalContainer .total-amount {
    /* Style already applied by parent, can add more specific styles here if needed */
}

#applyNowContainer {
    min-height: 60px; /* Ensure space for button */
}

.disabled-label {
    opacity: 0.30;
    cursor: not-allowed;
}



/* Calculator Results Table Styling */
#resultsTableContainer .calculator-results-table {
    background-color: var(--calculator-table-bg) !important;
    border: 1px solid var(--calculator-table-border) !important;
    margin-top: 1rem;
    color: var(--calculator-table-body-color) !important;
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

#resultsTableContainer thead {
    border-bottom: 2px solid var(--accent-primary);
    transition: border-color 0.3s ease;
}

#resultsTableContainer th {
    color: var(--calculator-table-header-color) !important;
    font-family: var(--font-primary);
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-size: 0.9rem;
    background-color: var(--calculator-table-bg) !important;
    transition: color 0.3s ease, background-color 0.3s ease;
    vertical-align: middle;
    /* Reset Bootstrap's shadow on headers too, if needed */
    box-shadow: none !important;
}

#resultsTableContainer td {
    border-color: var(--calculator-table-border) !important;
    vertical-align: middle;
    transition: color 0.3s ease, border-color 0.3s ease, background-color 0.3s ease; /* Added background-color */
    color: var(--calculator-table-body-color) !important;
    /* --- NEW: Reset Bootstrap's box-shadow on ALL data cells --- */
    box-shadow: none !important;
}

#resultsTableContainer tbody tr:nth-of-type(odd) td {
    background-color: var(--calculator-table-stripe-bg) !important;
    /* The box-shadow:none !important from the rule above handles the BS conflict */
    /* transition: background-color 0.3s ease; <-- Moved to general td rule for consistency */
}

#resultsTableContainer tbody tr:hover td {
    background-color: rgba(var(--accent-primary-rgb), 0.1) !important; /* Subtle hover */
    /* Ensure hover overrides stripe, might need !important if specificity is tricky */
    /* box-shadow: none !important; /* Already handled by general td rule */
}

#resultsTableContainer .text-secondary { /* Target standard secondary text */
    color: var(--calculator-table-secondary-color) !important; /* Use variable */
    font-size: 0.85em;
    transition: color 0.3s ease;
}
