/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

:root { --surface: #fff8f5; --low: #fbf2ee; --container: #f5ece9; --high: #efe6e3; --ink: #1e1b19; --muted: #6f5d57; --primary: #97422a; --primary-container: #b65a40; --green: #4f644c; --green-container: #cee6c9; --gold: #9f6912; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--surface); color: var(--ink); font-family: "Plus Jakarta Sans", sans-serif; }
button { font: inherit; cursor: pointer; border: 0; }
.admin-shell { min-height: 100vh; background: var(--surface); }
.admin-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 4; width: 288px; padding: 28px 24px; display: flex; flex-direction: column; justify-content: space-between; background: var(--low); box-shadow: 1px 0 12px rgba(42,38,36,.04); }
.brand, .admin-profile, .operating-zone, .header-actions, .section-label, .card-heading, .occupancy, .schedule-heading, .schedule-heading > div:first-child, .drawer-heading, .drawer-footer, .recurring { display: flex; align-items: center; }
.brand { gap: 10px; padding: 0 4px 28px; }.brand-mark { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: var(--primary); font-size: 26px; }.brand strong { display: block; font-family: Newsreader, serif; font-size: 17px; font-weight: 500; }.brand small { display: block; margin-top: 2px; color: var(--primary); font-size: 9px; letter-spacing: .13em; font-weight: 700; }
.member-view { display: inline-flex; gap: 6px; align-items: center; margin: 0 4px 25px; padding: 7px 12px; border-radius: 999px; color: var(--muted); background: var(--container); font-size: 10px; text-decoration: none; }.admin-nav { display: grid; gap: 3px; }.admin-nav a { padding: 11px 12px; border-radius: 10px; color: var(--muted); font-family: Newsreader, serif; font-size: 16px; text-decoration: none; }.admin-nav a.active, .admin-nav a:hover { color: white; background: var(--primary-container); box-shadow: 0 2px 5px #97422a22; }
.admin-profile { gap: 10px; padding: 15px; border-radius: 12px; background: var(--container); }.profile-icon { font-size: 22px; color: var(--primary); }.admin-profile strong, .admin-profile small { display: block; }.admin-profile strong { font-family: Newsreader, serif; font-size: 13px; }.admin-profile small { color: var(--muted); font-size: 10px; margin-top: 2px; }
.admin-main { margin-left: 288px; }.admin-header { position: sticky; top: 0; z-index: 3; height: 80px; display: flex; align-items: center; justify-content: space-between; padding: 0 36px; background: #fff8f5e8; backdrop-filter: blur(12px); box-shadow: 0 1px 8px #2a26240a; }.operating-zone { gap: 10px; }.operating-zone span { color: var(--muted); font-size: 10px; letter-spacing: .13em; }.operating-zone strong, .status-pill { padding: 5px 11px; border-radius: 999px; color: var(--green); background: var(--green-container); font-size: 10px; font-weight: 600; }.header-actions { gap: 18px; }.status-pill i, .live-dot, .dot { display: inline-block; border-radius: 50%; }.status-pill i { width: 7px; height: 7px; margin-right: 5px; background: var(--green); }.icon-button { color: var(--muted); background: transparent; font-size: 20px; }.avatar { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: white; background: var(--primary); font-size: 10px; font-weight: 700; }
.admin-flash { position: relative; z-index: 2; padding: 20px 36px 0; }
.admin-flash p { margin: 0; }
.admin-content { max-width: 1600px; margin: 0 auto; padding: 38px 36px 64px; }.intro-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 38px; }.eyebrow, .summary-card > .card-heading small, .drawer-content > label, .drawer-heading small { color: var(--primary); font-size: 10px; letter-spacing: .1em; font-weight: 700; }.eyebrow span { margin: 0 6px; color: var(--muted); }.intro-row h1 { max-width: 850px; margin: 10px 0 10px; font-family: Newsreader, serif; font-size: clamp(32px, 3vw, 48px); line-height: 1.1; font-weight: 500; letter-spacing: -.02em; }.intro-row h1 em { color: var(--primary); font-style: normal; }.intro-row p { max-width: 720px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }.button-row { display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; }.primary-button, .secondary-button { display: inline-flex; align-items: center; gap: 7px; padding: 11px 16px; border-radius: 999px; font-size: 12px; font-weight: 600; }.primary-button { color: white; background: var(--primary); box-shadow: 0 3px 8px #97422a2b; }.primary-button:hover { background: var(--primary-container); }.secondary-button { color: var(--ink); background: var(--high); }.secondary-button:hover { background: #e9e1dd; }
.section-label { gap: 8px; margin-bottom: 14px; color: var(--muted); font-size: 11px; letter-spacing: .08em; }.section-label small { margin-left: auto; font-size: 10px; letter-spacing: 0; font-weight: 400; }.live-dot { width: 10px; height: 10px; background: var(--primary); box-shadow: 0 0 0 4px #97422a16; }.summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }.summary-card { min-height: 240px; padding: 21px; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; border-radius: 12px; background: white; box-shadow: 0 2px 8px #2a26240b; }.card-heading { justify-content: space-between; align-items: flex-start; gap: 10px; }.card-heading small { color: var(--muted) !important; }.card-heading h2 { margin: 4px 0 0; font-size: 17px; font-weight: 600; }.card-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--primary); background: var(--high); font-size: 20px; }.event-lines { display: grid; gap: 9px; }.event-lines > div { display: flex; align-items: center; gap: 7px; padding: 10px; border-radius: 8px; background: var(--low); font-size: 11px; }.event-lines b { margin-left: auto; color: var(--primary); font-size: 10px; }.dot { width: 8px; height: 8px; flex: none; }.dot.primary { background: var(--primary); }.dot.green { background: var(--green); }.summary-card footer { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; }.summary-card footer a { color: var(--primary); text-decoration: none; }.summary-card footer b { color: var(--ink); }.occupancy { gap: 16px; }.donut { width: 78px; height: 78px; flex: none; display: grid; place-content: center; text-align: center; border-radius: 50%; background: conic-gradient(var(--primary) 78%, var(--high) 0); position: relative; }.donut:after { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: white; }.donut strong, .donut small { position: relative; z-index: 1; }.donut strong { font-size: 15px; }.donut small { font-size: 7px; color: var(--muted); }.occupancy h3, .capacity h3 { margin: 0 0 5px; font-family: Newsreader, serif; font-size: 19px; font-weight: 500; }.occupancy p { margin: 0 0 7px; color: var(--muted); font-size: 11px; line-height: 1.5; }.mini-pill { padding: 4px 8px; border-radius: 999px; color: var(--green); background: var(--green-container); font-size: 9px; }.capacity h3 small { float: right; margin-top: 4px; color: var(--muted); font-family: "Plus Jakarta Sans", sans-serif; font-size: 10px; font-weight: 400; }.capacity-bar { height: 11px; margin: 12px 0 8px; overflow: hidden; display: flex; border-radius: 999px; background: var(--high); }.capacity-bar i { width: 47%; background: var(--primary); }.capacity-bar b { width: 12%; background: var(--green); }.capacity span { color: var(--muted); font-size: 9px; }.capacity span span { color: var(--green); }.success { color: var(--green) !important; }
.schedule-section { margin-top: 42px; }.schedule-heading { justify-content: space-between; align-items: flex-end; gap: 18px; margin-bottom: 15px; }.schedule-heading h2 { margin: 0; font-family: Newsreader, serif; font-size: 24px; font-weight: 500; }.schedule-heading h2 span { color: var(--muted); font-size: 16px; }.week-switch { margin-top: 10px; padding: 6px 11px; border-radius: 999px; color: var(--muted); background: var(--high); font-size: 10px; }.legend { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }.legend span { padding: 6px 10px; border-radius: 999px; background: var(--high); color: var(--muted); font-size: 10px; }.legend span:first-child { color: white; background: var(--primary-container); }.legend span:nth-child(2) { color: #643f00; background: #ffddb5; }.legend span:nth-child(3) { color: var(--green); background: var(--green-container); }.legend span:nth-child(4) { color: white; background: #342f2d; }.calendar { padding: 15px; overflow-x: auto; border-radius: 12px; background: white; box-shadow: 0 2px 8px #2a26240b; }.day-headers, .day-columns { min-width: 900px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }.day-headers { margin-bottom: 8px; }.day-header { padding: 7px; text-align: center; border-radius: 8px; background: var(--low); }.day-header.today { color: white; background: var(--primary-container); }.day-header small, .day-header strong { display: block; }.day-header small { font-size: 9px; letter-spacing: .06em; }.day-header strong { font-family: Newsreader, serif; font-size: 20px; }.day-column { min-height: 280px; padding: 7px; display: flex; flex-direction: column; gap: 8px; border-radius: 8px; background: #fbf2ee99; }.schedule-event { padding: 11px; display: flex; flex-direction: column; gap: 4px; border-radius: 8px; color: white; box-shadow: 0 2px 5px #2a26240b; }.schedule-event small { font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .9; }.schedule-event strong { font-size: 12px; line-height: 1.25; }.schedule-event > span { font-size: 10px; opacity: .9; }.schedule-event footer { margin-top: 4px; padding-top: 5px; border-top: 1px solid #ffffff45; font-size: 9px; }.schedule-event.primary { background: var(--primary-container); }.schedule-event.gold { color: #2a1800; background: #d69b38; }.schedule-event.green { color: #0d200d; background: #a8c4a3; }.schedule-event.dark { background: #342f2d; }.roster-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 22px; padding: 16px; border-radius: 10px; color: var(--muted); background: var(--low); font-size: 12px; }.roster-note span { color: var(--primary); font-size: 18px; }.roster-note p { margin: 4px 0 0; }
.event-modal[hidden] { display: none; }.event-modal { position: fixed; inset: 0; z-index: 10; display: flex; justify-content: flex-end; background: #342f2d66; backdrop-filter: blur(5px); }.drawer { width: min(100%, 570px); height: 100%; display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto; padding: 28px; background: white; box-shadow: -10px 0 30px #2a262433; }.drawer-content { display: flex; flex-direction: column; gap: 18px; }.drawer-heading { justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid var(--high); }.drawer-heading h2 { margin: 3px 0 0; font-family: Newsreader, serif; font-size: 21px; font-weight: 500; }.close-button { width: 32px; height: 32px; border-radius: 50%; color: var(--muted); background: var(--low); font-size: 23px; }.drawer-content > label { color: var(--ink); letter-spacing: 0; }.preset-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }.preset-grid button { padding: 10px 5px; border-radius: 10px; color: var(--muted); background: var(--high); font-size: 10px; }.preset-grid .selected { color: white; background: var(--primary); box-shadow: 0 0 0 2px var(--primary), 0 0 0 4px white; }.drawer-content > label, .form-grid label { display: flex; flex-direction: column; gap: 5px; }.drawer input:not([type=checkbox]) { width: 100%; padding: 10px; border: 0; border-radius: 7px; color: var(--ink); background: var(--low); font: inherit; font-size: 12px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.recurring { justify-content: space-between; padding: 11px; border-radius: 8px; background: var(--low); }.recurring strong, .recurring small { display: block; }.recurring strong { font-size: 11px; }.recurring small { margin-top: 3px; color: var(--muted); font-size: 9px; }.recurring input { accent-color: var(--primary); }.override { padding: 14px; border-radius: 10px; background: var(--container); }.override h3 { margin: 0 0 12px; font-size: 12px; }.override h3 small { float: right; color: var(--green); font-size: 9px; }.rule { margin-top: 8px; padding: 11px; border-radius: 7px; background: white; font-size: 10px; }.rule strong { display: block; }.rule > span { float: right; padding: 4px 8px; border-radius: 999px; color: var(--green); background: var(--green-container); font-size: 9px; }.rule small { display: block; margin-top: 3px; color: var(--muted); }.rule hr { border: 0; border-top: 1px solid var(--high); }.rule b { float: right; }.override p { margin: 10px 0 0; padding: 10px; border-radius: 7px; color: var(--muted); background: white; font-size: 10px; line-height: 1.5; }.drawer-footer { justify-content: space-between; gap: 12px; padding-top: 18px; border-top: 1px solid var(--high); }.drawer-footer > div { display: flex; gap: 8px; }.drawer-footer .primary-button, .drawer-footer .secondary-button { padding: 10px 13px; font-size: 10px; }.delete { color: #ba1a1a; background: transparent; font-size: 10px; }
.date-field { width: 100%; padding: 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border-radius: 7px; color: var(--ink); background: var(--low); font: inherit; font-size: 12px; text-align: left; }.date-field > span:last-child { color: var(--primary); font-size: 14px; }.drawer select { width: 100%; padding: 10px; border: 0; border-radius: 7px; color: var(--ink); background: var(--low); font: inherit; font-size: 12px; }.date-picker { padding: 14px; border: 1px solid #dbc1ba88; border-radius: 10px; background: var(--low); box-shadow: 0 8px 20px #2a26241a; }.date-picker-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.date-picker-heading small { color: var(--primary); font-size: 9px; letter-spacing: .1em; font-weight: 700; }.date-picker-heading h3 { margin: 3px 0 0; font-family: Newsreader, serif; font-size: 19px; font-weight: 500; }.date-picker-nav { display: flex; gap: 4px; }.date-picker-nav button { width: 28px; height: 28px; border-radius: 50%; color: var(--muted); background: white; font-size: 19px; line-height: 1; }.date-picker-weekdays, .date-picker-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }.date-picker-weekdays { margin-top: 14px; color: var(--muted); font-size: 9px; text-align: center; }.date-picker-days { margin-top: 5px; }.date-picker-days button, .date-picker-days > span { min-height: 30px; display: grid; place-items: center; border-radius: 7px; font-size: 11px; }.date-picker-days button { color: var(--ink); background: white; }.date-picker-days button:hover { color: white; background: var(--primary-container); }.date-picker-days button.selected { color: white; background: var(--primary); box-shadow: 0 0 0 2px var(--primary), 0 0 0 4px var(--low); }.date-picker-today { margin-top: 10px; padding: 5px 8px; border-radius: 999px; color: var(--primary); background: transparent; font-size: 10px; }
.recurring { display: block; }.recurring-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.recurrence-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; padding-top: 11px; border-top: 1px solid #dbc1ba66; }.recurrence-options label { min-width: 0; display: flex; flex-direction: column; gap: 5px; color: var(--ink); font-size: 11px; }.recurrence-help { display: block; margin-top: 8px; color: var(--muted); font-size: 9px; }
@media (max-width: 1050px) { .admin-sidebar { width: 220px; }.admin-main { margin-left: 220px; }.admin-flash { padding-inline: 22px; }.admin-content { padding: 28px 22px; }.intro-row { display: block; }.button-row { justify-content: flex-start; margin-top: 20px; }.summary-grid { grid-template-columns: 1fr; }.summary-card { min-height: 0; }.section-label small { display: none; } }
@media (max-width: 700px) { .admin-sidebar { position: static; width: auto; min-height: auto; gap: 25px; }.admin-sidebar .admin-nav { display: flex; overflow-x: auto; }.admin-sidebar .admin-nav a { white-space: nowrap; }.admin-main { margin-left: 0; }.admin-header { height: auto; min-height: 70px; padding: 15px 18px; }.operating-zone span { display: none; }.status-pill { display: none; }.admin-content { padding: 24px 16px 45px; }.desktop-break { display: none; }.intro-row h1 { font-size: 34px; }.button-row .secondary-button span { display: none; }.button-row .secondary-button { padding: 11px 13px; }.schedule-heading { display: block; }.legend { justify-content: flex-start; margin-top: 15px; }.drawer { padding: 20px; }.drawer-footer { align-items: flex-end; }.drawer-footer > div { flex-wrap: wrap; justify-content: flex-end; }.drawer-footer .primary-button { max-width: 185px; }.form-grid { grid-template-columns: 1fr; } }

/* Responsive shell follows the Stitch mobile pattern: compact app bar, fluid
   content, and a bottom tab bar below the large-screen sidebar breakpoint. */
.mobile-app-bar, .mobile-bottom-nav { display: none; }
body.drawer-open { overflow: hidden; }

@media (max-width: 1023px) {
  .admin-sidebar, .admin-header { display: none; }
  .admin-flash { padding: 16px 16px 0; }
  .mobile-app-bar { position: sticky; top: 0; z-index: 6; display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 10px 16px; border-bottom: 1px solid #dbc1ba55; background: #fff8f5f2; backdrop-filter: blur(14px); }
  .mobile-brand { display: flex; align-items: center; gap: 8px; color: var(--ink); text-decoration: none; }
  .mobile-brand .brand-mark { width: 28px; height: 28px; }
  .mobile-brand strong, .mobile-brand small { display: block; }
  .mobile-brand strong { font-family: Newsreader, serif; font-size: 16px; line-height: 1; }
  .mobile-brand small { margin-top: 4px; color: var(--primary); font-size: 9px; letter-spacing: .1em; font-weight: 700; }
  .mobile-brand small i { display: inline-block; width: 6px; height: 6px; margin-left: 4px; border-radius: 50%; background: var(--green); }
  .mobile-actions { display: flex; align-items: center; gap: 8px; }
  .mobile-new-event { padding: 8px 12px; border-radius: 999px; color: white; background: var(--primary); font-size: 11px; font-weight: 700; }
  .admin-main { margin-left: 0; padding-bottom: 74px; }
  .admin-content { width: 100%; max-width: 1280px; padding: 24px clamp(16px, 4vw, 40px) 36px; }
  .intro-row { align-items: flex-start; }
  .intro-row h1 { font-size: clamp(34px, 5vw, 44px); }
  .button-row { justify-content: flex-start; }
  .mobile-bottom-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 5; height: 64px; padding: 5px 8px; display: flex; align-items: stretch; justify-content: space-around; border-top: 1px solid #dbc1ba55; background: #fff8f5f2; backdrop-filter: blur(14px); box-shadow: 0 -5px 18px #2a26240c; }
  .mobile-bottom-nav a { min-width: 68px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 10px; color: var(--muted); text-decoration: none; }
  .mobile-bottom-nav a.active { color: var(--primary); background: var(--low); }
  .mobile-bottom-nav a span { font-size: 19px; line-height: 1; }
  .mobile-bottom-nav a small { font-size: 9px; font-weight: 700; }
  .schedule-heading { align-items: flex-start; }
  .legend { justify-content: flex-start; }
}

@media (max-width: 767px) {
  .admin-content { padding: 20px 16px 28px; }
  .intro-row { margin-bottom: 30px; }
  .eyebrow { font-size: 9px; line-height: 1.5; }
  .intro-row h1 { margin-top: 8px; font-size: 34px; line-height: 1.08; }
  .intro-row p { font-size: 13px; line-height: 1.55; }
  .button-row { width: 100%; display: grid; grid-template-columns: auto auto 1fr; gap: 7px; margin-top: 18px; }
  .button-row .secondary-button { justify-content: center; padding: 10px 11px; }
  .button-row .secondary-button span { display: inline; }
  .button-row .primary-button { justify-content: center; min-width: 0; padding-inline: 10px; }
  .button-row .primary-button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .section-label { flex-wrap: wrap; gap: 7px; margin-bottom: 12px; font-size: 10px; }
  .section-label > span:nth-of-type(2) { display: none; }
  .summary-grid { grid-template-columns: 1fr; gap: 12px; }
  .summary-card { padding: 16px; gap: 16px; }
  .summary-card footer { font-size: 9px; }
  .schedule-section { margin-top: 32px; }
  .schedule-heading h2 { font-size: 21px; line-height: 1.25; }
  .schedule-heading h2 span { display: block; margin-top: 2px; font-size: 14px; }
  .week-switch { margin-top: 8px; }
  .legend { flex-wrap: nowrap; overflow-x: auto; width: calc(100vw - 32px); padding: 3px 0 7px; scrollbar-width: none; }
  .legend::-webkit-scrollbar { display: none; }
  .legend span { flex: none; }
  .calendar { width: calc(100vw - 32px); margin-left: 0; padding: 10px; }
  .day-headers, .day-columns { min-width: 760px; gap: 6px; }
  .day-column { min-height: 240px; padding: 5px; }
  .schedule-event { padding: 9px; }
  .schedule-event strong { font-size: 11px; }
  .roster-note { font-size: 11px; }
  .event-modal { align-items: flex-end; }
  .drawer { width: 100%; max-height: 90vh; height: auto; min-height: 60vh; padding: 20px 16px 16px; border-radius: 22px 22px 0 0; animation: sheet-in .22s ease-out; }
  .drawer:before { content: ""; width: 48px; height: 5px; margin: -9px auto 9px; border-radius: 999px; background: #dbc1baa8; }
  .drawer-content { gap: 14px; max-height: calc(90vh - 84px); overflow-y: auto; padding: 0 2px 4px; }
  .drawer-heading h2 { font-size: 19px; }
  .preset-grid { gap: 6px; }
  .preset-grid button { padding: 9px 3px; font-size: 9px; }
  .override { padding: 11px; }
  .override h3 { font-size: 10px; }
  .rule { padding: 9px; font-size: 9px; }
  .drawer-footer { margin-top: 12px; padding-top: 12px; align-items: stretch; }
  .drawer-footer > div { flex: 1; display: grid; grid-template-columns: auto 1fr; }
  .drawer-footer .secondary-button, .drawer-footer .primary-button { justify-content: center; padding: 10px 8px; font-size: 9px; }
  @keyframes sheet-in { from { transform: translateY(20px); opacity: .6; } to { transform: translateY(0); opacity: 1; } }
}

@media (min-width: 1024px) and (max-width: 1400px) {
  .intro-row { flex-wrap: wrap; align-items: flex-start; }
  .button-row { justify-content: flex-start; }
  .schedule-heading { flex-wrap: wrap; align-items: flex-start; }
  .legend { justify-content: flex-start; }
}

.summary-card, .card-heading, .card-heading > div, .occupancy, .occupancy > div:last-child { min-width: 0; }
.card-icon { flex: none; }
.event-lines > div { min-width: 0; }
.event-lines b { white-space: nowrap; }
.inline-form { display: inline; margin: 0; }
.approval-drawer .drawer-heading { justify-content: space-between; align-items: flex-start; border-bottom: 1px solid #dbc1ba55; }
.approval-drawer .close-button { width: 42px; height: 42px; flex: none; display: grid; place-items: center; margin: 0; padding: 0; border-radius: 50%; color: var(--muted); background: var(--low); font-size: 28px; line-height: 1; }
.approval-footer form { width: 100%; margin: 0; }
.approval-footer .primary-button, .approval-footer .secondary-button { width: 100%; justify-content: center; }
.approval-footer button:disabled { opacity: .45; cursor: not-allowed; }
.invite-help { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

/* Awaiting approval member state */
.pending-page { min-height: 100vh; color: var(--ink); background: var(--surface); font-family: "Plus Jakarta Sans", sans-serif; }.pending-header { position: sticky; top: 0; z-index: 5; min-height: 64px; padding: 0 clamp(16px, 5vw, 70px); display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid #dbc1ba44; background: #fff8f5ee; backdrop-filter: blur(14px); }.pending-brand { display: flex; align-items: center; gap: 10px; color: var(--ink); font-family: Newsreader, serif; font-size: 20px; text-decoration: none; white-space: nowrap; }.pending-brand-mark { display: grid; place-items: center; width: 30px; height: 30px; color: var(--primary); font-family: sans-serif; font-size: 27px; }.pending-nav { display: flex; align-items: center; gap: 8px; }.pending-nav a { padding: 8px 13px; border-radius: 999px; color: var(--muted); font-size: 12px; font-weight: 600; text-decoration: none; }.pending-nav a.active, .pending-nav a:hover { color: white; background: var(--primary-container); }.pending-admin-link { color: var(--primary); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }.pending-main { width: min(100% - 32px, 960px); margin: 0 auto; padding: 48px 0 60px; }.pending-card { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; padding: clamp(32px, 5vw, 58px); text-align: center; border-radius: 14px; background: white; box-shadow: 0 16px 30px #2a26241a; }.pending-accent { position: absolute; inset: 0 0 auto; height: 7px; background: linear-gradient(90deg, var(--primary), var(--primary-container), var(--gold)); }.pending-emblem { position: relative; display: grid; place-items: center; width: 92px; height: 92px; margin: 2px 0 18px; border-radius: 50%; color: var(--primary); background: var(--container); font-size: 42px; box-shadow: inset 0 2px 5px #2a26240c; }.pending-emblem i { position: absolute; right: -3px; bottom: -2px; display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: var(--gold); background: #ffddb5; font-size: 14px; font-style: normal; }.pending-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 13px; border-radius: 999px; color: var(--gold); background: var(--high); font-size: 11px; font-weight: 700; letter-spacing: .06em; }.pending-pill b { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }.pending-card h1 { max-width: 680px; margin: 13px 0 0; font-family: Newsreader, serif; font-size: clamp(32px, 4vw, 44px); line-height: 1.08; font-weight: 500; letter-spacing: -.02em; }.pending-lead { max-width: 680px; margin: 18px 0 0; color: var(--muted); font-size: 17px; line-height: 1.55; }.pending-metrics { width: 100%; margin-top: 30px; padding: 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; border-radius: 12px; background: var(--low); text-align: left; }.pending-metrics > div { min-width: 0; display: flex; align-items: center; gap: 10px; }.pending-metrics > div + div { padding-left: 16px; border-left: 1px solid var(--surface-dim); }.metric-icon { display: grid; place-items: center; width: 30px; height: 30px; flex: none; color: var(--primary); font-size: 24px; }.metric-icon.sage { color: var(--green); }.metric-icon.gold { color: var(--gold); }.pending-metrics small, .pending-metrics strong { display: block; }.pending-metrics small { color: var(--muted); font-size: 10px; letter-spacing: .06em; font-weight: 700; }.pending-metrics strong { margin-top: 3px; font-size: 14px; line-height: 1.35; }.pending-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin-top: 28px; }.pending-actions form { margin: 0; }.pending-primary, .pending-secondary { display: inline-flex; align-items: center; gap: 7px; padding: 12px 19px; border: 0; border-radius: 999px; font: inherit; font-size: 13px; font-weight: 700; text-decoration: none; }.pending-primary { color: white; background: var(--primary); box-shadow: 0 4px 10px #97422a33; }.pending-primary:hover { background: var(--primary-container); }.pending-secondary { color: var(--ink); background: var(--high); }.pending-text-action { padding: 8px; color: var(--muted); font-size: 12px; text-decoration: none; }.pending-text-action:hover { color: var(--primary); }.pending-primary.is-refreshing { opacity: .7; pointer-events: none; }.pending-next { margin-top: 28px; padding: 28px; border-radius: 14px; background: var(--low); }.pending-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 18px; }.pending-section-heading h2 { margin: 0; font-family: Newsreader, serif; font-size: 24px; font-weight: 500; }.pending-section-heading span { color: var(--muted); font-size: 10px; letter-spacing: .08em; font-weight: 700; }.pending-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }.pending-steps article { min-height: 250px; padding: 17px; display: flex; flex-direction: column; border-radius: 10px; background: white; }.pending-steps article header { display: flex; align-items: center; justify-content: space-between; }.pending-steps article header b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: var(--primary); background: #ffdbd1; font-size: 15px; }.pending-steps article:nth-child(n+2) header b { color: var(--muted); background: var(--high); }.pending-steps article header span { color: var(--primary); font-size: 20px; }.pending-steps h3 { margin: 12px 0 4px; font-size: 16px; }.pending-steps p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }.pending-steps strong { margin-top: auto; padding-top: 18px; color: var(--primary); font-size: 11px; }.pending-steps strong.muted { color: var(--muted); opacity: .7; }.pending-support { margin-top: 24px; padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-radius: 12px; background: var(--high); }.support-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 50%; color: var(--primary); background: white; font-size: 19px; }.pending-support > div { flex: 1; }.pending-support p { margin: 0; font-size: 14px; line-height: 1.45; }.pending-support p a, .pending-support > a { color: var(--primary); font-weight: 700; text-decoration: none; }.pending-support small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }.pending-support > a { flex: none; color: var(--muted); font-size: 11px; }.pending-footer { padding: 30px clamp(16px, 5vw, 70px); display: flex; align-items: center; justify-content: space-between; gap: 20px; background: var(--low); color: var(--muted); }.pending-footer strong { display: block; color: var(--ink); font-family: Newsreader, serif; font-size: 19px; }.pending-footer span { display: block; margin-top: 5px; font-size: 11px; }.pending-footer > div:last-child { display: flex; gap: 20px; text-align: right; }
@media (max-width: 850px) { .pending-header { padding-inline: 18px; }.pending-nav { display: none; }.pending-main { width: min(100% - 24px, 680px); padding-top: 28px; }.pending-metrics { grid-template-columns: 1fr; }.pending-metrics > div + div { padding-top: 13px; padding-left: 0; border-top: 1px solid var(--surface-dim); border-left: 0; }.pending-steps { grid-template-columns: 1fr; }.pending-steps article { min-height: 0; }.pending-support { align-items: flex-start; flex-wrap: wrap; }.pending-support > a { margin-left: 52px; }.pending-footer { align-items: flex-start; flex-direction: column; }.pending-footer > div:last-child { flex-direction: column; gap: 3px; text-align: left; } }
@media (max-width: 520px) { .pending-header { min-height: 58px; }.pending-brand { font-size: 17px; }.pending-admin-link { font-size: 9px; }.pending-main { width: calc(100% - 20px); padding: 20px 0 35px; }.pending-card { padding: 34px 16px 25px; }.pending-emblem { width: 78px; height: 78px; font-size: 34px; }.pending-card h1 { font-size: 30px; }.pending-lead { font-size: 14px; }.pending-metrics { margin-top: 22px; padding: 14px; }.pending-metrics strong { font-size: 12px; }.pending-actions { flex-direction: column; width: 100%; }.pending-actions form, .pending-primary, .pending-secondary { width: 100%; justify-content: center; }.pending-text-action { margin-top: 2px; }.pending-next { padding: 18px 14px; }.pending-section-heading { display: block; }.pending-section-heading span { display: block; margin-top: 6px; }.pending-support { padding: 15px; }.pending-support > a { margin-left: 0; font-size: 10px; }.pending-footer { padding: 24px 16px; } }

/* Membership Registry */
.registry-nav-label { margin: 0 8px 8px; color: var(--muted); font-size: 10px; letter-spacing: .12em; font-weight: 700; }.registry-shell .admin-nav a { display: flex; align-items: center; gap: 12px; font-family: "Plus Jakarta Sans", sans-serif; font-size: 14px; }.registry-shell .admin-nav a > span:first-child { font-size: 18px; }.registry-shell .admin-nav a b { margin-left: auto; display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; color: white; background: var(--primary); font-size: 10px; }.registry-sidebar-bottom { display: flex; flex-direction: column; gap: 12px; padding: 16px 4px 0; border-top: 1px solid #dbc1ba55; }.kiln-status { padding: 12px; border: 1px solid #dbc1ba55; border-radius: 12px; background: #f5ece9b8; }.kiln-status i { display: inline-block; width: 9px; height: 9px; margin-right: 7px; border-radius: 50%; background: var(--green); }.kiln-status strong, .kiln-status small { display: block; }.kiln-status strong { font-size: 11px; }.kiln-status small { margin-top: 6px; color: var(--muted); font-size: 10px; }.member-switch { padding: 9px 12px; border-radius: 999px; color: var(--ink); background: var(--high); font-size: 11px; text-align: center; text-decoration: none; }.console-title { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; }.console-title .status-pill { font-size: 10px; font-weight: 500; }.registry-content { max-width: 1280px; margin: 0 auto; }.registry-breadcrumb { margin-bottom: 14px; color: var(--muted); font-size: 11px; letter-spacing: .1em; }.registry-breadcrumb span { color: var(--primary); font-weight: 700; }.registry-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 22px; }.registry-intro h1 { margin: 0; font-family: Newsreader, serif; font-size: clamp(36px, 4vw, 48px); line-height: 1.1; font-weight: 400; }.registry-intro p { max-width: 660px; margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }.registry-intro .button-row { flex: none; }.registry-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 32px; }.registry-stat { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px; border: 1px solid #dbc1ba55; border-radius: 12px; background: var(--low); }.registry-stat small, .registry-stat strong, .registry-stat .stat-detail { display: block; }.registry-stat small { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }.registry-stat strong { margin-top: 4px; font-family: Newsreader, serif; font-size: 35px; line-height: 1; }.stat-detail { margin-top: 4px; color: var(--muted); font-size: 10px; }.stat-detail.sage { color: var(--green); }.stat-detail.rose { color: var(--primary); }.stat-icon { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border-radius: 50%; color: var(--ink); background: var(--high); font-style: normal; font-size: 21px; }.stat-icon.sage { color: var(--green); background: var(--green-container); }.stat-icon.rose { color: var(--primary); background: #ffdbd1; }.stat-icon.gold { color: var(--gold); background: #ffddb5; }.registry-filters { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; }.member-search { width: min(100%, 315px); flex: none; display: flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid #dbc1ba88; border-radius: 999px; color: var(--muted); background: var(--low); font-size: 20px; }.member-search input { min-width: 0; width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font: inherit; font-size: 11px; }.member-search input::placeholder { color: var(--muted); }.filter-pills { display: flex; align-items: center; gap: 7px; min-width: 0; overflow-x: auto; scrollbar-width: none; }.filter-pills::-webkit-scrollbar { display: none; }.filter-pills button { flex: none; padding: 8px 12px; border: 1px solid #dbc1ba55; border-radius: 999px; color: var(--muted); background: var(--low); font-size: 11px; }.filter-pills button.selected { color: white; border-color: var(--primary); background: var(--primary); }.filter-pills b, .filter-pills em { margin-left: 4px; font-style: normal; font-size: 10px; }.filter-pills b { padding: 2px 5px; border-radius: 50%; background: var(--primary-container); }.registry-section-heading, .directory-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }.registry-section-heading { margin-bottom: 14px; }.registry-section-heading h2, .directory-heading h2 { margin: 0; font-family: Newsreader, serif; font-size: 24px; font-weight: 500; }.registry-section-heading h2 span { display: inline-flex; align-items: center; gap: 5px; margin-left: 8px; padding: 5px 9px; border-radius: 999px; color: #643f00; background: #ffddb5; font-family: "Plus Jakarta Sans", sans-serif; font-size: 10px; vertical-align: middle; }.registry-section-heading > small { color: var(--muted); font-size: 11px; }.request-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }.request-card { min-width: 0; min-height: 302px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px; border: 1px solid #dbc1ba66; border-radius: 16px; background: var(--low); }.request-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 16px; }.member-identity, .table-member { display: flex; align-items: center; gap: 10px; min-width: 0; }.member-identity > span, .table-member > span { min-width: 0; }.member-identity strong, .member-identity small, .table-member strong, .table-member small { display: block; }.member-identity strong, .table-member strong { font-size: 15px; }.member-identity small, .table-member small { margin-top: 3px; color: var(--muted); font-size: 10px; }.member-avatar { width: 42px; height: 42px; flex: none; display: grid; place-items: center; border-radius: 50%; color: var(--ink); background: #e9e1dd; font-size: 11px; font-style: normal; font-weight: 700; }.member-avatar.rose { color: var(--primary); background: #ffdbd1; }.member-avatar.gold { color: #643f00; background: #ffddb5; }.request-status { flex: none; padding: 5px 8px; border-radius: 999px; color: var(--muted); background: var(--high); font-size: 10px; }.request-status.rose { color: var(--primary); background: #ffdbd1; }.request-details { display: grid; gap: 8px; padding: 12px; border: 1px solid #dbc1ba44; border-radius: 12px; background: #f5ece9a8; color: var(--muted); font-size: 11px; }.request-details span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.request-card footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px solid #dbc1ba55; }.request-card footer > div { display: flex; align-items: center; gap: 6px; }.quiet-button, .decline-button { padding: 7px 9px; border-radius: 8px; color: var(--muted); background: transparent; font-size: 11px; }.decline-button { color: #ba1a1a; }.approve-button { display: inline-flex; align-items: center; gap: 4px; padding: 8px 11px; border-radius: 999px; color: white; background: var(--primary); font-size: 10px; }.approve-button:hover, .primary-button:hover { background: var(--primary-container); }.directory-section { margin-top: 32px; padding: 22px 24px; border: 1px solid #dbc1ba66; border-radius: 16px; background: var(--low); }.directory-heading { margin-bottom: 20px; }.directory-heading h2 span { margin-left: 6px; padding: 4px 8px; border-radius: 999px; color: var(--muted); background: var(--high); font-family: "Plus Jakarta Sans", sans-serif; font-size: 10px; vertical-align: middle; }.directory-heading > div { display: flex; padding: 3px; border: 1px solid #dbc1ba55; border-radius: 9px; background: var(--container); }.directory-tab { padding: 7px 11px; border-radius: 7px; color: var(--muted); background: transparent; font-size: 10px; }.directory-tab.selected { color: var(--ink); background: white; box-shadow: 0 1px 4px #2a26240b; }.directory-table-wrap { overflow-x: auto; }.directory-table { width: 100%; min-width: 820px; border-collapse: collapse; text-align: left; font-size: 11px; }.directory-table th { padding: 11px 13px; color: var(--muted); background: #f5ece9aa; font-size: 10px; letter-spacing: .05em; text-transform: uppercase; }.directory-table td { padding: 14px 13px; border-bottom: 1px solid #dbc1ba44; color: var(--muted); }.directory-table tr:last-child td { border-bottom: 0; }.directory-table .table-member { color: var(--ink); }.member-status { display: inline-block; padding: 5px 8px; border-radius: 999px; color: var(--green); background: var(--green-container); font-size: 10px; white-space: nowrap; }.member-status.paused { color: var(--muted); background: var(--high); }.next-booking { color: var(--primary) !important; }.directory-cards { display: none; }.directory-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 17px; color: var(--muted); font-size: 10px; }.directory-footer b { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; color: white; background: var(--primary); }.approval-backdrop { position: fixed; inset: 0; z-index: 20; background: #342f2d66; backdrop-filter: blur(4px); }.approval-backdrop[hidden], .approval-drawer[hidden] { display: none; }.approval-drawer { position: fixed; inset: 0 0 0 auto; z-index: 21; width: min(100%, 520px); display: flex; flex-direction: column; justify-content: space-between; overflow-y: auto; background: white; box-shadow: -10px 0 30px #2a262433; }.approval-drawer-content { padding: 27px; }.approval-drawer .drawer-heading { padding-bottom: 14px; }.approval-drawer .drawer-heading h2 { margin: 4px 0 0; font-family: Newsreader, serif; font-size: 23px; font-weight: 500; }.approval-drawer label { display: flex; flex-direction: column; gap: 6px; color: var(--ink); font-size: 11px; font-weight: 700; }.approval-member, .approval-status { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid #dbc1ba55; border-radius: 12px; background: var(--low); }.approval-member { margin: 16px 0; }.approval-member strong, .approval-member small, .approval-member em { display: block; }.approval-member small { margin-top: 3px; color: var(--muted); font-size: 10px; }.approval-member em { margin-top: 5px; color: var(--primary); font-size: 9px; font-style: normal; }.approval-fields { display: grid; gap: 14px; }.approval-status { justify-content: space-between; }.approval-status strong, .approval-status small { display: block; }.approval-status small { margin-top: 4px; color: var(--muted); font-size: 9px; font-weight: 400; }.approval-status > b { padding: 6px 9px; border-radius: 999px; color: var(--green); background: var(--green-container); font-size: 10px; white-space: nowrap; }.approval-drawer input, .approval-drawer select, .approval-drawer textarea { width: 100%; padding: 10px 12px; border: 1px solid #dbc1ba66; border-radius: 9px; outline: 0; color: var(--ink); background: var(--container); font: inherit; font-size: 11px; }.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 9px; background: var(--container); }.segmented button { padding: 9px 7px; border-radius: 7px; color: var(--muted); background: transparent; font-size: 10px; }.segmented button.selected { color: var(--ink); background: white; }.approval-footer { display: grid; gap: 8px; padding: 16px 27px; border-top: 1px solid #dbc1ba55; background: var(--low); }.approval-footer button { justify-content: center; }.drawer-handle { display: none; }

@media (max-width: 1100px) { .registry-stats { grid-template-columns: repeat(2, 1fr); }.registry-intro { align-items: flex-start; flex-wrap: wrap; }.registry-filters { display: block; }.member-search { width: 100%; margin-bottom: 10px; }.request-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .registry-content { padding-top: 18px; }.registry-breadcrumb { display: none; }.registry-intro { display: block; }.registry-intro h1 { font-size: 35px; }.registry-intro p { font-size: 13px; }.registry-intro .button-row { margin-top: 17px; }.registry-stats { gap: 9px; margin-top: 22px; margin-bottom: 25px; }.registry-stat { padding: 12px; }.registry-stat small { font-size: 8px; }.registry-stat strong { font-size: 28px; }.registry-stat .stat-detail { font-size: 9px; }.stat-icon { width: 34px; height: 34px; font-size: 17px; }.registry-section-heading h2, .directory-heading h2 { font-size: 21px; }.registry-section-heading > small { display: none; }.registry-section-heading h2 span { display: block; width: fit-content; margin: 7px 0 0; }.request-grid { grid-template-columns: 1fr; gap: 11px; }.request-card { min-height: 0; padding: 14px; }.request-card footer { margin-top: 17px; }.request-status { font-size: 9px; }.directory-section { margin-top: 25px; padding: 15px 12px; }.directory-heading { display: block; margin-bottom: 12px; }.directory-heading > div { width: fit-content; margin-top: 11px; }.directory-table-wrap { display: none; }.directory-cards { display: grid; gap: 9px; }.directory-card { padding: 13px; border: 1px solid #dbc1ba55; border-radius: 12px; background: #fff8f5aa; }.directory-card .table-member { align-items: flex-start; }.directory-card .member-status { margin-left: auto; }.directory-card dl { display: grid; gap: 7px; margin: 13px 0 0; padding-top: 11px; border-top: 1px solid #dbc1ba44; }.directory-card dl div { display: flex; justify-content: space-between; gap: 10px; }.directory-card dt { color: var(--muted); font-size: 9px; }.directory-card dd { max-width: 66%; margin: 0; overflow: hidden; color: var(--ink); font-size: 10px; text-align: right; text-overflow: ellipsis; white-space: nowrap; }.directory-footer { display: block; line-height: 2; }.directory-footer span { display: block; margin-top: 5px; }.approval-drawer { inset: auto 0 0; width: 100%; max-height: 90vh; border-radius: 22px 22px 0 0; }.drawer-handle { display: block; width: 48px; height: 5px; margin: 9px auto 0; border-radius: 999px; background: #dbc1baa8; }.approval-drawer-content { padding: 18px 16px; max-height: calc(90vh - 135px); overflow-y: auto; }.approval-drawer .drawer-heading h2 { font-size: 20px; }.approval-footer { padding: 12px 16px; }.approval-footer .secondary-button { display: inline-flex; }.registry-shell .mobile-new-event { padding-inline: 10px; } }
.directory-section.showing-archived > .directory-table-wrap, .directory-section.showing-archived > .directory-cards, .directory-section.showing-archived > .directory-footer { display: none; }
