.astar-family-review-card,
.astar-family-review-form-card,
.astar-family-review-wall,
.astar-family-review-guest-cta,
.astar-family-review-status {
    box-sizing: border-box;
    min-width: 0;
}

.astar-family-review-card,
.astar-family-review-form-card {
    border: 1px solid #d9e5ec;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(22, 50, 66, .06);
}

.astar-family-review-card {
    display: grid;
    gap: 10px;
}

.astar-family-review-card-head,
.astar-family-review-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    flex-wrap: wrap;
}

.astar-family-review-stars {
    color: #d89016;
    font-size: 19px;
    letter-spacing: 1px;
    line-height: 1;
}

.astar-family-review-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 26px;
    padding: 4px 9px;
    border: 1px solid #cfe3d8;
    border-radius: 999px;
    background: #eef8f2;
    color: #236444;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
}

.astar-family-review-body {
    margin: 0;
    color: #253a46;
    font-size: 15px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.astar-family-review-meta {
    justify-content: flex-start;
    color: #647985;
    font-size: 12px;
}

.astar-family-review-disclaimer {
    margin: 0;
    padding-top: 9px;
    border-top: 1px solid #edf2f5;
    color: #74858e;
    font-size: 11px;
    line-height: 1.5;
}

.astar-family-review-form-card h3,
.astar-family-review-wall h3,
.astar-family-review-guest-cta h3 {
    margin: 0 0 6px;
    color: #173748;
    font-size: 19px;
}

.astar-family-review-form-intro {
    margin: 0 0 14px;
    color: #5e727e;
    line-height: 1.55;
}

.astar-family-review-form-card form {
    display: grid;
    gap: 13px;
}

.astar-family-review-rating {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.astar-family-review-rating legend {
    margin-bottom: 7px;
    color: #294553;
    font-weight: 700;
}

.astar-family-review-rating-options {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 7px;
    max-width: 470px;
}

.astar-family-review-rating-options label {
    position: relative;
    min-width: 0;
}

.astar-family-review-rating-options input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.astar-family-review-rating-options label > span[aria-hidden="true"] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 6px;
    border: 1px solid #d7e2e8;
    border-radius: 10px;
    background: #f9fbfc;
    color: #b87a14;
    font-size: 12px;
    line-height: 1;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.astar-family-review-rating-options input:checked + span,
.astar-family-review-rating-options input:focus-visible + span {
    border-color: #c8871a;
    background: #fff8e9;
    box-shadow: 0 0 0 3px rgba(200, 135, 26, .14);
}

.astar-family-review-text-label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    color: #294553;
}

.astar-family-review-text-label span {
    color: #71828b;
    font-size: 12px;
}

.astar-family-review-form-card textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 132px;
    padding: 11px 12px;
    border: 1px solid #cbd9e1;
    border-radius: 10px;
    background: #fff;
    color: #1f3541;
    font: inherit;
    line-height: 1.55;
    resize: vertical;
}

.astar-family-review-form-card textarea:focus {
    border-color: #2f7b63;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(47, 123, 99, .13);
}

.astar-family-review-confirm {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    color: #5b6f79;
    font-size: 12px;
    line-height: 1.55;
}

.astar-family-review-confirm input {
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
}

.astar-family-review-form-card .astar-v2-button {
    justify-self: start;
}

.astar-family-review-wall {
    position: relative;
    overflow: hidden;
    min-height: 220px;
    padding: 0 !important;
    border: 1px solid #d8e4ea;
    border-radius: 16px;
    background: #f6fafb;
}

.astar-family-review-wall-visual {
    position: absolute;
    inset: 0;
    display: grid;
    gap: 11px;
    align-content: center;
    padding: 26px;
    filter: blur(5px);
    opacity: .54;
}

.astar-family-review-wall-visual span {
    display: block;
    height: 26px;
    border-radius: 8px;
    background: linear-gradient(90deg, #d9e7ec 0 26%, #e8f0f3 26% 100%);
}

.astar-family-review-wall-visual span:nth-child(2) {
    width: 82%;
}

.astar-family-review-wall-visual span:nth-child(3) {
    width: 66%;
}

.astar-family-review-wall-copy {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: start;
    gap: 9px;
    max-width: 620px;
    margin: 22px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 14px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 12px 34px rgba(25, 55, 70, .11);
}

.astar-family-review-wall-copy p {
    margin: 0;
    color: #526b77;
    line-height: 1.55;
}

.astar-family-review-guest-cta {
    display: grid;
    justify-items: start;
    gap: 9px;
    border: 1px solid #d8e4ea;
    border-radius: 14px;
    background: linear-gradient(135deg, #f7fbfa, #f8fafc);
}

.astar-family-review-guest-cta h3,
.astar-family-review-guest-cta p {
    margin: 0;
}

.astar-family-review-guest-cta p {
    color: #526b77;
    line-height: 1.55;
}

.astar-family-review-guest-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px 13px;
}

.astar-family-review-login-link {
    color: #25654d;
    font-size: 13px;
    font-weight: 700;
    text-underline-offset: 3px;
}

.astar-family-review-status {
    border: 1px solid #d7e4ea;
    border-radius: 12px;
    background: #f7fafb;
    color: #405a67;
    font-size: 13px;
    line-height: 1.5;
}

.astar-family-review-status.is-success {
    border-color: #bcdcc9;
    background: #f0f8f3;
    color: #225d40;
}

.astar-family-review-status.is-error {
    border-color: #e7c6c1;
    background: #fff5f3;
    color: #8c342b;
}

.astar-family-review-admin {
    max-width: 1240px;
}

.astar-family-review-admin-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0;
}

.astar-family-review-admin-filters a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 11px;
    border: 1px solid #cdd8df;
    border-radius: 999px;
    background: #fff;
    color: #285165;
    text-decoration: none;
}

.astar-family-review-admin-filters a.is-current {
    border-color: #2271b1;
    background: #edf6fc;
    color: #135e96;
    font-weight: 700;
}

.astar-family-review-admin-filters span {
    min-width: 20px;
    padding: 1px 6px;
    border-radius: 999px;
    background: #e8eef2;
    text-align: center;
    font-size: 11px;
}

.astar-family-review-admin-list {
    display: grid;
    gap: 14px;
}

.astar-family-review-admin-item {
    padding: 16px;
    border: 1px solid #d3dce2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(20, 45, 58, .05);
}

.astar-family-review-admin-item > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px 18px;
    margin-bottom: 10px;
}

.astar-family-review-admin-item > header > div {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}

.astar-family-review-admin-status {
    padding: 4px 9px;
    border-radius: 999px;
    background: #edf1f4;
    color: #4d606b;
    font-size: 12px;
    font-weight: 700;
}

.astar-family-review-admin-status.is-pending {
    background: #fff4d6;
    color: #7a5310;
}

.astar-family-review-admin-status.is-approved {
    background: #e7f5eb;
    color: #23643e;
}

.astar-family-review-admin-status.is-rejected,
.astar-family-review-admin-status.is-hidden {
    background: #f8e9e7;
    color: #8b3b32;
}

.astar-family-review-admin-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin-bottom: 13px;
    color: #596b75;
    font-size: 12px;
}

.astar-family-review-admin-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
    margin-bottom: 11px;
}

.astar-family-review-admin-columns pre,
.astar-family-review-admin textarea {
    box-sizing: border-box;
    width: 100%;
    margin: 6px 0 0;
    padding: 10px;
    border: 1px solid #c9d3da;
    border-radius: 8px;
    background: #fbfcfd;
    color: #263c47;
    font: 13px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.astar-family-review-admin-columns pre {
    min-height: 174px;
}

.astar-family-review-admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.astar-family-review-admin-empty {
    padding: 28px;
    border: 1px dashed #bccbd4;
    border-radius: 12px;
    background: #fff;
    color: #5c6d77;
    text-align: center;
}

@media (max-width: 782px) {
    .astar-family-review-rating-options {
        grid-template-columns: repeat(5, minmax(48px, 1fr));
        overflow-x: auto;
        padding: 2px 2px 6px;
    }

    .astar-family-review-card-head,
    .astar-family-review-meta,
    .astar-family-review-admin-item > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .astar-family-review-wall-copy {
        margin: 14px;
        padding: 16px;
    }

    .astar-family-review-admin-columns {
        grid-template-columns: 1fr;
    }
}
