h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
* { box-sizing: border-box; }

body { margin: 0; background: #f4f0e8; color: #1e2930; font-family: Georgia, "Times New Roman", serif; }

.rsvp-page { display: grid; min-height: 100vh; place-items: center; padding: 2rem 1rem; }
.rsvp-card { width: min(100%, 42rem); padding: clamp(1.5rem, 5vw, 3rem); border-top: 6px solid #a74420; background: #fffdf8; box-shadow: 0 1rem 3rem rgb(30 41 48 / 12%); }
.rsvp-card h1 { font-size: clamp(2rem, 7vw, 3.6rem); line-height: 1; margin: .25rem 0 1.5rem; }
.eyebrow { color: #a74420; font-family: Arial, sans-serif; font-size: .8rem; font-weight: bold; letter-spacing: .12em; text-transform: uppercase; }
.notice, .deadline { padding: 1rem; background: #edf2ee; }
fieldset { display: grid; gap: .85rem; margin: 1.5rem 0 0; padding: 0; border: 0; }
legend { font-weight: bold; margin-bottom: .5rem; }
label { font-family: Arial, sans-serif; }
textarea { width: 100%; min-height: 7rem; resize: vertical; }
button { width: fit-content; padding: .8rem 1.2rem; border: 0; background: #a74420; color: white; cursor: pointer; font: inherit; }
.validation-message { color: #922b15; font-weight: bold; }
.event-details { margin: 1.5rem 0; padding-top: 1.25rem; border-top: 1px solid #d8d1c4; }
.event-details h2 { margin: .2rem 0 1rem; }
.event-details dl { display: grid; gap: .65rem; margin: 0; }
.event-details dl > div { display: grid; grid-template-columns: minmax(5rem, 7rem) 1fr; gap: .75rem; }
.event-details dt { color: #58656a; font: bold .8rem Arial, sans-serif; text-transform: uppercase; }
.event-details dd { margin: 0; overflow-wrap: anywhere; }
.event-address { white-space: pre-line; }
.configuration-summary { display: grid; gap: .5rem; margin: 1rem 0; }
.configuration-summary > div { display: grid; grid-template-columns: minmax(5rem, 7rem) 1fr; gap: .75rem; }
.configuration-summary dt { color: #58656a; font: bold .8rem Arial, sans-serif; text-transform: uppercase; }
.configuration-summary dd { margin: 0; overflow-wrap: anywhere; }

.organizer-page { max-width: 72rem; margin: 0 auto; padding: 2rem 1rem 4rem; }
.organizer-page h1 { font-size: clamp(2rem, 6vw, 3.5rem); }
.organizer-page h2 { margin-top: 0; }
.organizer-page > section { margin-top: 1.5rem; width: 100%; }
.organizer-nav { display: flex; gap: .2rem; margin-top: 1.25rem; border-bottom: 1px solid #d8d1c4; overflow-x: auto; }
.organizer-nav a { flex: 0 0 auto; padding: .75rem .9rem; color: #35434a; font: bold .8rem Arial, sans-serif; text-decoration: none; }
.organizer-nav a.active { border-bottom: 3px solid #a74420; color: #a74420; }
.overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.overview-card { width: 100%; }
.overview-links { display: grid; gap: .65rem; }
.overview-links a { display: grid; gap: .2rem; padding: .8rem; border: 1px solid #d8d1c4; color: #35434a; text-decoration: none; }
.overview-links a:hover { background: #faf7f0; }
.overview-links span, .recent-activity li span { color: #58656a; font: .85rem/1.4 Arial, sans-serif; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.section-heading a { color: #a74420; font-family: Arial, sans-serif; }
.recent-activity ul { display: grid; gap: .6rem; padding: 0; list-style: none; }
.recent-activity li { display: flex; flex-wrap: wrap; gap: .45rem; padding-bottom: .6rem; border-bottom: 1px solid #d8d1c4; }
.party-filter-form { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.party-filter-form input, .party-filter-form select { min-height: 2.5rem; padding: .45rem .55rem; border: 1px solid #a9a294; background: white; font: normal 1rem Arial, sans-serif; }
.party-filter-form input { flex: 1 1 16rem; }
.parties-page-card, .audit-page-card, .settings-card { width: 100%; }
.email-history { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid #d8d1c4; }
.email-resend { display: grid; gap: .65rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid #d8d1c4; }
.email-resend h3, .email-resend p { margin: 0; }
.email-resend select { min-height: 2.5rem; padding: .45rem .55rem; border: 1px solid #a9a294; background: white; font: normal 1rem Arial, sans-serif; }
.email-html-preview { padding: 1rem; border: 1px solid #d8d1c4; background: white; overflow-wrap: anywhere; }
.email-text-preview { margin: 0; padding: 1rem; overflow-x: auto; white-space: pre-wrap; border: 1px solid #d8d1c4; background: #faf7f0; font: .9rem/1.45 Arial, sans-serif; }
.metrics { display: grid; gap: 1px; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); background: #d8d1c4; }
.metrics p { margin: 0; padding: 1.2rem; background: #fffdf8; font-family: Arial, sans-serif; }
.metrics strong { display: block; font-size: 2rem; color: #a74420; }
table { width: 100%; border-collapse: collapse; font-family: Arial, sans-serif; font-size: .9rem; }
th, td { padding: .65rem; border-bottom: 1px solid #d8d1c4; text-align: left; }
th { color: #58656a; font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }

.party-grid-wrap { margin-top: 1rem; overflow-x: auto; }
.party-grid { min-width: 58rem; font-family: Arial, sans-serif; font-size: .9rem; }
.party-grid > thead > tr > th { padding: .65rem; background: #ede7dc; color: #35434a; border-bottom: 2px solid #a74420; }
.party-grid .col-title { width: 100%; padding: 0; color: inherit; font-family: Arial, sans-serif; font-size: .75rem; letter-spacing: .05em; text-align: left; text-transform: uppercase; }
.party-grid button.col-title:hover { background: #ded6c8; }
.party-grid > tbody > tr > td { padding: .65rem; border-bottom: 1px solid #d8d1c4; }
.party-grid > tbody > tr:hover > td { background: #f7f2e9; }
.party-grid > tbody > tr:has(> td.grid-cell-placeholder),
.party-grid > tbody > tr:has(> td:first-child:empty) { display: none; }
.party-grid td:last-child { width: 1%; white-space: nowrap; }
.party-grid td:last-child button { padding: .5rem .8rem; }
.organizer-page .paginator { font-family: Arial, sans-serif; }

.manage-party { max-width: none; }
.manage-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.manage-heading h2 { margin: .2rem 0 0; }
.manage-heading .eyebrow { margin: 0; }
.manage-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.manage-form { display: grid; align-content: start; gap: .85rem; padding: 1.25rem; border: 1px solid #d8d1c4; background: #faf7f0; }
.manage-form-warning { border-top: 4px solid #a74420; }
.manage-form h3, .manage-form p { margin: 0; }
.manage-form > p { color: #58656a; font-family: Arial, sans-serif; font-size: .9rem; line-height: 1.45; }
.manage-form label { display: grid; gap: .35rem; font-size: .85rem; font-weight: bold; }
.manage-form input, .manage-form select { width: 100%; min-height: 2.5rem; padding: .45rem .55rem; border: 1px solid #a9a294; background: white; color: #1e2930; font: normal 1rem Arial, sans-serif; }
.manage-form input:focus, .manage-form select:focus { outline: 3px solid rgb(167 68 32 / 22%); border-color: #a74420; }
.form-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .35rem; }
.button-secondary { border: 1px solid #8d8578; background: transparent; color: #35434a; }
.button-secondary:hover { background: #ede7dc; }
.button-danger { background: #8d271c; }
.batch-draft-form { margin-top: 1rem; }
.batch-draft-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.form-help, .file-selected { margin: 0; color: #58656a; font: .9rem/1.45 Arial, sans-serif; }
.file-picker input { padding: .5rem 0; border: 0; }
.draft-review { margin: 1.25rem 0; padding: 1.25rem; border: 1px solid #d8d1c4; background: #faf7f0; }
.draft-review-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.draft-review-heading h3, .draft-review-heading .eyebrow { margin: 0; }
.draft-state { padding: .35rem .55rem; background: #e7eee8; color: #35434a; font: bold .75rem Arial, sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.saved-draft-list { display: grid; gap: .65rem; margin-top: .75rem; }
.saved-draft-list > div { display: flex; align-items: center; gap: .75rem; padding: .75rem; border: 1px solid #d8d1c4; background: #faf7f0; }
.saved-draft-list button { flex: 0 0 auto; }
.saved-draft-list small { color: #58656a; font-family: Arial, sans-serif; }
.deadline-change-form { margin-top: 1rem; max-width: 42rem; }
.deadline-current { padding: .75rem; background: #edf2ee; color: #35434a !important; }

@media (max-width: 760px) {
    .manage-actions { grid-template-columns: 1fr; }
    .manage-heading { align-items: stretch; flex-direction: column; }
    .overview-grid { grid-template-columns: 1fr; }
    .batch-draft-fields { grid-template-columns: 1fr; }
    .draft-review-heading { align-items: stretch; flex-direction: column; }
}
