* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #f2f6f3;
    color: #111;
    font-family: Arial, "Microsoft YaHei", sans-serif;
}

.page {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    padding: 18px 14px 32px;
}

.page-header {
    padding: 10px 4px 14px;
}

.page-header h1 {
    margin: 0;
    font-size: 24px;
    line-height: 1.3;
    letter-spacing: 0;
}

.page-header p {
    margin: 8px 0 0;
    color: #58645d;
    font-size: 14px;
    line-height: 1.5;
}

.checkout {
    display: grid;
    gap: 12px;
}

.panel {
    background: #fff;
    border: 1px solid #dbe7df;
    border-radius: 8px;
    padding: 16px;
}

.section-title {
    margin-bottom: 12px;
    font-size: 16px;
    font-weight: 700;
}

.product-media {
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1 / 1;
    border: 1px solid #dbe7df;
    border-radius: 8px;
    background: #f7faf8;
}

.product-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: #7a877f;
    font-size: 15px;
}

.product-info {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.product-info div,
.result-list div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    border-bottom: 1px solid #eef3ef;
    padding-bottom: 10px;
}

.product-info div:last-child,
.result-list div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.field-name,
.result-list span {
    flex: 0 0 auto;
    color: #65736b;
    font-size: 14px;
}

.product-info strong,
.result-list strong {
    text-align: right;
    font-size: 16px;
    line-height: 1.4;
}

.product-info p {
    margin: 0;
    color: #222;
    text-align: right;
    line-height: 1.5;
}

.form-row {
    display: block;
    margin-bottom: 14px;
}

.form-row span {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 7px;
    font-size: 14px;
    font-weight: 700;
}

.form-row em {
    color: #637067;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
}

input,
textarea {
    display: block;
    width: 100%;
    border: 1px solid #d4ded8;
    border-radius: 6px;
    padding: 12px;
    outline: none;
    background: #fff;
    color: #111;
    font: inherit;
}

input:focus,
textarea:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand), transparent 82%);
}

textarea {
    resize: vertical;
}

.total-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid #eef3ef;
    padding-top: 14px;
    font-size: 16px;
    font-weight: 700;
}

.total-line strong {
    font-size: 22px;
}

.submit-btn {
    display: block;
    width: 100%;
    border: 0;
    border-radius: 7px;
    padding: 14px 16px;
    background: var(--brand);
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.4;
}

.secondary {
    margin-top: 18px;
}

.result-page {
    padding-top: 48px;
}

.result-panel {
    text-align: center;
}

.result-mark {
    display: inline-grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    font-size: 30px;
    font-weight: 700;
}

.result-mark.success {
    background: var(--brand);
}

.result-mark.pending {
    background: #c28a1a;
}

.result-panel h1 {
    margin: 14px 0 18px;
    font-size: 24px;
}

.result-media {
    margin-bottom: 16px;
}

.result-list {
    display: grid;
    gap: 10px;
    text-align: left;
}

.empty {
    color: #65736b;
}

@supports not (color: color-mix(in srgb, black, white)) {
    input:focus,
    textarea:focus {
        box-shadow: 0 0 0 2px rgba(11, 122, 75, .12);
    }
}
