:root {
  --page: #f8f7f3;
  --surface: #ffffff;
  --surface-blue: #e8f1f5;
  --surface-teal: #e6f1ef;
  --surface-warm: #f1ece3;
  --ink: #132638;
  --copy: #2f3a3f;
  --muted: #69757a;
  --border: #d8d2c8;
  --border-strong: #bbaf9f;
  --action: #1f5d7a;
  --action-hover: #17485f;
  --action-soft: #dcebf1;
  --craft: #3f8f84;
  --clay: #a85f45;
  --clay-dark: #7e4634;
  --success: #2f7d5a;
  --shadow: 0 18px 50px rgba(19, 38, 56, 0.1);
  --heading: "Source Serif 4", Georgia, serif;
  --body: Inter, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--page); }
body { margin: 0; min-height: 100vh; color: var(--copy); background: var(--page); font-family: var(--body); line-height: 1.55; }
a { color: var(--action); }
button, input, textarea, select { font: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--ink); font-family: var(--heading); }
h1 { max-width: 760px; margin-bottom: 18px; font-size: clamp(2.6rem, 6vw, 5.4rem); line-height: 0.98; letter-spacing: -0.035em; }
h2 { margin-bottom: 10px; font-size: 1.75rem; line-height: 1.15; }
h3 { font-size: 1.05rem; }

.appbar { border-bottom: 1px solid rgba(216, 210, 200, 0.9); background: rgba(248, 247, 243, 0.96); }
.appbar-inner { display: flex; align-items: center; justify-content: space-between; max-width: 1180px; min-height: 70px; margin: 0 auto; padding: 10px 24px; }
.brand { display: flex; align-items: center; gap: 11px; color: var(--ink); font-weight: 800; text-decoration: none; }
.mark { display: grid; width: 39px; height: 39px; place-items: center; color: white; background: linear-gradient(135deg, var(--ink), var(--action) 58%, var(--craft)); border-radius: 50%; font-family: var(--heading); font-size: 14px; }
.product-name { color: var(--muted); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.foundation-banner { padding: 6px 20px; color: #584a36; background: #f4e8c9; border-bottom: 1px solid #ddc993; font-size: 12px; font-weight: 700; text-align: center; }

.page-shell { max-width: 1180px; min-height: calc(100vh - 160px); margin: 0 auto; padding: 44px 24px 72px; }
.back-link { display: inline-flex; margin-bottom: 28px; color: var(--action); font-size: 14px; font-weight: 800; text-decoration: none; }
.back-link:hover { text-decoration: underline; }
.narrow { max-width: 860px; }
.intro-block { margin-bottom: 42px; }
.booking-home-hero { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(280px,.58fr); min-height:330px; margin-bottom:26px; overflow:hidden; background:var(--ink); border-radius:12px; box-shadow:var(--shadow); }
.booking-home-copy { display:grid; padding:46px 48px; align-content:center; }
.booking-home-copy .eyebrow { margin-bottom:12px; color:#8ed1c7; }
.booking-home-copy h1 { max-width:720px; margin-bottom:20px; color:white; font-size:clamp(2.75rem,5.2vw,4.7rem); }
.booking-home-routes { display:grid; max-width:760px; gap:10px; color:#e7edf0; font-size:1.08rem; }
.booking-home-routes p { margin:0; }
.booking-home-portrait { position:relative; min-height:330px; margin:0; overflow:hidden; background:#15415a; }
.booking-home-portrait img { width:100%; height:100%; object-fit:cover; object-position:center 24%; }
.booking-home-portrait::after { position:absolute; inset:0; content:""; background:linear-gradient(90deg,rgba(19,38,56,.28),transparent 42%); pointer-events:none; }
.eyebrow, .step-label, .card-label { color: var(--action); font-size: 12px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.lede { max-width: 720px; color: var(--copy); font-size: 1.15rem; }
.audience-routes { display: grid; gap: 3px; }
.audience-routes span { display: block; }

.choice-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 22px; }
.choice-card { display: flex; min-height: 300px; padding: 34px; flex-direction: column; border: 1px solid var(--border); border-radius: 12px; }
.choice-card h2 { font-size:1.9rem; }
.choice-card p { max-width: 540px; }
.choice-card .button { margin-top: auto; align-self: flex-start; }
.public-card { background: var(--surface); border-top: 6px solid var(--craft); box-shadow: 0 12px 34px rgba(19, 38, 56, 0.07); }
.workshop-card { color: white; background: var(--ink); border-color: var(--ink); border-top: 6px solid var(--craft); box-shadow: var(--shadow); }
.workshop-card h2 { color: white; }
.workshop-card .card-label { color: #8ed1c7; }

.button { display: inline-flex; min-height: 46px; padding: 11px 18px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 7px; font-weight: 800; text-decoration: none; }
.button.primary { color: white; background: var(--clay); }
.button.primary:hover { background: var(--clay-dark); }
.button.secondary { color: var(--action); background: white; border-color: var(--action); }
.button.workshop-action { color: white; background: var(--clay); }
.button.workshop-action:hover { background: var(--clay-dark); }
.button.intro-action { color: var(--clay-dark); background: white; border-color: var(--clay); }
.button.intro-action:hover { color: white; background: var(--clay); }
.button:disabled { cursor: not-allowed; opacity: .52; }

.booking-layout { display: grid; grid-template-columns: minmax(260px, .78fr) minmax(480px, 1.22fr); gap: 42px; align-items: start; }
.booking-context { position: sticky; top: 30px; }
.booking-context h1, .access-copy h1 { font-size: clamp(2.6rem, 5vw, 4.4rem); }
.meeting-facts { display: grid; gap: 0; margin-top: 34px; border-top: 1px solid var(--border); }
.meeting-facts div { display: grid; grid-template-columns: 90px 1fr; padding: 13px 0; border-bottom: 1px solid var(--border); }
.meeting-facts dt { color: var(--muted); font-size: 13px; font-weight: 700; }
.meeting-facts dd { margin: 0; color: var(--ink); font-weight: 700; }

.scheduler-card, .access-card { padding: 30px; background: white; border: 1px solid var(--border); border-top: 6px solid var(--craft); border-radius: 10px; box-shadow: var(--shadow); }
.scheduler-head { display: flex; justify-content: space-between; gap: 20px; align-items: start; margin-bottom: 22px; }
.text-button { padding: 5px 0; color: var(--action); background: none; border: 0; font-size: 13px; font-weight: 800; }
.timezone-note { color: var(--muted); font-size: 12px; text-align: right; }
.date-list { display: grid; gap: 14px; }
.date-group { padding-top: 14px; border-top: 1px solid var(--border); }
.date-group h3 { margin-bottom: 9px; }
.slot-list { display: flex; flex-wrap: wrap; gap: 7px; }
.slot { min-width: 78px; min-height: 36px; padding: 6px 12px; color: var(--action); background: white; border: 1px solid #8eb2c3; border-radius: 999px; font-size: 14px; font-weight: 800; }
.slot:hover, .slot.selected { color: white; background: var(--action); }
.details-form { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--border); }
.form-intro { margin-bottom: 20px; color: var(--muted); font-size: 14px; }
.optional { color: var(--muted); font-size: 12px; font-weight: 600; }
.selected-time { display:flex; margin-bottom:22px; padding:12px 14px; justify-content:space-between; gap:14px; align-items:center; color:var(--ink); background:var(--surface-teal); border-radius:6px; font-weight:800; }
label { display: grid; gap: 6px; margin: 16px 0; color: var(--ink); font-size: 13px; font-weight: 800; }
input, textarea, select { width: 100%; padding: 11px 12px; color: var(--copy); background: white; border: 1px solid var(--border-strong); border-radius: 6px; }
input:disabled, textarea:disabled, select:disabled { background: #f3f1ec; }
.form-note { margin-top: 12px; color: var(--muted); font-size: 12px; }

.access-shell { display: grid; grid-template-columns: 1fr 430px; gap: 58px; align-items: center; }
.feature-list { display: grid; gap: 10px; padding: 0; list-style: none; }
.feature-list li::before { content: "✓"; margin-right: 10px; color: var(--craft); font-weight: 900; }
.member-booking-head { display: flex; margin-bottom: 32px; justify-content: space-between; gap: 30px; align-items: end; }
.member-booking-head h1 { font-size: clamp(2.7rem, 5vw, 4.4rem); }
.credit-balance { display: grid; min-width: 190px; padding: 20px; gap: 2px; background: var(--surface-teal); border: 1px solid #b8d5cf; border-radius: 10px; }
.credit-balance strong { color: var(--ink); font-family: var(--heading); font-size: 1.8rem; }
.credit-balance span { color: var(--muted); font-size: 12px; }
.credit-balance a { margin-top: 8px; font-size: 12px; font-weight: 800; }
.workshop-browser { display:grid; gap:18px; }
.workshop-filters { display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding:12px 14px; background:var(--surface-warm); border:1px solid var(--border); border-radius:8px; }
.workshop-filters > span { margin-right:4px; color:var(--muted); font-size:12px; font-weight:700; }
.filter-chip { min-height:34px; padding:7px 12px; color:var(--ink); background:white; border:1px solid var(--border-strong); border-radius:999px; cursor:pointer; font:700 12px var(--body); transition:background 140ms ease,border-color 140ms ease; }
.filter-chip:hover { background:var(--surface-blue); }
.filter-chip.active { color:white; background:var(--ink); border-color:var(--ink); }
.workshop-choice-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.workshop-choice { display:grid; grid-template-columns:82px minmax(0,1fr); min-height:176px; padding:0; overflow:hidden; background:white; border:1px solid var(--border); border-radius:9px; box-shadow:0 8px 24px rgba(19,38,56,.05); }
.workshop-choice[hidden] { display:none; }
.workshop-date-block { display:grid; padding:18px 10px; place-content:center; text-align:center; color:white; background:var(--ink); }
.workshop-date-block span { color:#a9d9d2; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.workshop-date-block strong { margin-top:4px; color:white; font-family:var(--heading); font-size:1.6rem; line-height:1; }
.workshop-choice-details { display:grid; padding:19px 16px 10px; align-content:start; gap:5px; }
.workshop-choice-details p { margin:0; color:var(--ink); font-weight:800; }
.workshop-choice-details span { color:var(--muted); font-size:12px; }
.workshop-choice > form,.workshop-choice > .booked-actions { grid-column:2; align-self:end; margin:0; padding:0 16px 16px; }
.workshop-choice > form .button { width:100%; min-height:40px; padding:9px 12px; }
.workshop-choice.is-booked { border-color:#9cc7bf; background:var(--surface-teal); }
.workshop-choice.is-booked .workshop-date-block { background:var(--craft-dark); }
.booked-actions { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.workshop-filter-empty { padding:28px; color:var(--muted); background:white; border:1px dashed var(--border-strong); border-radius:8px; text-align:center; }

/* Compact public booking screens */
.member-booking-head { margin-bottom:18px; align-items:center; }
.member-booking-head h1 { margin-bottom:8px; font-size:clamp(2.35rem,4vw,3.45rem); }
.member-booking-head .lede { margin-bottom:0; font-size:1rem; }
.credit-balance { display:flex; min-width:0; padding:10px 14px; gap:9px; align-items:baseline; white-space:nowrap; border-radius:8px; }
.credit-balance strong { font-size:1.35rem; }
.credit-balance a { margin:0 0 0 8px; }
.workshop-browser { gap:12px; }
.workshop-filters { padding:8px 10px; }
.workshop-choice-list { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.workshop-choice { grid-template-columns:68px minmax(0,1fr); min-height:122px; }
.workshop-date-block { padding:10px 7px; }
.workshop-date-block strong { font-size:1.35rem; }
.workshop-choice-details { padding:11px 11px 5px; gap:2px; }
.workshop-choice-details p { font-size:.85rem; line-height:1.25; }
.workshop-choice-details span { font-size:11px; }
.workshop-choice > form,.workshop-choice > .booked-actions { padding:0 11px 10px; }
.workshop-choice > form .button { min-height:32px; padding:5px 8px; font-size:12px; }
.booking-layout { grid-template-columns:minmax(240px,.58fr) minmax(590px,1.42fr); gap:28px; }
.booking-context h1 { margin-bottom:14px; font-size:clamp(2.7rem,4.2vw,3.8rem); line-height:.98; }
.booking-context .lede { margin-bottom:0; font-size:1rem; }
.meeting-facts { margin-top:20px; }
.meeting-facts div { padding:9px 0; }
.scheduler-card { padding:22px 24px; }
.scheduler-head { margin-bottom:12px; }
.scheduler-head h2 { margin-bottom:0; }
.date-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
.date-group { padding:10px 0 11px; }
.date-group h3 { margin-bottom:7px; }
.slot { min-width:0; min-height:32px; padding:4px 10px; font-size:12px; }

.admin-hero { display: flex; margin-bottom: 26px; justify-content: space-between; gap: 30px; align-items: end; }
.admin-hero h1 { margin-bottom: 12px; font-size: clamp(2.7rem, 5vw, 4.4rem); }
.admin-lock { display: flex; min-width: 285px; padding: 15px 17px; gap: 11px; align-items: start; color: var(--ink); background: var(--surface-warm); border: 1px solid var(--border); border-radius: 9px; }
.admin-lock div { display: grid; gap: 2px; }
.admin-lock span { color: var(--muted); font-size: 12px; }
.lock-icon { color: var(--clay) !important; }
.admin-lock.admin-unlocked { background: var(--surface-teal); }
.admin-lock.admin-unlocked .lock-icon { color: var(--success) !important; }
.admin-nav { display: flex; position: sticky; z-index: 5; top: 0; margin-bottom: 24px; padding: 11px; gap: 7px; background: rgba(248, 247, 243, .96); border: 1px solid var(--border); border-radius: 9px; }
.admin-nav a { padding: 8px 12px; color: var(--ink); border-radius: 6px; font-size: 13px; font-weight: 800; text-decoration: none; }
.admin-nav a:hover { background: var(--surface-blue); }
.dashboard-help { position:relative; margin-left:auto; }
.dashboard-help summary { padding:8px 12px; color:var(--action); cursor:pointer; font-size:13px; font-weight:800; list-style:none; }
.dashboard-help div { position:absolute; right:0; top:42px; width:310px; padding:16px; background:white; border:1px solid var(--border); border-radius:8px; box-shadow:var(--shadow); }
.dashboard-help p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.admin-panel { margin-top: 22px; padding: 30px; background: white; border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 12px 36px rgba(19,38,56,.06); scroll-margin-top: 76px; }
.admin-panel-head { display: flex; margin-bottom: 24px; justify-content: space-between; gap: 24px; align-items: start; }
.admin-panel-head h2 { margin-bottom: 8px; font-size: 2rem; }
.admin-panel-head p:last-child { max-width: 700px; margin-bottom: 0; }
.state-pill { display: inline-flex; padding: 6px 10px; white-space: nowrap; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.state-pill.draft { color: #76592e; background: #f4e8c9; }
.state-pill.live { color: #245f48; background: #dcefe7; }
.flash-message { margin-bottom: 20px; padding: 14px 17px; border: 1px solid; border-radius: 8px; font-weight: 700; }
.flash-message.success { color: #245f48; background: #e4f2eb; border-color: #a8d0bd; }
.flash-message.error { color: #7b372b; background: #f7e8e3; border-color: #d9aaa0; }
.admin-two-column { display: grid; grid-template-columns: 1.08fr .92fr; gap: 18px; align-items: start; }
.settings-stack { display: grid; gap: 18px; }
.settings-card { padding: 23px; background: var(--page); border: 1px solid var(--border); border-radius: 9px; }
.settings-card h3 { margin-bottom: 5px; font-family: var(--body); font-size: 1rem; }
.settings-card-head { display: flex; margin-bottom: 17px; justify-content: space-between; gap: 18px; align-items: start; }
.settings-card-head p { margin-bottom: 0; color: var(--muted); font-size: 12px; }
.button.compact { min-height: 36px; padding: 7px 11px; font-size: 12px; }
.weekly-schedule { border-top: 1px solid var(--border); }
.schedule-row { display: grid; grid-template-columns: 125px 1fr 34px; min-height: 60px; padding: 9px 0; gap: 14px; align-items: start; border-bottom: 1px solid var(--border); }
.day-toggle { display: flex; margin: 0; gap: 9px; align-items: center; }
.day-toggle input, .check-row input { width: auto; }
.time-windows { display: grid; gap: 7px; }
.time-window { display: grid; grid-template-columns: minmax(95px, 1fr) 22px minmax(95px, 1fr) 28px; gap: 7px; align-items: center; }
.time-window input, .time-window select { padding: 7px 8px; }
.time-window span { color: var(--muted); font-size: 12px; text-align: center; }
.remove-window { width: 28px; height: 28px; padding: 0; color: var(--clay-dark); background: transparent; border: 0; border-radius: 50%; font-size: 20px; line-height: 1; }
.remove-window:hover:not(:disabled) { background: #f4e4df; }
.remove-window:disabled { opacity: 0; }
.icon-button { width: 30px; height: 30px; padding: 0; color: var(--action); background: white; border: 1px solid var(--border); border-radius: 50%; font-weight: 800; }
.save-schedule { margin-top: 20px; }
.rule-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 13px; }
.rule-grid label { margin-block: 9px; }
.small-empty-state { padding: 20px; color: var(--muted); background: white; border: 1px dashed var(--border-strong); border-radius: 7px; font-size: 13px; text-align: center; }
.exception-form { display:grid; gap:8px; }
.exception-drawer > summary { display:flex; justify-content:space-between; gap:16px; align-items:center; cursor:pointer; list-style:none; }
.exception-drawer > summary span:first-child { display:grid; gap:2px; }
.exception-drawer > summary small { color:var(--muted); font-weight:400; }
.exception-drawer[open] > summary { padding-bottom:14px; border-bottom:1px solid var(--border); }
.exception-drawer .exception-form { padding-top:12px; }
.exception-form label { margin:4px 0; }
.exception-list { display:grid; gap:7px; margin-top:16px; padding-top:14px; border-top:1px solid var(--border); }
.exception-list article { display:flex; padding:10px 12px; justify-content:space-between; gap:12px; align-items:center; background:white; border:1px solid var(--border); border-radius:7px; }
.exception-list article div { display:grid; gap:1px; }
.exception-list article span { color:var(--muted); font-size:11px; }
.workshop-admin-grid { grid-template-columns: .82fr 1.18fr; }
.session-form label { margin-block: 13px; }
.form-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.check-row { display: flex; gap: 9px; align-items: center; }
.large-empty-state { display: grid; min-height: 330px; padding: 35px; place-content: center; color: var(--muted); background: white; border: 1px dashed var(--border-strong); border-radius: 8px; text-align: center; }
.large-empty-state > span { color: var(--craft); font-size: 2.2rem; }
.large-empty-state strong { color: var(--ink); }
.large-empty-state p { max-width: 390px; margin: 5px auto 0; font-size: 13px; }
.session-list-head { display:flex; justify-content:space-between; gap:18px; align-items:center; margin-bottom:12px; }
.session-list-head h3 { margin:0; white-space:nowrap; }
.session-overview { display:flex; justify-content:flex-end; gap:18px; }
.session-overview div { display:flex; gap:5px; align-items:baseline; white-space:nowrap; }
.session-overview strong { color:var(--ink); font-size:1rem; }
.session-overview span { color:var(--muted); font-size:11px; }
.published-sessions { display:grid; gap:9px; }
.session-month { background:white; border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.session-month > summary { display:flex; padding:11px 13px; justify-content:space-between; align-items:center; cursor:pointer; list-style:none; }
.session-month > summary::-webkit-details-marker { display:none; }
.session-month > summary span { color:var(--muted); font-size:11px; }
.session-month[open] > summary { background:var(--surface-warm); border-bottom:1px solid var(--border); }
.session-month-list { display:grid; }
.session-bulk-form { display:grid; grid-template-columns:minmax(125px,1fr) auto auto auto; gap:8px; align-items:end; margin:0 0 10px; padding:10px; background:var(--surface-blue); border:1px solid var(--border); border-radius:8px; }
.session-bulk-form label { display:grid; gap:3px; margin:0; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.session-bulk-form select { min-height:34px; padding:5px 8px; background:white; }
.session-bulk-form > span { align-self:center; color:var(--muted); font-size:11px; white-space:nowrap; }
.bulk-remove-button { align-self:center; }
.published-session { display:grid; grid-template-columns:20px minmax(0,1fr) auto; min-height:54px; padding:8px 12px; gap:10px; align-items:center; background:white; border-bottom:1px solid var(--border); }
.published-session:last-child { border-bottom:0; }
.published-session[hidden] { display:none; }
.published-session > div:first-child > strong { display:none; }
.published-session strong { color:var(--ink); }
.published-session p { margin:0; color:var(--ink); font-size:11px; font-weight:600; }
.session-checkbox { width:16px; height:16px; margin:0; accent-color:var(--action); }
.session-actions { display:flex; justify-content:flex-end; align-items:center; gap:9px; }
.session-actions .text-button { font-size:10px; white-space:nowrap; }
.attendee-details { margin-top: 8px; color: var(--action); font-size: 12px; }
.attendee-details summary { cursor: pointer; font-weight: 800; }
.attendee-details ul { margin: 7px 0 0; padding: 0; color: var(--copy); list-style: none; }
.attendee-details li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 0; border-top: 1px solid var(--border); }
.attendee-details li form { margin: 0; flex: 0 0 auto; }
.member-edit { margin:0; }
.member-edit[open] { grid-column:1 / -1; }
.member-edit summary { padding:6px 10px; color:var(--action); background:white; border:1px solid var(--border-strong); border-radius:6px; cursor:pointer; font-weight:800; font-size:12px; list-style:none; }
.member-edit summary:hover { background:var(--surface-blue); }
.member-edit form { display: grid; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.purchaser-drawer { margin-bottom:16px; background:var(--surface-teal); }
.purchaser-drawer > summary { display:flex; justify-content:space-between; gap:18px; align-items:center; cursor:pointer; list-style:none; }
.purchaser-drawer > summary span:first-child { display:grid; gap:2px; }
.purchaser-drawer > summary small { color:var(--muted); font-weight:400; }
.purchaser-drawer[open] > summary { padding-bottom:18px; border-bottom:1px solid var(--border); }
.purchaser-drawer .purchaser-form { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; max-width:760px; padding-top:12px; }
.purchaser-drawer .purchaser-form > p,.purchaser-drawer .credit-grant-summary,.purchaser-drawer .purchaser-form > button { grid-column:1 / -1; }
.purchaser-form > p { margin-bottom: 18px; }
.credit-grant-summary { display: flex; margin: 18px 0; padding: 13px 14px; justify-content: space-between; gap: 12px; color: var(--ink); background: var(--surface-teal); border-radius: 7px; font-size: 13px; }
.member-empty { min-height: 260px; }
.member-list { display: grid; gap: 10px; }
.scalable-register { min-height:360px; }
.register-summary { display:grid; grid-template-columns:repeat(3,minmax(0,150px)); gap:10px; margin-bottom:16px; }
.register-summary div { display:grid; padding:12px 14px; background:white; border:1px solid var(--border); border-radius:7px; }
.register-summary strong { color:var(--ink); font-size:1.25rem; }
.register-summary span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.member-tools { display:grid; grid-template-columns:minmax(220px,1fr) 210px auto auto; gap:10px; align-items:end; margin-bottom:16px; }
.member-tools label { margin:0; }
.register-empty { display:grid; min-height:180px; place-content:center; gap:3px; color:var(--muted); text-align:center; }
.register-pagination { display:flex; margin-top:16px; gap:6px; justify-content:center; }
.register-pagination a { display:grid; width:34px; height:34px; place-items:center; color:var(--action); background:white; border:1px solid var(--border); border-radius:50%; font-size:12px; font-weight:800; text-decoration:none; }
.register-pagination a.current { color:white; background:var(--action); border-color:var(--action); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.member-row { display:grid; grid-template-columns:minmax(0,1fr) 90px auto auto; padding:12px 14px; gap:12px; align-items:center; background:white; border:1px solid var(--border); border-radius:8px; }
.member-identity, .member-usage { display: grid; gap: 2px; }
.member-identity strong, .member-usage strong { color: var(--ink); }
.member-identity span, .member-usage span { overflow-wrap: anywhere; color: var(--muted); font-size: 12px; }
.compact-panel { margin-bottom: 10px; }
.status-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.status-card { display: flex; padding: 22px; gap: 13px; align-items: start; background: var(--page); border: 1px solid var(--border); border-radius: 9px; }
.status-card h2, .status-card h3 { margin: 0; font-family: var(--body); font-size: 1rem; }
.status-card p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.status-dot { width: 12px; height: 12px; margin-top: 4px; background: var(--clay); border-radius: 50%; box-shadow: 0 0 0 4px rgba(168,95,69,.13); }
.status-dot.connected { background: var(--success); box-shadow: 0 0 0 4px rgba(47,125,90,.13); }
.connection-action { display: flex; margin-top: 18px; padding: 20px 22px; justify-content: space-between; gap: 20px; align-items: center; background: var(--surface-blue); border-radius: 9px; }
.connection-action p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.email-connection-action { align-items: end; }
.inline-secret-form { display: grid; grid-template-columns: minmax(220px, 310px) auto; gap: 10px; align-items: end; }
.inline-secret-form label { margin: 0; }
.admin-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
.admin-sections article { min-height: 190px; padding: 26px; background: var(--surface-blue); border-radius: 9px; }

.empty-state { max-width: 700px; padding: 50px; background: white; border: 1px solid var(--border); border-top: 6px solid var(--action); border-radius: 10px; box-shadow: var(--shadow); }
.empty-state h1 { font-size: clamp(2.4rem, 6vw, 4rem); }
.empty-state .button { margin-top: 18px; }

footer { display: flex; max-width: 1180px; margin: 0 auto; padding: 24px; gap: 22px; border-top: 1px solid var(--border); font-size: 13px; }

@media (max-width: 860px) {
  .choice-grid, .booking-layout, .access-shell, .admin-two-column { grid-template-columns: 1fr; }
  .booking-home-hero { grid-template-columns:1fr 260px; }
  .booking-home-copy { padding:38px 34px; }
  .booking-context { position: static; }
  .status-grid { grid-template-columns: 1fr; }
  .admin-hero { display: grid; align-items: start; }
  .member-booking-head { display: grid; align-items: start; }
  .admin-lock { min-width: 0; }
  .workshop-choice-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .date-list { grid-template-columns:1fr; }
}

@media (max-width: 560px) {
  .page-shell { padding: 46px 18px 64px; }
  .appbar-inner { padding-inline: 18px; }
  .product-name { display: none; }
  .choice-card, .scheduler-card, .access-card, .empty-state { padding: 23px; }
  .booking-home-hero { grid-template-columns:1fr; }
  .booking-home-copy { padding:32px 24px; }
  .booking-home-copy h1 { font-size:2.65rem; }
  .booking-home-portrait { min-height:250px; }
  .slot-list { grid-template-columns: 1fr 1fr; }
  .admin-sections { grid-template-columns: 1fr; }
  .admin-nav { position: static; overflow-x: auto; }
  .admin-nav a { white-space: nowrap; }
  .admin-panel { padding: 21px; }
  .admin-panel-head, .settings-card-head { display: grid; }
  .connection-action { display: grid; }
  .inline-secret-form { grid-template-columns: 1fr; }
  .schedule-row { grid-template-columns: 95px 1fr 30px; }
  .time-window { grid-template-columns: 1fr 18px 1fr 26px; }
  .rule-grid, .form-columns { grid-template-columns: 1fr; }
  .member-row { grid-template-columns:1fr auto auto; }
  .member-usage { grid-column:1; }
  .member-tools { grid-template-columns:1fr; }
  .register-summary { grid-template-columns:repeat(3,1fr); }
  .purchaser-drawer .purchaser-form { grid-template-columns:1fr; }
  .workshop-choice-list { grid-template-columns:1fr; }
  .workshop-filters > span { width:100%; }
  .session-bulk-form { grid-template-columns:1fr 1fr; align-items:end; }
  .purchaser-drawer .purchaser-form > * { grid-column:1; }
  .dashboard-help { margin-left:0; }
  .member-identity { grid-column: 1 / -1; }
  .workshop-choice { display: grid; }
}
/* Compassionate workshop cancellation and attendance decisions */
.booked-actions { display: flex; flex-direction: column; align-items: flex-end; gap: .65rem; }
.text-button { appearance: none; border: 0; background: transparent; color: #8f4d38; padding: .2rem 0; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.attendance-list { display: grid; gap: 1rem; }
.attendance-row { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem 0; border-bottom: 1px solid #ded8cf; }
.attendance-row:last-child { border-bottom: 0; }
.attendance-actions, .attendance-decision { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; justify-content: flex-end; }
.attendance-decision input { min-width: 13rem; }
.series-preview { max-height: 16rem; overflow: auto; padding: 1rem; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-warm); }
.series-preview strong { display: block; margin-bottom: .5rem; color: var(--ink); }
.series-preview ol { margin: 0; padding-left: 1.4rem; }
.series-preview li + li { margin-top: .3rem; }
@media (max-width: 760px) {
  .session-list-head { display:grid; }
  .session-overview { justify-content:start; flex-wrap:wrap; gap:8px 16px; }
  .attendance-row { align-items: stretch; flex-direction: column; }
  .attendance-actions, .attendance-decision { justify-content: flex-start; }
  .booked-actions { align-items: flex-start; }
}
