:root {
  --ink: #203b35;
  --green: #173e35;
  --green-light: #eaf3ed;
  --gold: #a77c36;
  --muted: #7e8881;
  --line: #e5e7e0;
  --paper: #f6f7f3;
  --white: #fff;
  --red: #b95548;
  --amber: #b17a24;
  --shadow: 0 8px 40px #203b3508;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  font-family:
    Inter,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  background: var(--paper);
  color: var(--ink);
  font-size: 14px;
  line-height: 1.6;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button,
a {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
button:disabled {
  opacity: 0.5;
  cursor: wait;
}
a {
  color: inherit;
  text-decoration: none;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2,
h3 {
  line-height: 1.2;
  letter-spacing: -0.035em;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid #b7a279;
  outline-offset: 3px;
}
.icon {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.btn {
  border: 1px solid var(--line);
  border-radius: 7px;
  background: white;
  color: var(--ink);
  padding: 10px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1.5;
  font-weight: 550;
  white-space: nowrap;
}
.btn:hover {
  background: #f0f3ed;
}
.btn.primary {
  background: var(--green);
  border-color: var(--green);
  color: white;
}
.btn.primary:hover {
  background: #245246;
}
.btn.gold {
  background: #ac8040;
  color: white;
  border-color: #ac8040;
}
.btn.small {
  padding: 7px 12px;
  font-size: 12px;
}
.btn.danger {
  color: var(--red);
}
.text-btn {
  border: 0;
  background: none;
  color: var(--green);
  font-size: 12px;
  font-weight: 600;
  padding: 3px 0;
}
.muted {
  color: var(--muted);
}
.eyebrow {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold);
}
.serif {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}
.badge {
  border-radius: 5px;
  padding: 3px 8px;
  font-size: 10px;
  display: inline-block;
  font-weight: 600;
  letter-spacing: 0.02em;
  background: var(--green-light);
  color: #3f7058;
  white-space: nowrap;
}
.badge.amber {
  background: #faf0dc;
  color: #9c722b;
}
.badge.red {
  background: #fae9e5;
  color: #ac5045;
}
.badge.gray {
  background: #eff0ec;
  color: #7d857e;
}
.row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.between {
  justify-content: space-between;
}
.wrap {
  flex-wrap: wrap;
}
.spacer {
  flex: 1;
}
.loading {
  padding: 12vh;
  text-align: center;
}
.brand {
  display: flex;
  gap: 10px;
  align-items: center;
}
.brand img {
  width: 45px;
  height: 49px;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.brand-name {
  font-family: Georgia, serif;
  line-height: 1.3;
  font-size: 16px;
}
.brand-name small {
  font-family: inherit;
  display: block;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.06em;
}
.public-nav {
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1240px;
  margin: auto;
  padding: 0 36px;
}
.navlinks {
  display: flex;
  align-items: center;
  gap: 30px;
  font-size: 13px;
}
.landing {
  background: #fbfaf5;
}
.hero {
  max-width: 1320px;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  padding: 35px 55px 75px;
  gap: 65px;
}
.hero h1 {
  font-size: clamp(45px, 5.1vw, 74px);
  line-height: 1.07;
  letter-spacing: -0.05em;
  margin: 20px 0 24px;
}
.hero h1 em {
  color: #a27b41;
  font-weight: 400;
}
.hero p {
  color: #798178;
  max-width: 420px;
  font-size: 15px;
  line-height: 1.9;
}
.hero .row {
  margin-top: 28px;
}
.hero-image {
  height: 510px;
  border-radius: 110px 8px 8px 8px;
  position: relative;
}
.hero-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.image-caption {
  position: absolute;
  bottom: 23px;
  left: 23px;
  right: 23px;
  background: #fffffff0;
  backdrop-filter: blur(5px);
  padding: 18px 22px;
  border-radius: 5px;
  display: flex;
  justify-content: space-between;
}
.image-caption small {
  display: block;
  color: var(--muted);
  font-size: 11px;
}
.hours-strip {
  border-block: 1px solid #e5e3d8;
  display: flex;
  justify-content: center;
  gap: 75px;
  padding: 24px;
}
.hours-strip span {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #68776b;
}
.public-section {
  max-width: 1210px;
  margin: auto;
  padding: 90px 40px;
}
.section-top {
  text-align: center;
  margin-bottom: 40px;
}
.section-top h2 {
  font-size: 40px;
  margin: 12px 0;
}
.facility-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px 45px;
  margin-top: 45px;
}
.facility {
  padding: 10px 0;
}
.facility > .icon {
  color: var(--gold);
  width: 29px;
  height: 29px;
}
.facility h3 {
  font-size: 16px;
  margin: 18px 0 10px;
}
.facility p {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.85;
}
.hall-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
.hall-card {
  border: 1px solid #e4e1d6;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.hall-card img {
  width: 100%;
  height: 270px;
  object-fit: cover;
}
.hall-card > div {
  padding: 26px;
}
.hall-card h3 {
  font-size: 25px;
  margin: 8px 0 12px;
}
.hall-card p {
  color: var(--muted);
  font-size: 13px;
}
.pricing-section {
  background: #eeeee5;
}
.pricing-section .public-section {
  padding-block: 65px;
}
.duration {
  display: flex;
  gap: 4px;
  padding: 5px;
  background: #e4e6da;
  width: max-content;
  max-width: 100%;
  margin: 25px auto 35px;
  border-radius: 8px;
}
.duration button {
  border: 0;
  background: none;
  padding: 10px 19px;
  border-radius: 5px;
  color: #748073;
  font-size: 12px;
}
.duration button.active {
  background: white;
  color: var(--green);
  box-shadow: 0 1px 4px #0001;
}
.price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.price-card {
  background: #fff;
  border: 1px solid #e1e3d8;
  border-radius: 8px;
  padding: 30px;
}
.price-card.featured {
  background: var(--green);
  color: white;
  position: relative;
}
.price-card.featured .muted {
  color: #bed0c1;
}
.price-card h3 {
  font-size: 19px;
  margin-top: 15px;
}
.price-card .amount {
  font-family: Georgia, serif;
  font-size: 45px;
  margin: 24px 0 0;
  letter-spacing: -0.05em;
}
.price-card .amount small {
  font-family: Arial, sans-serif;
  font-size: 12px;
  letter-spacing: 0;
  color: #849084;
}
.price-card .details {
  border-top: 1px solid #d9dfd733;
  margin-top: 22px;
  padding-top: 20px;
  font-size: 12px;
  line-height: 2.2;
}
.shift-note {
  text-align: center;
  font-size: 12px;
  color: #7a8275;
  margin: 28px 0 0;
}
.contact-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}
.contact-block img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  border-radius: 8px;
}
.contact-block h2 {
  font-size: 43px;
  margin: 15px 0;
}
.contact-block p {
  color: var(--muted);
  margin-bottom: 20px;
}
.footer {
  border-top: 1px solid var(--line);
  padding: 30px 45px;
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--muted);
}
.shell {
  display: grid;
  grid-template-columns: 235px 1fr;
  min-height: 100vh;
}
.sidebar {
  position: fixed;
  width: 235px;
  top: 0;
  bottom: 0;
  background: #fcfcf9;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  padding: 31px 19px;
  z-index: 20;
}
.sidebar .brand {
  padding: 0 6px 30px;
}
.sidebar .brand-name {
  font-size: 15px;
}
.workspace-label {
  font-size: 9px;
  color: #9b9f91;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin: 8px 14px 14px;
}
.nav-item {
  border: 0;
  background: none;
  display: flex;
  align-items: center;
  width: 100%;
  gap: 13px;
  padding: 12px 14px;
  color: #7b837b;
  text-align: left;
  font-size: 12px;
  border-radius: 6px;
  margin: 2px 0;
}
.nav-item.active {
  color: var(--green);
  background: #eaf0e7;
  font-weight: 650;
}
.nav-item:hover {
  background: #f0f2eb;
}
.nav-item .icon {
  width: 18px;
  height: 18px;
}
.nav-item .count {
  margin-left: auto;
  font-size: 10px;
  background: #dfe7d9;
  border-radius: 4px;
  padding: 0 5px;
}
.sidebar-bottom {
  margin-top: auto;
}
.support-card {
  margin: 30px 6px 22px;
  background: #f1f0e5;
  padding: 16px;
  border-radius: 7px;
  font-size: 10px;
  color: #8a8c7b;
}
.support-card strong {
  font-family: Georgia, serif;
  display: block;
  color: #52604b;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 5px;
}
.profile {
  border-top: 1px solid var(--line);
  padding: 20px 6px 0;
  gap: 10px;
}
.avatar {
  display: grid;
  place-items: center;
  border-radius: 50%;
  width: 34px;
  height: 34px;
  background: #e7eadf;
  color: #76816c;
  font-size: 11px;
  flex-shrink: 0;
}
.profile strong {
  font-size: 11px;
  display: block;
}
.profile small {
  font-size: 9px;
  color: #8c9387;
}
.signout {
  border: 0;
  background: none;
  color: #89917f;
  padding: 5px;
  display: flex;
  margin-left: auto;
}
.main {
  grid-column: 2;
  min-width: 0;
}
.topbar {
  height: 79px;
  background: #fcfcf9;
  border-bottom: 1px solid var(--line);
  padding: 0 37px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  color: #949b8c;
}
.topbar .crumb {
  color: #445c4c;
}
.topbar .icon {
  width: 17px;
  height: 17px;
}
.topbar-right {
  display: flex;
  align-items: center;
  gap: 18px;
}
.live-dot {
  height: 6px;
  width: 6px;
  border-radius: 50%;
  background: #74a580;
  display: inline-block;
  margin-right: 6px;
}
.content {
  padding: 32px 37px 40px;
  max-width: 1600px;
  margin: auto;
}
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}
.page-header h1 {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 33px;
  letter-spacing: -0.03em;
}
.page-header p {
  color: #8b9386;
  font-size: 11px;
  margin-top: 9px;
}
.page-header .eyebrow {
  margin-bottom: 10px;
}
.metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 25px;
}
.metric {
  padding: 21px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.metric-top {
  display: flex;
  justify-content: space-between;
  color: #8a9585;
  font-size: 10px;
}
.metric-top .icon {
  width: 16px;
  height: 16px;
  color: #a2ad98;
}
.metric-value {
  font-size: 30px;
  letter-spacing: -0.04em;
  line-height: 1.5;
  font-weight: 550;
  margin-top: 11px;
}
.metric-value small {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  color: #99a18f;
}
.metric-foot {
  font-size: 9px;
  color: #8b9a83;
  margin-top: 5px;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);
  gap: 23px;
}
.panel {
  background: white;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.panel-pad {
  padding: 22px;
}
.panel-title {
  padding: 21px 23px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #edf0e7;
}
.panel-title h2 {
  font-size: 14px;
  letter-spacing: -0.02em;
  font-weight: 600;
}
.panel-title p {
  font-size: 10px;
  color: #959d8e;
  margin-top: 4px;
}
.panel-title .icon {
  width: 17px;
  height: 17px;
}
.hall-summary {
  padding: 22px;
  display: flex;
  gap: 18px;
}
.hall-preview {
  width: 104px;
  height: 81px;
  object-fit: cover;
  border-radius: 5px;
}
.hall-summary h3 {
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 5px;
}
.hall-summary .muted {
  font-size: 10px;
}
.hall-summary .bar {
  height: 5px;
  background: #e9eee3;
  border-radius: 5px;
  margin-top: 12px;
  overflow: hidden;
}
.hall-summary .bar div {
  height: 100%;
  background: #577e58;
}
.hall-meta {
  margin-left: auto;
  text-align: right;
  min-width: 80px;
}
.hall-meta strong {
  font-size: 25px;
  letter-spacing: -0.04em;
  font-weight: 500;
  display: block;
}
.hall-meta small {
  color: #95a087;
  font-size: 9px;
}
.hall-summary + .hall-summary {
  border-top: 1px solid #edf0e7;
}
.panel-note {
  background: #f8f9f5;
  padding: 12px 22px;
  color: #8d9885;
  font-size: 9px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.renewal-row {
  padding: 17px 21px;
  border-bottom: 1px solid #edf0e7;
  display: flex;
  align-items: center;
  gap: 11px;
}
.renewal-row strong {
  font-size: 11px;
  display: block;
}
.renewal-row small {
  font-size: 9px;
  color: #98a18f;
}
.renewal-row .badge {
  margin-left: auto;
  font-size: 9px;
}
.empty {
  padding: 40px 25px;
  text-align: center;
  color: #9aa38e;
  font-size: 11px;
  line-height: 1.9;
}
.empty .icon {
  width: 30px;
  height: 30px;
  color: #b3bfaa;
  margin-bottom: 10px;
}
.empty strong {
  display: block;
  color: #64765b;
  font-weight: 500;
  font-size: 13px;
}
.table-wrap {
  overflow: auto;
}
table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  white-space: nowrap;
}
th {
  padding: 13px 22px;
  font-weight: 500;
  color: #97a18d;
  background: #fbfcf8;
  font-size: 9px;
  letter-spacing: 0.03em;
}
td {
  padding: 15px 22px;
  border-top: 1px solid #eef0e9;
  font-size: 11px;
  color: #536548;
}
td strong {
  font-size: 11px;
  display: block;
  font-weight: 550;
}
td small {
  font-size: 9px;
  color: #98a18e;
}
td .avatar {
  width: 30px;
  height: 30px;
  font-size: 9px;
}
.search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: white;
  padding: 0 12px;
}
.search .icon {
  width: 15px;
  height: 15px;
  color: #96a08c;
}
.search input {
  border: 0;
  background: none;
  outline: 0;
  font-size: 11px;
  padding: 10px 0;
  width: 210px;
  max-width: 100%;
}
.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 21px;
}
.toolbar select,
.toolbar input[type="date"] {
  font-size: 11px;
  background: #fff;
}
.map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 20px;
}
.map-scroll {
  padding: 32px 24px;
  overflow: auto;
  background: radial-gradient(#e1e7d8 0.7px, transparent 0.7px);
  background-size: 12px 12px;
}
.seat-map {
  display: grid;
  gap: 7px;
  position: relative;
  min-width: 760px;
  grid-template-columns: repeat(24, minmax(25px, 1fr));
  grid-template-rows: repeat(12, 31px);
}
.seat-map.hall2 {
  min-width: 450px;
  grid-template-columns: repeat(9, minmax(35px, 1fr));
  grid-template-rows: repeat(8, 39px);
  max-width: 650px;
  margin: auto;
}
.seat {
  border: 1px solid #b7cfb1;
  border-radius: 5px 5px 3px 3px;
  color: #62865a;
  background: #f2f8ee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  position: relative;
  min-width: 0;
  padding: 0;
}
.seat:after {
  content: "";
  height: 3px;
  position: absolute;
  bottom: -4px;
  left: 5px;
  right: 5px;
  background: #c6d9bb;
  border-radius: 2px;
}
.seat.occupied {
  color: #a8863f;
  background: #f6eddb;
  border-color: #e2cf9e;
}
.seat.occupied:after {
  background: #ddca9d;
}
.seat.blocked {
  background: #eceee8;
  border-color: #d6d9ce;
  color: #adb39f;
}
.seat.blocked:after {
  background: #d6d9ce;
}
.seat.selected {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}
.seat:hover {
  filter: brightness(0.96);
  transform: translateY(-1px);
}
.map-entry {
  font-size: 9px;
  color: #93a389;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  grid-column: 17/22;
  grid-row: 2/4;
  pointer-events: none;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.hall2 .map-entry {
  grid-column: 8/10;
  grid-row: 7/9;
}
.legend {
  display: flex;
  gap: 20px;
  align-items: center;
  font-size: 10px;
  color: #8a987e;
  padding: 17px 22px;
  border-top: 1px solid var(--line);
}
.legend-dot {
  width: 8px;
  height: 8px;
  display: inline-block;
  background: #b7cfb1;
  border-radius: 2px;
  margin-right: 7px;
}
.legend-dot.taken {
  background: #d9bc7e;
}
.legend-dot.block {
  background: #d6d9ce;
}
.segmented {
  display: flex;
  gap: 3px;
  background: #ebeee4;
  padding: 4px;
  border-radius: 6px;
}
.segmented button {
  border: 0;
  background: none;
  padding: 8px 17px;
  border-radius: 4px;
  font-size: 11px;
  color: #8c9880;
}
.segmented button.active {
  background: #fff;
  color: var(--green);
  box-shadow: 0 1px 3px #0001;
}
.seat-detail {
  padding: 23px;
}
.seat-detail .big-seat {
  font-family: Georgia, serif;
  font-size: 50px;
  font-weight: 400;
  margin: 20px 0 10px;
}
.seat-detail p {
  font-size: 11px;
  color: #91a083;
  margin: 10px 0 20px;
}
.detail-list {
  border-top: 1px solid var(--line);
  padding-top: 15px;
  margin-top: 18px;
}
.detail-list > div {
  margin: 12px 0;
  font-size: 11px;
}
.detail-list strong {
  display: block;
  font-size: 12px;
}
.detail-list small {
  color: #98a38d;
  font-size: 10px;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 17px;
}
.field label {
  font-size: 11px;
  font-weight: 550;
  color: #687b59;
}
.field input,
.field select,
.field textarea,
input.input,
select.input {
  width: 100%;
  border: 1px solid #dfe5d6;
  background: #fff;
  border-radius: 5px;
  padding: 10px 12px;
  color: #405438;
  line-height: 1.5;
  min-height: 40px;
}
.field textarea {
  min-height: 85px;
  resize: vertical;
}
.field small {
  font-size: 10px;
  color: #98a18c;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 18px;
}
.full {
  grid-column: 1/-1;
}
.check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 11px;
  color: #849174;
  margin-bottom: 20px;
}
.check input {
  margin-top: 4px;
  accent-color: var(--green);
}
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: #152a235e;
  backdrop-filter: blur(4px);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 25px;
}
.modal {
  width: 560px;
  max-width: 100%;
  background: white;
  border-radius: 10px;
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 30px 100px #0b281d25;
}
.modal.wide {
  width: 770px;
}
.modal-header {
  padding: 24px 28px 20px;
  border-bottom: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.modal-header h2 {
  font-family: Georgia, serif;
  font-size: 25px;
  font-weight: 400;
}
.close {
  border: 0;
  background: none;
  font-size: 24px;
  color: #9ba58e;
  line-height: 1;
  padding: 5px;
}
.modal-body {
  padding: 25px 28px;
}
.modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 23px;
}
.form-error {
  color: #b05041;
  background: #fcf0eb;
  border-radius: 5px;
  padding: 10px 13px;
  font-size: 12px;
  margin-bottom: 16px;
}
.notice {
  background: #f4f1e5;
  border: 1px solid #e9e3cf;
  padding: 14px 18px;
  border-radius: 6px;
  color: #9b8455;
  font-size: 11px;
  line-height: 1.8;
  margin-bottom: 20px;
}
.notice.green {
  background: #edf4e7;
  border-color: #dce8d3;
  color: #708c5e;
}
.student-welcome {
  background: var(--green);
  border-radius: 9px;
  position: relative;
  overflow: hidden;
  color: white;
  padding: 32px 36px;
  margin-bottom: 25px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.student-welcome h2 {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 31px;
  margin: 10px 0;
}
.student-welcome p {
  color: #bbcdb8;
  font-size: 12px;
  max-width: 450px;
}
.student-welcome img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  border-radius: 50%;
  opacity: 0.9;
}
.settings-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.info-row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
#toast {
  position: fixed;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 200;
  display: none;
  padding: 13px 22px;
  border-radius: 7px;
  box-shadow: 0 8px 40px #0002;
  background: var(--green);
  color: white;
  max-width: 90vw;
  font-size: 12px;
}
#toast.error {
  background: #a24b3e;
}
.mobile-menu {
  display: none;
}
.app-footer {
  display: flex;
  justify-content: space-between;
  padding: 22px 0 0;
  font-size: 9px;
  color: #a2aa97;
}
.receipt {
  color: #213b30;
}
.receipt-head {
  display: flex;
  justify-content: space-between;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--line);
}
.receipt-total {
  font-family: Georgia, serif;
  font-size: 37px;
  margin: 22px 0;
}
.receipt .info-row {
  font-size: 12px;
}
.receipt small {
  font-size: 10px;
}
.message-card {
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 15px;
}
.message-card h3 {
  font-size: 12px;
  font-weight: 550;
}
.message-card p {
  font-size: 10px;
  color: #98a18d;
}
.message-card .badge {
  margin-left: auto;
}
.gap-top {
  margin-top: 24px;
}
.intro-icon {
  width: 42px;
  height: 42px;
  border-radius: 9px;
  background: #eef2e7;
  display: grid;
  place-items: center;
  color: #7b9569;
}
.login-intro {
  text-align: center;
  margin-bottom: 25px;
}
.login-intro img {
  width: 72px;
  height: 72px;
  object-fit: contain;
}
.login-intro p {
  color: #99a28d;
  font-size: 12px;
  margin-top: 8px;
}
.login-intro h3 {
  font-size: 20px;
  margin-top: 12px;
  font-family: Georgia, serif;
  font-weight: 400;
}
.csvlink {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.audit-item {
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
  font-size: 11px;
}
.audit-item small {
  color: #9ca68d;
  font-size: 9px;
  display: block;
  margin-top: 3px;
}
.status-warning {
  color: #aa8040;
  font-size: 10px;
}
.page-header .btn {
  font-size: 11px;
  padding: 10px 14px;
}
hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 20px 0;
}
@media (min-width: 1500px) {
  .content {
    padding-top: 40px;
  }
  .dashboard-grid {
    grid-template-columns: 1.8fr 1fr;
  }
  .metric {
    padding: 26px;
  }
  .hall-preview {
    width: 125px;
    height: 85px;
  }
}
@media (max-width: 1150px) {
  .shell {
    grid-template-columns: 205px 1fr;
  }
  .sidebar {
    width: 205px;
    padding-inline: 13px;
  }
  .content {
    padding: 27px 25px;
  }
  .topbar {
    padding-inline: 25px;
  }
  .metrics {
    gap: 10px;
  }
  .metric {
    padding: 17px;
  }
  .dashboard-grid {
    grid-template-columns: 1fr;
  }
  .map-layout {
    grid-template-columns: 1fr;
  }
  .seat-detail {
    min-height: 170px;
  }
  .hero {
    gap: 35px;
    padding-inline: 35px;
  }
  .hero-image {
    height: 440px;
  }
  .hours-strip {
    gap: 30px;
  }
  .brand-name {
    font-size: 14px;
  }
  .map-scroll {
    padding-inline: 15px;
  }
}
@media (max-width: 760px) {
  .hero {
    grid-template-columns: 1fr;
    padding: 35px 25px 40px;
    gap: 35px;
  }
  .hero h1 {
    font-size: 54px;
  }
  .hero-image {
    height: 350px;
    border-top-left-radius: 70px;
  }
  .public-nav {
    padding: 0 23px;
    height: 78px;
  }
  .navlinks > a {
    display: none;
  }
  .navlinks {
    gap: 8px;
  }
  .navlinks .btn {
    padding: 8px 12px;
    font-size: 11px;
  }
  .hours-strip {
    padding: 20px;
    flex-wrap: wrap;
    gap: 15px 25px;
    font-size: 11px;
  }
  .public-section {
    padding: 60px 25px;
  }
  .facility-grid {
    grid-template-columns: 1fr 1fr;
    gap: 25px;
  }
  .section-top h2 {
    font-size: 33px;
  }
  .hall-pair,
  .price-grid,
  .contact-block {
    grid-template-columns: 1fr;
  }
  .price-card {
    padding: 24px;
  }
  .hall-card img {
    height: 225px;
  }
  .price-card .amount {
    margin-top: 15px;
  }
  .contact-block {
    gap: 25px;
  }
  .contact-block h2 {
    font-size: 35px;
  }
  .footer {
    padding: 25px;
    gap: 18px;
    flex-direction: column;
  }
  .shell {
    display: block;
  }
  .sidebar {
    transform: translateX(-100%);
    transition: transform 0.2s;
    width: 235px;
    box-shadow: 20px 0 60px #0002;
  }
  .sidebar.open {
    transform: translateX(0);
  }
  .main {
    width: 100%;
  }
  .topbar {
    height: 65px;
    padding: 0 19px;
  }
  .mobile-menu {
    display: flex;
    background: none;
    border: 0;
    color: var(--green);
    padding: 5px;
  }
  .topbar-left {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .topbar-right .date-label {
    display: none;
  }
  .content {
    padding: 25px 19px;
  }
  .page-header {
    align-items: flex-start;
    gap: 15px;
  }
  .page-header h1 {
    font-size: 29px;
  }
  .page-header p {
    line-height: 1.8;
    max-width: 230px;
  }
  .page-header .btn {
    font-size: 10px;
    padding: 9px 11px;
  }
  .metrics {
    grid-template-columns: 1fr 1fr;
    gap: 11px;
  }
  .metric-value {
    font-size: 27px;
  }
  .metric-foot {
    font-size: 9px;
  }
  .toolbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .search {
    max-width: 100%;
  }
  .toolbar .row {
    flex-wrap: wrap;
  }
  .settings-grid {
    grid-template-columns: 1fr;
  }
  .student-welcome {
    padding: 25px;
  }
  .student-welcome h2 {
    font-size: 26px;
  }
  .student-welcome img {
    width: 65px;
    height: 65px;
  }
  .modal-backdrop {
    padding: 15px;
  }
  .modal-header {
    padding: 20px;
  }
  .modal-body {
    padding: 20px;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .full {
    grid-column: auto;
  }
  .duration button {
    padding: 9px 13px;
  }
  .app-footer {
    gap: 15px;
    flex-wrap: wrap;
  }
  .message-card {
    padding: 15px;
    gap: 10px;
  }
  .message-card .intro-icon {
    display: none;
  }
  .message-card .badge {
    font-size: 9px;
  }
  .hall-meta {
    min-width: 50px;
  }
  .hall-summary {
    padding: 18px;
    gap: 12px;
  }
  .hall-preview {
    width: 88px;
    height: 78px;
  }
  .panel-title {
    padding: 19px;
  }
  th,
  td {
    padding-inline: 18px;
  }
  .map-scroll {
    padding: 28px 18px;
  }
  .legend {
    gap: 15px;
    font-size: 9px;
  }
  .panel-note {
    gap: 12px;
  }
  .hero .row {
    gap: 10px;
  }
  .hero .btn {
    font-size: 12px;
  }
  .page-header .eyebrow {
    font-size: 9px;
  }
  .page-header .row {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
}
@media print {
  body {
    background: white;
  }
  .shell,
  .landing,
  #toast,
  .modal-header,
  .modal-footer,
  .no-print {
    display: none !important;
  }
  .modal-backdrop {
    position: static;
    background: none;
    padding: 0;
    display: block;
  }
  .modal {
    box-shadow: none;
    width: 100%;
    max-height: none;
    overflow: visible;
  }
  .modal-body {
    padding: 25px;
  }
  .receipt {
    display: block;
  }
  .receipt .brand img {
    display: block;
  }
  .modal {
    border: 0;
  }
}
.brand img {
  flex-shrink: 0;
}
.brand-name small {
  white-space: nowrap;
  font-size: 8px;
  letter-spacing: 0.13em;
}
.sidebar .brand img {
  width: 36px;
  height: 42px;
}
.sidebar .brand-name {
  font-size: 13px;
}
.sidebar .brand {
  gap: 8px;
}
.sidebar .brand-name small {
  font-size: 7px;
  letter-spacing: 0.1em;
}
@media (min-width: 1151px) and (max-width: 1450px) {
  .map-layout {
    grid-template-columns: 1fr;
  }
  .seat-detail {
    min-height: 180px;
  }
  .seat-map {
    min-width: 760px;
  }
}


/* MBL 2026 visual refresh — genuine MBL photography; no backend changes */
:root{--ink:#24312d;--green:#173d35;--green-light:#e9f1eb;--gold:#ad8250;--muted:#66746d;--line:#e2e8e2;--paper:#f5f7f4;--white:#fff;--shadow:0 12px 36px rgba(20,50,42,.055)}
html{scroll-behavior:smooth}body{font-size:14px;letter-spacing:.004em}::selection{background:#d8e7d9;color:#173d35}
.btn{border-radius:12px;font-weight:650;min-height:41px;transition:background .2s,transform .2s,box-shadow .2s}.btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 10px 20px #183d3520}.btn.primary{background:linear-gradient(135deg,#17483c,#256351);border-color:#17483c}.btn.primary:hover{background:linear-gradient(135deg,#205747,#327261)}.btn.gold{background:#b58b56;border-color:#b58b56}
.landing{background:#fbfcf9}.public-nav{max-width:1390px;height:91px;padding:0 4.5%;}.landing .public-nav .brand-name{font-size:18px;color:#193e32}.landing .public-nav .brand img{width:55px;height:55px}.navlinks{gap:30px;color:#385347;font-weight:550}.navlinks>a:not(.btn){position:relative}.navlinks>a:not(.btn):hover{color:#a8783e}.navlinks .btn{border-radius:50px;padding-inline:20px}.hero{max-width:1400px;grid-template-columns:.91fr 1.09fr;padding:58px 5% 85px;gap:6%;min-height:650px}.hero>div:first-child{position:relative;z-index:1}.hero .eyebrow{display:inline-flex;align-items:center;padding:9px 14px;border:1px solid #d8e7d8;background:#f1f7f1;border-radius:100px;color:#37684f;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}.hero h1{font-size:clamp(52px,5.7vw,86px);letter-spacing:-.064em;line-height:1.05;color:#1a382e;margin-top:28px}.hero h1 em{color:#bc8c52}.hero p{color:#63756b;font-size:16px;max-width:480px;line-height:1.9}.hero .btn{border-radius:12px;padding:13px 20px}.hero-image{height:540px;border-radius:24px;box-shadow:0 27px 70px #1c453323;isolation:isolate;overflow:hidden}.hero-image>img{object-position:center;filter:contrast(1.04) saturate(1.05);transition:transform .7s ease}.hero-image:hover>img{transform:scale(1.035)}.hero-image:after{content:"";position:absolute;inset:50% 0 0;pointer-events:none;background:linear-gradient(transparent,#102d2680);z-index:0}.image-caption{z-index:1;bottom:22px;left:22px;right:22px;background:#fffffff2;box-shadow:0 12px 28px #173d351b;border-radius:16px;padding:19px 23px}.image-caption .eyebrow{padding:0;border:0;background:none;border-radius:0}.image-caption small{font-size:12px;margin-top:6px}.hours-strip{max-width:1270px;margin:-36px auto 0;position:relative;z-index:2;display:flex;justify-content:space-around;gap:20px;padding:25px 35px;background:#193f35;border:0;border-radius:16px;box-shadow:0 14px 40px #173c352e}.hours-strip span{color:#f6f6ee;font-size:13px;font-weight:600}.hours-strip .icon{color:#d5ab77}.public-section{max-width:1280px;padding:105px 42px}.section-top{margin-bottom:45px}.section-top h2{font-size:clamp(32px,3.7vw,49px);letter-spacing:-.045em;color:#193d32}.section-top .eyebrow,.hall-card .eyebrow,.contact-block .eyebrow{color:#a77943;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:750}.section-top>.muted{font-size:15px}.facility-grid{gap:20px;margin-top:36px}.facility{border:1px solid #e2eae2;border-radius:18px;padding:30px 27px;background:#fff;box-shadow:0 8px 24px #203b3508;transition:transform .2s,box-shadow .2s}.facility:hover{transform:translateY(-4px);box-shadow:0 16px 32px #203b3514}.facility>.icon{width:27px;height:27px;color:#ad8250}.facility h3{font-size:16px;color:#203e34}.facility p{font-size:13px;color:#6d796f}.hall-pair{gap:26px}.hall-card{border:1px solid #e2e9e1;border-radius:20px;box-shadow:0 12px 30px #173d350c;transition:transform .2s;overflow:hidden}.hall-card:hover{transform:translateY(-4px)}.hall-card img{height:315px;object-fit:cover;display:block}.hall-card:first-child img{object-position:center 55%}.hall-card:nth-child(2) img{object-position:center 45%}.hall-card>div{padding:30px 32px 35px}.hall-card h3{font-size:29px;color:#203d31}.hall-card p{font-size:14px;line-height:1.85}.pricing-section{background:linear-gradient(135deg,#edf3ed,#f4f0e7)}.pricing-section .public-section{padding-block:90px}.contact-block{gap:75px;align-items:center}.contact-block img{height:390px;border-radius:22px;box-shadow:0 22px 55px #1435291e}.contact-block h2{font-size:clamp(34px,3.5vw,50px);color:#1b3e32}.contact-block p{font-size:14px;line-height:1.85}.footer{background:#153a31;color:#d1ddd3;border:0;padding:37px max(32px,calc((100vw - 1200px)/2));font-size:12px}
.shell{grid-template-columns:250px minmax(0,1fr)}.sidebar{width:250px;background:#173c33;border-right:none;padding:27px 17px;color:#eaf1e8}.sidebar .brand{padding:3px 6px 26px}.sidebar .brand-name{color:#fff}.sidebar .brand-name small{color:#b7d0c2}.sidebar .brand img{background:#fff;border-radius:12px;padding:3px;mix-blend-mode:normal}.workspace-label{color:#9bb9a9}.nav-item{color:#cbddd1;border-radius:11px;font-size:13px;font-weight:500}.nav-item:hover{background:#285447;color:white}.nav-item.active{background:#edf4ed;color:#1b4d3d;font-weight:750}.nav-item .count{color:#1d4d3d}.support-card{background:#275246;color:#c5dacd;border-radius:13px}.support-card strong{color:#fff}.profile{border-color:#42685a}.profile strong{color:#fff}.profile small,.signout{color:#b2d1c0}.avatar{background:#dce9de;color:#184a39}.main{background:#f5f7f4}.topbar{background:#fff;height:76px;border-color:#e6ece6;color:#728278}.topbar .crumb{color:#254e3d;font-weight:650}.content{padding:37px 42px}.page-header h1{color:#203e34;font-weight:500}.metric,.panel{border-color:#e3eae4;border-radius:17px;box-shadow:0 10px 26px #1435290b}.metric{padding:24px 25px}.metric-value{color:#1f4839;font-weight:700}.panel-title{background:#fff}.hall-preview{border-radius:11px;object-fit:cover}.student-welcome{border-radius:18px;overflow:hidden}.login-intro img{border-radius:14px}.field input,.field select,.field textarea{border-radius:10px}
@media(max-width:1150px){.shell{grid-template-columns:225px minmax(0,1fr)}.sidebar{width:225px}.hero{gap:30px;min-height:0}.hero-image{height:445px}.hours-strip{margin:0 22px}.facility-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.public-nav{padding:0 18px;height:auto;min-height:78px;gap:10px;flex-wrap:wrap}.landing .public-nav .brand-name{font-size:14px}.landing .public-nav .brand img{width:43px;height:43px}.navlinks{gap:11px;flex-wrap:wrap;justify-content:center}.navlinks>a:not(.btn){font-size:12px}.hero{display:flex;flex-direction:column;padding:40px 22px 40px;gap:30px}.hero h1{font-size:clamp(45px,11vw,66px)}.hero p{font-size:14px}.hero-image{height:365px;width:100%;border-radius:18px}.hours-strip{display:grid;grid-template-columns:1fr;gap:13px;margin:0 16px;padding:22px 24px}.hours-strip span{font-size:12px}.public-section{padding:64px 20px}.facility-grid,.hall-pair,.contact-block{grid-template-columns:1fr}.facility{padding:22px}.hall-card img{height:245px}.contact-block{gap:30px}.contact-block img{height:270px}.section-top h2{font-size:34px}.footer{display:flex;flex-direction:column;gap:8px;padding:30px 22px}.content{padding:24px 16px}.metric{padding:18px}.topbar{padding:0 16px}}
@media print{.sidebar{display:none!important}.main{background:white}.metric,.panel{box-shadow:none}}

/* Header refinement: distinct library title and stronger navigation hierarchy */
.landing .public-nav{max-width:1440px;min-height:108px;height:auto;padding:16px clamp(22px,4.5vw,72px);gap:28px;background:#fff;border-bottom:1px solid #e5ece5;box-shadow:0 6px 22px rgba(18,49,39,.045)}
.brand{display:inline-flex;align-items:center;gap:15px;min-width:0;text-decoration:none}
.brand img{width:64px;height:64px;object-fit:contain;flex-shrink:0;mix-blend-mode:normal}
.brand-name{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;line-height:1.06;min-width:0;font-family:Georgia,'Times New Roman',serif;font-weight:700;letter-spacing:-.025em}
.brand-title,.brand-library{display:block}
.landing .public-nav .brand-name{font-size:clamp(21px,1.8vw,27px);color:#173e35}
.brand-library{color:#ac7c45;font-size:1.08em;margin-top:3px}
.brand-name small{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;font-size:10px!important;font-weight:700!important;letter-spacing:.17em!important;line-height:1.5;white-space:normal;margin-top:7px;color:#6b8273}
.landing .public-nav .brand img{width:68px;height:68px}
.landing .public-nav .navlinks{gap:clamp(15px,2vw,30px);font-size:14px;font-weight:650;flex-shrink:0}
.landing .public-nav .navlinks>a:not(.btn){padding:12px 0}
.landing .public-nav .navlinks .btn{font-size:13px;min-height:46px;padding-inline:21px}
.sidebar .brand{gap:11px;align-items:center;padding-bottom:26px}
.sidebar .brand img{width:48px;height:48px;background:#fff;border-radius:12px;padding:3px}
.sidebar .brand-name{font-size:17px;line-height:1.1;letter-spacing:-.025em;color:#fff}
.sidebar .brand-library{color:#e2ba80}
.sidebar .brand-name small{font-size:8px!important;letter-spacing:.09em!important;color:#bfd0c7;margin-top:5px}
@media(max-width:1100px){.landing .public-nav{gap:12px;padding-inline:22px}.landing .public-nav .brand-name{font-size:21px}.landing .public-nav .brand img{width:56px;height:56px}.landing .public-nav .navlinks{gap:14px;font-size:12px}.landing .public-nav .navlinks .btn{padding-inline:14px}}
@media(max-width:760px){.landing .public-nav{min-height:88px;padding:15px 16px;flex-wrap:nowrap;gap:8px}.landing .public-nav .brand{gap:8px;flex:1;min-width:0}.landing .public-nav .brand img{width:44px;height:44px}.landing .public-nav .brand-name{font-size:clamp(15px,4.1vw,20px)}.landing .public-nav .brand-name small{font-size:7px!important;letter-spacing:.08em!important;margin-top:4px}.landing .public-nav .navlinks{flex:0 0 auto;gap:0}.landing .public-nav .navlinks>a:not(.btn){display:none}.landing .public-nav .navlinks .btn{font-size:11px;min-height:37px;padding:8px 10px}.sidebar .brand-name{font-size:17px}}
@media(max-width:375px){.landing .public-nav .brand img{width:37px;height:37px}.landing .public-nav .brand-name{font-size:14px}.landing .public-nav .navlinks .btn{font-size:10px;padding:7px 8px}}

/* 28 Oct — real-library image-led hero, premium overlapping gallery */
.landing .hero { gap: clamp(32px,4vw,68px); grid-template-columns: .88fr 1.12fr; overflow: visible; }
.landing .hero-image { position:relative; overflow:visible; isolation:isolate; height:clamp(430px,42vw,570px); border-radius:20px; }
.landing .hero-image > .hero-primary-photo { display:block; height:100%; width:100%; object-fit:cover; object-position:50% 55%; border-radius:20px; box-shadow:0 24px 60px #173c352b; }
.landing .hero-image::after { display:none; }
.landing .hero-image .hero-secondary-photo { position:absolute; z-index:3; width:43%; aspect-ratio:1.32; right:-6%; bottom:-35px; border:6px solid #fff; border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 15px 38px #0c282733; }
.landing .hero-image .hero-secondary-photo img { display:block;width:100%;height:100%;object-fit:cover;object-position:center; }
.landing .hero-image .hero-secondary-photo span { position:absolute;bottom:0;left:0;right:0;padding:9px 10px;background:linear-gradient(transparent,#0d211ebd);color:white;font-size:10px;font-weight:700;letter-spacing:.06em;line-height:1.35; }
.landing .hero-image .image-caption { bottom:20px;left:20px;right:auto;max-width:55%;padding:12px 16px;border-radius:12px;z-index:2; }
.landing .hero-image .image-caption small { font-size:11px; }
.landing .hours-strip { margin-top:4px; }
@media(max-width:1100px){.landing .hero{grid-template-columns:1fr 1fr;gap:24px}.landing .hero-image .hero-secondary-photo{right:-3%;width:42%}}
@media(max-width:760px){.landing .hero{display:flex;flex-direction:column;gap:27px;padding-bottom:75px}.landing .hero-image{width:100%;height:clamp(290px,73vw,430px)}.landing .hero-image .hero-secondary-photo{width:45%;right:-1%;bottom:-36px;border-width:4px;border-radius:11px}.landing .hero-image .image-caption{left:11px;bottom:12px;max-width:53%;padding:9px 11px}.landing .hero-image .image-caption small{font-size:10px}.landing .hero-image .hero-secondary-photo span{font-size:8px;padding:7px}.landing .hours-strip{margin-top:0}}

/* 2026-10-28: library imagery — full-frame Premium Hall, balanced Focus Hall */
.landing .hall-pair .hall-card img {
  width: 100%;
  height: 315px;
  display: block;
  object-fit: contain;
  object-position: center center;
  background: #f3f5f2;
  filter: none;
}
.landing .hero-image > .hero-primary-photo {filter: none;}
.landing .hero-image .hero-secondary-photo img {
  object-fit: contain;
  object-position: center center;
  background: #f3f5f2;
  filter: none;
}
@media (max-width:760px) {
  .landing .hall-pair .hall-card img { height: auto; aspect-ratio: 1.72; object-fit: contain; }
}

.student-profile-pic{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;border:2px solid #e2eae4}

/* 29 Oct: aligned premium brand and cohesive full-width page framing */
.landing { position:relative; isolation:isolate; overflow-x:clip; background:linear-gradient(180deg,#ffffff 0%,#f9faf6 45%,#fbfcf9 100%); }
.landing::before,.landing::after {content:"";pointer-events:none;position:absolute;z-index:-1;top:185px;width:clamp(90px,13vw,260px);height:730px;opacity:.55;}
.landing::before {left:0;background:radial-gradient(circle at 0 22%,transparent 0 52px,#dce9dd 53px 54px,transparent 55px 88px,#e7eee4 89px 90px,transparent 91px),radial-gradient(circle at 0 75%,#eaf2e8 0 2px,transparent 3px);background-size:auto,23px 23px;mask-image:linear-gradient(to right,#000,transparent);}
.landing::after {right:0;background:radial-gradient(circle at 100% 18%,transparent 0 58px,#e6dfcd 59px 60px,transparent 61px 98px,#e9ede4 99px 100px,transparent 101px),radial-gradient(circle at 100% 73%,#dbe9df 0 2px,transparent 3px);background-size:auto,25px 25px;mask-image:linear-gradient(to left,#000,transparent);}
.landing .public-nav {width:100%;max-width:none;min-height:98px;padding:15px clamp(24px,5vw,90px);background:linear-gradient(105deg,#fff 0%,#fcfdf9 72%,#f1f6ef 100%);border-bottom:1px solid #dae5d8;box-shadow:0 4px 20px rgba(20,55,39,.055);}
.landing .public-nav .brand {gap:15px;flex:0 1 auto;align-items:center;}
.landing .public-nav .brand img {width:63px;height:63px;padding:5px;border-radius:16px;background:#f2f7ef;box-shadow:0 0 0 1px #d9e7d9;}
.landing .public-nav .brand-name {display:flex;flex-direction:column;justify-content:center;gap:2px;font-size:clamp(22px,1.95vw,30px);font-weight:700;line-height:1.09;letter-spacing:-.035em;color:#173d33;}
.landing .public-nav .brand-library {font-size:1.06em;color:#b2854e;margin-top:0;}
.landing .public-nav .navlinks {gap:clamp(18px,2.1vw,36px);}
.landing .public-nav .navlinks>a:not(.btn):hover {color:#a5763e;}
.landing .public-nav .navlinks .btn {background:#174437;border-color:#174437;color:white;border-radius:12px;box-shadow:0 6px 14px rgba(20,68,54,.13);}
.landing .public-nav .navlinks .btn:hover {background:#23614d;}
.landing .hero {max-width:1510px;padding-inline:clamp(26px,5.4vw,88px);}
.landing .public-section {max-width:1420px;padding-inline:clamp(26px,5vw,70px);}
.landing .hours-strip {max-width:1350px;}
/* Keep interior/app branding consistent without altering dashboard layout. */
.sidebar .brand-name small {display:none;}
.sidebar .brand-name {justify-content:center;}
@media(max-width:1100px) {.landing .public-nav{padding-inline:24px}.landing .public-nav .brand img{width:54px;height:54px}.landing .public-nav .brand-name{font-size:22px}.landing .public-nav .navlinks{gap:15px}.landing::before,.landing::after{opacity:.3}}
@media(max-width:760px) {.landing .public-nav{min-height:83px;padding:12px 16px;gap:10px}.landing .public-nav .brand{gap:9px}.landing .public-nav .brand img{width:44px;height:44px;padding:3px;border-radius:10px}.landing .public-nav .brand-name{font-size:clamp(15px,4.15vw,20px);line-height:1.1}.landing .public-nav .navlinks{gap:0}.landing .public-nav .navlinks .btn{padding:9px 10px;min-height:39px;font-size:11px;border-radius:9px}.landing::before,.landing::after{display:none}.landing .public-section{padding-inline:20px}.landing .hero{padding-inline:22px}}
@media(max-width:380px) {.landing .public-nav .brand-name{font-size:14px}.landing .public-nav .brand img{width:39px;height:39px}}


/* 29 Oct: premium framed hero image styling */
.landing .hero-image {
  transform: translateZ(0);
}
.landing .hero-image::before {
  content: "";
  position: absolute;
  inset: -16px 34px 34px -16px;
  border-radius: 30px;
  background:
    linear-gradient(140deg, rgba(255,255,255,.94), rgba(243,248,241,.88) 48%, rgba(232,241,234,.92)),
    linear-gradient(135deg, #e0ecdf, #f7f1e7);
  border: 1px solid #dce7db;
  box-shadow: 0 24px 55px rgba(23, 61, 53, .10), inset 0 0 0 1px rgba(255,255,255,.72);
  z-index: -2;
  animation: heroFrameFloat 6.5s ease-in-out infinite;
}
.landing .hero-image::after {
  display: block;
  content: "";
  position: absolute;
  width: 132px;
  height: 132px;
  right: -22px;
  top: -22px;
  border-radius: 24px;
  border: 1px dashed rgba(172, 128, 64, .6);
  background:
    radial-gradient(circle at 22% 22%, rgba(173,130,80,.14) 0 4px, transparent 5px),
    linear-gradient(135deg, rgba(255,255,255,.45), rgba(255,255,255,0));
  z-index: -1;
  animation: heroAccentDrift 9s ease-in-out infinite;
}
.landing .hero-image > .hero-primary-photo {
  border: 10px solid rgba(255,255,255,.96);
  outline: 1px solid #dde8dd;
  box-shadow: 0 28px 64px rgba(23,60,53,.18), 0 0 0 10px rgba(242,247,239,.5);
}
.landing .hero-image .hero-secondary-photo {
  box-shadow: 0 18px 42px rgba(12,40,39,.22), 0 0 0 1px rgba(224,235,224,.95);
  animation: heroCardLift 6.2s ease-in-out infinite;
}
.landing .hero-image .image-caption {
  border: 1px solid rgba(224, 233, 225, .95);
  box-shadow: 0 16px 30px rgba(23,61,53,.12);
}
@keyframes heroFrameFloat {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(-5px); }
}
@keyframes heroAccentDrift {
  0%,100% { transform: translate3d(0,0,0) rotate(0deg); }
  50% { transform: translate3d(0,-6px,0) rotate(2deg); }
}
@keyframes heroCardLift {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(-4px); }
}
@media (prefers-reduced-motion: reduce) {
  .landing .hero-image::before,
  .landing .hero-image::after,
  .landing .hero-image .hero-secondary-photo { animation: none; }
}
@media (max-width: 760px) {
  .landing .hero-image::before { inset: -10px 18px 22px -10px; border-radius: 20px; }
  .landing .hero-image::after { width: 88px; height: 88px; right: -6px; top: -8px; border-radius: 16px; }
  .landing .hero-image > .hero-primary-photo { border-width: 6px; box-shadow: 0 18px 38px rgba(23,60,53,.16), 0 0 0 6px rgba(242,247,239,.45); }
}

/* Popular membership selection and plans-page link */
.landing .all-plans-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:34px auto 10px;padding:24px 28px;border:1px solid #d9e5da;border-radius:19px;background:linear-gradient(110deg,#fff,#eef5ec);box-shadow:0 10px 28px rgba(23,61,53,.07)}
.landing .all-plans-cta strong{font-size:18px;color:#173e35}.landing .all-plans-cta p{margin-top:5px;color:#617368}.landing .all-plans-cta a{white-space:nowrap;border-radius:10px}.landing .popular-plan-label{width:max-content;margin:2px auto 18px;padding:6px 14px;border-radius:30px;background:#f7edda;color:#896129;font-weight:750;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:760px){.landing .all-plans-cta{flex-direction:column;align-items:stretch;padding:21px}.landing .all-plans-cta a{white-space:normal;text-align:center}}

/* Lunch & Leisure Zone — last homepage image */
.landing .lounge-section{gap:clamp(32px,5vw,72px);align-items:center}
.landing .lounge-visual{position:relative;min-width:0;padding:13px;border:1px solid #dbe8dc;background:linear-gradient(145deg,#f4f8f1,#fffaf2);border-radius:27px;box-shadow:0 22px 55px rgba(24,62,48,.10)}
.landing .lounge-visual::before{content:"";position:absolute;inset:-13px 30px 30px -13px;border:1px solid #ddc7a1;border-radius:30px;z-index:-1;pointer-events:none}
.landing .lounge-visual img{display:block;width:100%;height:clamp(330px,35vw,490px);object-fit:cover;border-radius:17px;box-shadow:none;transition:transform .45s ease}
.landing .lounge-visual:hover img{transform:scale(1.012)}
.landing .lounge-photo-label{position:absolute;left:30px;bottom:28px;display:inline-flex;align-items:center;gap:8px;background:rgba(21,58,49,.94);color:#fff;padding:10px 15px;border:1px solid #ffffff40;border-radius:100px;font-size:11px;letter-spacing:.1em;font-weight:750;box-shadow:0 6px 22px #092a2260}
.landing .lounge-content h2{font-size:clamp(36px,3.5vw,52px);line-height:1.1;letter-spacing:-.04em}
.landing .lounge-content .lounge-lead{font-size:15px;line-height:1.85;color:#66776b;margin-bottom:23px}
.landing .lounge-highlights{display:grid;gap:11px;margin:0 0 26px}
.landing .lounge-highlight{display:flex;align-items:flex-start;gap:14px;padding:14px 17px;background:#fff;border:1px solid #e1eae0;border-radius:14px;box-shadow:0 7px 20px #1f493108}
.landing .lounge-highlight-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:12px;background:linear-gradient(140deg,#e8f1e9,#f8efdf);color:#214c3a;font-size:21px}
.landing .lounge-highlight strong{display:block;font-size:14px;color:#204536;margin:1px 0 3px}
.landing .lounge-highlight small{display:block;color:#748277;font-size:12px;line-height:1.6}
.landing .lounge-visit{padding-top:19px;border-top:1px solid #e1e9e1}
.landing .lounge-visit>strong{font-size:14px;color:#204536}
.landing .lounge-visit p{font-size:12px;line-height:1.75;margin:7px 0 14px}
@media(max-width:760px){.landing .lounge-section{gap:30px}.landing .lounge-visual{padding:8px;border-radius:20px}.landing .lounge-visual::before{inset:-8px 20px 22px -8px}.landing .lounge-visual img{height:clamp(260px,65vw,360px);border-radius:13px}.landing .lounge-photo-label{left:18px;bottom:17px;font-size:9px;padding:8px 11px}.landing .lounge-content h2{font-size:36px}.landing .lounge-highlight{padding:12px}.landing .lounge-highlight-icon{flex-basis:38px;height:38px}}
@media(prefers-reduced-motion:reduce){.landing .lounge-visual img{transition:none}}
