/* FairBuildCost Calculator — Session 15 styles */

.fbc-calculator {
    max-width: 760px;
    margin: 0 auto;
    padding: 24px;
    font-family: inherit;
}

.fbc-calculator__title {
    font-size: 1.6em;
    margin-bottom: 8px;
}

.fbc-calculator__subtitle {
    color: #555;
    margin-bottom: 24px;
}

.fbc-field {
    margin-bottom: 20px;
}

.fbc-field label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
}

#fbc-postcode, #fbc-level {
    width: 100%;
    max-width: 320px;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 1em;
}

.fbc-group {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 12px;
}

.fbc-group legend {
    font-weight: 600;
    padding: 0 4px;
}

.fbc-checkbox {
    display: block;
    font-weight: normal;
    padding: 4px 0;
    cursor: pointer;
}

.fbc-checkbox input {
    margin-right: 8px;
}

.fbc-submit-btn {
    background: #1a6e3c;
    color: #fff;
    border: none;
    padding: 14px 28px;
    border-radius: 6px;
    font-size: 1.05em;
    font-weight: 600;
    cursor: pointer;
}

.fbc-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.fbc-calculator__results {
    margin-top: 32px;
}

.fbc-notice {
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 16px;
}

.fbc-notice--warning {
    background: #fff7e6;
    border: 1px solid #ffd591;
}

.fbc-notice--error {
    background: #fff1f0;
    border: 1px solid #ffa39e;
}

.fbc-loading {
    color: #777;
    font-style: italic;
}

.fbc-zone-line {
    margin-bottom: 16px;
}

.fbc-line-item {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 16px;
}

.fbc-line-item--error {
    border-color: #ffa39e;
    background: #fff1f0;
}

.fbc-levels-table {
    width: 100%;
    border-collapse: collapse;
    margin: 12px 0;
}

.fbc-levels-table th, .fbc-levels-table td {
    text-align: left;
    padding: 6px 8px;
    border-bottom: 1px solid #eee;
}

.fbc-row--selected {
    background: #f0f8f3;
    font-weight: 600;
}

.fbc-line-item__meta {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.9em;
    color: #555;
}

.fbc-line-item__meta li {
    padding: 2px 0;
}

.fbc-total {
    background: #f7f7f7;
    border-radius: 8px;
    padding: 20px;
    margin: 20px 0;
}

.fbc-total__amount {
    font-size: 1.8em;
    font-weight: 700;
    color: #1a6e3c;
    margin: 8px 0;
}

.fbc-total__grant {
    color: #1a6e3c;
}

.fbc-total__flag {
    color: #ad6800;
    font-weight: 600;
}

.fbc-disclaimer {
    font-size: 0.85em;
    color: #777;
    border-top: 1px solid #eee;
    padding-top: 16px;
}

.fbc-deh-cta {
    background: #eef6ff;
    border: 1px solid #bcd9f7;
    border-radius: 8px;
    padding: 16px 20px;
    margin-top: 16px;
}

.fbc-deh-cta a {
    display: inline-block;
    margin-top: 8px;
    font-weight: 600;
}

@media (max-width: 600px) {
    .fbc-calculator {
        padding: 16px;
    }
    .fbc-total__amount {
        font-size: 1.4em;
    }
}
