html {
  position: relative;
  min-height: 100%;
  font-size: 16px;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  overflow-x: hidden;
  background: #f7f8f6;
  color: #26332e;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.app-shell{min-height:100vh;display:flex}.app-sidebar{position:fixed;z-index:20;display:flex;width:16rem;height:100vh;flex-direction:column;padding:1.5rem 1rem;background:#244c42;color:#fff}.sidebar-brand{display:flex;align-items:center;gap:.7rem;padding:.35rem .55rem 1.7rem;color:#fff;font-weight:750;line-height:1;text-decoration:none}.sidebar-brand small{display:block;margin-top:.25rem;font-size:.67rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.sidebar-brand .brand-mark{background:#fff;color:#315f52}.sidebar-nav{display:grid;gap:.25rem}.sidebar-nav a,.sidebar-logout button{display:flex;width:100%;align-items:center;gap:.8rem;border:0;border-radius:.65rem;padding:.7rem .75rem;background:transparent;color:#d8e8e1;font-size:.92rem;font-weight:650;text-align:left;text-decoration:none}.sidebar-nav a span,.sidebar-logout span{display:inline-grid;width:1.4rem;place-items:center;font-size:.85rem}.sidebar-nav a:hover,.sidebar-nav a.active,.sidebar-logout button:hover{background:rgba(255,255,255,.13);color:#fff}.sidebar-logout{margin-top:auto}.app-main{display:flex;min-width:0;min-height:100vh;flex:1;flex-direction:column;margin-left:16rem;overflow-x:hidden}.mobile-header{display:none}.app-content{width:100%;max-width:92rem;padding:2.75rem 3rem 3rem;margin:0 auto}.sidebar-backdrop{display:none}
.navbar-brand { display: flex; align-items: center; gap: .65rem; color: #244c42; font-weight: 700; line-height: 1; }
.navbar-brand small { display: block; font-size: .67rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; margin-top: .22rem; }
.brand-mark { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: .7rem; color: #fff; background: #315f52; font-family: Georgia, serif; font-size: 1.3rem; }
.nav-link { color: #56635d; font-size: .92rem; font-weight: 600; }
.nav-link:hover, .nav-link:focus { color: #244c42; }
.app-content { padding-top: 2.75rem; padding-bottom: 3rem; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.75rem; }
.page-heading h1 { margin: .15rem 0 .3rem; font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 750; letter-spacing: -.04em; }
.page-heading p { margin: 0; color: #68756e; }
.eyebrow { margin: 0; color: #a36e46; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.content-card { padding: 1.5rem; border: 1px solid #e4e9e5; border-radius: 1rem; background: #fff; box-shadow: 0 .4rem 1.5rem rgba(38, 51, 46, .035); }
.form-card { max-width: 52rem; }
.form-label { color: #445149; font-size: .9rem; font-weight: 650; }
.form-control, .form-select { border-color: #d9e0db; padding: .65rem .8rem; }
.form-control:focus, .form-select:focus { border-color: #73998a; box-shadow: 0 0 0 .2rem rgba(78, 122, 105, .12); }
.btn { font-weight: 650; border-radius: .6rem; padding: .56rem .85rem; }
.btn-primary { border-color: #315f52; background: #315f52; }
.btn-primary:hover, .btn-primary:focus { border-color: #244c42; background: #244c42; }
.form-actions { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1.8rem; padding-top: 1.25rem; border-top: 1px solid #edf0ee; }
.schedule-settings{display:grid;gap:.75rem}.schedule-setting-row{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(7rem,10rem) minmax(7rem,10rem);align-items:end;gap:1rem;padding:.9rem;border:1px solid #edf0ee;border-radius:.75rem}.schedule-setting-row .form-check{align-self:center}@media(max-width:575px){.schedule-setting-row{grid-template-columns:1fr 1fr}.schedule-setting-row .form-check{grid-column:1/-1}}
.search-bar { display: flex; gap: .6rem; align-items: center; }
.search-bar .form-control { max-width: 32rem; }
.table { --bs-table-bg: transparent; --bs-table-border-color: #edf0ee; }
.table thead th { color: #7a857f; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.status-pill { display: inline-block; padding: .28rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 700; }
.status-active { color: #21634d; background: #e4f2eb; }
.status-inactive { color: #7b6253; background: #f4ebe5; }
.status-pending { color: #765a1f; background: #fbf1d8; }
.status-paid { color: #21634d; background: #e4f2eb; }
.status-overdue { color: #a13e35; background: #fbe8e6; }
.status-cancelled { color: #65706a; background: #eef0ef; }
.empty-state { padding: 3.5rem 1rem; text-align: center; }
.empty-state h2 { font-size: 1.2rem; font-weight: 700; }
.calendar-nav{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:1rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid #edf0ee}.calendar-head span{padding:.5rem;text-align:center;font-size:.7rem;color:#7a857f}.calendar-day{min-height:8rem;padding:.5rem;border:1px solid #edf0ee;border-left:0;color:#34433b;text-decoration:none}.calendar-day:hover{background:#f5f8f5}.calendar-day.muted{color:#b3bbb6;background:#fafbfa}.calendar-entry{display:block;margin-top:.3rem;padding:.2rem;background:#e6f1ec;color:#245d4a;border-radius:.25rem;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-block{background:#f7e9df;color:#865239}.calendar-cancelled{text-decoration:line-through;background:#f2f3f2;color:#7b857e}@media(max-width:767px){.calendar-day{min-height:5rem;padding:.25rem}.calendar-entry{font-size:0;padding:.22rem}}
.calendar-no-show{background:#fbe8e6;color:#a13e35}.calendar-rescheduled{background:#fbf1d8;color:#765a1f;text-decoration:line-through}
.empty-state p { color: #68756e; }
.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.metric-card{display:flex;min-height:10rem;flex-direction:column;gap:.6rem;padding:1.35rem;border:1px solid #e4e9e5;border-radius:1rem;background:#fff}.metric-card span{color:#68756e;font-size:.85rem;font-weight:650}.metric-card strong{font-size:1.75rem;letter-spacing:-.04em}.metric-card a{margin-top:auto;color:#315f52;font-size:.85rem;font-weight:700;text-decoration:none}.metric-alert{background:#fff8f4;border-color:#f0d9ca}.payment-method{width:7rem;margin-right:.3rem}@media(max-width:767px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-method{display:block!important;width:100%;margin:0 0 .35rem}}
.auth-shell { min-height: calc(100vh - 12rem); display: grid; place-items: center; padding: 2rem 0; }
.auth-card { width: min(100%, 28rem); padding: 2rem; border: 1px solid #e4e9e5; border-radius: 1rem; box-shadow: 0 1rem 3rem rgba(28, 45, 36, .08); background: #fff; }
.booking-shell{width:min(100%,46rem);padding:2.5rem 0;margin:0 auto}.booking-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:4rem;color:#244c42;font-weight:750;line-height:1}.booking-brand small{display:block;margin-top:.25rem;font-size:.67rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.booking-intro{max-width:38rem;margin-bottom:2rem}.booking-intro h1,.booking-confirmed h1{margin:.3rem 0 .8rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:750;letter-spacing:-.05em}.booking-intro p,.booking-confirmed p{color:#68756e;font-size:1.05rem}.booking-card,.booking-confirmed{padding:2rem;border:1px solid #e4e9e5;border-radius:1.25rem;background:#fff;box-shadow:0 .8rem 2.5rem rgba(38,51,46,.06)}.booking-note{margin:1rem 0;color:#7a857f;font-size:.82rem;text-align:center}.booking-confirmed{text-align:center}.booking-confirmed .btn{margin-top:.75rem}@media(max-width:767px){.booking-shell{padding:1rem 0}.booking-brand{margin-bottom:2.5rem}.booking-card,.booking-confirmed{padding:1.25rem}}
.footer { width: auto; flex-shrink: 0; padding: 1.35rem 3rem; margin-top:auto; color: #7a857f; font-size: .85rem; }
.app-footer-content { width: min(100%, 92rem); margin: 0 auto; }
.footer span { margin: 0 .45rem; }
@media (max-width: 767px) { .page-heading { flex-direction: column; } .search-bar { flex-wrap: wrap; } .search-bar .form-control { min-width: 100%; } .content-card { padding: 1rem; } }
@media (max-width: 991px){.app-sidebar{width:17rem;transform:translateX(-100%);transition:transform .2s ease}.app-main{margin-left:0}.mobile-header{display:flex;height:4.5rem;align-items:center;gap:.8rem;padding:0 1rem;background:#fff;border-bottom:1px solid #e7ebe7;font-weight:750}.sidebar-toggle{display:grid;width:2.5rem;height:2.5rem;place-items:center;border:0;border-radius:.55rem;background:#edf2ef;color:#244c42;font-size:1.2rem}.sidebar-backdrop{position:fixed;z-index:15;inset:0;background:rgba(17,35,28,.42);opacity:0;pointer-events:none;transition:opacity .2s}.sidebar-open .app-sidebar{transform:translateX(0)}.sidebar-open .sidebar-backdrop{display:block;opacity:1;pointer-events:auto}.app-content{padding:1.75rem 1rem 2.5rem}.footer{padding:1.2rem 1rem}}
