[hidden] { display: none !important; }
.venue-portal-shell { max-width: 1040px; }
.master-preview-banner { min-height: 58px; margin-bottom: 14px; padding: 9px 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid #91c9b9; border-radius: 10px; color: #174e45; background: #dff4ea; }
.master-preview-banner strong, .master-preview-banner span { display: block; }
.master-preview-banner strong { font-size: .77rem; }
.master-preview-banner span { margin-top: 2px; color: #397065; font-size: .69rem; }
.master-preview-banner .account-logout { min-height: 38px; color: #175d50; border-color: #75ad9e; }
body.master-preview .venue-submit-row,body.master-preview .venue-contact-actions,body.master-preview .venue-contact-card>.button,body.master-preview .booking-manager form .button,body.master-preview .remove-availability,body.master-preview .booking-request-actions,body.master-preview #requestDeletionButton,body.master-preview #logoutButton { display:none!important; }
.venue-auth-card { min-height: 520px; display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); overflow: hidden; border-radius: 14px; background: white; box-shadow: 0 20px 55px rgba(8, 16, 27, .18); }
.auth-context { padding: 54px 45px; color: white; background: linear-gradient(145deg, #16253a, #284766); }
.auth-mark { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 45px; border-radius: 11px; background: var(--accent); font-size: 1.3rem; font-weight: 900; }
.auth-context h1 { max-width: 390px; margin: 0; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.02; letter-spacing: -.055em; }
.auth-context > p:last-child { max-width: 410px; margin: 22px 0 0; color: #c2ccd7; font-size: 1rem; line-height: 1.65; }
.auth-form { align-self: center; padding: 42px 50px; }
.auth-form h2 { margin: 0 0 25px; font-size: 1.55rem; letter-spacing: -.035em; }
.auth-invite-intro { margin: -12px 0 22px; color: #667085; font-size: .88rem; line-height: 1.55; }
.auth-form > label { margin-top: 15px; font-size: .875rem; }
.auth-form input { min-height: 46px; font-size: 1rem; }
.auth-submit { width: 100%; min-height: 47px; margin-top: 15px; }
.text-button { width: 100%; min-height: 42px; margin-top: 8px; border: 0; background: transparent; color: var(--teal); font-size: .82rem; font-weight: 800; cursor: pointer; }
.back-link { display: block; margin-top: 15px; color: #7a8594; font-size: .75rem; text-align: center; text-decoration: none; }
.venue-account-hero { min-height: 205px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 20px; }
.venue-account-hero .hero-meta { grid-column: 1 / -1; margin-top: 0; }
.venue-account-actions { display: flex; align-items: center; gap: 16px; }
.venue-account-buttons { display: flex; gap: 7px; }
.venue-account-actions strong, .venue-account-actions small { display: block; text-align: right; }
.venue-account-actions strong { font-size: .82rem; }
.venue-account-actions small { max-width: 220px; margin-top: 3px; overflow: hidden; color: #acb9c8; font-size: .7rem; text-overflow: ellipsis; }
.account-logout { border: 1px solid #52677e; color: white; background: transparent; }
.hall-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 22px; }
.existing-files { display: grid; gap: 6px; margin-top: 18px; }
.existing-title { margin: 0 0 3px; color: #687587; font-size: .7rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.existing-file { padding: 10px 12px; display: flex; justify-content: space-between; gap: 12px; border-radius: 7px; background: #f1f4f6; }
.existing-file span { min-width: 0; overflow: hidden; font-size: .76rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.existing-file small { flex: 0 0 auto; color: #7b8796; font-size: .68rem; }
.venue-submit-row { position: sticky; z-index: 5; bottom: 10px; border: 1px solid #d7dfe5; }
.venue-contact-manager { margin-top: 26px; }
.venue-contact-form { padding-bottom: 24px; border-bottom: 1px solid #e2e7eb; }
.contact-sharing-switch { min-height: 66px; margin-top: 0; }
.venue-contact-actions { flex-wrap: wrap; }
.venue-contact-actions .danger { margin-right: auto; }
.venue-contact-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 22px; }
.venue-contact-card { position: relative; min-width: 0; padding: 15px; border: 1px solid #dce3e8; border-radius: 10px; background: #fbfcfd; }
.venue-contact-card-head { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.venue-contact-card-head > span { padding: 4px 8px; border-radius: 20px; color: #395271; background: #e9eef6; font-size: .64rem; font-weight: 900; }
.venue-contact-card h3 { margin: 14px 0 4px; font-size: .94rem; }
.venue-contact-card > p { margin: 0; color: #748195; font-size: .72rem; line-height: 1.45; }
.venue-contact-card > small { display: block; margin-top: 12px; color: #8a95a4; font-size: .63rem; }
.venue-contact-card > .button { position: absolute; right: 13px; bottom: 13px; }
.venue-contact-card .contact-links { padding-right: 88px; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.venue-contact-card .contact-links a { max-width: 100%; overflow: hidden; color: #24796d; font-size: .7rem; font-weight: 800; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.contact-visibility { display: inline-flex; width: fit-content; padding: 4px 8px; border-radius: 20px; font-size: .61rem; font-weight: 900; }
.contact-visibility.internal { color: #755422; background: #fff0d5; }
.contact-visibility.shared { color: #137a52; background: #dff4ea; }
.contact-visibility.public { color: #137a52; background: #dff4ea; }
.venue-contact-empty { margin-top: 12px !important; }
.booking-manager { margin-top: 26px; }
.booking-switches { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 22px; }
.switch-row { min-height: 78px; padding: 15px; display: flex; align-items: flex-start; gap: 12px; border: 1px solid #dce3e8; border-radius: 9px; background: #f8fafb; cursor: pointer; }
.switch-row input { width: 18px; height: 18px; min-height: 0; margin-top: 2px; accent-color: var(--accent); }
.switch-row span, .switch-row strong, .switch-row small { display: block; }
.switch-row strong { color: #1c2b3d; font-size: .82rem; }
.switch-row small { margin-top: 4px; color: #718094; font-size: .7rem; line-height: 1.4; }
.booking-price-grid { align-items: end; }
.booking-form-actions { margin-top: 16px; display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.booking-form-actions span { color: #27806f; font-size: .72rem; font-weight: 750; }
.booking-divider { height: 1px; margin: 30px 0; background: #e2e7eb; }
.section-subhead { margin-bottom: 17px; }
.section-subhead h3 { margin: 0; font-size: .92rem; }
.section-subhead p { margin: 4px 0 0; color: #738094; font-size: .74rem; }
.availability-form { display: grid; grid-template-columns: 1.05fr 1.15fr 1.15fr 1.5fr auto; gap: 10px; align-items: end; }
.availability-form .button { min-height: 42px; white-space: nowrap; }
.availability-list, .booking-request-list { display: grid; gap: 8px; margin-top: 18px; }
.availability-row { min-height: 63px; padding: 10px 12px; display: grid; grid-template-columns: 150px minmax(0,1fr) auto 30px; gap: 12px; align-items: center; border: 1px solid #e0e5e9; border-radius: 8px; background: white; }
.availability-row time { color: #29394d; font-size: .77rem; font-weight: 800; }
.availability-row strong, .availability-row small { display: block; }
.availability-row strong { font-size: .76rem; }
.availability-row small { margin-top: 2px; color: #748195; font-size: .67rem; }
.availability-status { display: inline-flex; width: fit-content; padding: 4px 8px; border-radius: 20px; background: #edf1f4; color: #617084; font-size: .65rem; font-weight: 850; white-space: nowrap; }
.availability-status.available, .availability-status.accepted { background: #dff4ea; color: #137a52; }
.availability-status.option, .availability-status.pending { background: #fff0d5; color: #9b5c05; }
.availability-status.booked { background: #dcecf7; color: #24678f; }
.availability-status.unavailable, .availability-status.rejected { background: #fde8e5; color: #a8392e; }
.remove-availability { width: 28px; height: 28px; border: 0; border-radius: 6px; color: #a43d33; background: #fff0ee; font-size: 1rem; cursor: pointer; }
.booking-inbox-card { margin-bottom: 50px; }
.booking-empty { padding: 25px; border: 1px dashed #cad3da; border-radius: 9px; color: #26384c; text-align: center; background: #fbfcfd; }
.booking-empty strong { font-size: .84rem; }
.booking-empty p { margin: 5px 0 0; color: #748195; font-size: .73rem; }
.booking-request { padding: 17px; border: 1px solid #dce3e8; border-radius: 10px; background: white; }
.booking-request.pending { border-left: 4px solid #e2a63e; }
.booking-request.accepted { border-left: 4px solid #3a9e79; }
.booking-request.rejected { opacity: .78; }
.booking-request-head, .booking-request-actions { display: flex; justify-content: space-between; gap: 14px; }
.booking-request-head h3 { margin: 7px 0 2px; font-size: 1rem; }
.booking-request-head p { margin: 0; color: #718094; font-size: .73rem; }
.booking-request-head > strong { color: #182a3c; font-size: 1rem; }
.booking-request-details { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 6px 18px; color: #657488; font-size: .72rem; }
.booking-request-details a { color: #21796d; }
.booking-message, .booking-reason { margin: 13px 0 0; padding: 10px 12px; border-radius: 7px; color: #445268; background: #f4f6f8; font-size: .74rem; line-height: 1.5; }
.booking-reason { color: #94382e; background: #fff2f0; }
.booking-request-actions { margin-top: 15px; justify-content: flex-end; }

@media (max-width: 720px) {
  .master-preview-banner { align-items: stretch; flex-direction: column; }
  .master-preview-banner .button { width: 100%; }
  .venue-auth-card { min-height: 0; grid-template-columns: 1fr; }
  .auth-context { padding: 27px 22px; }
  .auth-mark { width: 40px; height: 40px; margin-bottom: 21px; }
  .auth-context h1 { font-size: 2rem; }
  .auth-context > p:last-child { margin-top: 14px; font-size: .9rem; line-height: 1.5; }
  .auth-form { padding: 28px 20px 32px; }
  .venue-account-hero { grid-template-columns: 1fr; }
  .venue-account-hero .hero-meta { grid-column: auto; }
  .venue-account-actions { align-items: flex-start; justify-content: space-between; }
  .venue-account-actions, .venue-account-buttons { flex-wrap: wrap; }
  .venue-account-actions strong, .venue-account-actions small { text-align: left; }
  .hall-controls { grid-template-columns: 1fr; }
  .booking-switches, .availability-form { grid-template-columns: 1fr; }
  .venue-contact-list { grid-template-columns: 1fr; }
  .venue-contact-actions { align-items: stretch; flex-direction: column; }
  .venue-contact-actions .button { width: 100%; }
  .availability-row { grid-template-columns: 1fr auto; }
  .availability-row > div { grid-column: 1 / -1; grid-row: 2; }
  .availability-row .availability-status { grid-column: 2; grid-row: 1; }
  .availability-row .remove-availability { grid-column: 2; grid-row: 2; justify-self: end; }
  .booking-form-actions, .booking-request-head, .booking-request-actions { align-items: stretch; flex-direction: column; }
  .booking-form-actions .button, .booking-request-actions .button { width: 100%; }
  .booking-request-head > strong { margin-top: 4px; }
  .existing-file { align-items: flex-start; flex-direction: column; }
  .existing-file small { flex: none; }
  .venue-submit-row { bottom: max(8px, env(safe-area-inset-bottom)); }
}
