.pj-ticket-export-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(94, 234, 212, 0.28);
  background: linear-gradient(120deg, rgba(15, 118, 110, 0.22), rgba(15, 23, 42, 0.58));
}

.pj-ticket-export-copy { display: flex; align-items: center; gap: 0.85rem; min-width: 0; }
.pj-ticket-export-copy h2 { margin: 0; color: var(--ink, #f8fafc); font-size: 1.05rem; font-weight: 900; }
.pj-ticket-export-copy p { margin: 0.25rem 0 0; color: rgba(226, 232, 240, 0.72); font-size: 0.82rem; }
.pj-ticket-export-icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: 0 0 auto; border-radius: 0.7rem; color: #042f2e; background: #5eead4; font-size: 1.7rem; font-weight: 900; }
.pj-ticket-export-button { flex: 0 0 auto; min-height: 2.5rem; padding: 0.55rem 0.9rem; border: 1px solid rgba(94, 234, 212, 0.45); border-radius: 0.55rem; color: #042f2e; background: #5eead4; font-weight: 900; cursor: pointer; }
.pj-ticket-export-button:hover { background: #99f6e4; }
.pj-ticket-export-button:disabled { cursor: wait; opacity: 0.7; }
@media (max-width: 640px) { .pj-ticket-export-card { align-items: stretch; flex-direction: column; } .pj-ticket-export-button { width: 100%; } }

@media (max-width: 639px) {
  html, body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .mobile-app-main,
  .mobile-app-main > *,
  .mobile-app-main .grid > *,
  .mobile-app-main .flex > * {
    min-width: 0;
  }

  .mobile-app-main h1,
  .mobile-app-main h2,
  .mobile-app-main h3,
  .mobile-app-main button,
  .mobile-app-main label {
    overflow-wrap: anywhere;
  }

  .mobile-app-main .overflow-x-auto,
  .mobile-app-main .record-table-wrap,
  .mobile-app-main .history-table-wrap {
    max-width: 100%;
  }

  .mobile-app-main .wet-canteen-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    min-height: 0;
  }

  .mobile-app-main .wet-canteen-hero-title {
    gap: .7rem;
  }

  .mobile-app-main .wet-canteen-title-icon {
    width: 3rem;
    height: 3rem;
  }

  .mobile-app-main .wet-canteen-dashboard {
    padding: .65rem;
  }

  .mobile-app-main .wet-canteen-dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
  }

  .mobile-app-main .wet-canteen-dashboard-stat {
    min-width: 0;
    padding: .55rem;
  }

  .pj-mobile-export-control { display: none !important; }

  /* Compact the repeated summary cards shown in module headers. */
  .mobile-app-main .resort-hero .grid .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
  }
  .mobile-app-main .resort-hero .grid .grid > div {
    min-height: 3.7rem;
    padding: .5rem .65rem !important;
    border-radius: .65rem;
  }
  .mobile-app-main .resort-hero .grid .grid > div > p:first-child {
    font-size: .62rem;
    line-height: 1.1;
  }
  .mobile-app-main .resort-hero .grid .grid > div > p + p {
    margin-top: .28rem;
    font-size: 1.2rem;
    line-height: 1;
  }

  /* Parking: In Garage + Unbilled on row one, Billed on row two. */
  .mobile-app-main .pj-parking-hero .pj-parking-summary > .grid,
  .mobile-app-main .pj-parking-hero .pj-parking-summary .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mobile-app-main .pj-parking-hero .pj-parking-summary .grid > div:nth-child(1) { order: 1; }
  .mobile-app-main .pj-parking-hero .pj-parking-summary .grid > div:nth-child(2) {
    grid-column: 1 / -1;
    order: 3;
  }
  .mobile-app-main .pj-parking-hero .pj-parking-summary .grid > div:nth-child(3) { order: 2; }
}

.pj-module-detail-backdrop { position: fixed; inset: 0; z-index: 1000; display: none; place-items: center; padding: 1rem; background: rgba(2, 6, 23, .72); backdrop-filter: blur(5px); }
.pj-module-detail-backdrop.is-open { display: grid; }
.pj-module-detail-modal { position: relative; width: min(900px, 100%); max-height: min(720px, 90vh); overflow: auto; border: 1px solid rgba(94, 234, 212, .35); border-radius: 1rem; color: #e2e8f0; background: linear-gradient(145deg, #13252b, #0b1420 72%); box-shadow: 0 24px 80px rgba(0,0,0,.4); }
.pj-module-detail-close { position: absolute; right: .8rem; top: .55rem; width: 2rem; height: 2rem; border: 0; border-radius: 50%; color: #cbd5e1; background: rgba(255,255,255,.1); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.pj-module-detail-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.5rem 1.5rem 1.1rem; border-bottom: 1px solid rgba(255,255,255,.12); }
.pj-module-detail-kicker { margin: 0 0 .25rem; color: #5eead4; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.pj-module-detail-head h2 { margin: 0; color: #f8fafc; font-size: 1.35rem; font-weight: 900; }
.pj-module-detail-meta { margin: .3rem 0 0; color: rgba(226,232,240,.65); font-size: .8rem; }
.pj-module-detail-total { color: #5eead4; font-size: 1.45rem; font-weight: 900; white-space: nowrap; }
.pj-module-detail-body { padding: 1rem 1.5rem 1.5rem; }
.pj-module-detail-tools { display: flex; align-items: center; justify-content: flex-end; gap: .7rem; padding: .8rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.pj-module-detail-tools label { display: inline-flex; align-items: center; gap: .45rem; color: rgba(226,232,240,.72); font-size: .78rem; font-weight: 800; }
.pj-module-detail-date { min-height: 2.15rem; padding: .35rem .55rem; border: 1px solid rgba(255,255,255,.25); border-radius: .45rem; color: #e2e8f0; background: rgba(255,255,255,.08); color-scheme: dark; }
.pj-module-detail-pdf { min-height: 2.15rem; padding: .35rem .7rem; border: 1px solid rgba(94,234,212,.45); border-radius: .45rem; color: #042f2e; background: #5eead4; font-size: .78rem; font-weight: 900; cursor: pointer; }
.pj-module-detail-pdf:disabled { cursor: not-allowed; opacity: .45; }
.pj-module-detail-table-wrap { overflow-x: auto; }
.pj-module-detail-modal table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.pj-module-detail-modal th, .pj-module-detail-modal td { padding: .7rem .55rem; border-bottom: 1px solid rgba(255,255,255,.1); text-align: left; white-space: nowrap; }
.pj-module-detail-modal th { color: #5eead4; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.pj-module-detail-modal td:last-child { color: #99f6e4; font-weight: 800; text-align: right; }
.pj-module-detail-loading, .pj-module-detail-empty { padding: 2rem; color: rgba(226,232,240,.7); text-align: center; }
.pj-module-detail-modal .image-glass-card { cursor: pointer; }
.pj-module-detail-modal .image-glass-card:focus-visible { outline: 2px solid #5eead4; outline-offset: 2px; }
@media (max-width: 640px) { .pj-module-detail-head { align-items: start; flex-direction: column; } .pj-module-detail-body { padding-inline: .8rem; } .pj-module-detail-head { padding-inline: 1rem; } }
@media (max-width: 640px) { .pj-module-detail-tools { align-items: stretch; flex-direction: column; padding-inline: 1rem; } .pj-module-detail-tools label, .pj-module-detail-date, .pj-module-detail-pdf { width: 100%; } .pj-module-detail-date { box-sizing: border-box; } }
