.psp-review-overlay {
    align-items: center;
    background: rgba(15, 27, 36, .66);
    bottom: 0;
    display: flex;
    justify-content: center;
    left: 0;
    padding: 12px;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 10000;
}

.psp-review-overlay[hidden],
.psp-review-card[hidden],
.psp-review-address-detail[hidden],
.psp-same-address[hidden] { display: none; }

body.psp-review-open { overflow: hidden; }

.psp-review-modal {
    background: #fff;
    border-radius: 10px;
    box-sizing: border-box;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .35);
    color: #172633;
    font-family: Arial, Helvetica, sans-serif;
    max-height: calc(100vh - 24px);
    max-width: 1180px;
    overflow-y: auto;
    padding: 16px 18px 14px;
    position: relative;
    width: 100%;
}

.psp-review-close {
    background: transparent;
    border: 0;
    color: #49606f;
    cursor: pointer;
    font: 28px/1 Arial, sans-serif;
    padding: 4px 8px;
    position: absolute;
    right: 12px;
    top: 10px;
}

.psp-review-intro {
    border-bottom: 1px solid #d4dde3;
    margin-bottom: 10px;
    padding: 0 38px 10px 0;
}

.psp-review-intro h1 {
    color: #172633;
    font: 700 26px/1.2 Arial, sans-serif;
    letter-spacing: -.4px;
    margin: 0 0 5px;
    text-shadow: none;
}

.psp-review-intro p { font-size: 14px; margin: 0; }

.psp-review-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.psp-review-card {
    background: #f7fafb;
    border: 1px solid #bdc9d1;
    border-radius: 8px;
    min-width: 0;
    overflow: hidden;
}

.psp-review-card > header {
    align-items: center;
    background: linear-gradient(#e9eef1, #dce4e8);
    display: flex;
    justify-content: space-between;
    min-height: 38px;
    padding: 0 10px;
}

.psp-review-card h2 { color: #14212a; font-size: 16px; font-weight: 600; margin: 0; }

.psp-review-edit {
    background: transparent;
    border: 0;
    color: #226899;
    cursor: pointer;
    font-size: 13px;
    padding: 6px;
}

.psp-review-edit:before { content: "\270E"; margin-right: 5px; }
.psp-review-edit:hover, .psp-review-edit:focus { text-decoration: underline; }

.psp-review-fields {
    display: grid;
    gap: 5px 16px;
    grid-template-columns: 1fr;
    padding: 9px 11px 11px;
}

.psp-review-fields > div {
    align-items: start;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(120px, 42%) minmax(0, 1fr);
}

.psp-review-fields strong { display: block; font-size: 12px; margin: 0; padding-left: 10px; position: relative; text-align: left; }
.psp-review-fields strong::after { content: ":"; }
.psp-review-fields strong span { color: #a32626; left: 0; position: absolute; }
.psp-review-fields p { font-size: 14px; line-height: 1.3; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.psp-review-fields p.psp-review-empty { color: #667681; font-style: italic; }
.psp-review-single { grid-template-columns: 1fr; }
.psp-review-single > div { display: block; }

.psp-review-billing { margin: 0; padding: 9px 11px 11px; }
.psp-review-billing-grid {
    display: grid;
    gap: 5px;
    grid-template-columns: 1fr;
    margin: 0;
    padding: 0;
}
.psp-review-billing-grid > div {
    align-items: start;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(120px, 42%) minmax(0, 1fr);
    margin: 0;
    min-width: 0;
    padding: 0;
}
.psp-review-billing strong {
    display: block;
    font-size: 12px;
    margin: 0;
    padding-left: 10px;
    position: relative;
}
.psp-review-billing strong::after { content: ":"; }
.psp-review-billing strong span { color: #a32626; left: 0; position: absolute; }
.psp-review-billing p { display: block; font-size: 14px; line-height: 1.3; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.psp-review-billing p.psp-review-empty { color: #667681; font-style: italic; }
.psp-review-billing h3 {
    border-top: 1px solid #d3dce2;
    color: #14212a;
    font-size: 15px;
    font-weight: 600;
    margin: 10px 0 8px;
    padding-top: 8px;
}

.psp-same-address {
    align-items: center;
    display: flex;
    grid-column: 1 / -1;
}

.psp-same-address:before {
    align-items: center;
    background: #2d70a3;
    border-radius: 3px;
    color: #fff;
    content: "\2713";
    display: inline-flex;
    font-size: 12px;
    height: 17px;
    justify-content: center;
    margin-right: 7px;
    width: 17px;
}

.psp-review-card-wide { grid-column: span 1; }
.psp-review-remarks-card { grid-column: span 2; }
.psp-review-grid.psp-review-has-international .psp-review-remarks-card { grid-column: span 1; }
.psp-review-services-card { grid-column: 1 / -1; }
.psp-review-services { padding: 10px 11px 12px; }
.psp-review-services ul { margin: 0; padding-left: 21px; }
.psp-review-services li { font-size: 14px; line-height: 1.35; margin: 3px 0; }
.psp-review-services li.psp-review-service-row {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    list-style: none;
    position: relative;
}
.psp-review-services li.psp-review-service-row::before { content: "\2022"; left: -15px; position: absolute; }
.psp-review-service-price { text-align: right; white-space: nowrap; }
.psp-review-service-name { white-space: nowrap; }

.psp-review-total {
    border-top: 1px solid #d3dce2;
    display: flex;
    font-size: 14px;
    justify-content: space-between;
    margin-top: 9px;
    padding-top: 8px;
}

.psp-review-actions {
    border-top: 1px solid #d4dde3;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    margin-top: 10px;
    padding-top: 9px;
}

.psp-review-button {
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
    min-height: 34px;
    padding: 6px 14px;
}

.psp-review-secondary { background: #fff; border: 1px solid #2d6e9e; color: #245f8b; }
.psp-review-primary { background: #2d6e9e; border: 1px solid #2d6e9e; color: #fff; }
.psp-review-button[disabled] { cursor: wait; opacity: .65; }

@media (max-width: 1050px) {
    .psp-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .psp-review-overlay { align-items: stretch; padding: 0; }
    .psp-review-modal { border-radius: 0; max-height: 100vh; padding: 22px 15px 25px; }
    .psp-review-intro h1 { font-size: 24px; }
    .psp-review-intro p { font-size: 15px; }
    .psp-review-grid, .psp-review-fields { grid-template-columns: 1fr; }
    .psp-review-remarks-card, .psp-review-grid.psp-review-has-international .psp-review-remarks-card { grid-column: span 1; }
    .psp-review-service-name { white-space: normal; }
    .psp-review-actions { flex-direction: column-reverse; }
    .psp-review-button { width: 100%; }
}
