/* =========================================================
   LOAN EMI CALCULATOR
   ========================================================= */


/* =========================================================
   PAGE INTRO
========================================================= */

.calculator-intro {

    padding: 10px 4px 24px;

}

.calculator-intro h2 {

    margin: 0 0 10px;

    color: var(--color-primary);

    font-size: 24px;

    font-weight: var(--font-weight-bold);

}

.calculator-intro p {

    max-width: 850px;

    margin: 0 0 8px;

    color: var(--color-text-secondary);

    font-size: var(--font-size-md);

    line-height: 1.6;

}

.calculator-intro-note {

    font-size: var(--font-size-sm) !important;

}


/* =========================================================
   MAIN TWO-COLUMN LAYOUT
========================================================= */

.loan-calculator-layout {

    display: grid;

    grid-template-columns:
        minmax(320px, 0.85fr)
        minmax(480px, 1.4fr);

    gap: var(--space-lg);

    align-items: stretch;

}


/* =========================================================
   CALCULATOR CARDS
========================================================= */

.loan-input-card,
.loan-result-card {

    padding: 26px;

    min-height: 500px;

}


/* =========================================================
   SECTION HEADINGS
========================================================= */

.calculator-section-heading {

    margin-bottom: 24px;

}

.calculator-section-heading h3 {

    margin: 0 0 6px;

    color: var(--color-primary);

    font-size: 20px;

}

.calculator-section-heading p {

    margin: 0;

    color: var(--color-text-secondary);

    font-size: var(--font-size-sm);

    line-height: 1.5;

}


/* =========================================================
   INPUT FIELDS
========================================================= */

.calculator-field {

    margin-bottom: 24px;

}

.calculator-label {

    display: flex;

    align-items: center;

    gap: 7px;

    margin-bottom: 8px;

    color: var(--color-text-primary);

    font-weight: var(--font-weight-semibold);

    font-size: var(--font-size-sm);

}


/* =========================================================
   FIELD HELP - HOVER TOOLTIP
========================================================= */

.field-help {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 17px;
    height: 17px;

    margin-left: 5px;
    padding: 0;

    border: 1px solid var(--color-primary);
    border-radius: 50%;

    background: transparent;
    color: var(--color-primary);

    font-size: 11px;
    font-weight: 700;

    line-height: 1;

    cursor: help;
}


/* =========================================================
   TOOLTIP
========================================================= */

.field-help::after {
    content: attr(data-help-text);

    position: absolute;

    left: 50%;
    bottom: calc(100% + 10px);

    transform: translateX(-50%);

    width: 260px;

    padding: 12px 14px;

    background: #ffffff;
    color: var(--color-text);

    border: 1px solid var(--color-border);
    border-radius: 6px;

    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);

    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);

    line-height: 1.45;

    text-align: left;

    white-space: normal;

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 0.15s ease,
        visibility 0.15s ease;

    z-index: 1000;
}


/* =========================================================
   SMALL ARROW
========================================================= */

.field-help::before {
    content: "";

    position: absolute;

    left: 50%;
    bottom: calc(100% + 4px);

    transform: translateX(-50%);

    width: 8px;
    height: 8px;

    background: #ffffff;

    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);

    transform: translateX(-50%) rotate(45deg);

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    z-index: 1001;
}


/* =========================================================
   SHOW ON HOVER
========================================================= */

.field-help:hover::after,
.field-help:hover::before {
    opacity: 1;
    visibility: visible;
}


/* =========================================================
   TENURE INPUT
========================================================= */

.tenure-input-row {

    display: flex;

    align-items: center;

    gap: 10px;

}

.tenure-input-row input {

    width: 90px;

}

.tenure-input-row span {

    color: var(--color-text-secondary);

    font-size: var(--font-size-sm);

}


/* =========================================================
   CALCULATOR ACTIONS
========================================================= */

.calculator-actions {

    display: flex;

    justify-content: flex-start;

    align-items: center;

    gap: 10px;

    margin-top: 30px;

    padding-top: 20px;

    border-top: 1px solid var(--color-border-light);

}


/* =========================================================
   SUMMARY METRICS
========================================================= */

.loan-summary-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 12px;

    margin-bottom: 26px;

}

.loan-summary-metric {

    padding: 16px;

    background: var(--color-hover-fill);

    border: 1px solid var(--color-border-light);

    border-radius: var(--radius-md);

}

.loan-summary-metric.primary {

    background: #EAF4F7;

    border-color: #C9E1E8;

}

.loan-summary-label {

    margin-bottom: 6px;

    color: var(--color-text-secondary);

    font-size: var(--font-size-xs);

    font-weight: var(--font-weight-semibold);

}

.loan-summary-value {

    color: var(--color-primary);

    font-size: 19px;

    font-weight: var(--font-weight-bold);

    line-height: 1.3;

}


/* =========================================================
   CHART HEADING
========================================================= */

.loan-chart-heading {

    margin-bottom: 14px;

}

.loan-chart-heading h4 {

    margin: 0 0 4px;

    color: var(--color-primary);

    font-size: 16px;

}

.loan-chart-heading p {

    margin: 0;

    color: var(--color-text-secondary);

    font-size: var(--font-size-xs);

    line-height: 1.5;

}


/* =========================================================
   CHART CONTROLS
========================================================= */

.loan-chart-controls {

    display: flex;

    justify-content: flex-end;

    align-items: center;

    gap: 8px;

    margin-bottom: 10px;

}

.loan-chart-controls .calculator-label {

    margin: 0;

}

.loan-chart-controls select {

    width: 130px;

}


/* =========================================================
   CHART
========================================================= */

.loan-chart-container {

    position: relative;

    width: 100%;

    height: 275px;

}


/* =========================================================
   INSIGHTS
========================================================= */

.loan-insights-header {

    margin-top: var(--space-xl);

}

.loan-insights-container {

    margin-top: 0;

}


/* =========================================================
   MAIN INSIGHT
========================================================= */

.loan-insight-card {

    padding: 26px;

    background: var(--color-surface);

    border: 1px solid var(--color-border);

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-sm);

}

.loan-insight-card h3 {

    margin: 0 0 10px;

    color: var(--color-primary);

    font-size: 19px;

}

.loan-insight-card > p {

    margin: 0;

    color: var(--color-text-primary);

    line-height: 1.7;

}


/* =========================================================
   INSIGHT ACTION
========================================================= */

.loan-insight-action {

    margin-top: 20px;

}


/* =========================================================
   SCENARIO SECTION
========================================================= */

.loan-scenario-section {

    margin-top: 28px;

    padding-top: 22px;

    border-top: 1px solid var(--color-border-light);

}

.loan-scenario-section h4 {

    margin: 0 0 5px;

    color: var(--color-primary);

    font-size: 16px;

}

.loan-scenario-section > p {

    margin: 0 0 16px;

    color: var(--color-text-secondary);

    font-size: var(--font-size-sm);

}


/* =========================================================
   SCENARIO GRID
========================================================= */

.loan-scenario-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 12px;

}

.loan-scenario {

    padding: 14px 16px;

    background: var(--color-hover-fill);

    border: 1px solid var(--color-border-light);

    border-radius: var(--radius-md);

    color: var(--color-text-primary);

    font-size: var(--font-size-sm);

    line-height: 1.5;

}


/* =========================================================
   HELP POPUP
========================================================= */

.field-help-popup {

    position: fixed;

    inset: 0;

    display: none;

    align-items: center;

    justify-content: center;

    padding: 20px;

    background: rgba(0, 0, 0, 0.35);

    z-index: 10000;

}

.field-help-popup.show {

    display: flex;

}

.field-help-popup-content {

    position: relative;

    width: min(440px, 100%);

    padding: 28px;

    background: var(--color-surface);

    border: 1px solid var(--color-border);

    border-radius: var(--radius-lg);

    box-shadow: var(--shadow-lg);

}

.field-help-popup-content h3 {

    margin: 0 0 12px;

    color: var(--color-primary);

}

.field-help-popup-content p {

    margin: 0;

    color: var(--color-text-secondary);

    line-height: 1.6;

}

.field-help-close {

    position: absolute;

    top: 10px;

    right: 12px;

    width: 30px;

    height: 30px;

    border: none;

    background: transparent;

    color: var(--color-text-secondary);

    font-size: 24px;

    cursor: pointer;

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .loan-calculator-layout {

        grid-template-columns: 1fr;

    }

    .loan-input-card,
    .loan-result-card {

        min-height: auto;

    }

}

@media (max-width: 600px) {

    .loan-summary-grid {

        grid-template-columns: 1fr;

    }

    .loan-scenario-grid {

        grid-template-columns: 1fr;

    }

    .tenure-input-row {

        flex-wrap: wrap;

    }

    .calculator-actions {

        flex-wrap: wrap;

    }

}

/* =========================================================
   CALCULATOR VALIDATION MESSAGE
========================================================= */

.calculator-validation-message {

    display: none;

    margin-top: 14px;
    margin-bottom: 14px;

    padding: 10px 12px;

    border-left: 3px solid var(--color-primary);

    background: #fff4f0;

    color: #8a2d12;

    font-size: var(--font-size-sm);

    line-height: 1.4;

    border-radius: 4px;
}


/* Show only when validation fails */

.calculator-validation-message.show {

    display: block;

}
