:root{--navy:#0b2545;--navy-2:#13315c;--red:#c8102e;--red-d:#a00d25;--gold:#e0a526;--bg:#f4f6f9;--card:#fff;--line:#dde3ea;--muted:#5b6777;--ok:#1f7a3f;--warn:#b26a00}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:#1b2533;line-height:1.5}
a{color:var(--navy-2)}
.topbar{background:#fff;color:var(--navy);border-bottom:4px solid var(--red);box-shadow:0 1px 3px rgba(11,37,69,.08)}
.topbar .wrap{display:flex;align-items:center;gap:1.5rem;padding:.8rem 1.25rem;flex-wrap:wrap}
.brand{color:var(--navy);text-decoration:none;font-weight:800;letter-spacing:.02em;font-size:1.1rem;display:flex;align-items:center;gap:.6rem}
.brand .logo{height:48px;width:auto;display:block}
.brand small{display:block;font-weight:600;font-size:.72rem;color:var(--muted);border-left:2px solid var(--line);padding-left:.6rem;letter-spacing:.08em;text-transform:uppercase}
.nav{display:flex;gap:1rem;margin-left:auto;flex-wrap:wrap;align-items:center}
.nav a{color:var(--navy-2);text-decoration:none;font-weight:500;font-size:.95rem}
.nav a:hover,.nav a.active{color:var(--red);text-decoration:underline;text-underline-offset:4px}
.wrap{max-width:1140px;margin:0 auto;padding:0 1.25rem}
main.wrap{padding-top:1.5rem;padding-bottom:3rem}
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:2.5rem 0;margin-bottom:1.5rem}
.hero h1{margin:.2rem 0 .4rem;font-size:2rem}
.hero p{margin:0;color:#d5deea;max-width:760px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700;color:var(--gold)}
h1,h2,h3{color:var(--navy);line-height:1.25}
.hero h1{color:#fff}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.25rem 1.4rem;margin-bottom:1.25rem;box-shadow:0 1px 2px rgba(11,37,69,.04)}
.card h2{margin-top:0;font-size:1.2rem}
.card h3{margin:.2rem 0 .5rem;font-size:1.05rem}
.grid{display:grid;gap:1.25rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.stat{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:8px;padding:.9rem 1rem}
.stat.red{border-left-color:var(--red)}.stat.gold{border-left-color:var(--gold)}.stat.green{border-left-color:var(--ok)}
.stat .n{font-size:1.8rem;font-weight:800;color:var(--navy)}
.stat .l{color:var(--muted);font-size:.85rem}
.btn{display:inline-block;background:var(--red);color:#fff;border:0;border-radius:6px;padding:.55rem 1rem;font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover{background:var(--red-d)}
.btn.secondary{background:#fff;color:var(--navy);border:1px solid var(--navy)}
.btn.secondary:hover{background:#eef2f7}
.btn.navy{background:var(--navy)}.btn.navy:hover{background:var(--navy-2)}
.btn.small{padding:.3rem .6rem;font-size:.82rem}
.btn.ok{background:var(--ok)}
.btn.link{background:none;color:var(--navy-2);padding:0;text-decoration:underline}
.btn-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
table{width:100%;border-collapse:collapse;font-size:.93rem}
th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
th{background:#eef2f7;color:var(--navy);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
td.num,th.num{text-align:right}
.table-wrap{overflow-x:auto}
.muted{color:var(--muted)}.small{font-size:.85rem}
.badge{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#e8edf4;color:var(--navy)}
.badge.ok{background:#e1f3e7;color:var(--ok)}.badge.warn{background:#fff1d6;color:var(--warn)}.badge.red{background:#fde4e8;color:var(--red-d)}
.messages{list-style:none;padding:0;margin:0 0 1rem}
.messages li{padding:.7rem 1rem;border-radius:6px;margin-bottom:.5rem;background:#e8edf4;border-left:4px solid var(--navy)}
.messages li.success{background:#e1f3e7;border-color:var(--ok)}
.messages li.error{background:#fde4e8;border-color:var(--red)}
form p{margin:.6rem 0}
label{font-weight:600;display:block;margin-bottom:.2rem;font-size:.92rem}
input[type=text],input[type=email],input[type=date],input[type=datetime-local],input[type=number],input[type=password],input[type=search],input[type=file],select,textarea{width:100%;padding:.5rem .6rem;border:1px solid #c3ccd8;border-radius:6px;font:inherit;background:#fff}
textarea.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy-2);outline-offset:1px}
.helptext{display:block;color:var(--muted);font-size:.82rem;font-weight:400}
.errorlist{color:var(--red-d);margin:.2rem 0;padding-left:1.1rem;font-size:.88rem}
.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.2rem 1rem}
.checkbox label{display:flex;gap:.5rem;align-items:flex-start;font-weight:500}
.checkbox input{width:auto;margin-top:.3rem}
.category{border:1px solid var(--line);border-radius:8px;margin-bottom:1rem;overflow:hidden}
.category > header{background:#eef2f7;padding:.7rem 1rem}
.category > header h3{margin:0}
.shift{display:flex;align-items:center;gap:.8rem;padding:.65rem 1rem;border-top:1px solid var(--line);cursor:pointer}
.shift:hover{background:#f8fafc}
.shift input{width:1.1rem;height:1.1rem}
.shift .when{font-weight:600;min-width:240px}
.shift .spots{margin-left:auto}
.shift.full{opacity:.55;cursor:not-allowed}
.waiver-text{max-height:180px;overflow-y:auto;background:#f8fafc;border:1px solid var(--line);border-radius:6px;padding:.8rem 1rem;font-size:.88rem;white-space:pre-wrap}
.guardian-box{border:2px solid var(--gold);background:#fffaf0;border-radius:8px;padding:1rem;margin:1rem 0}
.progress{background:#e3e8ef;border-radius:999px;height:14px;overflow:hidden}
.progress > span{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--gold))}
.bar{background:var(--navy);height:18px;border-radius:3px;min-width:2px}
.big-hours{font-size:3rem;font-weight:800;color:var(--red);line-height:1}
.code{font-family:ui-monospace,Menlo,Consolas,monospace;background:#fff6dd;border:1px dashed var(--gold);padding:.2rem .5rem;border-radius:4px;font-weight:700}
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}
.toolbar input,.toolbar select{width:auto;min-width:200px}
.preview-frame{border:1px solid var(--line);border-radius:8px;background:#fff;padding:1rem}
.location-card{display:flex;flex-direction:column;gap:.4rem}
.location-card .btn{align-self:flex-start;margin-top:.4rem}
footer.site{color:var(--muted);text-align:center;font-size:.85rem;padding:2rem 0}
.checked td{background:#f1faf4}
.inline{display:inline}
@media (max-width:640px){.shift{flex-wrap:wrap}.shift .when{min-width:0}.hero h1{font-size:1.5rem}}
