:root{--navy: #0f2a4a;--navy-mid: #1e4d7b;--navy-soft: #eaf2f8;--gold: #d9a441;--gold-bright: #f4c542;--orange: #c9622a;--charcoal: #1a1a1a;--cream: #e8dcc4;--page: #f7f5f0;--white: #fffdf8;--danger: #9b2c2c;--ok: #2f6b4f;--shadow: 0 12px 40px rgba(15, 42, 74, .12);--radius: 16px;--font: "Nunito Sans", "Segoe UI", sans-serif;--display: "Big Shoulders Display", "Arial Narrow", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--charcoal);background:var(--page);overflow-x:hidden}body.nav-open{overflow:hidden}a{color:inherit}a,button{-webkit-tap-highlight-color:rgba(244,197,66,.28)}button,input,select,textarea{font-family:inherit;font-size:1rem}h1{font-family:var(--display);font-weight:800;letter-spacing:.02em;margin:0;overflow-wrap:anywhere}h2,h3{font-family:var(--font);letter-spacing:0;margin:0}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.site-header{background:var(--navy);color:var(--white);position:sticky;top:0;z-index:20;box-shadow:0 8px 24px #0f2a4a47;padding-top:env(safe-area-inset-top)}.site-header-inner{max-width:1120px;margin:0 auto;padding:.85rem max(1.25rem,env(safe-area-inset-right)) .85rem max(1.25rem,env(safe-area-inset-left));display:flex;align-items:center;gap:1.5rem;position:relative}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--white);flex-shrink:0}.brand-logo{width:52px;height:52px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}.brand-title{font-family:var(--display);font-size:1.35rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1.05}.brand-title span{display:block;font-family:var(--font);font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}.nav-links{display:flex;gap:.25rem;flex-wrap:wrap;margin-left:auto;align-items:center}.nav-toggle,.nav-backdrop{display:none}.nav-links a,.nav-links button.linkish{color:var(--navy-soft);text-decoration:none;padding:.4rem .7rem;border-radius:999px;font-size:.92rem;font-weight:700;background:transparent;border:0;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;touch-action:manipulation}.nav-links a.active,.nav-links a:hover,.nav-links button.linkish:hover{background:#f4c54224;color:var(--gold-bright)}.page{max-width:1120px;margin:0 auto;padding:1.75rem max(1.25rem,env(safe-area-inset-right)) calc(4rem + env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));width:100%}.hero{background:radial-gradient(ellipse at center,#1e4d7b,#0f2a4a 72%);color:var(--white);border-radius:24px;padding:2.4rem 2rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.hero h1{font-size:clamp(1.85rem,8vw,3.8rem);font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(135deg,#f4c542,#d9a441,#c9622a);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.4rem}.hero p{margin:0;max-width:38rem;color:var(--navy-soft);font-size:1.05rem}.gold-text{background:linear-gradient(135deg,#f4c542,#d9a441,#c9622a);-webkit-background-clip:text;background-clip:text;color:transparent}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.card{background:var(--cream);border-radius:var(--radius);padding:1.15rem 1.2rem;box-shadow:var(--shadow);text-decoration:none;color:inherit;display:block;border:1px solid rgba(15,42,74,.06);transition:transform .15s ease,box-shadow .15s ease}@media(hover:hover)and (pointer:fine){a.card:hover{transform:translateY(-3px);box-shadow:0 16px 36px #0f2a4a29}}.honor-thumb{width:100%;height:190px;object-fit:contain;background:transparent;margin-bottom:.75rem}.honor-patch{object-fit:contain;background:transparent;flex-shrink:0;display:block}.honor-patch-sm{width:44px;height:44px}.honor-patch-md{width:88px;height:88px}.honor-patch-lg{width:148px;height:148px}.honor-cell{display:inline-flex;align-items:center;gap:.65rem;min-width:0}.honor-cell span{min-width:0}.reg-card{display:flex;gap:1rem;align-items:flex-start}.card h3{font-size:1.25rem;color:var(--navy);margin-bottom:.35rem}.honor-card h3,.honor-title{font-family:var(--display);font-weight:800;letter-spacing:.02em}.honor-schedule{margin:.75rem 0 0;display:grid;gap:.55rem}.honor-schedule-empty{margin:.65rem 0 0;font-size:.88rem}.honor-schedule-row{display:grid;gap:.08rem}.honor-schedule-day{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}.honor-schedule-times{margin:0;font-size:.9rem;font-weight:700;line-height:1.4;color:#8a6418}.muted{color:#5c564c}.badge{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.18rem .6rem;font-size:.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.badge-gold{background:linear-gradient(135deg,#f4c542,#d9a441,#c9622a);color:var(--navy)}.badge-navy{background:var(--navy);color:var(--gold-bright)}.badge-warn{background:var(--orange);color:#fff}.badge-full{background:#c5bbb0;color:#4d463d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:0;cursor:pointer;border-radius:999px;padding:.7rem 1.15rem;font-weight:800;text-decoration:none;min-height:44px;touch-action:manipulation}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#f4c542,#d9a441,#c9622a);color:var(--navy)}.btn-primary:hover:not(:disabled){filter:brightness(1.05)}.btn-secondary{background:var(--navy);color:var(--gold-bright)}.btn-ghost{background:transparent;color:var(--navy);border:1px solid rgba(15,42,74,.18)}.btn-danger{background:var(--danger);color:#fff}.form{display:grid;gap:.85rem;max-width:420px}.form.wide{max-width:720px}label{display:grid;gap:.35rem;font-weight:700;font-size:.92rem}input:not([type=checkbox]):not([type=radio]),select,textarea{-webkit-appearance:none;appearance:none;border:1px solid rgba(15,42,74,.16);border-radius:12px;padding:.7rem .8rem;background-color:var(--white);color:var(--charcoal);font-size:1rem;line-height:1.25;min-height:2.75rem}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%230f2a4a' d='M1.2 1.4 6 6.2 10.8 1.4 12 2.6 6 8.6 0 2.6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;background-size:.75rem;padding-right:2.2rem}.form input:not([type=checkbox]):not([type=radio]),.form select,.form textarea{width:100%}.login-wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:max(1.25rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:radial-gradient(ellipse at center,#1e4d7b,#0f2a4a 70%)}.login-card{width:100%;max-width:min(420px,calc(100vw - 2rem));min-width:0;background:var(--page);border-radius:24px;padding:2rem 1.6rem;box-shadow:var(--shadow);text-align:center;overflow:hidden}.login-logo{display:block;width:200px;max-width:70%;min-width:0;height:auto;margin:0 auto .35rem;filter:drop-shadow(0 8px 18px rgba(15,42,74,.22))}.login-card h1{font-size:clamp(1.35rem,7vw,2.35rem);font-weight:800;letter-spacing:.02em;text-transform:uppercase;margin-bottom:.25rem;width:100%;max-width:100%;line-height:1}.login-card .form{text-align:left;margin-left:auto;margin-right:auto}.banner{border-radius:12px;padding:.8rem 1rem;font-weight:700}.banner-error{background:#f8d7d0;color:var(--danger)}.banner-ok{background:#dceee4;color:var(--ok)}.banner-warn{background:#f4d9c8;color:var(--orange)}.session-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.1rem}.session-actions{min-width:160px;display:grid;gap:.7rem;justify-items:start}.session-row.full{opacity:.55;filter:grayscale(.4)}.capacity{font-variant-numeric:tabular-nums;font-weight:800;color:var(--navy)}.capacity.warn{color:var(--orange)}.capacity.full{color:#6b645a}.meter{height:8px;background:#0f2a4a1a;border-radius:99px;overflow:hidden;margin-top:.45rem;min-width:120px}.meter>span{display:block;height:100%;background:linear-gradient(135deg,#f4c542,#d9a441,#c9622a)}.meter.warn>span{background:var(--orange)}.meter.full>span{background:#b7aea3}.toolbar{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin:1rem 0 1.25rem}.toolbar input,.toolbar select{min-width:min(180px,100%);width:auto;flex:1 1 180px;height:2.75rem}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{text-align:left;padding:.75rem .9rem;border-bottom:1px solid rgba(15,42,74,.08);vertical-align:top}th{background:var(--navy);color:var(--gold-bright);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.capacity-table .capacity-honor td{background:var(--cream);border-bottom:1px solid rgba(15,42,74,.12);padding:.7rem .9rem}.capacity-honor-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.capacity-honor-row strong{color:var(--navy);font-size:1.15rem;font-family:var(--display);font-weight:800;letter-spacing:.02em}.capacity-table .site-col{white-space:nowrap;width:7.5rem;vertical-align:middle}.capacity-table .site-col .badge{min-width:5.6rem;justify-content:center}.capacity-table .honor-patch{width:28px;height:28px;padding:0;background:transparent;border-radius:0}.roster-slot td{background:#0f2a4a0d;border-bottom:1px solid rgba(15,42,74,.08);padding:.55rem .9rem;font-weight:700;color:var(--navy)}.roster-slot-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.registered-col,.phone-col{white-space:nowrap;color:#5c564c}.stack{display:grid;gap:1rem}.page-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.page-head-main{display:flex;align-items:center;gap:1rem;min-width:0}.camper-list{display:grid;gap:.55rem}.inline-actions{display:flex;gap:.5rem;flex-wrap:wrap}.print-dialog-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:1.25rem;background:#0f2a4a7a}.print-dialog{width:min(480px,100%);max-height:min(82vh,680px);display:flex;flex-direction:column;gap:.75rem;background:var(--page);border-radius:20px;padding:1.35rem 1.3rem 1.2rem;box-shadow:var(--shadow)}.print-dialog h2{font-family:var(--display);font-weight:800;letter-spacing:.03em;color:var(--navy)}.print-dialog-list{overflow:auto;display:grid;gap:.2rem;min-height:8rem}.print-dialog-list label{display:flex;flex-direction:row;align-items:center;gap:.65rem;font-weight:700;padding:.35rem .2rem}.print-dialog-list input{width:1.05rem;height:1.05rem;accent-color:var(--navy)}.print-dialog-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.35rem}.empty{padding:2rem;text-align:center;color:#5c564c}.splash{min-height:100vh;min-height:100dvh;width:100%;max-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left));text-align:center;background:radial-gradient(ellipse at center,#1e4d7b,#0f2a4a 70%);overflow-x:hidden}.splash>*{min-width:0;max-width:100%}.splash-logo{display:block;width:200px;max-width:70%;min-width:0;height:auto;filter:drop-shadow(0 8px 18px rgba(0,0,0,.28));animation:splash-pulse 2.4s ease-in-out infinite}.splash h1{font-size:clamp(1.2rem,5.5vw,2.8rem);font-weight:800;letter-spacing:.02em;text-transform:uppercase;margin:.5rem 0 0;width:100%;max-width:100%;padding:0 .5rem;line-height:1}.splash-status{margin:1.15rem 0 0;color:var(--navy-soft);font-family:var(--font);font-size:.92rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.splash-bar{width:min(148px,42%);height:4px;margin-top:1.15rem;border-radius:99px;background:#f4c5422e;overflow:hidden}.splash-bar>span{display:block;height:100%;width:42%;border-radius:99px;background:linear-gradient(135deg,#f4c542,#d9a441,#c9622a);animation:splash-indeterminate 1.35s ease-in-out infinite}.spinner{width:1.05rem;height:1.05rem;flex-shrink:0;border:2.5px solid rgba(244,197,66,.22);border-top-color:var(--gold-bright);border-radius:50%;animation:spin .75s linear infinite}.page-loading{display:flex;align-items:center;justify-content:center;gap:.7rem;padding:2.75rem 1rem;color:#5c564c;font-weight:700}.page-loading .spinner{border-color:#0f2a4a1f;border-top-color:var(--navy)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes splash-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.04);opacity:.9}}@keyframes splash-indeterminate{0%{transform:translate(-120%)}to{transform:translate(280%)}}@media(prefers-reduced-motion:reduce){.splash-logo,.spinner,.splash-bar>span{animation:none}}@media print{.site-header,.no-print{display:none!important}.site-header{position:static!important}html,body,#root,.app-shell,.page,.table-wrap{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}.app-shell,.page{display:block!important}.page{padding:0!important;max-width:none!important;margin:0!important;width:100%!important}.hero{background:none!important;box-shadow:none!important;color:#000!important;padding:0 0 12pt!important;border-radius:0!important}.hero h1{background:none!important;-webkit-background-clip:unset!important;background-clip:unset!important;color:#0f2a4a!important}.card,.table-wrap{box-shadow:none!important}.honor-patch,.honor-thumb,.print-omit{display:none!important}body.print-slot-pages .roster-slot{break-before:page;page-break-before:always}body.print-slot-pages .capacity-honor{break-after:avoid;page-break-after:avoid}body.print-slot-pages .capacity-honor+.roster-slot{break-before:auto;page-break-before:auto}html{-webkit-print-color-adjust:exact;print-color-adjust:exact}thead{display:table-header-group}tr{break-inside:avoid}}@media(max-width:840px){.site-header-inner{flex-wrap:nowrap;gap:.75rem}.brand-logo{width:42px;height:42px}.brand-title{font-size:1.12rem}.nav-toggle{display:flex;margin-left:auto;width:44px;height:44px;flex-shrink:0;border:0;border-radius:12px;background:#f4c5421f;color:var(--gold-bright);cursor:pointer;align-items:center;justify-content:center;padding:0}.nav-toggle-bar,.nav-toggle-bar:before,.nav-toggle-bar:after{display:block;width:18px;height:2px;background:currentColor;border-radius:99px;position:relative;transition:transform .2s ease,opacity .2s ease}.nav-toggle-bar:before,.nav-toggle-bar:after{content:"";position:absolute;left:0}.nav-toggle-bar:before{top:-6px}.nav-toggle-bar:after{top:6px}.nav-toggle.open .nav-toggle-bar{background:transparent}.nav-toggle.open .nav-toggle-bar:before{top:0;transform:rotate(45deg)}.nav-toggle.open .nav-toggle-bar:after{top:0;transform:rotate(-45deg)}.nav-backdrop{display:block;position:fixed;inset:0;z-index:15;background:#0f2a4a6b;border:0}.nav-links{display:none;position:absolute;left:0;right:0;top:100%;margin:0;padding:.4rem .85rem calc(.85rem + env(safe-area-inset-bottom));background:var(--navy);flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:.15rem;box-shadow:0 18px 36px #0f2a4a66;z-index:21}.nav-links.open{display:flex}.nav-links a,.nav-links button.linkish{width:100%;justify-content:flex-start;padding:.85rem 1rem;border-radius:12px}.page{padding:1.15rem max(1rem,env(safe-area-inset-right)) calc(2.5rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.hero{padding:1.35rem 1.15rem;border-radius:18px;margin-bottom:1.15rem}.hero h1{font-size:clamp(1.85rem,11vw,2.7rem)}.hero p{font-size:.98rem}.card-grid{grid-template-columns:1fr}.honor-thumb{height:160px}.honor-patch-lg{width:96px;height:96px}.page-head,.page-head-main,.session-row,.reg-card,.capacity-honor-row{flex-direction:column;align-items:flex-start}.session-actions{min-width:0;width:100%}.session-actions .btn,.session-actions .meter{width:100%}.meter{min-width:0}.toolbar{flex-direction:column;align-items:stretch}.toolbar input,.toolbar select,.toolbar .inline-actions,.form,.form.wide{width:100%;max-width:none;min-width:0;flex:none}.form .btn,.inline-actions{width:100%}.inline-actions{flex-direction:column}.inline-actions .btn{width:100%}.login-card{padding:1.5rem 1.15rem}.login-card h1,.splash h1{font-size:clamp(1.35rem,7vw,2.2rem);letter-spacing:.02em}.print-dialog{max-height:min(88dvh,680px);padding:1.15rem 1rem 1rem}.print-dialog-actions{flex-direction:column}.print-dialog-actions .btn{width:100%}.table-wrap{background:transparent;box-shadow:none;overflow:visible}table,thead,tbody,th,td,tr{display:block;width:100%}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}table:not(.capacity-table) tbody{display:grid;gap:.75rem}table:not(.capacity-table) tr{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:.7rem .9rem .85rem}.capacity-table tbody{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:.9rem}td{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:.55rem;align-items:center;padding:.45rem 0;border-bottom:1px solid rgba(15,42,74,.08);overflow-wrap:anywhere}td:last-child{border-bottom:0}td:before{content:attr(data-label);font-weight:800;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}td:not([data-label]):before,td[data-label=""]:before{display:none}td:not([data-label]),td[data-label=""]{display:block;padding-top:.65rem}td[data-label=""] .btn{width:100%}.capacity-honor td,.roster-slot td{display:block;padding:.7rem .9rem;overflow-wrap:anywhere}.capacity-honor td:before,.roster-slot td:before{display:none}.capacity-table .site-col,.registered-col,.phone-col{white-space:normal;width:auto}.capacity-table tr:not(.capacity-honor):not(.roster-slot){padding:.15rem .9rem .35rem;border-bottom:1px solid rgba(15,42,74,.08)}.empty{padding:1.4rem 1rem}}@media print{.nav-toggle,.nav-backdrop,.nav-links{display:none!important}table,thead,tbody,th,td,tr{display:revert!important}thead{display:table-header-group!important;position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important}table,tbody,tr{width:100%!important}td{display:table-cell!important;padding:.55rem .75rem!important;border-bottom:1px solid rgba(15,42,74,.08)!important;overflow-wrap:normal}td:before{content:none!important}.table-wrap,table:not(.capacity-table) tr,.capacity-table tbody{background:#fff!important;box-shadow:none!important;border-radius:0!important}}.registration-settings{margin-bottom:1.5rem}.registration-toggle{display:flex;align-items:center;gap:.65rem}.registration-toggle input[type=checkbox]{width:1.2rem;height:1.2rem;flex:0 0 auto}.honor-card-locked{filter:grayscale(1);opacity:.62;cursor:not-allowed}.honor-card-locked:hover{transform:none}.nav-links .registration-nav-locked{opacity:.55}
