:root { color-scheme: light; --ink:#183b48; --muted:#53666b; --line:#d9e0dd; --paper:#f5f4ee; --gold:#956216; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.5 system-ui,sans-serif; }
main { max-width:1080px; margin:auto; padding:24px 16px 48px; }
main.parent { max-width:700px; }
h1 { font:2.1rem/1.2 Georgia,serif; margin:0 0 18px; overflow-wrap:anywhere; }
h2 { font-size:1.25rem; margin:0 0 10px; }
h3 { font-size:1.05rem; margin:0; }
p { margin:8px 0 16px; }
a { color:#205c75; text-underline-offset:3px; overflow-wrap:anywhere; }
button, input, select, textarea { font:inherit; }
input:not([type=checkbox]):not([type=radio]), select, textarea { display:block; width:100%; max-width:600px; padding:9px 10px; border:1px solid #85999e; border-radius:6px; background:white; color:var(--ink); margin:4px 0 14px; }
input[type=checkbox] { width:20px; height:20px; margin:0; accent-color:var(--ink); }
textarea { resize:vertical; min-height:80px; }
label, legend { font-weight:600; }
.staff label { display:block; }
.staff h2:not(:first-child), .staff h3:not(:first-child) { margin-top:28px; }
.staff h3 { margin-bottom:8px; }
button, .button { display:inline-block; border:0; border-radius:7px; padding:10px 15px; background:var(--ink); color:white; cursor:pointer; min-height:44px; text-decoration:none; font-weight:600; }
button.secondary, .button.secondary { background:#e7eeec; color:var(--ink); }
button:disabled { opacity:.6; cursor:default; }
input:disabled, select:disabled, textarea:disabled { color:var(--ink); opacity:1; background:#f1f3f2; }
:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
fieldset { border:0; padding:0; margin:0 0 14px; min-width:0; }
legend { margin-bottom:8px; padding:0; }
.choices { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; margin:6px 0 16px; }
.choices label { display:flex; align-items:center; gap:10px; min-height:48px; padding:10px 12px; background:white; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.choices label:has(input:checked) { border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
input[type=radio] { width:20px; height:20px; margin:0; flex:none; accent-color:var(--ink); }
.parent input:not([type=checkbox]):not([type=radio]), .parent textarea { max-width:none; }
#percentages, #fill-controls { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; }
.card { background:white; border:1px solid var(--line); border-radius:12px; padding:16px; margin:12px 0; overflow-wrap:anywhere; }
.actions { display:flex; gap:10px; flex-wrap:wrap; margin:14px 0 0; align-items:center; }
.quiet { color:var(--muted); font-size:.92rem; }
.eyebrow { color:var(--gold); font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.masthead { padding:16px max(16px, calc((100% - 1048px)/2)); background:white; border-bottom:1px solid var(--line); }
.brand { font-weight:750; text-decoration:none; font-size:1.15rem; }
#identity { margin:4px 0 0; font-size:.86rem; overflow-wrap:anywhere; }
nav { display:flex; flex-wrap:wrap; gap:6px 22px; max-width:1080px; margin:auto; padding:12px 16px; border-bottom:1px solid var(--line); }
nav a { padding:6px 0; }
#message:not(:empty) { background:#fff2d6; color:#65460d; padding:12px; border-radius:7px; margin-bottom:18px; overflow-wrap:anywhere; }
.form-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:14px; }
.form-list .card { margin:0; }
.badge { display:inline-block; font-size:.8rem; border-radius:20px; padding:2px 10px; background:#e7eeec; }
.school-row { display:grid; grid-template-columns:minmax(70px,1fr) minmax(100px,3fr); gap:8px 12px; margin-bottom:12px; padding:12px; border:1px solid var(--line); border-radius:8px; }
.school-row .actions { grid-column:1/-1; margin:0; }
.school-head { padding:6px 12px; margin:16px 0 6px; background:#e3f2fd; color:#174d72; border-radius:6px; }
.school-group:nth-child(even) .school-head { background:#fce4ec; color:#752645; }
.child { padding:10px 12px; margin:6px 0; }
.child ul { padding-left:18px; margin:6px 0 0; font-size:.9rem; }
.parent #find { width:100%; }
.parent #family { margin-top:20px; }
.parent #reset { margin-top:12px; }
table { width:100%; border-collapse:collapse; font-size:.92rem; }
th, td { text-align:left; border-bottom:1px solid var(--line); padding:8px 6px; overflow-wrap:anywhere; }
th { overflow-wrap:normal; word-break:normal; }
ul { padding-left:22px; }
.child h4 { margin:8px 0 2px; font-size:.85rem; color:var(--muted); }
.gift-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; margin:4px 0; font-size:.92rem; }
.gift-row label { flex:1; min-width:100px; font-weight:400; }
.gift-row input:not([type=checkbox]) { width:100px; margin:0; padding:6px; }
.line-preview { min-width:65px; text-align:right; font-variant-numeric:tabular-nums; }
.amount-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:6px 12px; }
.fee-choice { display:flex; align-items:center; gap:8px; margin:12px 0; font-size:.92rem; }
#gift-details { margin-top:18px; }
#validation { color:#8b2525; }
#receipt-card { white-space:pre-wrap; }
.payment-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
#payment + button { margin-top:10px; }
.report-scroll { overflow-x:auto; max-width:100%; margin-top:14px; }
.report-scroll table { min-width:650px; }
.report-scroll th, .report-scroll td { overflow-wrap:normal; word-break:normal; }
.report-scroll td { white-space:pre-line; }
[hidden] { display:none !important; }
@media(min-width:700px) { main { padding-top:32px; } .card { padding:20px; } h1 { font-size:2.5rem; } .parent .child { padding:10px 14px; } }
#payarc-fields [data-payarc] { width: 100%; height: 84px; }
.bbq-menu-row { display:grid; grid-template-columns:minmax(0,1fr) 72px; align-items:center; gap:10px; border-top:1px solid var(--line); padding:3px 0; }
.bbq-menu-row label { font-weight:400; line-height:1.3; }
.bbq-menu-row small { display:block; font-size:.8rem; }
.bbq-menu-row input:not([type=checkbox]):not([type=radio]) { width:72px; margin:0; padding:5px 8px; min-height:40px; }
.bbq-subtotal { text-align:right; margin:6px 0 0; }
.bbq-prefill { margin:4px 0 8px; }
.amount { font-weight:700; font-variant-numeric:tabular-nums; }
.copy { white-space:pre-line; }
#cancel-confirm { border-top:1px solid var(--line); padding-top:10px; margin-top:12px; }
.bbq-editor-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; padding:12px; border:1px solid var(--line); border-radius:8px; margin-bottom:10px; align-items:end; }
.bbq-editor-row .bbq-contents { grid-column:1/-1; }
.bbq-editor-row label:has(input[type=checkbox]) { display:flex; gap:8px; align-items:center; margin-bottom:14px; }
.bbq-editor-row select, .bbq-editor-row input:not([type=checkbox]) { max-width:none; }
.bbq-editor-row .bbq-type { display:flex; flex-direction:column; }
@media(min-width:700px) { .bbq-editor-row { grid-template-columns:repeat(4,minmax(0,1fr)); } }
/* Native date/time controls need room for the date, seconds and AM/PM. */
.bbq-date-row { grid-template-columns:minmax(0,1fr); }
@media(min-width:700px) { .bbq-date-row { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.paypal-buttons { display: grid; gap: 10px; max-width: 360px; width: 100%; }
.paypal-buttons p { margin: 0; }
.paypal-buttons paypal-button, .paypal-buttons venmo-button, .paypal-buttons paypal-basic-card-container { display: block; width: 100%; }
