@import url('https://fonts.googleapis.com/css?family=Quicksand:300,400,500,700');
:root { --lotus-ink: #28352f; --lotus-muted: #66736d; --lotus-lilac: #7b5ea7; --lotus-wash: #f7f4fa; }
* { box-sizing: border-box; }
body { margin: 0; color: var(--lotus-ink); background: #fcfbfd; font-family: 'Quicksand', sans-serif; }
body.studio-shell { color: var(--lotus-ink); background: #fcfbfd; font-family: 'Quicksand', sans-serif; }
body.studio-shell,
body.studio-shell button,
body.studio-shell input,
body.studio-shell select,
body.studio-shell textarea,
body.studio-shell h1,
body.studio-shell h2,
body.studio-shell h3,
body.studio-shell h4,
body.studio-shell h5,
body.studio-shell h6,
body.studio-shell p,
body.studio-shell a,
body.studio-shell span,
body.studio-shell label,
body.studio-shell li,
body.lotus-classes-page,
body.lotus-classes-page button,
body.lotus-classes-page input,
body.lotus-classes-page select,
body.lotus-classes-page textarea,
body.lotus-classes-page h1,
body.lotus-classes-page h2,
body.lotus-classes-page h3,
body.lotus-classes-page h4,
body.lotus-classes-page h5,
body.lotus-classes-page h6,
body.lotus-classes-page p,
body.lotus-classes-page a,
body.lotus-classes-page span,
body.lotus-classes-page label,
body.lotus-classes-page li { font-family: 'Quicksand', sans-serif; }
body.studio-shell *,
body.lotus-classes-page * { font-family: 'Quicksand', sans-serif !important; }
body.studio-shell .studio-page-heading h1,
body.lotus-classes-page .lotus-schedule-intro h1,
body.lotus-classes-page .lotus-hero-copy h1 { font-family: 'Quicksand', sans-serif !important; }
body.studio-shell .studio-header { background: rgba(255,255,255,.96); border-bottom: 1px solid #ebe5ef; box-shadow: 0 3px 18px rgba(46,31,60,.06); }
body.studio-shell .studio-nav { min-height: 86px; padding: 1rem max(1.25rem, calc((100% - 1120px) / 2)); display: flex; gap: 1rem; align-items: center; }
body.studio-shell .studio-brand { color: var(--lotus-ink); letter-spacing: .06em; text-transform: uppercase; font-size: .9rem; }
body.studio-shell .studio-brand img { width: auto; max-height: 52px; max-width: 120px; }
body.studio-shell .studio-nav > span { color: var(--lotus-muted); font-style: italic; font-size: .95rem; }
body.studio-shell .studio-nav-links { margin-left: auto; display: flex; align-items: center; gap: 1rem; }
.studio-nav-links a, .studio-tabs a, a { color: var(--lotus-lilac); }
.studio-nav-links a { text-decoration: none; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
body.studio-shell .studio-tabs { gap: 2rem; padding: 0 max(1.25rem, calc((100% - 1120px) / 2)); }
.studio-tabs a { padding: .85rem 0; text-decoration: none; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.studio-tabs a[aria-current] { color: var(--lotus-ink); border-bottom: 2px solid var(--lotus-lilac); }
body.studio-shell .studio-main { max-width: 1120px; min-height: 70vh; margin: auto; padding: 4.5rem 1.25rem 6rem; }
.studio-page-heading { max-width: 680px; margin-bottom: 2.5rem; }
.studio-eyebrow { color: var(--lotus-lilac); font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; }
.studio-page-heading h1 { margin: .3rem 0 .8rem; font-size: clamp(2.5rem, 6vw, 4.5rem); font-weight: 400; line-height: 1; }
.studio-page-heading > p:last-child { color: var(--lotus-muted); font-size: 1.15rem; line-height: 1.65; }
.studio-page > .studio-card, .studio-page > .class-card { display: inline-flex; vertical-align: top; width: calc(50% - .75rem); margin: 0 1.25rem 1.5rem 0; }
.studio-card { min-height: 245px; padding: 2rem; flex-direction: column; background: white; border: 1px solid #eee8f1; border-radius: 3px; box-shadow: 0 12px 32px rgba(46,31,60,.07); }
.studio-card:nth-of-type(even) { margin-right: 0; }
.studio-card h2 { margin: 0 0 .75rem; font-weight: 400; font-size: 1.8rem; }
.studio-card h2 a { text-decoration: none; }
.studio-card p { color: var(--lotus-muted); line-height: 1.65; }
.studio-price { color: var(--lotus-ink) !important; font-size: 1.5rem; }
.studio-button { align-self: flex-start; margin-top: auto; padding: .8rem 1.2rem; color: white !important; background: var(--lotus-lilac); text-decoration: none; font-family: Arial, sans-serif; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.checkout-summary { margin: 1.5rem 0; padding: 1.25rem; background: var(--lotus-wash); border: 1px solid #eee8f1; }
.checkout-summary-row { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid #e8dfed; font-family: Arial, sans-serif; font-size: .85rem; }
.checkout-summary-row:last-of-type { border-bottom: 0; }
.checkout-summary-row span { color: var(--lotus-muted); }
.checkout-summary-row strong { color: var(--lotus-ink); text-align: right; }
.checkout-description, .checkout-test-note { color: var(--lotus-muted); line-height: 1.55; }
.checkout-success { color: #39734a; font-weight: 700; line-height: 1.55; }
.checkout-description { margin: .75rem 0; }
.checkout-test-note { font-size: .9rem; }
.studio-page > .card { max-width: 760px; margin: 0 auto; padding: 2rem; background: #fff; border: 1px solid #eee8f1; border-radius: 3px; box-shadow: 0 12px 32px rgba(46,31,60,.07); }
.studio-page > .card h1 { margin-top: 0; font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 400; }
.studio-page > .card p { color: var(--lotus-muted); line-height: 1.65; }
.studio-page .headline { color: var(--lotus-ink); font-size: 1.6rem; }
.studio-page .button { display: inline-block; padding: .8rem 1.2rem; color: #fff; background: var(--lotus-lilac); text-decoration: none; font-family: Arial, sans-serif; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.studio-page .class-card { min-height: 245px; }
.classes-page { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.classes-page .studio-page-heading { max-width: 760px; grid-column: 1 / -1; margin-bottom: 1rem; }
.classes-page .class-card { position: relative; overflow: hidden; width: auto; min-height: 360px; margin: 0; padding: 2.5rem; border: 0; border-top: 5px solid var(--lotus-lilac); border-radius: 12px; background: linear-gradient(145deg, #fff 0%, #fbf8fd 100%); box-shadow: 0 18px 45px rgba(46,31,60,.11); }
.classes-page .class-card:after { content: ''; position: absolute; right: -35px; top: -45px; width: 140px; height: 140px; border: 1px solid rgba(123,94,167,.16); border-radius: 50%; box-shadow: 0 0 0 18px rgba(123,94,167,.04), 0 0 0 36px rgba(123,94,167,.025); }
.classes-page .class-card:before { content: 'FLOATING LOTUS  /  STUDIO'; display: block; margin-bottom: 1.25rem; color: #9b7db8; font: 700 .62rem/1 Arial, sans-serif; letter-spacing: .2em; }
.classes-page .class-card h2 { margin-bottom: .7rem; font-size: clamp(1.7rem, 3vw, 2.25rem); }
.classes-page .class-card h2 a { color: var(--lotus-ink); }
.classes-page .class-card h2 a:hover { color: var(--lotus-lilac); }
.classes-page .class-card > p { min-height: 3.3rem; margin-top: 0; }
.class-schedule { display: grid; gap: .65rem; margin: 1.25rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid #eee8f1; list-style: none; }
.class-session { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: center; padding: .9rem 1rem; background: #f4eef9; border: 1px solid #e9def1; border-radius: 7px; font-family: Arial, sans-serif; font-size: .78rem; }
.session-time { color: var(--lotus-ink); font-weight: 700; }
.session-spots { color: var(--lotus-muted); white-space: nowrap; }
.class-session form { grid-column: 1 / -1; }
.class-session .button { width: 100%; border: 0; border-radius: 4px; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.class-session .button:hover { background: #684b91; transform: translateY(-1px); }
.classes-page .studio-empty { padding: 3rem; text-align: center; background: var(--lotus-wash); }
@media (max-width: 760px) { .classes-page { grid-template-columns: 1fr; } .classes-page .studio-page-heading { grid-column: auto; } .classes-page .class-card { min-height: 0; padding: 2rem; } }

/* Floating Lotus class directory */
.lotus-classes-page { min-height: 100vh; margin: 0; color: #30283b; background: #f6f1eb; font-family: Arial, Helvetica, sans-serif; }
.lotus-classes-page * { box-sizing: border-box; }
.lotus-classes-page .lotus-schedule { position: relative; max-width: 1180px; margin: 0 auto; padding: 2rem 2.5rem 4rem; overflow: hidden; }
.lotus-classes-page .lotus-schedule:before { content: ''; position: absolute; z-index: 0; top: 0; right: 8%; width: 280px; height: 280px; border: 1px solid rgba(180,140,92,.24); border-radius: 50%; box-shadow: 0 0 0 32px rgba(180,140,92,.06), 0 0 0 64px rgba(180,140,92,.035); pointer-events: none; }
.lotus-classes-page .lotus-schedule-header { position: relative; z-index: 1; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 2rem; min-height: 440px; margin: 0 -2.5rem; padding: 2.5rem clamp(2.5rem, 7vw, 6.5rem) 2.25rem; color: #fff; background: #332442; background-image: radial-gradient(circle at 88% 18%, rgba(211,171,117,.27), transparent 27%), linear-gradient(135deg, #332442 0%, #49345d 56%, #684d6e 100%); }
.lotus-classes-page .lotus-schedule-header:after { content: '✦'; position: absolute; right: 10%; bottom: 13%; color: rgba(255,255,255,.2); font-size: 10rem; font-weight: 200; line-height: 1; transform: rotate(18deg); }
.lotus-classes-page .lotus-mark { display: flex; align-items: center; align-self: start; gap: .55rem; color: #fff; font-family: Georgia, serif; font-size: 1.15rem; line-height: .9; letter-spacing: .03em; text-decoration: none; }
.lotus-classes-page .lotus-mark img { width: 44px; height: 50px; object-fit: contain; object-position: center; filter: brightness(0) invert(1); }
.lotus-classes-page .lotus-hero-copy { align-self: center; max-width: 620px; }
.lotus-classes-page .eyebrow { margin: 0 0 1.4rem; color: #e6ba7f; font: 700 .68rem/1 Arial, sans-serif; letter-spacing: .19em; text-transform: uppercase; }
.lotus-classes-page .lotus-hero-copy h1 { max-width: 600px; margin: 0; color: #fff; font: 400 clamp(3.4rem, 8vw, 7rem)/.9 Georgia, serif; letter-spacing: -.055em; }
.lotus-classes-page em { color: #e5b878; font-style: italic; }
.lotus-classes-page .lotus-hero-copy > p:last-of-type { max-width: 430px; margin: 1.8rem 0 0; color: rgba(255,255,255,.75); font-size: 1.05rem; line-height: 1.65; }
.lotus-classes-page .lotus-links { grid-column: 1 / -1; align-self: end; display: flex; gap: 1.7rem; flex-wrap: wrap; margin: 0; }
.lotus-classes-page .lotus-links a { padding-bottom: .55rem; color: rgba(255,255,255,.68); border-bottom: 1px solid transparent; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.lotus-classes-page .lotus-links a:hover, .lotus-classes-page .lotus-links a.active { color: #fff; border-color: #e5b878; }
.lotus-classes-page .lotus-filters { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin: 0 -2.5rem; padding: 1.35rem clamp(2.5rem, 7vw, 6.5rem); color: #6e6375; background: #fff; border-bottom: 1px solid #eadfd4; }
.lotus-classes-page .lotus-filters > div:first-child { display: flex; gap: 1.25rem; align-items: center; }
.lotus-classes-page .lotus-filters strong { color: #30283b; font: 700 .72rem/1 Arial, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.lotus-classes-page .lotus-filters div span { font-size: .78rem; }
.lotus-classes-page .lotus-filter-actions { display: flex; align-items: center; gap: 1.5rem; }
.lotus-classes-page .lotus-view-toggle { display: inline-flex; padding: .2rem; background: #f1eaf4; border: 1px solid #e4d9e9; border-radius: 6px; }
.lotus-classes-page .lotus-view-toggle a { padding: .45rem .7rem; color: #756777; border-radius: 4px; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.lotus-classes-page .lotus-view-toggle a.active { color: #fff; background: #80609a; box-shadow: 0 2px 7px rgba(75,56,55,.15); }
.lotus-classes-page .lotus-legend { display: flex; gap: 1.15rem; }
.lotus-classes-page .legend:before { content: ''; display: inline-block; width: 7px; height: 7px; margin-right: .45rem; vertical-align: 1px; background: #6b9d78; border-radius: 50%; }
.lotus-classes-page .legend.full:before { background: #d09a51; }
.lotus-classes-page .legend.passed:before { background: #aaa1aa; }
.lotus-classes-page .lotus-schedule-intro { position: relative; z-index: 1; max-width: 560px; padding: 5.5rem 0 2.3rem; }
.lotus-classes-page .lotus-schedule-intro h2 { margin: 0; color: #30283b; font: 400 clamp(2.4rem, 5vw, 4rem)/.98 Georgia, serif; letter-spacing: -.04em; }
.lotus-classes-page .lotus-schedule-intro > p:last-child { max-width: 430px; margin: 1.2rem 0 0; color: #796e7c; line-height: 1.6; }
.lotus-classes-page .lotus-class { position: relative; z-index: 1; display: grid; grid-template-columns: 135px minmax(0, 1fr) 125px; gap: 2rem; align-items: center; margin: 0 0 1rem; padding: 1.3rem 1.8rem; background: #fff; border: 1px solid #ece1d6; border-left: 5px solid #9671a7; border-radius: 10px; box-shadow: 0 8px 24px rgba(75,56,55,.06); transition: box-shadow .2s ease, transform .2s ease; }
.lotus-classes-page .lotus-class:hover { box-shadow: 0 14px 32px rgba(75,56,55,.12); transform: translateY(-2px); }
.lotus-classes-page .lotus-class.passed { color: #716b70; background: #eeecec; border-left-color: #aaa3a8; box-shadow: none; filter: saturate(.45); opacity: .78; }
.lotus-classes-page .lotus-class.passed:hover { box-shadow: none; transform: none; }
.lotus-classes-page .lotus-class.passed .lotus-day, .lotus-classes-page .lotus-class.passed .lotus-details h2, .lotus-classes-page .lotus-class.passed .lotus-day span { color: #716b70; }
.lotus-classes-page .lotus-class.passed .lotus-status { color: #a33e48; background: #f8e4e5; }
.lotus-classes-page .lotus-class.full { border-left-color: #c38b43; }
.lotus-classes-page .lotus-class.full .lotus-status { color: #98601e; background: #fbf0dd; }
.lotus-classes-page .lotus-day { display: flex; flex-direction: column; gap: .3rem; color: #846197; font: 700 .78rem/1 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.lotus-classes-page .lotus-day span { color: #30283b; font: 400 3rem/.9 Georgia, serif; letter-spacing: -.05em; }
.lotus-classes-page .lotus-details { min-width: 0; }
.lotus-classes-page .lotus-class-type { margin: 0 0 .55rem; color: #9a789e; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.lotus-classes-page .lotus-details h2 { margin: 0; color: #30283b; font: 400 clamp(1.35rem, 3vw, 2rem)/1.1 Georgia, serif; }
.lotus-classes-page .lotus-time { display: inline-block; margin: .7rem .7rem 0 0; color: #54445e; font-size: .88rem; font-weight: 700; }
.lotus-classes-page .lotus-status { display: inline-block; margin: .7rem 0 0; padding: .33rem .55rem; color: #4d8b5b; background: #edf6ee; border-radius: 999px; font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lotus-classes-page .lotus-status.passed { color: #a33e48; background: #f8e4e5; }
.lotus-classes-page .lotus-meta { display: flex; gap: .85rem; flex-wrap: wrap; margin: .8rem 0 0; color: #897f8b; font-size: .72rem; }
.lotus-classes-page .lotus-meta span + span { padding-left: .85rem; border-left: 1px solid #ddd2d8; }
.lotus-classes-page .lotus-action { text-align: right; }
.lotus-classes-page .lotus-action button { min-width: 110px; padding: .85rem 1rem; color: #fff; background: #80609a; border: 0; border-radius: 4px; box-shadow: 0 5px 12px rgba(128,96,154,.22); font: 700 .67rem/1 Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.lotus-classes-page .lotus-action button:hover { background: #624579; transform: translateY(-1px); }
.lotus-classes-page .lotus-class-purchase { display: inline-block; min-width: 110px; padding: .85rem 1rem; color: #fff; background: #80609a; border-radius: 4px; box-shadow: 0 5px 12px rgba(128,96,154,.22); font: 700 .67rem/1 Arial, sans-serif; letter-spacing: .14em; text-align: center; text-decoration: none; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.lotus-classes-page .lotus-class-purchase:hover { color: #fff; background: #624579; transform: translateY(-1px); }
.lotus-calendar { --calendar-columns: 8; position: relative; z-index: 1; display: grid; grid-template-columns: repeat(var(--calendar-columns), minmax(0, 1fr)); width: min(100%, calc(var(--calendar-columns) * 15rem)); margin-inline: auto; background: #fff; border: 1px solid #e3d7cd; border-radius: 10px; box-shadow: 0 8px 24px rgba(75,56,55,.06); overflow: hidden; }
.lotus-calendar[data-day-count="0"] { display: none; }
.lotus-calendar[data-day-count="1"] { --calendar-columns: 1; }
.lotus-calendar[data-day-count="2"] { --calendar-columns: 2; }
.lotus-calendar[data-day-count="3"] { --calendar-columns: 3; }
.lotus-calendar[data-day-count="4"] { --calendar-columns: 4; }
.lotus-calendar[data-day-count="5"] { --calendar-columns: 5; }
.lotus-calendar[data-day-count="6"] { --calendar-columns: 6; }
.lotus-calendar[data-day-count="7"] { --calendar-columns: 7; }
.lotus-calendar-month-row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(var(--calendar-columns), minmax(0, 1fr)); }
.lotus-calendar-month-band { padding: .55rem .7rem .45rem; color: #fff; background: #80609a; border-top: 2px solid #5f4275; font-size: .6rem; font-weight: 700; letter-spacing: .14em; line-height: 1; text-transform: uppercase; }
.lotus-calendar-month-band.alternate { background: #b47b55; border-top-color: #895838; }
.lotus-calendar-month-band.span-1 { grid-column: span 1; }
.lotus-calendar-month-band.span-2 { grid-column: span 2; }
.lotus-calendar-month-band.span-3 { grid-column: span 3; }
.lotus-calendar-month-band.span-4 { grid-column: span 4; }
.lotus-calendar-month-band.span-5 { grid-column: span 5; }
.lotus-calendar-month-band.span-6 { grid-column: span 6; }
.lotus-calendar-month-band.span-7 { grid-column: span 7; }
.lotus-calendar-day { min-width: 0; border-right: 1px solid #eadfd6; }
.lotus-calendar-day:last-child { border-right: 0; }
.lotus-calendar-mobile-month { display: none; }
.lotus-calendar-day > header { display: flex; justify-content: space-between; align-items: baseline; gap: .3rem; padding: .85rem .7rem; color: #fff; background: #49345d; }
.lotus-calendar-day > header strong { color: inherit; font-size: .61rem; letter-spacing: .09em; }
.lotus-calendar-day > header span { color: #e6ba7f; font: 400 1.4rem/1 Georgia, serif; }
.lotus-calendar-events { display: grid; align-content: start; gap: .5rem; padding: .55rem; }
.lotus-calendar-event { position: relative; min-width: 0; padding: .7rem; background: #faf7fb; border-left: 3px solid #9671a7; border-radius: 5px; }
.lotus-calendar-event.special-event { background: #fff8e8; border-left-color: #c8943f; }
.lotus-calendar-event.special-event h2 { color: #46351f; }
.lotus-calendar-event.special-event > p { color: #8c7655; }
.lotus-calendar-event.special-event .lotus-calendar-time { color: #8a6427; }
.lotus-calendar-event.special-event .lotus-calendar-book { background: #a9792e; box-shadow: 0 4px 10px rgba(169,121,46,.2); }
.lotus-calendar-event.special-event .lotus-calendar-book:hover { background: #80591f; }
.lotus-calendar-event:before { content: ''; position: absolute; top: .7rem; right: .7rem; width: 7px; height: 7px; background: #6b9d78; border-radius: 50%; }
.lotus-calendar-event.full:before { background: #d09a51; }
.lotus-calendar-event.passed:before { background: #aaa1aa; }
.lotus-calendar-event.full { border-left-color: #c38b43; }
.lotus-calendar-event.passed { background: #eeecec; border-left-color: #aaa3a8; opacity: .72; }
.lotus-calendar-event h2 { margin: .28rem 0; color: #30283b; font: 400 .9rem/1.15 Georgia, serif; overflow-wrap: anywhere; }
.lotus-calendar-event > p { margin: 0; color: #897f8b; font-size: .62rem; line-height: 1.35; }
.lotus-calendar-event .lotus-calendar-time { color: #684b79; font-weight: 700; }
.lotus-calendar-event .lotus-status { margin-top: .55rem; padding: .25rem .4rem; font-size: .52rem; }
.lotus-calendar-event .lotus-calendar-book { display: block; width: 100%; margin-top: .6rem; padding: .55rem .4rem; color: #fff; background: #80609a; border: 0; border-radius: 4px; box-shadow: 0 4px 10px rgba(128,96,154,.2); font-size: .58rem; font-weight: 700; letter-spacing: .1em; line-height: 1; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.lotus-calendar-event .lotus-calendar-book:hover { background: #624579; transform: translateY(-1px); }
.lotus-classes-page .lotus-schedule-footer { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 4rem; padding: 2rem 0 0; border-top: 1px solid #dfd2c7; }
.lotus-classes-page .lotus-schedule-footer p { margin: 0; color: #756777; font: italic 1.3rem Georgia, serif; }
.lotus-classes-page .lotus-schedule-footer a { color: #684b79; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.lotus-classes-page .lotus-schedule-footer a span { margin-left: .35rem; font-size: 1rem; }
@media (max-width: 700px) { .lotus-classes-page .lotus-schedule { padding: 1rem 1.15rem 3rem; } .lotus-classes-page .lotus-schedule-header { grid-template-columns: 1fr; gap: 2rem; min-height: 570px; margin: 0 -1.15rem; padding: 1.75rem 1.75rem 2rem; } .lotus-classes-page .lotus-links { gap: 1rem; } .lotus-classes-page .lotus-filters { align-items: flex-start; flex-direction: column; margin: 0 -1.15rem; padding: 1.2rem 1.75rem; } .lotus-classes-page .lotus-filter-actions { align-items: flex-start; flex-direction: column; gap: .9rem; } .lotus-classes-page .lotus-legend { gap: .7rem; flex-wrap: wrap; } .lotus-classes-page .lotus-schedule-intro { padding: 3.5rem 0 1.7rem; } .lotus-classes-page .lotus-class { grid-template-columns: 62px minmax(0, 1fr); gap: 1rem; padding: 1.1rem 1.35rem; } .lotus-classes-page .lotus-day span { font-size: 2.35rem; } .lotus-classes-page .lotus-action { grid-column: 2; text-align: left; } .lotus-classes-page .lotus-action button { width: 100%; } .lotus-calendar { grid-template-columns: 1fr; background: transparent; border: 0; box-shadow: none; gap: .75rem; overflow: visible; } .lotus-calendar-month-row { display: none; } .lotus-calendar-day { background: #fff; border: 1px solid #e3d7cd; border-radius: 8px; overflow: hidden; } .lotus-calendar-mobile-month.month-start { display: block; padding: .5rem 1rem .4rem; color: #fff; background: #80609a; border-top: 2px solid #5f4275; font-size: .58rem; font-weight: 700; letter-spacing: .14em; line-height: 1; text-transform: uppercase; } .lotus-calendar-mobile-month.month-start.alternate { background: #b47b55; border-top-color: #895838; } .lotus-calendar-day > header { padding: .75rem 1rem; } .lotus-calendar-events { padding: .7rem; } .lotus-calendar-event h2 { font-size: 1rem; } .lotus-classes-page .lotus-schedule-footer { align-items: flex-start; flex-direction: column; } }

/* Shared Floating Lotus treatment for Courses, Memberships, and Studio details */
body.studio-shell { min-height: 100vh; color: #30283b; background: #f6f1eb; font-family: Arial, Helvetica, sans-serif; }
body.studio-shell .studio-header { color: #fff; background: #332442; border: 0; box-shadow: 0 10px 28px rgba(46,31,60,.15); }
body.studio-shell .studio-nav { display: flex; gap: 1rem; align-items: center; width: 100%; max-width: 1180px; min-height: 104px; margin: 0 auto; padding: 1.5rem 2.5rem; }
body.studio-shell .studio-brand { display: flex; gap: .75rem; align-items: center; color: #fff; font-family: Georgia, serif; font-size: 1rem; font-weight: 700; letter-spacing: .03em; line-height: .9; text-decoration: none; }
body.studio-shell .studio-brand img { width: 42px; height: 52px; max-width: 42px; max-height: 52px; object-fit: contain; color: transparent; }
body.studio-shell .studio-nav > span { color: rgba(255,255,255,.7); font-family: Georgia, serif; }
body.studio-shell .studio-nav-links a { color: rgba(255,255,255,.78); }
body.studio-shell .studio-nav-links a:hover { color: #e5b878; }
body.studio-shell .studio-tabs { display: flex; gap: 2rem; align-items: center; width: 100%; max-width: none; margin: 0 auto; padding: 0 max(2.5rem, calc((100% - 1180px) / 2)); color: #6e6375; background: #fff; border: 0; }
body.studio-shell .studio-tabs a { padding: 1rem 0 .85rem; color: #6e6375; font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
body.studio-shell .studio-tabs a:hover, body.studio-shell .studio-tabs a[aria-current] { color: #684b79; border-color: #e5b878; }
body.studio-shell .studio-main { max-width: 1180px; min-height: calc(100vh - 160px); padding: 4.75rem 2.5rem 6rem; }
body.studio-shell .studio-page { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
body.studio-shell .studio-page-heading { grid-column: 1 / -1; max-width: 680px; margin: 0 0 1.7rem; }
body.studio-shell .studio-eyebrow { margin: 0 0 1.2rem; color: #9b7a59; font: 700 .68rem/1 Arial, sans-serif; letter-spacing: .19em; text-transform: uppercase; }
body.studio-shell .studio-page-heading h1 { margin: 0; color: #30283b; font: 400 clamp(3rem, 7vw, 5.8rem)/.9 Georgia, serif; letter-spacing: -.055em; }
body.studio-shell .studio-page-heading > p:last-child { max-width: 530px; margin-top: 1.5rem; color: #796e7c; font-size: 1rem; line-height: 1.7; }
body.studio-shell .studio-page > .studio-card { position: relative; overflow: hidden; display: flex; width: auto; min-height: 315px; margin: 0; padding: 2.35rem; border: 1px solid #ece1d6; border-top: 5px solid #9671a7; border-radius: 10px; background: linear-gradient(145deg, #fff 0%, #fbf8fd 100%); box-shadow: 0 14px 34px rgba(75,56,55,.08); transition: box-shadow .2s ease, transform .2s ease; }
body.studio-shell .studio-page > .studio-card:after { content: '✦'; position: absolute; right: 1.2rem; top: .45rem; color: rgba(150,113,167,.15); font: 7rem/1 Georgia, serif; transform: rotate(18deg); }
body.studio-shell .studio-page > .studio-card:hover { box-shadow: 0 18px 40px rgba(75,56,55,.14); transform: translateY(-3px); }
body.studio-shell .studio-card h2 { position: relative; z-index: 1; margin: 0 0 .65rem; color: #30283b; font: 400 clamp(1.6rem, 3vw, 2.25rem)/1.05 Georgia, serif; }
body.studio-shell .studio-card h2 a { color: inherit; }
body.studio-shell .studio-card h2 a:hover { color: #80609a; }
body.studio-shell .studio-card p { position: relative; z-index: 1; color: #796e7c; line-height: 1.65; }
body.studio-shell .studio-price { color: #684b79 !important; font: 400 1.8rem/1 Georgia, serif; }
body.studio-shell .studio-button, body.studio-shell .button { position: relative; z-index: 1; border-radius: 4px; background: #80609a; box-shadow: 0 5px 12px rgba(128,96,154,.22); font-weight: 700; transition: background .2s ease, transform .2s ease; }
body.studio-shell .studio-button:hover, body.studio-shell .button:hover { background: #624579; transform: translateY(-1px); }
body.studio-shell .studio-page > .card, body.studio-shell .studio-main > article.card { max-width: 800px; margin: 0 auto; padding: 2.75rem; border: 1px solid #ece1d6; border-top: 5px solid #9671a7; border-radius: 10px; background: #fff; box-shadow: 0 14px 34px rgba(75,56,55,.08); }
body.studio-shell .studio-main > article:not(.card) { max-width: 800px; margin: 0 auto; }
body.studio-shell .studio-main > article h1 { margin-top: 0; color: #30283b; font: 400 clamp(2.8rem, 6vw, 5rem)/.95 Georgia, serif; letter-spacing: -.05em; }
body.studio-shell .studio-main > article p, body.studio-shell .studio-main > article li { color: #796e7c; line-height: 1.7; }
body.studio-shell .studio-main > article .headline { color: #684b79; font: 400 2rem/1 Georgia, serif; }
body.studio-shell .studio-main > article ul { padding-left: 1.2rem; }
.classes-schedule-page .studio-page-heading { max-width: 680px; margin: 0 0 1.7rem; }
.classes-schedule-page .lotus-filters { margin: 0 0 2rem; padding: 1.15rem 0; background: transparent; border-top: 1px solid #dfd2c7; border-bottom: 1px solid #dfd2c7; }

/* Keep account purchase history easy to scan without full catalog-sized cards. */
body.studio-shell .account-purchases { min-width: 0; }
body.studio-shell .account-purchases > h2 { margin: 0 0 1rem; color: #30283b; font: 400 clamp(1.6rem, 3vw, 2.25rem)/1.05 Georgia, serif; }
body.studio-shell .account-purchase-list { display: grid; gap: .7rem; }
body.studio-shell .studio-card.account-purchase { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; min-height: 0; margin: 0; padding: 1rem 1.2rem; border-radius: 7px; box-shadow: 0 7px 18px rgba(75,56,55,.06); }
body.studio-shell .account-purchase h3 { margin: 0 0 .25rem; color: #30283b; font: 400 1.15rem/1.2 Georgia, serif; }
body.studio-shell .account-purchase .account-purchase-date { margin: 0; font-size: .78rem; line-height: 1.35; }
body.studio-shell .account-purchase-meta { display: grid; grid-template-columns: auto auto; gap: .3rem .65rem; align-items: center; justify-items: end; }
body.studio-shell .account-purchase-meta > strong { color: #684b79; font-size: .9rem; white-space: nowrap; }
body.studio-shell .account-purchase-status { padding: .25rem .45rem; color: #39734a; background: #edf6ee; border-radius: 999px; font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
body.studio-shell .account-purchase-meta > small { grid-column: 1 / -1; max-width: 240px; color: #897f8b; font-size: .68rem; line-height: 1.3; overflow-wrap: anywhere; text-align: right; }
@media (max-width: 560px) { body.studio-shell .studio-card.account-purchase { grid-template-columns: 1fr; gap: .65rem; padding: .9rem 1rem; } body.studio-shell .account-purchase-meta { justify-content: start; justify-items: start; } body.studio-shell .account-purchase-meta > small { text-align: left; } }

/* Keep checkout typography aligned with the homepage offerings section. */
body.studio-shell .checkout-page { max-width: 800px; margin: 0 auto; }
body.studio-shell .checkout-card { padding: 2.75rem; background: #fff; border: 1px solid #ece1d6; border-top: 5px solid #9671a7; border-radius: 10px; box-shadow: 0 14px 34px rgba(75,56,55,.08); }
body.studio-shell .checkout-card h1 { margin: 0; color: #30283b; font: 400 clamp(2.8rem, 6vw, 5rem)/.95 Georgia, "Times New Roman", serif; letter-spacing: -.05em; }
body.studio-shell .checkout-card p { font-family: Arial, Helvetica, sans-serif; }
body.studio-shell .checkout-error { margin: 1.25rem 0; padding: .85rem 1rem; color: #8a2030; background: #fff0f2; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; }

.appointment-page { max-width: 44rem; margin: auto; padding: 1rem 0; color: #292532; }
.appointment-card { background: #fff; padding: clamp(1.25rem, 4vw, 2.5rem); border-radius: 1rem; box-shadow: 0 1rem 3rem rgba(66, 44, 85, .1); }
.appointment-form { display: grid; gap: 1.25rem; }
.appointment-field { display: grid; gap: .45rem; }
.appointment-field label { font-weight: 700; }
.appointment-field select, .appointment-field input { box-sizing: border-box; width: 100%; padding: .85rem; border: 1px solid #cfc4d8; border-radius: .5rem; background: #fff; font: inherit; }
.appointment-submit { border: 0; border-radius: 2rem; padding: .9rem 1.4rem; background: #7b5ea7; color: white; font: inherit; font-weight: 700; cursor: pointer; }
.appointment-errors { color: #8a2030; background: #fff0f2; padding: .75rem 1rem; border-radius: .5rem; }
.appointment-confirmation { color: #254f36; background: #eef9f1; padding: 1rem; border-radius: .65rem; }
.appointment-empty { padding: 1rem; color: #62586b; background: #f7f3f8; border-radius: .65rem; }
.appointment-empty h2 { margin: 0 0 .5rem; font-size: 1.05rem; }
.appointment-slots { display: grid; gap: .75rem; margin: 0; padding: 0; border: 0; }
.appointment-slots legend { margin-bottom: .5rem; font-weight: 700; }
.appointment-slot { display: flex; gap: .85rem; align-items: center; padding: 1rem; border: 1px solid #d9cede; border-radius: .65rem; cursor: pointer; }
.appointment-slot:has(input:checked) { background: #f6f0fa; border-color: #7b5ea7; box-shadow: 0 0 0 2px rgba(123,94,167,.12); }
.appointment-slot input { width: auto; margin: 0; accent-color: #7b5ea7; }
.appointment-slot span, .appointment-slot small { display: block; }
.appointment-slot small { margin-top: .2rem; color: #62586b; font-size: .92rem; }
.registration-page { display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1fr); gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.registration-heading { max-width: 510px; }
.registration-heading h1 { margin: 0; color: #30283b; font: 400 clamp(3rem, 7vw, 5.6rem)/.9 Georgia, serif; letter-spacing: -.055em; }
.registration-heading > p:last-child { max-width: 440px; margin: 1.5rem 0 0; color: #796e7c; line-height: 1.7; }
.registration-card { position: relative; display: grid; gap: .7rem; padding: clamp(2rem, 5vw, 3rem); overflow: hidden; background: linear-gradient(145deg, #fff 0%, #fbf8fd 100%); border: 1px solid #ece1d6; border-top: 5px solid #9671a7; border-radius: 10px; box-shadow: 0 18px 42px rgba(75,56,55,.11); }
.registration-card:after { content: '✦'; position: absolute; z-index: 0; right: .8rem; top: -.2rem; color: rgba(150,113,167,.12); font: 7rem/1 Georgia, serif; transform: rotate(18deg); pointer-events: none; }
.registration-card label, .registration-card input, .registration-card button, .registration-card p { position: relative; z-index: 1; }
.registration-card label { margin-top: .35rem; color: #55475d; font-size: .67rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.registration-card input:not([type='hidden']) { width: 100%; min-height: 50px; padding: .85rem 1rem; color: #30283b; background: #faf8f5; border: 1px solid #ddd2d8; border-radius: 5px; font: inherit; outline: none; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.registration-card input:not([type='hidden']):focus { background: #fff; border-color: #9671a7; box-shadow: 0 0 0 3px rgba(150,113,167,.13); }
.registration-card input::placeholder { color: #a49ba4; }
body.studio-shell .registration-submit { width: 100%; margin-top: 1rem; padding: 1rem 1.25rem; color: #fff; border: 0; cursor: pointer; }
.registration-signin { margin: .8rem 0 0; color: #897f8b; font-size: .78rem; text-align: center; }
.registration-signin a { color: #684b79; font-weight: 700; }
@media (max-width: 760px) { body.studio-shell .studio-nav { min-height: 90px; padding: 1.2rem 1.25rem; } body.studio-shell .studio-tabs { padding: 0 1.25rem; gap: 1.2rem; overflow-x: auto; } body.studio-shell .studio-main { padding: 3.5rem 1.25rem 4rem; } body.studio-shell .studio-page { grid-template-columns: 1fr; } body.studio-shell .studio-page-heading { grid-column: auto; } body.studio-shell .studio-page > .studio-card { min-height: 0; padding: 2rem; } body.studio-shell .studio-page > .card, body.studio-shell .studio-main > article.card { padding: 2rem; } .registration-page { grid-template-columns: 1fr; } .registration-heading { max-width: 580px; } }

/* Keep the class directory in the same family as Courses and Memberships. */
.lotus-classes-page .lotus-schedule { max-width: 1180px; padding: 0 2.5rem 5rem; }
.lotus-classes-page .lotus-schedule:before { top: 18px; right: 7%; width: 220px; height: 220px; }
.lotus-classes-page .lotus-schedule-header { grid-template-columns: 150px minmax(0, 1fr); min-height: 335px; margin: 0 -2.5rem; padding: 2rem 2.5rem 2.15rem; }
.lotus-classes-page .lotus-schedule-header:after { right: 8%; bottom: 8%; font-size: 7rem; }
.lotus-classes-page .lotus-hero-copy h1 { font-size: clamp(3rem, 7vw, 5.8rem); }
.lotus-classes-page .lotus-hero-copy > p:last-of-type { max-width: 520px; margin-top: 1.25rem; }
.lotus-classes-page .lotus-schedule-intro { padding-top: 4.25rem; }
.lotus-classes-page .lotus-schedule-intro h1 { margin: 0; color: #30283b; font: 400 clamp(3rem, 7vw, 5.8rem)/.9 Georgia, serif; letter-spacing: -.055em; }
.lotus-classes-page .lotus-schedule-intro h2 { font-size: clamp(2.5rem, 5vw, 4.25rem); }
.lotus-classes-page .lotus-class { border-top: 4px solid #9671a7; border-left: 1px solid #ece1d6; }
.lotus-classes-page .lotus-class.passed { border-top-color: #aaa3a8; }
@media (max-width: 700px) { .lotus-classes-page .lotus-schedule { padding: 0 1.15rem 3rem; } .lotus-classes-page .lotus-schedule-header { min-height: 430px; margin: 0 -1.15rem; padding: 1.75rem 1.75rem 2rem; } }
@media (max-width: 700px) { body.studio-shell .studio-nav { flex-wrap: wrap; } body.studio-shell .studio-nav > span { display: none; } body.studio-shell .studio-nav-links { margin-left: auto; } body.studio-shell .studio-main { padding-top: 3rem; } .studio-page > .studio-card, .studio-page > .class-card { display: flex; width: 100%; margin-right: 0; } }

/* Membership catalog groups products into compact lists by studio category. */
body.studio-shell .memberships-page { display: block; }
body.studio-shell .membership-group { margin-top: 3rem; }
body.studio-shell .membership-category { margin: 0 0 1rem; color: #684b79; font: 400 clamp(1.8rem, 4vw, 2.7rem)/1 Georgia, serif; letter-spacing: -.035em; }
body.studio-shell .membership-list { margin: 0; padding: 0; list-style: none; background: #fff; border: 1px solid #e4d9cf; border-radius: 8px; box-shadow: 0 10px 26px rgba(75,56,55,.06); }
body.studio-shell .membership-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1.5rem; align-items: center; padding: 1.5rem 1.75rem; }
body.studio-shell .membership-item + .membership-item { border-top: 1px solid #e8dfd7; }
body.studio-shell .membership-item h3 { margin: 0 0 .4rem; color: #30283b; font: 400 clamp(1.2rem, 2.5vw, 1.55rem)/1.15 Georgia, serif; }
body.studio-shell .membership-item h3 a { color: inherit; }
body.studio-shell .membership-item h3 a:hover { color: #80609a; }
body.studio-shell .membership-summary > p { margin: 0; color: #796e7c; font-size: .9rem; line-height: 1.55; }
body.studio-shell .membership-details { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: .65rem; }
body.studio-shell .membership-meta { color: #9b7a59; font: 700 .67rem/1.4 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; }

body.studio-shell .membership-billing { color: #897f8b; font-size: .75rem; }
body.studio-shell .membership-item .studio-price { min-width: 105px; margin: 0; font-size: 1.35rem; text-align: right; white-space: nowrap; }
body.studio-shell .membership-item .studio-button { padding: .8rem 1.2rem; color: #fff; text-decoration: none; white-space: nowrap; }
@media (max-width: 700px) { body.studio-shell .membership-group { margin-top: 2.5rem; } body.studio-shell .membership-item { grid-template-columns: 1fr auto; gap: 1rem; padding: 1.35rem; } body.studio-shell .membership-summary { grid-column: 1 / -1; } body.studio-shell .membership-item .studio-price { text-align: left; } }

/* Admin catalog uses the same cards, typography, and controls as public studio pages. */
body.studio-shell .studio-admin-page { display: block; }
body.studio-shell .admin-page-heading { margin-bottom: 2rem; }
body.studio-shell .admin-resource-nav { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid #dfd2c7; }
body.studio-shell .admin-resource-nav a { padding: .75rem 1rem; color: #6e6375; background: #fff; border: 1px solid #e4d9cf; border-radius: 5px; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
body.studio-shell .admin-resource-nav a:hover, body.studio-shell .admin-resource-nav a[aria-current] { color: #fff; background: #80609a; border-color: #80609a; }
body.studio-shell .admin-users-layout { display: grid; grid-template-columns: minmax(16rem, 1fr) minmax(20rem, 2fr); gap: 1.5rem; align-items: start; }
body.studio-shell .admin-customer-list, body.studio-shell .admin-customer-detail { padding: 1rem; background: #fff; border: 1px solid #e4d9cf; border-radius: 8px; }
body.studio-shell .admin-customer-row { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; color: inherit; border-bottom: 1px solid #eee5de; text-decoration: none; }
body.studio-shell .admin-customer-row:last-child { border-bottom: 0; }
body.studio-shell .admin-customer-row:hover, body.studio-shell .admin-customer-row[aria-current] { background: #f5eff8; }
body.studio-shell .admin-customer-row span:first-child, body.studio-shell .admin-purchase-list article > div { display: flex; flex-direction: column; gap: .25rem; }
body.studio-shell .admin-customer-row small, body.studio-shell .admin-purchase-list small { color: #746b72; }
body.studio-shell .admin-customer-detail .admin-record-heading { align-items: center; margin-bottom: 1.5rem; }
body.studio-shell .admin-purchase-list article { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #eee5de; }
body.studio-shell .admin-purchase-list article > div:last-child { text-align: right; align-items: flex-end; }
body.studio-shell .admin-users-error { padding: 1rem; color: #842029; background: #f8d7da; border-radius: 6px; }
body.studio-shell .temporary-password-code {
	display: inline-block;
	margin-left: .35rem;
	padding: .2rem .45rem;
	color: #2f2338;
	background: #eee8f2;
	border: 1px solid #d8cce0;
	border-radius: 4px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	font-size: .95em;
	font-weight: 600;
	letter-spacing: .02em;
}
@media (max-width: 760px) { body.studio-shell .admin-users-layout { grid-template-columns: 1fr; } }
body.studio-shell .admin-create-card, body.studio-shell .admin-record-card { padding: 2rem; background: #fff; border: 1px solid #ece1d6; border-top: 5px solid #9671a7; border-radius: 10px; box-shadow: 0 14px 34px rgba(75,56,55,.08); }
body.studio-shell .admin-create-card { margin-bottom: 2rem; }
body.studio-shell .admin-create-card summary { color: #30283b; font: 400 clamp(1.5rem, 3vw, 2.1rem)/1.1 Georgia, serif; cursor: pointer; list-style-position: inside; }
body.studio-shell .admin-create-card summary::marker { color: #9671a7; }
body.studio-shell .admin-create-card[open] summary { margin-bottom: 1.5rem; }
body.studio-shell .admin-create-card h2, body.studio-shell .admin-record-card h2 { margin: 0; color: #30283b; font: 400 clamp(1.5rem, 3vw, 2.1rem)/1.1 Georgia, serif; }
body.studio-shell .admin-form { display: grid; gap: 1rem; margin-top: 1.25rem; }
body.studio-shell .admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
body.studio-shell .admin-form label { display: grid; gap: .45rem; color: #55475d; font-size: .67rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
body.studio-shell .admin-form input:not([type='hidden']), body.studio-shell .admin-form textarea { box-sizing: border-box; width: 100%; min-height: 48px; padding: .8rem 1rem; color: #30283b; background: #faf8f5; border: 1px solid #ddd2d8; border-radius: 5px; font: inherit; letter-spacing: normal; text-transform: none; outline: none; }
body.studio-shell .admin-form textarea { min-height: 110px; resize: vertical; }
body.studio-shell .admin-form input:focus, body.studio-shell .admin-form textarea:focus { background: #fff; border-color: #9671a7; box-shadow: 0 0 0 3px rgba(150,113,167,.13); }
body.studio-shell .admin-primary-action, body.studio-shell .admin-secondary-action { justify-self: start; padding: .85rem 1.25rem; color: #fff; border: 0; cursor: pointer; }
body.studio-shell .admin-records { display: grid; gap: 1.25rem; }
body.studio-shell .admin-record-heading { display: flex; gap: 1rem; justify-content: space-between; align-items: center; }
body.studio-shell .admin-status { padding: .4rem .65rem; color: #6e6375; background: #f2edf4; border-radius: 999px; font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
body.studio-shell .admin-status.status-published { color: #28543a; background: #e8f5ec; }
body.studio-shell .admin-status.status-archived { color: #716b70; background: #eceaec; }
body.studio-shell .admin-status.status-available { color: #28543a; background: #e8f5ec; }
body.studio-shell .admin-status.status-booked { color: #714f18; background: #fff2cf; }
body.studio-shell .admin-record-actions { display: flex; gap: 1rem; justify-content: space-between; align-items: center; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid #ece3dc; }
body.studio-shell .admin-record-actions form { display: flex; gap: .6rem; }
body.studio-shell .admin-record-actions button { padding: .65rem .9rem; color: #684b79; background: #f7f2f8; border: 1px solid #ddcfe2; border-radius: 4px; font-weight: 700; cursor: pointer; }
body.studio-shell .admin-record-actions .admin-delete-action { color: #8a2030; background: #fff0f2; border-color: #efcbd1; }
body.studio-shell .admin-form .admin-delete-action { justify-self: start; padding: .65rem .9rem; color: #8a2030; background: #fff0f2; border: 1px solid #efcbd1; border-radius: 4px; font-weight: 700; cursor: pointer; }
body.studio-shell .account-notices { display: grid; gap: 1rem; margin-top: 2rem; }
body.studio-shell .account-notice { padding: 1.25rem; border-left: 4px solid #9671a7; }
body.studio-shell .account-notice-unread { border: 2px solid #b42335; border-left-width: 6px; }
body.studio-shell .account-notice h3 { margin: 0 0 .5rem; color: #30283b; }
body.studio-shell .account-notice p { margin: 0 0 .5rem; }
body.studio-shell .account-notice small { color: #6e6375; }
body.studio-shell .account-notice form { margin-top: 1rem; }
body.studio-shell .account-notice button { padding: .6rem .9rem; color: #fff; background: #80609a; border: 0; border-radius: 4px; font-weight: 700; cursor: pointer; }
body.studio-shell .studio-notification-indicator { display: inline-flex; width: 1.1rem; height: 1.1rem; align-items: center; justify-content: center; margin-left: .25rem; color: #fff; background: #b42335; border-radius: 50%; font-size: .75rem; font-weight: 800; line-height: 1; }
body.studio-shell .studio-notification-envelope { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; line-height: 1; }
@media (max-width: 700px) { body.studio-shell .admin-form-grid { grid-template-columns: 1fr; } body.studio-shell .admin-record-actions { align-items: stretch; flex-direction: column; } body.studio-shell .admin-record-actions form { flex-wrap: wrap; } }

/* Night palette. The system preference is the default; data-theme is the user's explicit choice. */
@media (prefers-color-scheme: dark) {
    html:not([data-theme='light']) body.studio-shell { --lotus-ink: #eee8f2; --lotus-muted: #b8acbd; background: #17141b; color: #eee8f2; }
}
html[data-theme='dark'] body.studio-shell { --lotus-ink: #eee8f2; --lotus-muted: #b8acbd; background: #17141b; color: #eee8f2; }
html[data-theme='dark'] body.studio-shell .studio-header,
html[data-theme='dark'] body.studio-shell .studio-card,
html[data-theme='dark'] body.studio-shell .studio-page > .card,
html[data-theme='dark'] body.studio-shell .classes-page .class-card,
html[data-theme='dark'] body.studio-shell .admin-customer-list,
html[data-theme='dark'] body.studio-shell .admin-customer-detail,
html[data-theme='dark'] body.studio-shell .admin-create-card,
html[data-theme='dark'] body.studio-shell .admin-record-card { background: #241f2a; border-color: #403647; }
html[data-theme='dark'] body.studio-shell .studio-header { box-shadow: 0 3px 18px rgba(0,0,0,.28); }
html[data-theme='dark'] body.studio-shell .class-session,
html[data-theme='dark'] body.studio-shell .checkout-summary,
html[data-theme='dark'] body.studio-shell .admin-resource-nav a { background: #30283a; border-color: #4a3d50; }
html[data-theme='dark'] body.studio-shell input,
html[data-theme='dark'] body.studio-shell textarea,
html[data-theme='dark'] body.studio-shell select { color: #eee8f2; background: #1d1922; border-color: #574966; }
html[data-theme='dark'] body.studio-shell .studio-page-heading > p:last-child,
html[data-theme='dark'] body.studio-shell .studio-card p,
html[data-theme='dark'] body.studio-shell .checkout-description,
html[data-theme='dark'] body.studio-shell .checkout-test-note { color: #b8acbd; }
html[data-theme='dark'] body.studio-shell .studio-page > .card p,
html[data-theme='dark'] body.studio-shell .studio-page > .card h1,
html[data-theme='dark'] body.studio-shell .studio-card h2,
html[data-theme='dark'] body.studio-shell .studio-price,
html[data-theme='dark'] body.studio-shell .session-time { color: #eee8f2 !important; }
html[data-theme='dark'] body.studio-shell .studio-nav > span { color: #b8acbd; }
@media (max-width: 760px) { body.studio-shell .studio-nav { flex-wrap: wrap; } body.studio-shell .studio-nav > span { order: 3; width: 100%; } }

/* Keep the dark theme neutral enough that lilac remains an accent, not a surface. */
html[data-theme='dark'] body.studio-shell .studio-header,
html[data-theme='dark'] body.studio-shell .studio-card,
html[data-theme='dark'] body.studio-shell .studio-page > .card,
html[data-theme='dark'] body.studio-shell .classes-page .class-card,
html[data-theme='dark'] body.studio-shell .admin-customer-list,
html[data-theme='dark'] body.studio-shell .admin-customer-detail,
html[data-theme='dark'] body.studio-shell .admin-create-card,
html[data-theme='dark'] body.studio-shell .admin-record-card { background: #202124; }
html[data-theme='dark'] body.studio-shell .class-session,
html[data-theme='dark'] body.studio-shell .checkout-summary,
html[data-theme='dark'] body.studio-shell .admin-resource-nav a { background: #2b2c30; }
html[data-theme='dark'] body.studio-shell .admin-customer-row:hover,
html[data-theme='dark'] body.studio-shell .admin-customer-row[aria-current] {
    color: #f4f1f7;
    background: #3a3044;
}
html[data-theme='dark'] body.studio-shell .admin-customer-row small { color: #c2bdc7; }
html[data-theme='dark'] body.studio-shell .studio-nav-links a,
html[data-theme='dark'] body.studio-shell .studio-tabs a,
html[data-theme='dark'] body.studio-shell .studio-card h2 a { color: #d8b9ff; }
html[data-theme='dark'] body.studio-shell .studio-tabs a {
    color: #f4f1f7 !important;
    border-bottom: 2px solid transparent;
}
html[data-theme='dark'] body.studio-shell .studio-tabs a[aria-current],
html[data-theme='dark'] body.studio-shell .studio-page-heading h1,
html[data-theme='dark'] body.studio-shell .studio-card h2,
html[data-theme='dark'] body.studio-shell .studio-page > .card h1,
html[data-theme='dark'] body.studio-shell .admin-create-card h2,
html[data-theme='dark'] body.studio-shell .admin-record-card h2 { color: #f4f1f7 !important; }
html[data-theme='dark'] body.studio-shell .studio-tabs a[aria-current] {
    color: #17131c !important;
    background: #d8b9ff;
    border-bottom-color: #d8b9ff;
    border-radius: 4px 4px 0 0;
    padding-left: .65rem;
    padding-right: .65rem;
}
html[data-theme='dark'] body.studio-shell .studio-tabs {
    background: #202124;
    border-bottom-color: #45474d;
}
html[data-theme='dark'] body.studio-shell .studio-button,
html[data-theme='dark'] body.studio-shell .button,
html[data-theme='dark'] body.studio-shell .appointment-submit,
html[data-theme='dark'] body.studio-shell .admin-primary-action,
html[data-theme='dark'] body.studio-shell .admin-secondary-action { color: #17131c !important; background: #d8b9ff; }
html[data-theme='dark'] body.studio-shell .studio-button:hover,
html[data-theme='dark'] body.studio-shell .button:hover,
html[data-theme='dark'] body.studio-shell .appointment-submit:hover { background: #ecdfff; }
html[data-theme='dark'] body.studio-shell .admin-create-card summary {
    color: #f4f1f7;
    background: #2b2c30;
}
html[data-theme='dark'] body.studio-shell .admin-create-card summary::marker { color: #d8b9ff; }

html[data-theme='dark'] body.lotus-classes-page { color: #f4f1f7; background: #151618; }
html[data-theme='dark'] body.lotus-classes-page .lotus-filters,
html[data-theme='dark'] body.lotus-classes-page .lotus-class,
html[data-theme='dark'] body.lotus-classes-page .lotus-calendar-day { color: #f4f1f7; background: #202124; border-color: #45474d; }
html[data-theme='dark'] body.lotus-classes-page .lotus-schedule-intro h2,
html[data-theme='dark'] body.lotus-classes-page .lotus-details h2,
html[data-theme='dark'] body.lotus-classes-page .lotus-day span,
html[data-theme='dark'] body.lotus-classes-page .lotus-filters strong { color: #f4f1f7; }
html[data-theme='dark'] body.lotus-classes-page .lotus-schedule-intro > p:last-child,
html[data-theme='dark'] body.lotus-classes-page .lotus-filters,
html[data-theme='dark'] body.lotus-classes-page .lotus-meta,
html[data-theme='dark'] body.lotus-classes-page .lotus-calendar-event > p { color: #c2bdc7; }
html[data-theme='dark'] body.lotus-classes-page .lotus-view-toggle,
html[data-theme='dark'] body.lotus-classes-page .lotus-calendar-event { background: #2b2c30; border-color: #45474d; }
html[data-theme='dark'] body.lotus-classes-page .lotus-action button,
html[data-theme='dark'] body.lotus-classes-page .lotus-class-purchase,
html[data-theme='dark'] body.lotus-classes-page .lotus-calendar-book { color: #17131c; background: #d8b9ff; }

/* Calendar pages render the lotus schedule inside the studio shell. */
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-filters {
    color: #c2bdc7;
    border-color: #45474d;
}
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-filters strong { color: #f4f1f7; }
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-view-toggle {
    background: #2b2c30;
    border-color: #45474d;
}
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-view-toggle a { color: #c2bdc7; }
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-view-toggle a.active { color: #17131c; }

/* The calendar is rendered inside the studio shell, not as the body itself. */
html[data-theme='dark'] body.studio-shell .lotus-classes-page.classes-schedule-page {
    min-height: 0;
    margin: 0;
    color: #f4f1f7;
    background: transparent;
}
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-schedule {
    padding-top: 0;
    padding-bottom: 2rem;
}
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-schedule-intro h2,
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-calendar-day > header strong,
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-calendar-day > header span,
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-calendar-event h2 { color: #f4f1f7; }
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-filters,
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-calendar {
    background: transparent;
    border-color: #45474d;
    box-shadow: none;
}
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-calendar-day {
    background: #202124;
    border-color: #45474d;
}
html[data-theme='dark'] body.studio-shell .classes-schedule-page .lotus-calendar-event {
    background: #2b2c30;
    border-color: #45474d;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme='light']) body.studio-shell .studio-tabs {
        background: #202124;
        border-bottom-color: #45474d;
    }
    html:not([data-theme='light']) body.studio-shell .admin-customer-row:hover,
    html:not([data-theme='light']) body.studio-shell .admin-customer-row[aria-current] {
        color: #f4f1f7;
        background: #3a3044;
    }
    html:not([data-theme='light']) body.studio-shell .admin-customer-row small { color: #c2bdc7; }
    html:not([data-theme='light']) body.studio-shell .studio-tabs a {
        color: #f4f1f7 !important;
    }
    html:not([data-theme='light']) body.studio-shell .studio-tabs a[aria-current] {
        color: #17131c !important;
        background: #d8b9ff;
        border-bottom-color: #d8b9ff;
    }
}

/* The page-specific rules above use font shorthands, so keep this final rule
   last to make the banner typeface authoritative across every studio view. */
