:root{--bg:#123524;--bg2:#1b4a32;--cream:#f7f1e1;--gold:#e8b23a;--gold-dk:#c7912a;--ink:#16130b;--ink-soft:#4a4636;--line:#2e5c41;--danger:#c4442e;--ok:#2e7d46}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--cream);font-family:ui-rounded,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}body{min-height:100dvh;background:radial-gradient(1200px 600px at 50% -10%,var(--bg2),transparent 60%),var(--bg)}.wrap{max-width:640px;margin:0 auto;padding:24px 18px 80px}.status{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;padding:8px 14px;margin:-24px -18px 20px;background:var(--ok);color:#fff}.status.offline{background:var(--ink-soft)}.status.pending{background:var(--gold-dk);color:#16130b}.status .dot{width:9px;height:9px;border-radius:50%;background:currentColor}.hero{text-align:center;padding:8px 0 28px}.hero .horseshoe{font-size:40px}.hero h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,8vw,46px);font-weight:800;letter-spacing:.5px;line-height:1.02;color:var(--cream);text-shadow:0 2px 0 rgba(0,0,0,.25)}.hero h1 .sub{display:block;color:var(--gold);font-size:.5em;letter-spacing:3px;margin-top:8px}.hero p{color:#cfe3d5;margin-top:12px;font-size:16px;font-weight:500}.card{background:var(--cream);color:var(--ink);border-radius:18px;padding:22px 18px;box-shadow:0 14px 40px rgba(0,0,0,.3);margin-bottom:18px}label.field{display:block;margin-bottom:16px}label.field>span{display:block;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-soft);margin-bottom:6px}input[type=tel],input[type=text]{width:100%;font-size:18px;font-weight:600;color:var(--ink);padding:14px;border:2px solid var(--ink);border-radius:12px;background:#fff;min-height:54px}input:focus{outline:3px solid var(--gold);outline-offset:1px}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button{flex:1 1 30%;min-height:60px;cursor:pointer;border:2px solid var(--ink);border-radius:12px;background:#fff;font-size:16px;font-weight:800;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.seg button .ages{font-size:12px;font-weight:600;color:var(--ink-soft)}.seg button[aria-pressed=true]{background:var(--bg);color:var(--cream);border-color:var(--bg)}.seg button[aria-pressed=true] .ages{color:#cfe3d5}.member{gap:14px;cursor:pointer;border:2px solid var(--ink);border-radius:12px;padding:14px}.member,.member .box{display:flex;align-items:center;background:#fff}.member .box{width:34px;height:34px;border-radius:8px;border:2px solid var(--ink);justify-content:center;font-weight:900;font-size:20px;color:#fff}.member[aria-pressed=true] .box{background:var(--ok);border-color:var(--ok)}.member .rate{margin-left:auto;font-size:20px;font-weight:900}.classlist{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px}.classrow{display:flex;align-items:center;gap:12px;cursor:pointer;border:2px solid #cdbfa0;border-radius:12px;padding:12px 14px;background:#fff;min-height:58px}.classrow[aria-pressed=true]{border-color:var(--ink)}.classrow .num{width:36px;height:36px;border-radius:50%;border:2px solid #cdbfa0;display:flex;align-items:center;justify-content:center;font-weight:900}.classrow[aria-pressed=true] .num{background:var(--bg);color:#fff;border-color:var(--bg)}.classrow .cname{font-size:17px;font-weight:800;flex:1 1}.classrow .timed{font-size:11px;font-weight:900;color:#fff;background:var(--gold-dk);padding:2px 7px;border-radius:6px;letter-spacing:.5px}.classrow .tick{width:30px;height:30px;border-radius:7px;border:2px solid #cdbfa0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900}.classrow[aria-pressed=true] .tick{background:var(--ok);border-color:var(--ok)}.totalbar{position:-webkit-sticky;position:sticky;bottom:0;margin:18px -18px -80px;background:var(--cream);border-top:3px solid var(--ink);padding:16px 18px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px rgba(0,0,0,.25)}.totalbar .totrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.totalbar .totlabel{font-size:15px;font-weight:700;color:var(--ink-soft)}.totalbar .totamt{font-size:30px;font-weight:900;color:var(--ink)}.btn{width:100%;min-height:60px;cursor:pointer;border:none;border-radius:14px;background:var(--gold);color:#16130b;font-size:20px;font-weight:900;letter-spacing:.3px}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:transparent;color:var(--cream);border:2px solid var(--cream)}.err{color:var(--danger);font-weight:800;margin-top:12px}.err,.fine{text-align:center}.fine{color:#cfe3d5;font-size:13px;margin-top:18px;line-height:1.5}.done{text-align:center;padding:30px 10px}.done .ribbon{font-size:64px}.done h2{font-size:28px;margin:10px 0 6px;color:var(--cream)}.done .receipt{background:var(--cream);color:var(--ink);border-radius:16px;padding:20px;margin:20px 0;text-align:left}.done .receipt .r{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #e4d8be}.done .receipt .r:last-child{border-bottom:none;font-weight:900;font-size:18px;padding-top:12px}.datebadge{display:flex;align-items:center;justify-content:space-between;background:var(--bg);color:var(--cream);border-radius:12px;padding:14px 18px;margin-bottom:16px}.datebadge-label{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--gold)}.datebadge-date{font-size:22px;font-weight:900}.btn:disabled{opacity:.45;cursor:not-allowed}.needs{color:var(--ink-soft);font-size:13px;font-weight:700;text-align:center;margin-bottom:10px}.waiver-row{display:flex;align-items:center;gap:14px;cursor:pointer;border:2px solid var(--ink);border-radius:12px;padding:14px;background:#fff}.waiver-row.accepted{border-color:var(--ok);background:#f1f8f2}.waiver-row .box{width:34px;height:34px;border-radius:8px;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px;background:#fff;color:#fff;flex-shrink:0}.waiver-row.accepted .box{background:var(--ok);border-color:var(--ok)}.waiver-review{border:2px solid var(--bg);background:var(--bg);color:var(--cream);font-weight:800;font-size:14px;border-radius:10px;padding:8px 14px;cursor:pointer}.waiver-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px}.waiver-card{background:var(--cream);color:var(--ink);border-radius:16px;width:100%;max-width:620px;max-height:88dvh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4)}.waiver-head{padding:20px 20px 12px;border-bottom:2px solid #e4d8be}.waiver-head h2{font-family:Georgia,serif;font-size:20px;font-weight:800;line-height:1.2}.waiver-sub{font-size:13px;color:var(--ink-soft);margin-top:6px;font-weight:700}.waiver-body{overflow-y:auto;padding:16px 20px;flex:1 1;-webkit-overflow-scrolling:touch}.waiver-section{margin-bottom:16px}.waiver-section h3{font-size:15px;font-weight:900;margin-bottom:4px}.waiver-section p{font-size:14px;line-height:1.55;color:#2c2a20}.waiver-end{text-align:center;font-weight:800;color:var(--ink-soft);padding:10px 0 4px;font-size:13px}.waiver-foot{border-top:2px solid #e4d8be;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:var(--cream)}.waiver-hint{font-size:13px;font-weight:700;color:var(--gold-dk);text-align:center;margin-bottom:10px}.waiver-actions{display:flex;gap:10px}.waiver-actions .btn{flex:1 1;min-height:52px}.waiver-actions .btn.secondary{flex:0 0 40%;background:transparent;color:var(--ink);border:2px solid var(--ink)}.showlist{display:flex;flex-direction:column;gap:8px}.showrow{display:flex;align-items:center;justify-content:space-between;border:2px solid #cdbfa0;border-radius:12px;padding:12px 16px;background:#fff;min-height:54px}.showrow.open{border-color:var(--bg);background:var(--bg);color:var(--cream);box-shadow:0 4px 14px rgba(0,0,0,.18)}.showrow.closed{opacity:.55}.showrow-main{display:flex;flex-direction:column}.showrow-date{font-size:18px;font-weight:800}.showrow-special{font-size:12px;font-weight:700;color:var(--gold-dk);margin-top:2px}.showrow.open .showrow-special{color:var(--gold)}.showrow-tag{font-size:12px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;padding:4px 10px;border-radius:6px;background:#e4d8be;color:var(--ink)}.showrow.open .showrow-tag{background:var(--gold);color:#16130b}.showlist-note{color:var(--ink-soft);font-size:13px;font-weight:600;margin-top:10px}