:root{--blue:#173f83;--dark:#122640;--red:#be1e2d;--gold:#fbc04b;--ink:#15253b;--muted:#526078;--line:#d7dfe9;--paper:#fff;--wash:#f3f6fa;--radius:12px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:white;font-size:16px}
*{box-sizing:border-box}body{margin:0}a{color:var(--blue)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a{text-underline-offset:4px}button:disabled{opacity:.55;cursor:wait}:focus-visible{outline:3px solid #c56a00;outline-offset:4px}h1,h2,h3,p{margin-top:0}p{line-height:1.65}h1,h2{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.03em}h1{font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.06;margin-bottom:22px}h2{font-size:clamp(2rem,3vw,2.7rem)}h3{font-size:1.15rem;line-height:1.4}small,.small{font-size:.88rem;line-height:1.6}.muted{color:var(--muted)}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;background:white;padding:16px;z-index:100}.skip-link:focus{top:0}#preview{background:var(--gold);padding:10px 20px;text-align:center;font-size:.88rem;font-weight:bold}#header{border-bottom:1px solid var(--line);padding:22px max(24px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;color:var(--dark);font-weight:800;letter-spacing:.025em;line-height:1.3;font-size:.9rem;text-transform:uppercase}.brand span{display:block;font-size:.78rem;letter-spacing:.22em;color:var(--muted);margin-top:4px}nav{display:flex;gap:24px;align-items:center;font-size:.9rem;font-weight:bold}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.container{max-width:1160px;margin:auto;padding:0 24px}.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:60px;align-items:center;padding:54px 0 58px}.hero-logo{width:100%;height:auto;padding:35px 25px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.77rem;font-weight:800;color:var(--red);margin-bottom:18px}.intro{font-size:1.08rem;max-width:560px}.hero .intro{max-width:430px}.pill{display:inline-block;font-size:.85rem;padding:8px 12px;border:1px solid var(--line);border-radius:30px;margin:0 5px 12px 0;background:white}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:13px 22px;border-radius:7px;background:var(--blue);color:white;border:1px solid var(--blue);text-decoration:none;font-weight:bold}.button:hover{background:#0e2d62}.button.secondary{background:white;color:var(--blue)}.button.secondary:hover{background:#edf2fa}.button.danger{background:#a11e2a;border-color:#a11e2a}.button.compact{min-height:40px;padding:9px 14px;font-size:.88rem}.hero-aside{border:1px solid var(--line);background:var(--wash);border-radius:var(--radius);overflow:hidden}.date-header{background:var(--blue);color:white;padding:16px 24px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;font-size:.8rem}.date-row{display:flex;padding:22px 24px;gap:22px;border-bottom:1px solid var(--line)}.date-num{font-family:Georgia,serif;font-size:3.4rem;line-height:1;text-align:center;color:var(--blue)}.date-num span{display:block;font:700 .7rem Arial,sans-serif;letter-spacing:.15em;margin-bottom:7px}.date-row h3{margin:0 0 5px}.date-row p{margin:0;font-size:.92rem}.location{padding:22px 24px}.location p{margin-bottom:8px}.notice{padding:16px 20px;border-left:4px solid var(--gold);background:#fff8e6;border-radius:0 7px 7px 0;line-height:1.6;margin:18px 0}.section{padding:56px 0;border-top:1px solid var(--line)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.step-no{font-family:Georgia,serif;font-size:2.4rem;color:var(--red);display:block;margin-bottom:15px}.song-list{display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.song-row{padding:18px 0;border-bottom:1px solid var(--line)}.song-row h3{margin:0 0 7px}.song-row p{margin:0}.registration-section{background:var(--wash);padding:64px 0}.form-layout{display:grid;grid-template-columns:280px 1fr;gap:50px}.form-intro{position:sticky;top:30px;align-self:start}.form-intro h2{font-size:2.5rem}.form-card{padding:34px;background:white;border:1px solid var(--line);border-radius:var(--radius)}fieldset{border:0;margin:0 0 32px;padding:0;min-width:0}legend{font-weight:bold;font-size:1.2rem;margin:0 0 18px;display:block;padding:0}label{display:block;font-size:.92rem;font-weight:600;line-height:1.5}label .hint{display:block;font-weight:normal;font-size:.84rem;color:var(--muted);margin:4px 0 6px}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid #a9b7c8;border-radius:6px;background:white;padding:12px;color:var(--ink);min-height:46px;margin-top:6px}textarea{min-height:95px;resize:vertical}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.full{grid-column:1/-1}.radio-card{display:flex;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;margin:10px 0;align-items:flex-start}.radio-card:has(input:checked){border-color:var(--blue);background:#f1f5fd}.radio-card input{margin-top:5px}.radio-card small{display:block;font-weight:normal;color:var(--muted)}input[type=checkbox],input[type=radio]{accent-color:var(--blue);width:19px;height:19px;flex-shrink:0}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;align-items:flex-start;gap:9px;font-weight:normal;min-height:30px}.check input{margin:1px 0 0}.role-extra{margin-top:14px}summary{cursor:pointer;font-weight:bold;padding:10px 0}.assignment{background:#edf3ff;border-radius:8px;padding:16px;margin:18px 0 0;font-size:.9rem;line-height:1.7}.conflict-row{display:grid;grid-template-columns:1fr 1.6fr;gap:15px;margin:18px 0}.form-error{background:#fff1f1;color:#9c1824;padding:14px;border-radius:6px;margin:15px 0}.success{border:1px solid #b4ceb9;background:#f3faf5;padding:34px;border-radius:12px}.honey{position:absolute;left:-9999px;height:0;overflow:hidden}.schedule{display:grid;grid-template-columns:1fr 1fr;gap:30px}.schedule strong{display:block;font-size:1.1rem;margin-bottom:10px}#footer{background:var(--dark);color:#e9eef7;padding:40px 24px;text-align:center;font-size:.88rem}#footer a{color:white}.billing{max-width:650px;margin:24px auto 0;padding-top:24px;border-top:1px solid #4d5f76;font-size:.8rem;line-height:1.9}.portal-head{background:var(--dark);color:white;padding:42px 0}.portal-head .container{display:flex;align-items:center;justify-content:space-between;gap:50px}.portal-head h1{font-size:2.8rem;margin-bottom:10px}.portal-head p{margin:0;color:#d1dbea}.portal-head img{width:220px;height:auto;padding:22px}.portal-body{padding-top:36px;padding-bottom:64px}.toolbar{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:22px 0}.toolbar input{max-width:320px}.filter{min-width:220px;max-width:380px}.material-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.material-card{border:1px solid var(--line);border-radius:12px;background:white;padding:26px}.material-card h2{font-family:Arial,sans-serif;letter-spacing:0;font-size:1.35rem}.material-card audio,.material-card video{width:100%;margin:10px 0 18px}.material-card video{max-height:420px;background:#122640}.label{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;font-weight:bold;display:block;margin-top:22px}.pending{font-size:.9rem;color:var(--muted);padding:12px 0;line-height:1.5}.tag{font-size:.75rem;border-radius:5px;background:#edf2f9;padding:5px 8px;display:inline-block;font-weight:bold}.stats{display:flex;gap:16px;flex-wrap:wrap;margin:25px 0}.stat{background:var(--wash);border:1px solid var(--line);border-radius:8px;padding:18px 24px;min-width:140px}.stat strong{font-size:2rem;display:block}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;background:var(--wash);font-size:.8rem}th,td{padding:15px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted)}.tabs{display:flex;gap:10px;margin:25px 0}.tabs button[aria-pressed=true]{background:var(--blue);color:white}.empty{text-align:center;padding:48px 20px;border:1px dashed #abb9cb;border-radius:12px;color:var(--muted)}.panel{border:1px solid var(--line);border-radius:10px;padding:24px;margin:20px 0}.panel-head{display:flex;justify-content:space-between;gap:16px}.panel-head h2{font-size:1.6rem}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.detail dt{font-weight:bold;font-size:.85rem;margin-top:14px}.detail dd{margin:5px 0 0;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.stack{display:grid;gap:18px}.status-row{display:flex;align-items:center;gap:15px}.status-row select{max-width:220px}#toast{position:fixed;bottom:24px;right:24px;max-width:min(400px,90vw);background:var(--dark);color:white;border-radius:8px;padding:0;z-index:40}#toast:not(:empty){padding:18px;box-shadow:0 8px 30px #0003}.loading{padding:60px;text-align:center}
@media(max-width:850px){.hero{gap:25px;grid-template-columns:1fr 1fr}.form-layout{grid-template-columns:1fr;gap:20px}.form-intro{position:static}.grid-3{gap:20px}.hero-logo{padding:25px 10px}.portal-head img{width:170px}.hero{padding-top:25px}}
@media(max-width:600px){#header{padding:18px 20px}nav{gap:14px;font-size:.83rem}.brand{font-size:.75rem}.brand span{font-size:.66rem}.container{padding:0 20px}.hero{grid-template-columns:1fr;padding-bottom:36px;gap:20px}.hero-logo{max-width:340px;padding:15px 22px;display:block;margin:0 auto}.hero h1{font-size:2.8rem}.hero .intro{max-width:none}.grid-3,.song-list,.schedule,.material-grid,.fields,.details-grid{grid-template-columns:1fr}.section{padding:35px 0}.section-head{display:block}.registration-section{padding:38px 0}.form-card{padding:23px 18px}.role-grid{grid-template-columns:1fr}.conflict-row{grid-template-columns:1fr;gap:5px}.portal-head .container{display:block}.portal-head img{display:none}.portal-head h1{font-size:2.4rem}.toolbar{align-items:stretch}.toolbar .button{flex:1}.stat{padding:14px;min-width:100px}.stat strong{font-size:1.6rem}.panel{padding:18px}.date-row{padding:18px}.actions .button{flex:1}.tabs{overflow:auto}.status-row{flex-wrap:wrap}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}button,.button{transition:background .15s ease}}
.credits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.credits-grid strong{font-size:1.05rem}.credits-grid p{margin-bottom:0}@media(max-width:600px){.credits-grid{grid-template-columns:1fr 1fr}}

/* Keep contact information and staff access on distinct, spaced rows. */
#footer{display:flex;flex-direction:column;align-items:center;gap:20px}
#footer .footer-contact{display:flex;flex-direction:column;gap:6px;margin:0;max-width:100%;overflow-wrap:anywhere}
#footer>.button{flex-shrink:0}
