.guest-services { --gs-muted: #52666c; }
.confirmed-stay-note { display: block; margin-top: .4rem; color: #35645d; font-size: .8rem; line-height: 1.45; }
.confirmed-guide-time { padding: 1rem; border-radius: .6rem; background: #e5f4ef; color: #115a45; line-height: 1.6; }
.guest-service-shortcuts { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.25rem; }
.guest-service-shortcuts a { display: inline-flex; align-items: center; min-height: 44px; padding: .6rem .85rem; border-radius: .6rem; background: #eaf4f0; color: #075e52; font-weight: 650; text-decoration: underline; }
.guest-service-shortcuts a:focus-visible { outline: 3px solid #087c72; outline-offset: 3px; }
.gs-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.gs-heading > div { max-width: 46rem; }
.gs-heading h2 { margin: 0 0 .5rem; }
.gs-heading p { margin: .35rem 0; }
.gs-heading > button { flex: 0 0 auto; }
.gs-forms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.gs-forms.is-single { grid-template-columns: 1fr; }
.gs-forms > details { border: 1px solid #cddcda; border-radius: 1rem; background: #f8fbfa; min-width: 0; }
.gs-forms summary { padding: 1.15rem; cursor: pointer; font-weight: 700; min-height: 3rem; }
.gs-forms form { padding: 0 1.15rem 1.15rem; }
.gs-request-unavailable { padding: 0 1.15rem 1.15rem; }
.guest-services form, .gs-admin-form { display: grid; gap: .9rem; }
.guest-services label { display: grid; gap: .4rem; min-width: 0; }
.guest-services label > span { font-size: .88rem; font-weight: 650; }
.guest-services input, .guest-services select, .guest-services textarea { box-sizing: border-box; min-width: 0; width: 100%; max-width: 100%; font: inherit; font-size: 16px; color: #142b2e; background: #fff; border: 1px solid #9aafab; border-radius: .6rem; padding: .7rem; }
.guest-services input[type=file] { white-space: normal; }
.guest-services textarea { resize: vertical; }
.guest-services button, .guest-services select, .guest-services summary { min-height: 44px; }
.guest-services :focus-visible { outline: 3px solid #087c72; outline-offset: 3px; }
.gs-field-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.gs-meta { color: var(--gs-muted); font-size: .88rem; line-height: 1.6; margin: .4rem 0; }
.gs-history { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 23rem), 1fr)); gap: 1rem; }
.gs-card { min-width: 0; border: 1px solid #ceddd9; border-radius: .85rem; padding: 1.1rem; background: #fff; overflow-wrap: anywhere; }
.gs-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem; }
.gs-card-heading h4 { font-size: 1rem; margin: 0; }
.gs-status { display: inline-flex; border-radius: 99px; background: #edf3f2; color: #354e51; padding: .3rem .6rem; font-size: .78rem; font-weight: 700; }
.gs-status-offered, .gs-status-pending, .gs-status-received { background: #fff3d7; color: #775209; }
.gs-status-approved, .gs-status-resolved { background: #e2f3eb; color: #146045; }
.gs-status-rejected, .gs-status-declined { background: #f6e9e8; color: #854440; }
.gs-body, .gs-reply p { white-space: pre-wrap; }
.gs-request-time { font-size: 1.15rem; font-weight: 700; }
.gs-reply { padding: .9rem; background: #f0f6f4; border-radius: .6rem; margin: .8rem 0; }
.gs-reply p { margin: .4rem 0 0; }
.gs-price { display: grid; gap: .25rem; }
.gs-price span { font-size: .85rem; color: #146045; }
.gs-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.gs-actions button { flex: 1 1 auto; }
.gs-photo-preview { display: grid; justify-items: start; gap: .5rem; }
.gs-photo-preview img { max-width: 100%; width: 12rem; max-height: 12rem; object-fit: contain; border-radius: .5rem; }
.gs-photo-link { display: inline-flex; min-height: 44px; align-items: center; color: #00665e; text-decoration: underline; }
.gs-error:not(:empty) { padding: .8rem; border-radius: .5rem; background: #fff0ed; color: #8e2820; }
.gs-notice:not(:empty) { padding: .8rem; border-radius: .5rem; background: #e5f4ef; color: #115a45; }
.gs-filter { width: min(100%, 20rem); margin-bottom: 1rem; }
.gs-admin-form { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #d7e3df; }
@media (max-width: 700px) { .gs-forms { grid-template-columns: 1fr; } .gs-heading { flex-direction: column; } .gs-heading > button { width: 100%; } }
@media (max-width: 380px) { .gs-field-pair { grid-template-columns: 1fr; } .gs-actions { flex-direction: column; } }
