:root {
    --bs-primary: #0b5ed7;
    --bs-primary-rgb: 11, 94, 215;
}

body {
    min-height: 100vh;
    background: #f5f6f8;
    color: #212529;
}

.card { border-radius: .75rem; }
.form-control { min-height: 46px; }

.form-control:focus,
.form-check-input:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .15);
}

.form-control.invalid { border-color: var(--bs-danger); }

.error {
    display: block;
    min-height: 18px;
    margin-top: 4px;
    color: var(--bs-danger);
    font-size: .8rem;
}

.ticket-option {
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.ticket-option:hover { border-color: #adb5bd !important; }

.ticket-option:has(input:checked) {
    border-color: var(--bs-primary) !important;
    background: #f3f7ff;
}

.ticket-option .form-check-input { width: 1.15rem; height: 1.15rem; }
.btn-primary { min-width: 170px; }

.thanks-page {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 1.5rem;
    background: #f5f6f8;
}

.thanks-card {
    width: min(560px, 100%);
    padding: 3rem;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);
    text-align: center;
}

.success-icon {
    display: grid;
    width: 56px;
    height: 56px;
    margin: 0 auto 1.25rem;
    place-items: center;
    border-radius: 50%;
    background: var(--bs-success);
    color: #fff;
    font-size: 1.6rem;
}

@media (max-width: 575.98px) {
    .thanks-card { padding: 2rem 1.25rem; }
}
