.tp-wrap { max-width: 760px; }
.tp-form { display: grid; gap: 1rem; }
.tp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.tp-form p { margin: 0; }
.tp-form label,
.tp-form legend { font-weight: 600; }
.tp-form input[type="text"],
.tp-form input[type="email"],
.tp-form select {
    box-sizing: border-box;
    width: 100%;
    padding: .7rem;
}
.tp-form fieldset { border: none; padding: .5rem 0; }
.tp-check { display: block; margin: 0; font-weight: 400 !important; }
.tp-form button { width: max-content; padding: .75rem 1.2rem; cursor: pointer; }
.tp-notice { margin: 0 0 1rem; padding: 1rem; border-left: 4px solid; }
.tp-notice-success { background: #edfaef; border-color: #16823b; }
.tp-notice-error { background: #fff1f1; border-color: #b32d2e; }
.tp-client-error { color: #b32d2e; font-weight: 600; }
.tp-account dl {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 2fr;
    gap: .65rem 1.2rem;
}
.tp-account dt { font-weight: 700; }
.tp-account dd { margin: 0; }
@media (max-width: 640px) {
    .tp-grid, .tp-account dl { grid-template-columns: 1fr; }
    .tp-account dd { margin-bottom: .5rem; }
}

.tp-client-error {
    display: none;
    color: #b32d2e;
    font-weight: 600;
}

.tp-client-error:not(:empty) {
    display: block;
    border: 1px solid #b32d2e;
    padding: .7rem;
    margin: .5rem 0;
}
