.live-banner{background:#e9e3d1;color:#5c543e;text-align:center;padding:10px 18px;font-size:13px;font-weight:700;letter-spacing:.015em}.live-alert{width:min(1180px,calc(100% - 48px));margin:22px auto 0;padding:15px 18px;border-left:5px solid #66836b;background:#e4f0df;color:#294636;font-weight:700}.live-alert.error{border-color:#af5439;background:#f7e8de;color:#7b3829}.live-alert:focus{outline:2px solid #9d623f}.button:disabled{opacity:.55;cursor:not-allowed;background:#727e72;border-color:#727e72}.detail-grid>div>.class-art{height:440px}.detail-facts strong{line-height:1.4}.account-grid,.auth-layout{display:grid;grid-template-columns:.85fr 1fr;gap:8%;align-items:start}.account-grid h2,.auth-layout h2{font-size:34px}.account-grid h3{font-size:25px;margin-top:36px}.booking-row{border-top:1px solid #d9d4c6;padding:17px 0;display:grid;gap:4px}.booking-row span{color:#617064;font-size:14px}.auth-tabs{margin-bottom:25px;width:max-content}.check-label{display:flex!important;align-items:flex-start;gap:11px;line-height:1.45;font-weight:500!important}.form-panel .check-label>span{color:inherit}.form-panel .check-label input{width:22px;height:22px;min-height:22px;margin:0;flex:none;accent-color:#476d53}.form-panel label>small{display:block;font-weight:400;color:#657065;margin-top:5px}.live-account{min-height:480px}.live-confirm{max-width:620px;margin:auto}.live-confirm .check{width:62px;height:62px;background:#d9e8d3;color:#34593c;border-radius:50%;display:grid;place-items:center;font-size:32px;margin-bottom:20px}.live-confirm h1{font-size:clamp(32px,4vw,46px)}.live-confirm p{color:#55665a}.admin-list .section-heading.compact h2{margin:0}.admin-list .admin-row span{line-height:1.4}.admin-form .attendees{margin-top:30px}.admin-form .attendees form .button{margin-top:4px}.admin-form input[type=file]{padding:11px;background:#f8f7f1}.class-card .card-bottom{gap:15px}.class-card .price{font-size:13px}.class-card .text-link{flex:none}.agenda-row .text-link{white-space:nowrap}.site-header{z-index:15}
@media(max-width:760px){.live-banner{font-size:11px;line-height:1.4}.account-grid,.auth-layout{grid-template-columns:1fr;gap:25px}.detail-grid>div>.class-art{height:290px}.live-alert{width:calc(100% - 32px)}.live-account{min-height:0}.admin-list .section-heading.compact{align-items:start}.admin-list .section-heading.compact h2{font-size:27px}.admin-list .section-heading.compact .button{white-space:nowrap}.auth-tabs{width:100%}.auth-tabs button{flex:1}.class-card .card-bottom{flex-wrap:wrap}}
.reset-request{border-top:1px solid #d9d4c6;margin-top:28px;padding-top:22px}.reset-request h3{font-size:22px;margin:0 0 14px}.booking-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.booking-row ul{list-style:none;margin:10px 0 6px;padding:0}.booking-row li{border-top:1px solid #e7e1d4;padding:13px 0;line-height:1.55}.booking-row li .text-link,.booking-row>.text-link,.booking-row .booking-actions .text-link{display:inline-flex;align-items:center;min-height:44px;text-align:left;margin-right:12px}.booking-row .booking-actions{gap:4px 12px}.booking-row .demo-box a{overflow-wrap:anywhere}
.footer-policies{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;padding:1rem;border-top:1px solid rgba(255,255,255,.16)}
.footer-policies button{border:0;background:none;color:#f6f0e4;text-decoration:underline;font:inherit;cursor:pointer;min-height:44px}
.inline-link{border:0;background:none;color:#345e50;text-decoration:underline;font:inherit;cursor:pointer;padding:.1rem}
.visit-map{display:block;width:100%;height:240px;border:0;border-radius:12px;margin-top:1rem}
.refund-prepare-form,.membership-config-form,#staff-revoke-form{margin-top:1rem}
.cart-panel{max-width:800px;margin:0 auto}.cart-item{border:1px solid #d9d4c6;border-radius:12px;padding:22px;margin:24px 0;background:#fcfaf4}.cart-item legend{font-family:Georgia,serif;font-size:25px;font-weight:700;padding:0 8px;color:#34503d}.cart-item p{margin:0 0 8px}.cart-item>.text-link{margin-bottom:16px}.cart-panel .demo-box{margin:20px 0}.cart-panel .button.full{margin-top:20px}
@media(max-width:760px){.cart-item{padding:16px}.cart-item legend{font-size:21px}}
/* Payroc card entry and checkout receipt */
.card-fields .live-alert{width:auto;margin:0 0 14px}
.card-fields label{display:block;margin-bottom:14px;font-weight:700}
.hosted-field{min-height:46px;margin-top:6px;padding:0 10px;border:1px solid #b9b2a3;border-radius:6px;background:#fff;display:flex;align-items:center}
.fluidpay-card{margin:6px 0 14px}.fluidpay-card iframe{width:100%;border:0}
.hosted-field iframe{width:100%;height:44px;border:0}
.field-error{display:block;min-height:1em;margin-top:4px;color:#7b3829;font-weight:400;font-size:.9rem}
.submit-button{margin-top:6px;min-height:52px}
.submit-button iframe,.submit-button button{width:100%;min-height:52px;border:0}
.card-fields.is-busy{opacity:.6;pointer-events:none}
.card-security-note{margin-top:10px}
.receipt-lines{list-style:none;margin:18px 0;padding:0;border-top:1px solid #e3ddd0}
.receipt-lines li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #e3ddd0}
.receipt-lines .receipt-total{font-size:1.1rem}
.live-confirm .receipt-lines{text-align:left;max-width:520px;margin-left:auto;margin-right:auto}
.terms-details{margin:10px 0 18px}
.terms-details summary{cursor:pointer;font-weight:700;color:#476d53}
.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.event-pill.is-full{opacity:.65}
.owner-panel{margin-bottom:24px}
.owner-panel ul{padding-left:18px}
.demo-box input[readonly]{width:100%;margin-top:6px;padding:8px;font:inherit}
/* Footer policy links (anchors so they work without the app and can be opened directly) */
.footer-policies a{color:#f6f0e4;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}
/* Policy pages */
.policy-page h2{font-size:1.2rem;margin:1.6rem 0 .4rem}
.policy-page h2:first-of-type{margin-top:.6rem}
.policy-page p{max-width:72ch}
.policy-related{border-top:1px solid #e3ddd0;padding-top:1rem;margin-top:1.6rem}
/* Checkout */
.checkout-merchant{display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem;border:1px solid #d8d1c2;border-radius:10px;background:#fbf8f2;margin:1rem 0}
.checkout-subhead{font-size:1.1rem;margin:1rem 0 .3rem}
.card-brands{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin:.2rem 0 1rem}
.card-brand-logo{display:inline-block;background:#fff;border:1px solid #d8d1c2;border-radius:6px;padding:5px 8px;box-sizing:content-box}
@media(max-width:760px){.card-brand-logo{padding:4px 6px}}
.card-brand{display:inline-block;border:1px solid #b9b2a3;border-radius:6px;padding:.15rem .55rem;font-size:.85rem;font-weight:600;background:#fff;color:#2f3b33}
.preview-note{background:#fff7e0;border:1px solid #e4c66b;border-radius:8px;padding:.7rem .9rem;margin:0 0 1rem}
.payments-off-note{background:#fff7e0;border:1px solid #e4c66b;border-radius:8px;padding:.8rem 1rem;margin:1rem 0 0;line-height:1.5}
/* Staff how-to guide */
.help-panel{max-width:860px;margin:0 auto}
.help-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin-bottom:10px}
.help-search-label{flex:1;min-width:220px;font-weight:700}
.help-search-label input{width:100%;margin-top:6px}
.help-topic{border-top:1px solid #e3ddd0;padding-top:14px;margin-top:18px}
.help-topic h2{font-size:1.25rem;margin:0 0 8px}
.help-topic p{max-width:76ch}
.checkout-policies{border-top:1px solid #e3ddd0;padding-top:.9rem;margin:.6rem 0 .9rem}
.checkout-policies p{margin:0 0 .6rem}
.card-fields[data-agreement-locked] .submit-button{opacity:.45;pointer-events:none}

/* Printable roster: "Print roster" marks the body, and only the roster block prints. */
@media print{
  body.print-roster #app{visibility:hidden}
  body.print-roster .roster-print-area{visibility:visible;position:absolute;left:0;top:0;width:100%;background:#fff;color:#000}
  body.print-roster .roster-print-area *{visibility:visible}
  body.print-roster .roster-print-area .no-print,body.print-roster .roster-print-area button{display:none}
}
.memberships-list{list-style:none;margin:12px 0 0;padding:0}
.membership-row{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid #e3ddd0}
.roster-tools{margin:4px 0 10px}
.closed-pill{display:block;background:#8a5a44;color:#fff;border-radius:6px;padding:4px 6px;font-size:.72rem;margin:2px 0}
.agenda-row.closed-row h3{color:#8a5a44}
/* Staff calendar (admin): same grid as the public calendar, with status styling. */
.admin-calendar-panel{margin-bottom:30px}
.admin-calendar-panel .calendar-toolbar{margin:18px 0 14px}
.admin-pill{cursor:pointer}
.admin-pill:hover,.admin-pill:focus-visible{border-color:#2a4b36}
.admin-pill.is-draft{background:#fffdf8;border-style:dashed;color:#5c543e}
.admin-pill.is-cancelled{background:#f3e7e1;border-color:#d9b8a8;color:#8a5a44}
.admin-pill.is-cancelled strong{text-decoration:line-through}
.admin-pill.is-past{opacity:.6}
.admin-pill.is-selected{outline:2px solid #8a5a44;outline-offset:1px;opacity:1}
.cal-day.is-today .day-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:#2a4b36;color:#fff;border-radius:50%}
.agenda-row.is-selected{background:#f3efe2}
.admin-undated{margin-top:22px}
.admin-undated ul{list-style:none;padding:0;margin:8px 0 0}
.admin-undated li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:8px 0;border-bottom:1px solid #e6e1d5}
.admin-undated li span{color:#6b6f66;font-size:.9rem}
@media(max-width:760px){.admin-calendar-panel{padding:20px 16px}}
/* iPad/iPhone Safari gives date and time inputs an intrinsic minimum width, so they
   overflowed their half-column and covered the next field. Let them fit the column. */
.admin-form-simple .admin-field-pair>label{min-width:0}
.admin-form input[type=date],.admin-form input[type=time]{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;text-align:left;min-height:48px}
.admin-form input[type=date]::-webkit-date-and-time-value,.admin-form input[type=time]::-webkit-date-and-time-value{text-align:left}
.admin-form input[type=file]{width:100%;min-width:0;max-width:100%;box-sizing:border-box}

.password-field{position:relative;display:block}.password-field input{width:100%;padding-right:76px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-height:44px;min-width:60px;padding:0 12px;border:0;background:none;color:#34503d;font:inherit;font-size:15px;font-weight:700;text-decoration:underline;cursor:pointer}.password-toggle:focus-visible{outline:3px solid #34503d;outline-offset:-3px;border-radius:6px}
.admin-hero-actions{display:flex;flex-wrap:wrap;gap:12px}

/* Phones: compact month grid on the public calendar (Glenda 2026-10-30: "there is no calendar"). */
@media(max-width:760px){.calendar-section .calendar{display:block}.calendar-section .weekdays{display:grid}.calendar-section .cal-grid{display:grid;grid-auto-rows:auto}.calendar-section:has(.calendar)::after{content:none}.calendar-section:has(.calendar) .calendar-toolbar .view-switch button:first-child{display:inline-block}.calendar-section .calendar-toolbar{align-items:center;flex-wrap:wrap;gap:10px}.calendar-section .month-nav{flex:1 1 100%;justify-content:space-between}.calendar-section .month-nav h2{font-size:22px}.calendar-section .view-switch{width:100%}.calendar-section .view-switch button{flex:1}.calendar-section .view-switch button{padding:8px 12px}.calendar-section .weekdays span{font-size:11px;padding:6px 0;text-align:center}.cal-day.cal-mini{min-height:54px;padding:5px 2px;border-top:0;border-left:0;background:#fffdf8;display:flex;flex-direction:column;align-items:center;gap:4px;font:inherit;color:#2a4b36;cursor:pointer}.cal-mini .day-number{font-size:14px;font-weight:700}.cal-mini.is-past{color:#a5aca2}.cal-mini.is-closed{background:#f4ece6}.cal-mini.is-selected,.cal-mini.is-selected .day-number{background:#2a4b36;color:#fff}.cal-mini.is-selected .cal-dots i{background:#fff}.cal-mini.is-today:not(.is-selected) .day-number{width:24px;height:24px;font-size:13px}.cal-dots{display:flex;gap:3px;min-height:7px}.cal-dots i{width:7px;height:7px;border-radius:50%;background:#496851}.cal-dots i.is-full{background:#b7bdae}.cal-day-list{margin-top:22px}.cal-day-list>h3{font-size:22px;margin:0 0 12px}}

/* Phones: the staff calendar gets the same compact month grid (Caleb 2026-10-30). */
@media(max-width:760px){.admin-calendar-panel .calendar{display:block}.admin-calendar-panel .weekdays,.admin-calendar-panel .cal-grid{display:grid}.admin-calendar-panel .cal-grid{grid-auto-rows:auto}.admin-calendar-panel .weekdays span{font-size:11px;padding:6px 0;text-align:center}.admin-calendar-panel .calendar-toolbar{align-items:center;flex-wrap:wrap;gap:10px}.admin-calendar-panel .month-nav{flex:1 1 100%;justify-content:space-between}.admin-calendar-panel .month-nav h2{font-size:22px}.admin-calendar-panel .view-switch{width:100%}.admin-calendar-panel .view-switch button{flex:1;padding:8px 12px}.admin-calendar-panel .cal-dots i.is-draft{background:transparent;border:1.5px solid #496851;box-sizing:border-box}.admin-calendar-panel .cal-dots i.is-cancelled{background:#af5439}.admin-calendar-panel .cal-mini.is-past .cal-dots i{opacity:.55}.admin-calendar-panel .cal-mini.is-selected .cal-dots i.is-draft{background:transparent;border-color:#fff}}
