/* Give With Joy 2026 campaign treatment. Workflow geometry and controls live in styles.css. */
:root{--paper:#faf9f6;--ink:#062558;--muted:#5b687b;--red:#c91629;--red-dark:#a61122;--rose:#fff0f2;--line:#e1e5eb;--green:#25476f;--campaign-red:#eb2533;--navy:#062558;--radius:22px;color:var(--ink);background:var(--paper)}
body{background:linear-gradient(180deg,#fff 0,#faf9f6 420px);color:var(--navy)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:#326ca7;outline-offset:4px}
.site-header{height:104px;border-bottom:1px solid #dfe4eb}
.brand{gap:15px;color:var(--navy);letter-spacing:0;min-width:0}
.campaign-shield{display:block;width:49px;height:59px;object-fit:contain;flex-shrink:0}
.campaign-brand-copy{display:grid;gap:5px}
.campaign-brand-title{display:block;font-family:'Manrope',sans-serif;font-size:25px;font-weight:750;letter-spacing:-1px;line-height:1.12}
.campaign-brand-title strong{font-family:Georgia,'Times New Roman',serif;font-size:32px;font-weight:700;font-style:italic;letter-spacing:-1.6px}
.campaign-brand-location{font-size:10px;letter-spacing:1px;font-weight:550;line-height:1.4;color:#5b6980}
.header-note{display:grid;text-align:right;gap:6px;color:#53627a}
.header-season{font-size:9px;letter-spacing:1.8px;font-weight:700;color:#b91b2d}
.header-mission{font-size:12px;color:#52627b}
.account{color:#334c6e}.account .text-button{color:#9e1627;font-size:11px}
.auth-layout{grid-template-columns:1.08fr 1fr;gap:30px;align-items:stretch;padding:38px 0 24px}
.campaign-hero{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;padding:43px 43px 30px;min-height:594px;background:linear-gradient(125deg,#c91b2c 0%,#dc2232 68%,#eb2533 100%);color:#fff;box-shadow:0 12px 35px #7d102312}
.campaign-hero:after{content:'';position:absolute;width:420px;height:420px;border:1px solid #ffffff19;border-radius:50%;right:-240px;top:80px;z-index:-1}
.campaign-hero>*{position:relative;z-index:1}
.campaign-hero .eyebrow{color:#fff;font-size:9px;letter-spacing:1.8px;margin:0 0 25px;font-weight:650}
.campaign-hero h1{font-family:'Manrope',sans-serif;font-weight:800;color:#fff;margin:0;letter-spacing:-1.6px;line-height:1.05;max-width:none}
.campaign-give{display:block;font-size:43px;line-height:1.1;letter-spacing:-1.7px;font-weight:800}
.campaign-hero h1 em{display:block;font-family:Georgia,'Times New Roman',serif;font-size:148px;line-height:.97;font-weight:700;letter-spacing:-9px;margin-left:-4px;margin-top:1px}
.campaign-hero .welcome-intro{font-size:15px;line-height:1.75;color:#fff;margin:23px 0 0;max-width:390px;font-weight:500}
.campaign-hero .welcome-steps{margin-top:28px;gap:14px}
.campaign-hero .welcome-steps>div{gap:12px}
.campaign-hero .welcome-steps>div>span{width:27px;height:27px;color:#fff;border-color:#ffffff88;font-size:9px}
.campaign-hero .welcome-steps p{color:#fff;font-size:12px;line-height:1.5;font-weight:500}
.campaign-hero .welcome-note{color:#fff;border-color:#ffffff5e;padding-top:19px;margin-top:25px;font-size:10px;line-height:1.65}
.campaign-hero .welcome-note svg{width:19px;height:19px;color:#fff}
.campaign-hero .campaign-hero-bell{position:absolute;z-index:0;right:-9px;bottom:117px;width:151px;height:180px;color:#fff;opacity:.12;transform:rotate(16deg);pointer-events:none}
.auth-card{background:#fff;border:1px solid #dce3ec;border-radius:24px;padding:39px 34px 28px;box-shadow:0 12px 35px #0d2b5305}
.auth-card h2{font-size:27px;letter-spacing:-1.1px;color:var(--navy);margin-top:3px;line-height:1.3}
.auth-card .eyebrow{font-size:8px;letter-spacing:1.4px;color:#bd1930;margin-bottom:14px}
.form-season-mark{position:absolute;right:29px;top:37px;font-size:7px;font-weight:700;letter-spacing:1.2px;color:#586d8b}
.card-copy{color:#56667e;font-size:13px;line-height:1.75}
.auth-card .card-copy{margin:13px 0 24px}
#login-form{gap:9px}#login-form label{font-size:12px;color:#243e63;font-weight:550;margin-top:11px}
#login-form input{height:49px;border-color:#d5dee9;border-radius:9px;background:#fff;color:#062558;padding-inline:14px;font-size:14px}
#login-form input::placeholder{color:#768499}#login-form input:focus-visible,.share-url:focus-visible{outline-color:#326ca7}
.password-field button{color:#244b7a;height:41px;font-weight:550}.password-field button:hover{background:#eef3f9}
.primary{background:#c91629;color:#fff;font-weight:650;font-size:14px;border-radius:9px;min-height:49px;box-shadow:none}
.primary:hover:not(:disabled){background:#a61122;box-shadow:0 4px 12px #b3152520}
.primary:disabled{background:#e5e8ed;color:#667184;opacity:1}
.auth-submit{margin-top:18px;min-height:51px}.password-note{color:#5c6a7d;font-size:11px;line-height:1.65;margin:14px 0 21px}
.account-help{color:#637188;border-color:#e0e6ed;font-size:11px;line-height:1.6;padding-top:17px}
.account-help a{color:#173f73;font-size:11px;font-weight:650}
.service-note{background:#f1f4f8;border:1px solid #e0e7ef;border-radius:10px;color:#50617a;font-size:11px;line-height:1.7;padding:15px 17px}
.service-note strong{color:#153b6c;font-weight:650}.service-note .compact-shift-date{color:#0a2f61}.service-note .compact-shift-address{color:#53657e}
.member-navigation{border-color:#dfe5ed;padding:19px 0 14px;gap:8px}.member-tab{color:#355272;font-weight:600;border-radius:9px;padding:10px 17px}
.member-tab:hover{background:#edf2f8}.member-tab.active{background:#062558;border-color:#062558;color:#fff}
.nav-count{background:#e8edf5;color:#173b69}.member-tab.active .nav-count{background:#ffffff24;color:#fff}
.navigation-note{color:#576a83;font-size:10px}.calendar-session{margin-top:20px;color:#546881;font-size:10px}.ready-label{color:#44634c}.ready-label>span{background:#e6f0e7;color:#3d6947}
.campaign-intro{background:#062558;color:#fff;padding:26px 31px;margin:20px 0 20px;border-radius:20px;overflow:hidden}
.campaign-intro .eyebrow{font-size:8px;letter-spacing:1.6px;color:#e1e8f3;margin-bottom:9px}
.campaign-intro h1{font-size:36px;letter-spacing:-1.4px;color:#fff;line-height:1.18}
.campaign-intro h1 em{font-family:Georgia,'Times New Roman',serif;font-size:44px;line-height:1;letter-spacing:-1.5px;font-weight:700}
.campaign-intro .intro-copy{font-size:13px;line-height:1.6;color:#e2e9f4;margin-top:9px;max-width:none}
.campaign-intro .season-mark{width:90px;transform:none;color:#fff;gap:0;flex-shrink:0}
.campaign-intro .season-mark svg{width:52px;height:61px;transform:rotate(11deg);color:#fff}
.campaign-intro .season-mark span{color:#e1e8f3;font-size:7px;letter-spacing:1.3px;line-height:1.8}
.venue{background:#fff;border:1px solid #dce3ec;box-shadow:none;border-radius:14px;padding:18px 21px;margin-bottom:24px}
.venue-pin{background:#fcecee;color:#bd1e32;border-radius:10px}.venue-info h2{color:#092a5b;font-size:15px}.venue-info p{color:#566982;font-size:13px}
.pill{background:#eef2f7;color:#465e7c}.venue-org span{color:#6b7890}.venue-org strong{color:#274568;font-weight:550}
.booking{background:#fff;border-color:#dae2ec;border-radius:22px;box-shadow:0 6px 24px #0e2c5205}.calendar-panel{background:#fff}.times-panel{background:#f8fafc;border-color:#e0e6ee}
.step-number{background:#eaf0f8;color:#274e80;font-weight:700}.step-title h2{color:#153660;font-weight:700}.text-button{color:#254c7d}.step-title .text-button:hover{color:#b7152c}
.month-navigation h3{color:#062558;font-weight:750}.icon-button{border-color:#d8e1ed;background:#fff}.icon-button svg{stroke:#133a69}.icon-button:hover:not(:disabled){background:#edf3fa;border-color:#91a5bf}
.weekdays{color:#5c6b80;font-weight:550}.day{background:#edf4ee;color:#0b335e;border-radius:10px;border-color:transparent}.day-number{font-weight:600}.day-count{color:#45654e}
.day:not(:disabled):hover{border-color:#9ab6a0;background:#e7f0e8}.day:disabled{color:#a0a9b5;background:transparent}.day:disabled .day-count{color:#9aa5b4}
.day.selected{background:#c91629!important;border-color:#c91629!important;color:#fff;box-shadow:0 3px 9px #b7132620}.day.selected .day-count{color:#fff}.day.today:after{background:currentColor}
.calendar-footer{border-color:#e0e6ee;color:#606e81}.calendar-footer strong{color:#3d566f;font-weight:600}.legend-dot{background:#527d58}
.help-note{background:#f2f5f9;border-radius:11px}.help-note svg{color:#527198}.help-note p{color:#35547b}.help-note span{color:#5d7089}
.chosen-date p{color:#687991;font-weight:650}.chosen-date h3{color:#062558;font-weight:750}.chosen-date>span{color:#526d59}
.time-button{border-color:#d7e1ec;color:#143967;border-radius:9px;min-height:56px;background:#fff}.time-radio{border-color:#93a5be}.time-label{font-weight:600}.time-extra{color:#496b51}
.time-button:hover:not(:disabled){border-color:#a4b4ca;background:#f8faff}.time-button.selected{background:#fff1f3;border-color:#c91629;box-shadow:0 0 0 1px #c91629}.time-button.selected .time-radio{border-color:#c91629;background:#c91629}.time-button.selected .time-label,.time-button.selected .time-extra{color:#a60f22}
.time-button:disabled{background:#f0f2f5;opacity:.65}.time-button:disabled .time-extra{color:#596c61}
.selection-detail{border-color:#dae2ec}.selection-caption{color:#61748e;font-weight:650}.selection-detail strong{color:#173d6d;font-weight:650}.selection-detail>span:last-child{color:#5c6e85}.handoff-note{color:#5d6d82}
.schedule-status{color:#5e6f87}.schedule-status .text-button{color:#174578}.status-light{background:#578462}.empty-times{color:#53677f}.skeleton{background:#edf1f6}
.booking-message,.form-message{color:#962237;background:#fff0f2}.form-message.positive{color:#376345;background:#edf5ee}
.load-error{background:#fff;border-color:#dae3ee}.load-error h2{color:#062558}.load-error p{color:#536981}
.requirements-layout h1{color:#062558}.eyebrow{color:#bd1930}.intro-copy{color:#5a6b83}
.requirements-card{background:#fff;border-color:#d9e2ee;border-radius:20px}.requirement{border-color:#dce4ee;background:#f7f9fc;color:#193e6d}.requirement-detail strong{color:#17385f}.requirement-detail>span{color:#5a6c83}.requirement-mark{color:#99712e;background:#faf0da}.requirement.complete .requirement-mark{color:#446d4c;background:#e7f1e8}
.requirement-help{color:#5a6c83}.secondary{border-color:#b9c9db;background:#fff;color:#244f80;font-weight:550}.secondary:hover:not(:disabled){background:#edf3fa}
.registrations-view{padding-top:27px}.registrations-heading{background:#062558;color:#fff;border-radius:20px;padding:27px 29px;gap:20px}.registrations-heading .eyebrow{color:#e5ebf5;font-size:8px;margin-bottom:10px;letter-spacing:1.5px}.registrations-heading h1{font-size:31px;color:#fff;letter-spacing:-1.1px;line-height:1.28}.registrations-heading .intro-copy{font-size:13px;color:#e1e8f3;margin-top:8px;max-width:none}.registrations-heading .secondary{color:#fff;border-color:#a5b8d1;background:transparent;font-size:11px}.registrations-heading .secondary:hover{background:#ffffff14}
.registrations-status{color:#5a6c84}.registration-card{background:#fff;border-color:#dce4ee;border-radius:16px;box-shadow:0 3px 15px #0e2b5003}.registration-date-block{border-color:#dde4ee;color:#193f70}.registration-date-block strong{font-weight:750}.registration-date-block span{color:#677c98}.registration-info h2{color:#0c2f5e;font-weight:650}.registration-time{color:#295381}.registration-address{color:#536d89}
.registration-state{background:#e7f2e8;color:#3c6745}.registration-state.cancelled{background:#edf0f4;color:#52647d}.registration-state.other{background:#faf0da;color:#82632c}.registration-link{color:#17477e}.registration-tools{border-color:#e0e6ed}
.shift-action{border-color:#ccd8e6;color:#214d80;background:#fff;font-weight:550}.shift-action:hover:not(:disabled){background:#edf3fa;border-color:#98afcc}.shift-action.cancel-action{color:#b51b2d;border-color:#ead0d5}.shift-action.cancel-action:hover:not(:disabled){background:#fff0f2;border-color:#d998a3}
.calendar-actions[open]>summary{background:#eaf1fa}.calendar-options{background:#fff;border-color:#cfdbea;box-shadow:0 8px 25px #0927541a}.calendar-options button,.calendar-options a{color:#173f71}.calendar-options button:hover,.calendar-options a:hover{background:#edf3fa}.calendar-copy-note{color:#5d718d;border-color:#e1e7ef}.action-feedback{color:#2f5b84}
.registrations-empty{border-color:#c6d3e3;background:#f2f6fb}.empty-bell{color:#a92136}.registrations-empty h2{color:#0c3264}.registrations-empty p{color:#526b8a}
.pending-banner{background:#fff7e6;border-color:#eddcb6;color:#79602c}.pending-banner strong{color:#795a20}.pending-banner .secondary{background:transparent;color:#775724;border-color:#cbb579}
.review-dialog{background:#fff;border-color:#d9e3ef;color:#062558;box-shadow:0 25px 100px #04234e38;border-radius:21px}.review-dialog::backdrop{background:#051c4180}.review-dialog h2{color:#062558;font-weight:750}.dialog-close{color:#5b718e}.dialog-close:hover{background:#eef3f9}.review-dialog .eyebrow{color:#b7192e}.review-facts{background:#f3f6fa;border-color:#e0e7f0}.review-facts>div>span{color:#5d7391}.review-facts strong{color:#123867}.review-facts p{color:#4f6a8a}.dialog-back,.dialog-golden-link{color:#214f82}
.success-mark{background:#e8f2e7;color:#3b6d47}.signup-success .service-note{background:#eef6ee;border-color:#dcebdc}.signup-success>p:not(.eyebrow){color:#536982}.pending-mark{color:#94702c;background:#faf0db}.signup-pending>p:not(.eyebrow){color:#566b86}.share-dialog label{color:#294c77}.share-url{color:#1e4679;background:#f5f8fc;border-color:#cddbea}.cancel-review-note{color:#8a6540}#cancel-details>span{color:#506c8d}
.site-footer{border-top:1px solid #e0e5ec;margin-top:22px;padding:23px 0 26px;gap:18px;color:#61718a;font-size:10px;line-height:1.8}.site-footer span:first-child{color:#596c87}.site-footer strong{font-weight:650;color:#a6192c;margin-right:4px}
@media(min-width:1450px){.auth-layout{padding-top:44px}.campaign-intro{padding:27px 34px}.auth-card{padding-inline:38px}}
@media(max-width:1000px){.auth-layout{gap:24px;padding-top:30px}.campaign-hero{padding:36px 30px 27px;min-height:586px}.campaign-give{font-size:36px}.campaign-hero h1 em{font-size:133px}.campaign-hero .welcome-intro{font-size:14px}.campaign-hero .welcome-note{font-size:9px}.auth-card{padding:34px 25px 25px}.auth-card h2{font-size:24px}.form-season-mark{display:none}.campaign-brand-title{font-size:23px}.campaign-brand-title strong{font-size:30px}.registrations-heading h1{font-size:28px}.campaign-intro{padding:25px 26px}}
@media(max-width:720px){
 .site-header{height:88px}.brand{gap:10px}.campaign-shield{width:39px;height:48px}.campaign-brand-copy{gap:4px}.campaign-brand-title{font-size:21px;letter-spacing:-.8px}.campaign-brand-title strong{font-size:27px;letter-spacing:-1px}.campaign-brand-location{font-size:8px;letter-spacing:.4px;line-height:1.4}.header-note{display:none}.account{font-size:10px;gap:1px}.account .text-button{font-size:10px}#account-name{max-width:102px}
 .auth-layout{display:block;padding:20px 0 6px}.campaign-hero{min-height:0;padding:23px 24px 24px;border-radius:19px}.campaign-hero .eyebrow{font-size:8px;letter-spacing:1.4px;margin:0 0 10px}.campaign-hero h1{display:flex;align-items:baseline;gap:10px;line-height:1;white-space:nowrap;letter-spacing:0}.campaign-give{font-size:25px;letter-spacing:-.9px;line-height:1.1}.campaign-hero h1 em{font-size:77px;line-height:.95;letter-spacing:-4px;margin:0}.campaign-hero .welcome-intro{font-size:13px;line-height:1.65;margin-top:12px;max-width:280px}.campaign-hero .welcome-intro br{display:block}.campaign-hero .welcome-steps,.campaign-hero .welcome-note{display:none}.campaign-hero .campaign-hero-bell{width:90px;height:107px;right:0;bottom:0;opacity:.09}.campaign-hero:after{width:240px;height:240px;top:-30px;right:-180px}
 .auth-card{margin-top:21px;border-radius:19px;padding:27px 23px 23px}.auth-card .eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:11px}.auth-card h2{font-size:24px;letter-spacing:-.9px}.auth-card .card-copy{font-size:12px;margin:10px 0 17px}.form-season-mark{display:none}#login-form input{height:50px;font-size:16px}#login-form label{font-size:12px;margin-top:10px}.auth-submit{min-height:51px;margin-top:15px}.password-note{font-size:11px;line-height:1.65}.account-help{font-size:11px}.account-help a{font-size:11px}.service-note{font-size:12px;padding:13px 15px}
 .member-navigation{padding:14px 0 12px}.member-tab{font-size:12px;padding:10px 16px}.calendar-session{margin-top:17px;font-size:9px;gap:7px}.campaign-intro{margin:16px 0 16px;padding:23px 22px;border-radius:17px}.campaign-intro h1{font-size:28px;letter-spacing:-1px;max-width:none}.campaign-intro h1 em{font-size:35px}.campaign-intro .eyebrow{font-size:7px;letter-spacing:1.4px;margin-bottom:10px}.campaign-intro .intro-copy{font-size:12px;margin-top:10px;max-width:300px;line-height:1.7}.campaign-intro .season-mark{display:none}
 .venue{padding:15px;gap:11px;margin-bottom:18px;border-radius:12px}.venue-info h2{font-size:14px}.venue-info p{font-size:11px;line-height:1.5}.booking{border-radius:17px;overflow:visible}.calendar-panel{border-radius:17px 17px 0 0}.times-panel{border-radius:0 0 17px 17px;scroll-margin-top:16px}.step-title h2{font-size:16px}.time-button{min-height:55px}.day,.day-blank{height:56px}.day-count{font-size:9px}.day-number{font-size:17px}.calendar-footer{font-size:10px}.month-navigation h3{font-size:23px}.chosen-date h3{font-size:25px}.schedule-status{font-size:10px}
 .requirements-layout{margin-top:29px}.requirements-layout h1{font-size:30px}.requirements-card{border-radius:17px}.registrations-view{padding-top:21px}.registrations-heading{padding:23px 22px;border-radius:17px;display:block}.registrations-heading h1{font-size:27px;line-height:1.27;letter-spacing:-1px}.registrations-heading .intro-copy{font-size:12px;line-height:1.7;margin-top:10px}.registrations-heading .compact-button{margin-top:18px;min-height:42px}.registrations-status{font-size:11px}.registration-card{border-radius:14px}.registration-info h2{font-size:14px}.registration-time{font-size:12px}.registration-address{font-size:11px}.registration-tools{gap:8px}.shift-action{font-size:11px;min-height:40px}.calendar-options button,.calendar-options a{font-size:13px}.review-dialog{border-radius:18px}.review-dialog h2{font-size:24px}.site-footer{margin-top:23px;padding-top:20px;font-size:9px;text-align:center}.site-footer span{display:block}.site-footer span+span{margin-top:5px}
}
@media(max-width:390px){.campaign-shield{width:34px;height:42px}.brand{gap:8px}.campaign-brand-title{font-size:19px;letter-spacing:-.8px}.campaign-brand-title strong{font-size:25px}.campaign-brand-location{font-size:8px;letter-spacing:.1px}#account-name{max-width:80px}.account{font-size:9px}.account .text-button{font-size:9px}.campaign-hero{padding:21px 20px 22px}.campaign-give{font-size:22px}.campaign-hero h1{gap:8px}.campaign-hero h1 em{font-size:65px}.campaign-hero .welcome-intro{font-size:12px;max-width:246px}.campaign-intro{padding:22px 19px}.campaign-intro h1{font-size:26px}.campaign-intro h1 em{font-size:33px}.auth-card{padding-inline:20px}.auth-card h2{font-size:23px}.registrations-heading{padding-inline:20px}.registrations-heading h1{font-size:25px}}
@media(max-width:360px){.campaign-brand-title{font-size:18px}.campaign-brand-title strong{font-size:23px}.campaign-brand-location{font-size:8px}.campaign-shield{width:32px;height:39px}#account-name{max-width:72px}.brand{gap:7px}.account{font-size:8px}.account .text-button{font-size:9px}.campaign-give{font-size:20px}.campaign-hero h1 em{font-size:61px}.campaign-hero .eyebrow{font-size:7px}.auth-card h2{font-size:22px}.shift-action{font-size:10px}.registration-tools{gap:6px}}
