.amortization-form-stack {
    display: grid;
    gap: 1.25rem;
}

.amortization-field-group {
    border: 1px solid #eef2ff;
    border-radius: 1.25rem;
    padding: 1rem;
    background: #fff;
    overflow: visible;
}

.amortization-method-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.amortization-method-option,
.amortization-check-option {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: .9rem;
    cursor: pointer;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.amortization-method-option.is-selected,
.amortization-check-option:has(input:checked) {
    border-color: #4f46e5;
    background: #eef2ff;
    box-shadow: 0 10px 24px rgba(79, 70, 229, .12);
}

.amortization-method-option input,
.amortization-check-option input {
    margin-top: .2rem;
}

.amortization-method-option strong,
.amortization-check-option strong {
    display: block;
    color: #111827;
}

.amortization-method-option small,
.amortization-check-option small {
    display: block;
    color: #6b7280;
    margin-top: .2rem;
    line-height: 1.35;
}

.amortization-money-input-wrap,
.amortization-inline-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.amortization-money-prefix {
    position: absolute;
    left: .9rem;
    color: #6b7280;
    font-weight: 700;
    z-index: 1;
}

.amortization-money-input {
    padding-left: 2rem;
}

.amortization-inline-input-wrap span {
    position: absolute;
    right: .9rem;
    color: #6b7280;
    font-weight: 700;
}

.amortization-inline-input-wrap input {
    padding-right: 3.5rem;
}

.amortization-month-disabled {
    opacity: .62;
}

.amortization-month-field[hidden] {
    display: none !important;
}

/* Ay seçimi diğer custom select alanlarıyla aynı davranır: menü aşağı doğru overlay olarak açılır,
   form satırlarının yerini değiştirmez. */
.amortization-month-field {
    position: relative;
    z-index: 20;
}

.amortization-month-field .custom-select {
    position: relative;
}

.amortization-month-field .custom-select.is-open {
    z-index: 120;
}

.amortization-month-field .custom-select.is-open .custom-select-menu {
    top: calc(100% + 8px);
    bottom: auto;
    z-index: 125;
}

.amortization-summary-shell {
    border: 1px solid #e5e7eb;
    border-radius: 1.5rem;
    padding: 1rem;
    background: #fff;
}

.amortization-summary-hero {
    display: grid;
    grid-template-columns: 1fr minmax(180px, 240px);
    gap: 1rem;
    align-items: stretch;
    padding: 1rem;
    border-radius: 1.25rem;
    background: #f8fafc;
}

.amortization-summary-hero-value {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    color: #111827;
    line-height: 1.05;
    margin: .25rem 0 .5rem;
}

.amortization-rate-box {
    border-radius: 1rem;
    background: #eef2ff;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.amortization-rate-box small {
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: .72rem;
}

.amortization-rate-box strong {
    color: #111827;
    font-size: 1.05rem;
}

.amortization-details-toggle {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: #fff;
    padding: 0.85rem 1rem;
}

.amortization-details-toggle > summary {
    cursor: pointer;
    font-weight: 700;
    color: #111827;
    list-style: none;
}

.amortization-details-toggle > summary::-webkit-details-marker {
    display: none;
}

.amortization-details-toggle > summary::marker {
    content: "";
}

.amortization-details-toggle > summary::after {
    content: "+";
    float: right;
    font-size: 1.1rem;
}

.amortization-details-toggle[open] > summary::after {
    content: "−";
}

.amortization-schedule-card,
.amortization-table-wrap {
    min-width: 0;
    max-width: 100%;
}

.amortization-table-wrap {
    overflow-x: auto;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
}

@media (max-width: 768px) {
    .amortization-method-options,
    .amortization-summary-hero {
        grid-template-columns: 1fr;
    }
}

/* Desktop tablo kredi ödeme planındaki sıkı yerleşime yakın tutulur; mobilde kartlı akış kullanılır. */
.amortization-table {
    width: 100%;
    min-width: 680px;
    table-layout: auto;
    border-collapse: collapse;
    background: #fff;
}

.amortization-table th,
.amortization-table td {
    padding: .65rem .55rem;
    border-bottom: 1px solid #eef2ff;
    font-size: .92rem;
    white-space: nowrap;
}

.amortization-table th:first-child,
.amortization-table td:first-child {
    width: 42px;
    text-align: left;
}

.amortization-table th:nth-child(2),
.amortization-table td:nth-child(2) {
    width: 72px;
    text-align: left;
}

.amortization-table th:nth-child(n+3),
.amortization-table td:nth-child(n+3) {
    min-width: 128px;
    text-align: right;
}

.amortization-table thead th {
    background: #fff;
    color: #111827;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}

.amortization-table tbody tr:last-child td {
    border-bottom: 0;
}

.amortization-schedule-note {
    font-size: .92rem;
}

.amortization-schedule-mobile-list {
    display: none;
}

@media (max-width: 767.98px) {
    .amortization-table-wrap {
        display: none;
    }

    .amortization-schedule-mobile-list {
        display: grid;
        gap: 0;
        margin-top: 1rem;
    }

    .amortization-schedule-mobile-empty {
        padding: 14px 0;
    }

    .amortization-schedule-item {
        border: 1px solid var(--line, #e5e7eb);
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
        overflow: hidden;
    }

    .amortization-schedule-item + .amortization-schedule-item {
        margin-top: 10px;
    }

    .amortization-schedule-item summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        min-height: 54px;
        padding: 0 14px;
        cursor: pointer;
        list-style: none;
        font-weight: 800;
        color: #111827;
    }

    .amortization-schedule-item summary::-webkit-details-marker {
        display: none;
    }

    .amortization-schedule-item summary::marker {
        content: "";
    }

    .amortization-schedule-item summary strong {
        margin-left: auto;
        color: #111827;
        font-size: .95rem;
        white-space: nowrap;
    }

    .amortization-schedule-item summary::after {
        content: "+";
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 18px;
        height: 18px;
        border-radius: 999px;
        border: 1px solid #dbe4f0;
        color: #64748b;
        font-size: .85rem;
        line-height: 1;
        flex: 0 0 auto;
    }

    .amortization-schedule-item[open] summary::after {
        content: "−";
    }

    .amortization-schedule-item-body {
        padding: 0 14px 14px;
    }

    .amortization-schedule-card-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .amortization-schedule-value-card {
        min-height: auto;
    }

    .amortization-schedule-value-card--full {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .amortization-schedule-card-grid {
        grid-template-columns: 1fr;
    }
}
