@font-face{font-family:LocalSans;src:local('Segoe UI')}*{box-sizing:border-box} :root{--forest:#173e35;--green:#245747;--cream:#f7f7f2;--ink:#213c34;--muted:#748078;--line:#dde2d9;--gold:#b5a06e}body{margin:0;background:var(--cream);color:var(--ink);font:15px LocalSans,'Segoe UI',Arial,sans-serif;line-height:1.55}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #b5a06e;outline-offset:3px}[hidden]{display:none!important}.top{max-width:1160px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;text-decoration:none;gap:23px}.brand img{width:126px;height:55px;object-fit:contain}.brand>span{border-left:1px solid var(--line);padding-left:23px;font-size:9px;letter-spacing:1.5px;font-weight:600}.brand-year{display:block;letter-spacing:2px;font-size:12px;margin-top:3px}.account-wrap{display:flex;align-items:center;gap:12px}.account-name{font-size:12px;color:var(--muted)}main{max-width:1096px;margin:0 auto;padding:0 0 50px}.hero{position:relative;overflow:hidden;background:var(--forest);color:#fff;border-radius:20px;min-height:335px;display:flex;align-items:center;justify-content:space-between;padding:48px 52px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;margin:0 0 15px}.hero .eyebrow{color:#cab88c}.hero h1{font:48px/1.13 Georgia,serif;letter-spacing:-1px;margin:0 0 20px;font-weight:400}.intro{color:#d0dcd2;font-size:14px;margin:0 0 26px}.hero-meta{display:flex;gap:24px;color:#dfdfcc;font-size:12px}.hero-art{width:280px;height:280px;position:relative;display:grid;place-items:center;flex-shrink:0}.ring{position:absolute;border:1px solid #b3c2a13a;border-radius:50%}.ring-one{inset:0}.ring-two{inset:24px}.ring-three{inset:50px}.hero-art>span{font:90px/1 Georgia,serif;color:#d4c49e;text-align:center}.hero-art>span>span{display:block;font:11px/1.6 'Segoe UI',sans-serif;letter-spacing:2px;text-transform:uppercase;color:#d0dcd2;margin-top:12px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:28px;margin:35px 0}.tabs button{background:none;border:0;padding:14px 0;font-size:13px;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--forest);border-color:var(--forest);font-weight:600}.tabs span{border-radius:30px;background:#e6eade;font-size:10px;padding:2px 7px;margin-left:6px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:8px}.section-head .eyebrow{color:var(--gold);margin-bottom:7px}h2{font:30px/1.25 Georgia,serif;margin:0 0 12px;font-weight:400}h3{font-size:19px;font-weight:500}.muted{color:var(--muted)}.rules{font-size:12px;margin:0 0 24px}.filter{display:flex;flex-direction:column;font-size:10px;color:var(--muted);gap:3px}.filter select{border:1px solid var(--line);padding:9px 30px 9px 12px;background:#fff;border-radius:7px;color:var(--ink);font-size:12px}.modules{display:grid;gap:16px}.module{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.module-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding:23px 25px 18px}.module-date{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted);margin-bottom:5px}.module h3{margin:0;font:22px/1.3 Georgia,serif}.module-code{color:var(--gold);font-size:10px;letter-spacing:1px;white-space:nowrap;padding-top:7px}.badge{display:inline-flex;align-items:center;border-radius:5px;background:#f7edda;color:#8a661e;padding:3px 7px;font:10px 'Segoe UI',sans-serif;vertical-align:middle;margin-left:6px}.groups{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0 25px 24px}.group{border:1px solid var(--line);border-radius:9px;padding:16px;display:flex;flex-direction:column;gap:10px;background:#fdfdfb}.group.selected{border-color:#608570;background:#eef4ed}.group-name{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.group-date{font-size:16px;font-weight:600}.group-time{font-size:11px;color:var(--muted)}.capacity{margin-top:2px;display:flex;align-items:center;gap:6px;font-size:11px;color:#4c6a50}.dot{width:5px;height:5px;background:#6d9767;border-radius:50%}.capacity.full{color:#a27b5e}.capacity.full .dot{background:#a27b5e}.meter{height:3px;background:#e5e9df;border-radius:4px;overflow:hidden;margin-top:-4px}.meter span{display:block;height:100%;background:#8ca080}.group .button{font-size:11px;width:100%;margin-top:2px;min-height:35px;padding:7px}.button{border:1px solid var(--line);border-radius:7px;min-height:40px;padding:9px 18px;display:inline-flex;justify-content:center;align-items:center;font-weight:600;font-size:12px;text-decoration:none;gap:7px}.button.primary{background:var(--forest);color:white;border-color:var(--forest)}.button.primary:hover{background:#295646}.button.secondary{background:white;color:var(--forest)}.button.selected-button{background:#dce8d8;border-color:#dce8d8;color:var(--forest)}.button:disabled{cursor:default;background:#eeefeb;color:#929990;border-color:#eeefeb}.text-button{background:none;border:0;color:var(--green);padding:8px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px}.full{width:100%}.break-note{display:flex;align-items:center;gap:17px;border:1px dashed #cbd4c5;border-radius:10px;padding:17px 24px;margin-top:22px;color:var(--muted);font-size:12px}.break-note>span{font-size:26px;color:var(--gold)}.break-note p{margin:0}.break-note strong{color:#536552;font-weight:500}footer{border-top:1px solid var(--line);max-width:1096px;margin:auto;padding:34px 0 24px;display:flex;justify-content:space-between;flex-wrap:wrap;font-size:12px}footer strong{font-size:14px;font-weight:600}footer p{color:var(--muted);margin:6px 0 0}.help-links{display:flex;align-items:center;gap:12px}.help-links a{border:1px solid var(--line);border-radius:7px;padding:10px 14px;text-decoration:none}.footer-bottom{width:100%;margin-top:30px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;font-size:10px;color:var(--muted)}.footer-bottom>span{margin-right:auto}.footer-bottom button{font-size:10px}.notice{padding:14px 20px;background:#fff2d9;border:1px solid #e9d0a0;border-radius:8px;margin-top:20px;font-size:13px}.notice.error{color:#925240}.loading,.empty{padding:40px 25px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px}.empty h3{color:var(--ink)}.empty .button{margin-top:10px}.booking{background:white;border:1px solid var(--line);border-radius:12px;padding:22px 25px;margin-bottom:15px;display:flex;align-items:center;gap:22px}.date-square{background:#edf1e7;border-radius:8px;min-width:62px;padding:9px;text-align:center;color:var(--green)}.date-square strong{font:26px Georgia,serif;display:block}.date-square span{font-size:10px;text-transform:uppercase}.booking-content{flex:1}.booking h3{font:20px Georgia,serif;margin:0 0 5px}.booking p{margin:0;color:var(--muted);font-size:12px}.booking-actions{display:flex;gap:12px;align-items:center}.next{background:#eaf0e5;border-radius:10px;padding:18px 24px;margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.next p{margin:0;font-size:12px;color:#64755d}.next h3{font:20px Georgia,serif;margin:4px 0}.next .eyebrow{color:#799065;font-size:9px}.field{display:flex;flex-direction:column;gap:6px;margin:17px 0;font-size:12px;color:var(--ink)}.field input,.field select{width:100%;padding:12px 13px;border:1px solid #cfd8cc;border-radius:7px;background:#fff;color:var(--ink)}.field small{color:var(--muted);font-size:10px}.check{display:flex;gap:9px;font-size:11px;align-items:flex-start}.check input{accent-color:var(--forest);margin-top:4px}.small{font-size:11px}.error{color:#a14030;font-size:12px}dialog{border:0;border-radius:16px;background:var(--cream);color:var(--ink);padding:37px;width:min(440px,calc(100vw - 26px));max-height:92dvh;box-shadow:0 20px 80px #10241940;position:fixed}dialog::backdrop{background:#10291fb0;backdrop-filter:blur(3px)}dialog h2{margin-top:8px}dialog p{font-size:13px}dialog .eyebrow{color:var(--gold)}.close{position:absolute;right:15px;top:10px;font-size:26px;color:var(--muted);border:0;background:none;width:32px;height:32px}.reset-help{border-top:1px solid var(--line);margin-top:20px;padding-top:17px;display:flex;flex-direction:column;gap:5px;font-size:11px}.reset-help>span{color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--forest);color:white;border-radius:9px;box-shadow:0 5px 25px #173e3540;padding:14px 22px;max-width:90vw;z-index:100;font-size:13px}.roster-row{background:white;border:1px solid var(--line);border-radius:8px;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin:8px 0}.roster-row small{display:block;color:var(--muted)}.attendance{font-size:12px;white-space:nowrap}.attendance input{accent-color:var(--green)}
@media(max-width:1150px){main,footer{margin-left:26px;margin-right:26px}.top{padding:24px 26px}}@media(max-width:760px){.top{padding:20px}.brand{gap:12px}.brand img{width:96px;height:44px}.brand>span{padding-left:12px;font-size:7px;letter-spacing:1px}.brand-year{font-size:10px}.account-name{display:none}.top .button{padding:7px 10px;font-size:10px;min-height:34px}main,footer{margin-left:18px;margin-right:18px}.hero{padding:32px 25px;min-height:300px;border-radius:14px}.hero h1{font-size:37px}.hero .eyebrow{font-size:8px;max-width:220px;line-height:1.7}.hero-art{position:absolute;width:220px;height:220px;right:-130px;top:25px;opacity:.65}.hero-art>span{display:none}.intro{font-size:12px;max-width:240px}.hero-meta{flex-direction:column;gap:5px;font-size:11px}.tabs{gap:22px;margin:22px 0 27px;overflow-x:auto}.tabs button{white-space:nowrap;font-size:12px}.section-head{align-items:flex-start;gap:12px}h2{font-size:26px}.section-head .eyebrow{font-size:8px}.filter{font-size:9px}.filter select{max-width:128px;font-size:10px;padding:8px}.rules{font-size:10px;max-width:280px}.module-head{padding:20px 18px 16px}.module h3{font-size:21px}.module-code{font-size:9px}.groups{grid-template-columns:repeat(2,1fr);padding:0 18px 18px;gap:10px}.group{padding:13px}.group-date{font-size:14px}.group .button{min-height:40px}.break-note{padding:17px;font-size:11px}footer{padding-top:26px;gap:18px}.help-links{gap:8px;flex-wrap:wrap}.help-links a{font-size:11px}.footer-bottom{margin-top:10px;gap:12px;flex-wrap:wrap}.footer-bottom>span{width:100%}.booking{flex-wrap:wrap;gap:15px;padding:17px}.booking h3{font-size:18px}.booking-actions{width:100%;justify-content:flex-end}.next{padding:17px;align-items:flex-start}.next h3{font-size:17px}.next .button{font-size:10px;padding:8px}.next p{font-size:10px}.roster-row{padding:12px;font-size:12px}.roster-row .button{font-size:10px;padding:7px}.toast{bottom:18px;width:max-content;text-align:center}dialog{padding:32px 25px}#admin-tab{font-size:11px}}@media(prefers-reduced-motion:no-preference){.button,.group{transition:background .16s,border-color .16s}.module{animation:rise .3s ease both}@keyframes rise{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}}
 .tbc-note{margin:0 25px 20px}.meter progress{display:block;width:100%;height:3px;border:0;appearance:none;background:#e5e9df}.meter progress::-webkit-progress-bar{background:#e5e9df}.meter progress::-webkit-progress-value{background:#8ca080}.meter progress::-moz-progress-bar{background:#8ca080}
 .setup-page{max-width:540px;margin:35px auto;padding:25px}.setup-page>img{display:block;margin:0 auto 25px}.setup-page h1{font:36px Georgia,serif}.setup-page h2{margin-top:26px;font-size:25px}
