.fp-public-app {
  --page: #f8f3ea;
  --text: #37373b;
  --soft-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  --inset: inset 0 1px 0 rgba(255, 255, 255, 0.92);
  min-height: 100vh;
  margin: 0;
  font-family: "Nunito", system-ui, sans-serif;
  color: var(--text);
  background: var(--page);
  overflow-x: clip;
}

body.wmk-app-shell {
    --nav-h: 98px;
    --nav-h-small: 88px;
}

body.wmk-app-shell::after {
  content: "";
  display: block;
  height: var(--nav-h);
}

.fp-public-app *,
.fp-public-app *::before,
.fp-public-app *::after {
  box-sizing: border-box;
}

.fp-public-app button,
.fp-public-app a {
  -webkit-tap-highlight-color: transparent;
}

.fp-public-app .app-page {
  min-height: 100vh;
}

.fp-public-app .app-surface {
  position: relative;
  width: min(100%, 1400px);
  margin: 0 auto;
  min-height: 100vh;
  background:
    radial-gradient(120% 28% at 86% 0%, #def4ff 0 18%, transparent 19%),
    radial-gradient(72% 22% at 14% 0%, #fbf6cb 0 14%, transparent 15%),
    linear-gradient(180deg, #fbf7f0 0%, #f7f3ec 100%);
  padding: clamp(14px, 2vw, 20px) clamp(14px, 2.3vw, 24px) calc(var(--nav-h) + 34px);
  overflow: clip;
  max-width: 100vw;
}

.fp-public-app.fp-profile-shell .app-surface {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.fp-public-app .topbar {
  display: grid;
  grid-template-columns: minmax(82px, 120px) 1fr minmax(94px, 128px);
  align-items: start;
  gap: 12px;
}

.fp-public-app .sun-group {
  position: relative;
  min-height: 76px;
}

.fp-public-app .topbar-leading-action {
  position: absolute;
  left: 0;
  bottom: 0;
}

.fp-public-app .sun {
  position: absolute;
  left: 0;
  top: 0;
  width: clamp(38px, 5vw, 50px);
  height: clamp(38px, 5vw, 50px);
  border-radius: 50%;
  background: #ffcd00;
  box-shadow: 0 0 0 14px rgba(255, 205, 0, 0.08);
}

.fp-public-app .sun::before {
  content: "";
  position: absolute;
  inset: -14px;
  background:
    conic-gradient(from 0deg,
      #f8c400 0 8deg, transparent 8deg 30deg,
      #f8c400 30deg 38deg, transparent 38deg 60deg,
      #f8c400 60deg 68deg, transparent 68deg 90deg,
      #f8c400 90deg 98deg, transparent 98deg 120deg,
      #f8c400 120deg 128deg, transparent 128deg 150deg,
      #f8c400 150deg 158deg, transparent 158deg 180deg,
      #f8c400 180deg 188deg, transparent 188deg 210deg,
      #f8c400 210deg 218deg, transparent 218deg 240deg,
      #f8c400 240deg 248deg, transparent 248deg 270deg,
      #f8c400 270deg 278deg, transparent 278deg 300deg,
      #f8c400 300deg 308deg, transparent 308deg 330deg,
      #f8c400 330deg 338deg, transparent 338deg 360deg);
  border-radius: 50%;
  z-index: -1;
}

.fp-public-app .circle-btn,
.fp-public-app .date-arrow,
.fp-public-app .fav-btn {
  border: 0;
  background: #fff;
  box-shadow: var(--soft-shadow), var(--inset);
}

.fp-public-app .brand-wrap {
  text-align: center;
  padding-top: 4px;
  min-width: 0;
}

.fp-public-app .brand {
  margin: auto;
  width: fit-content;
  font-size: clamp(2rem, 4.4vw, 3.1rem) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.03em;
  font-weight: 900;
  background: linear-gradient(90deg, #73cc45 0 18%, #f0c03a 18% 33%, #49b0ff 33% 48%, #a75bf6 48% 68%, #ff9c1e 68% 83%, #58bf57 83%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.fp-public-app .subtitle {
  margin-top: 6px;
  font-size: clamp(1rem, 2vw, 1.3rem);
  font-weight: 800;
  color: #585960;
}

.fp-public-app .actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 6px;
  min-width: 0;
}

.fp-public-app .circle-btn {
  width: clamp(44px, 6vw, 54px);
  height: clamp(44px, 6vw, 54px);
  min-width: clamp(44px, 6vw, 54px);
  min-height: clamp(44px, 6vw, 54px);
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  line-height: 1;
  aspect-ratio: 1 / 1;
  font-size: clamp(18px, 2.2vw, 22px);
  color: #44464d;
}

.fp-public-app .circle-btn.active {
  color: #ff6073;
  box-shadow: 0 10px 20px rgba(255, 96, 115, 0.16), var(--inset);
}

.fp-public-app .circle-btn.is-disabled,
.fp-public-app .circle-btn:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}

.fp-public-app .scroll-row {
  display: flex;
  gap: 12px;
  margin-top: 18px;
  overflow-x: auto;
  overflow-y: visible;
  padding: 2px 2px 6px;
  scrollbar-width: none;
  justify-content: space-evenly;
}

.fp-public-app.fp-profile-shell .scroll-row {
  margin-top: 0;
  justify-content: flex-start;
}

.fp-public-app .scroll-row::-webkit-scrollbar {
  display: none;
}

.fp-public-app .pill {
  border: 0;
  min-width: 132px;
  height: 56px;
  border-radius: 999px;
  color: #fff;
  font-size: 1.1rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.08), inset 0 2px 0 rgba(255, 255, 255, 0.15);
  flex: 0 0 auto;
}

.fp-public-app .pill-green { background: linear-gradient(180deg, #72d84e, #5bc539); }
.fp-public-app .pill-purple { background: linear-gradient(180deg, #bf76ff, #a755ec); }
.fp-public-app .pill-blue { background: linear-gradient(180deg, #53c4f1, #39abd8); }
.fp-public-app .pill-orange { background: linear-gradient(180deg, #ffa117, #f38300); }

.fp-public-app .pill.active {
  transform: translateY(-1px);
  box-shadow: 0 14px 24px rgba(0, 0, 0, 0.14), inset 0 2px 0 rgba(255, 255, 255, 0.18);
  padding: 10px;
}

.fp-public-app .filter-chip {
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #44464d;
  height: 58px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: inherit;
  font-size: 1.08rem;
  font-weight: 800;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), var(--inset);
  flex: 0 0 auto;
  cursor: pointer;
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.fp-public-app .filter-chip:hover:not(:disabled):not(.is-disabled) {
  transform: translateY(-1px);
  box-shadow: 0 12px 22px rgba(0, 0, 0, 0.12), var(--inset);
}

.fp-public-app .filter-chip:disabled,
.fp-public-app .profile-actions .filter-chip:disabled,
.fp-public-app .filter-chip.is-disabled,
.fp-public-app .profile-actions .filter-chip.is-disabled {
  opacity: 0.62;
  cursor: not-allowed;
  transform: none;
}

.fp-public-app .wmk-busy-inline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.fp-public-app .wmk-busy-spinner {
  width: 1rem;
  height: 1rem;
  border-radius: 999px;
  border: 2px solid rgba(68, 70, 77, 0.18);
  border-top-color: currentColor;
  animation: wmk-fp-spin 0.8s linear infinite;
  flex: 0 0 auto;
}

.fp-public-app .wmk-busy-spinner.is-large {
  width: 2rem;
  height: 2rem;
  border-width: 3px;
}

.fp-public-app .wmk-busy-state {
  display: grid;
  justify-items: center;
  gap: 12px;
  text-align: center;
  padding: 22px 18px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
  color: #4b4d54;
}

.fp-public-app .wmk-busy-state strong {
  display: block;
  font-size: 1rem;
  font-weight: 900;
}

.fp-public-app .wmk-busy-state p {
  margin: 0;
  color: #72747a;
  font-size: 0.96rem;
  line-height: 1.5;
}

.fp-public-app .wmk-busy-state.is-panel {
  width: 100%;
  min-height: 220px;
  align-content: center;
}

.fp-public-app .wmk-busy-state.is-sheet {
  min-height: 160px;
}

.fp-public-app .wmk-busy-state.is-compact {
  min-height: 0;
  padding: 18px 16px;
  border-radius: 20px;
}

@keyframes wmk-fp-spin {
  to {
    transform: rotate(360deg);
  }
}

.fp-public-app .filter-chip.age { min-width: 292px; justify-content: flex-start; }
.fp-public-app .toggle-chip { min-width: 320px; justify-content: space-between; }

.fp-public-app .toggle {
  width: 62px;
  height: 34px;
  border-radius: 999px;
  background: #d8dde2;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  transition: background 140ms ease, justify-content 140ms ease;
}

.fp-public-app .toggle span {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}

.fp-public-app .toggle-chip.active .toggle {
  background: #44bde8;
  justify-content: flex-end;
}

.fp-public-app .date-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
}

.fp-public-app .date-scroll {
  display: flex;
  gap: 12px;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  padding: 2px 2px 24px;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}

.fp-public-app .date-scroll::-webkit-scrollbar {
  display: none;
}

.fp-public-app .date-arrow {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  color: #a9aaae;
  font-size: 20px;
  flex: 0 0 auto;
}

.fp-public-app .date-chip {
  position: relative;
  width: 82px;
  height: 98px;
  border: 1.5px solid transparent;
  border-radius: 24px;
  background: #fff;
  color: #5a5c62;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06), var(--inset);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  font-family: inherit;
  flex: 0 0 auto;
  scroll-snap-align: start;
}

.fp-public-app .date-chip .dow { font-size: 1.05rem; font-weight: 700; }
.fp-public-app .date-chip .date { font-size: 1.45rem; font-weight: 900; }

.fp-public-app .date-chip.active {
  border-color: rgba(239, 196, 49, 0.65);
  border-width: 4px;
  color: #43413d;
  box-shadow: 0 10px 18px rgba(239, 196, 49, 0.18), var(--inset);
}

.fp-public-app .date-chip.is-today {
  background: linear-gradient(180deg, #f8cf48, #efc431);
  color: #43413d;
  box-shadow: 0 10px 18px rgba(239, 196, 49, 0.35);
}

.fp-public-app .date-chip.is-today.active {
  border-color: rgba(223, 159, 28, 0.8);
  box-shadow: 0 12px 20px rgba(239, 196, 49, 0.38), var(--inset);
}

.fp-public-app .week-chip.active,
.fp-public-app .month-chip.active {
  border-color: transparent;
  background: linear-gradient(180deg, #f8cf48, #efc431);
  color: #43413d;
  box-shadow: 0 10px 18px rgba(239, 196, 49, 0.35);
}

.fp-public-app .today-label {
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  background: #f9dc78;
  color: #df9f1c;
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 0.95rem;
  font-weight: 900;
  white-space: nowrap;
}

.fp-public-app .cards {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.fp-public-app .cards.is-hidden {
  display: none !important;
}

.fp-public-app .fp-month-panel {
  margin-top: 14px;
}

.fp-public-app .fp-week-panel {
  margin-top: 14px;
}

.fp-public-app .fp-real-week-panel {
  margin-top: 14px;
}

.fp-public-app .fp-real-week-grid,
.fp-public-app .fp-real-week-empty {
  background: rgba(255, 255, 255, 0.92);
  border-radius: 28px;
  padding: 14px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app .fp-real-week-shell {
  --fp-week-slot-count: 12;
  --fp-week-slot-height: 72px;
  --fp-week-axis-width: 68px;
  --fp-week-day-width: 92px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px;
}

.fp-public-app .fp-real-week-head,
.fp-public-app .fp-real-week-body {
  display: grid;
  grid-template-columns: var(--fp-week-axis-width) max-content;
  gap: 10px;
  width: max-content;
  min-width: 100%;
}

.fp-public-app .fp-real-week-head {
  margin-bottom: 10px;
}

.fp-public-app .fp-real-week-day-heads {
  display: grid;
  grid-template-columns: repeat(7, var(--fp-week-day-width));
  gap: 8px;
}

.fp-public-app .fp-real-week-day-head {
  border: 0;
  border-radius: 18px;
  background: #fffdf8;
  padding: 10px 8px;
  display: grid;
  gap: 2px;
  justify-items: center;
  box-shadow: var(--inset);
  margin-top: 2px;
}

.fp-public-app .fp-real-week-day-head.is-today {
  background: linear-gradient(180deg, #fff6cd, #fffdf8);
}

.fp-public-app .fp-real-week-day-head.is-anchor {
  outline: 2px solid rgba(240, 192, 58, 0.55);
}

.fp-public-app .fp-real-week-dow {
  font-size: 0.82rem;
  font-weight: 900;
  color: #8c8c93;
}

.fp-public-app .fp-real-week-date {
  font-size: 1.08rem;
  font-weight: 900;
  color: #494b52;
}

.fp-public-app .fp-real-week-time-axis {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(var(--fp-week-slot-count), var(--fp-week-slot-height));
  gap: 0;
}

.fp-public-app .fp-real-week-time-row {
  position: relative;
  height: var(--fp-week-slot-height);
  padding-top: 2px;
}

.fp-public-app .fp-real-week-slot-label {
  display: block;
  font-size: 0.82rem;
  font-weight: 900;
  color: #87888f;
  line-height: 1;
}

.fp-public-app .fp-real-week-slot-line {
  position: absolute;
  left: 0;
  right: 8px;
  top: calc(var(--fp-week-slot-height) / 2);
  border-top: 1px dashed rgba(119, 122, 130, 0.22);
}

.fp-public-app .fp-real-week-columns {
  display: grid;
  grid-template-columns: repeat(7, var(--fp-week-day-width));
  gap: 8px;
}

.fp-public-app .fp-real-week-column {
  position: relative;
  min-height: calc(var(--fp-week-slot-count) * var(--fp-week-slot-height));
  border-radius: 22px;
  background: #fffefb;
  box-shadow: var(--inset);
  overflow: hidden;
}

.fp-public-app .fp-real-week-column.is-today {
  background: linear-gradient(180deg, #fff6cd, #fffefb);
}

.fp-public-app .fp-real-week-column.is-anchor {
  outline: 2px solid rgba(240, 192, 58, 0.55);
}

.fp-public-app .fp-real-week-column-grid {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-rows: repeat(var(--fp-week-slot-count), var(--fp-week-slot-height));
}

.fp-public-app .fp-real-week-column-slot {
  border-top: 1px dashed rgba(119, 122, 130, 0.16);
}

.fp-public-app .fp-real-week-events {
  position: absolute;
  inset: 0;
  padding: 6px;
}

.fp-public-app .fp-real-week-event {
  position: absolute;
  left: 6px;
  right: 6px;
  border: 0;
  border-radius: 16px;
  padding: 8px 8px 7px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  text-align: left;
  color: #fff;
  overflow: hidden;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.12);
}

.fp-public-app .fp-real-week-event.accent-green { background: linear-gradient(180deg, #72d84e, #5bc539); }
.fp-public-app .fp-real-week-event.accent-purple { background: linear-gradient(180deg, #bf76ff, #a755ec); }
.fp-public-app .fp-real-week-event.accent-blue { background: linear-gradient(180deg, #53c4f1, #39abd8); }
.fp-public-app .fp-real-week-event.accent-orange { background: linear-gradient(180deg, #ffa117, #f38300); }

.fp-public-app .fp-real-week-event-time,
.fp-public-app .fp-real-week-event-title {
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fp-public-app .fp-real-week-event-time {
  font-size: 0.68rem;
  font-weight: 900;
  white-space: nowrap;
}

.fp-public-app .fp-real-week-event-title {
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1.12;
  white-space: normal;
}

.fp-public-app .fp-week-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.fp-public-app .fp-week-day {
  border: 0;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
  padding: 12px 10px;
  text-align: left;
}

.fp-public-app .fp-week-day.is-today {
  background: linear-gradient(180deg, #fff6cd, #fffdf8);
}

.fp-public-app .fp-week-day.is-anchor {
  outline: 2px solid rgba(240, 192, 58, 0.55);
}

.fp-public-app .fp-week-day-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
}

.fp-public-app .fp-week-day-label {
  font-size: 0.78rem;
  font-weight: 900;
  color: #8c8c93;
}

.fp-public-app .fp-week-day-date {
  font-size: 1rem;
  font-weight: 900;
  color: #4e4f56;
}

.fp-public-app .fp-week-day-events {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fp-public-app .fp-week-event-chip {
  border: 0;
  border-radius: 16px;
  background: #f4f7ef;
  color: #45464d;
  padding: 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  text-align: left;
  max-width: 100%;
  overflow: hidden;
}

.fp-public-app .fp-week-event-time {
  font-size: 0.68rem;
  font-weight: 900;
  color: #60c83d;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fp-public-app .fp-week-event-title,
.fp-public-app .fp-week-empty-slot {
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.15;
  color: #53545b;
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fp-public-app .fp-month-grid {
  background: rgba(255, 255, 255, 0.9);
  border-radius: 28px;
  padding: 14px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app .fp-month-weekdays,
.fp-public-app .fp-month-weeks {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.fp-public-app .fp-month-weekdays {
  margin-bottom: 8px;
}

.fp-public-app .fp-month-weekday {
  text-align: center;
  font-size: 0.78rem;
  font-weight: 900;
  color: #8c8c93;
}

.fp-public-app .fp-month-cell {
  border: 0;
  min-height: 112px;
  border-radius: 20px;
  background: #fffdf8;
  box-shadow: var(--inset);
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  text-align: left;
}

.fp-public-app .fp-month-cell.is-outside {
  opacity: 0.48;
}

.fp-public-app .fp-month-cell.is-today {
  background: linear-gradient(180deg, #fff6cd, #fffdf8);
}

.fp-public-app .fp-month-cell.is-anchor {
  outline: 2px solid rgba(240, 192, 58, 0.55);
}

.fp-public-app .fp-month-day-number {
  font-size: 1rem;
  font-weight: 900;
  color: #4e4f56;
}

.fp-public-app .fp-month-day-events {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fp-public-app .fp-month-event-chip {
  border: 0;
  border-radius: 14px;
  background: #f4f7ef;
  color: #45464d;
  padding: 7px 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  text-align: left;
  max-width: 100%;
  overflow: hidden;
}

.fp-public-app .fp-month-event-time {
  font-size: 0.68rem;
  font-weight: 900;
  color: #60c83d;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fp-public-app .fp-month-event-title {
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.15;
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fp-public-app .fp-month-more,
.fp-public-app .fp-month-empty {
  font-size: 0.76rem;
  font-weight: 900;
  color: #8b8c92;
}

.fp-public-app .date-scroll.is-month {
  justify-content: center;
  width: 100%;
}

.fp-public-app .date-scroll.is-week {
  justify-content: center;
  width: 100%;
}

.fp-public-app .week-chip {
  width: min(100%, 280px);
  min-height: 72px;
  height: auto;
  padding: 12px 18px;
  justify-content: center;
  height: inherit !important;
}

.fp-public-app .week-chip .date {
  font-size: 1rem;
  line-height: 1.15;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fp-public-app .month-chip {
  width: min(100%, 240px);
  min-height: 72px;
  height: auto;
  padding: 12px 18px;
  justify-content: center;
  height: inherit !important;
}

.fp-public-app .month-chip .date {
  font-size: 1.1rem;
  line-height: 1.15;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fp-public-app .cards.list-view {
  gap: 10px;
}

.fp-public-app .event-card {
  display: grid;
  grid-template-columns: 104px 1fr 70px;
  align-items: center;
  min-height: 132px;
  background: rgba(255, 255, 255, 0.88);
  border-radius: 26px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
  position: relative;
  overflow: hidden;
}

.fp-public-app .event-card.event-card-list {
  grid-template-columns: 20px 1fr 62px;
  min-height: 92px;
  border-radius: 22px;
}

.fp-public-app .event-card.event-card-list .icon-slot {
  background: transparent;
}

.fp-public-app .event-card.event-card-list .card-content {
  padding-block: 14px;
}

.fp-public-app .event-card.event-card-list .card-content h3 {
  font-size: clamp(1.04rem, 2.2vw, 1.26rem);
  margin-bottom: 6px;
}

.fp-public-app .event-card.event-card-list .tag-row {
  margin-bottom: 6px;
}

.fp-public-app .event-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  border-radius: 8px;
}

.fp-public-app .accent-green::before { background: #64cf40; }
.fp-public-app .accent-purple::before { background: #b15cf2; }
.fp-public-app .accent-blue::before { background: #48b9e8; }
.fp-public-app .accent-orange::before { background: #f68411; }

.fp-public-app .icon-slot {
  align-self: stretch;
  background: rgba(244, 247, 239, 0.8);
}

.fp-public-app .card-content {
  padding: 18px 8px 18px 10px;
  min-width: 0;
}

.fp-public-app .topline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  font-size: 0.96rem;
  font-weight: 900;
  flex-wrap: wrap;
}

.fp-public-app .topline-copy {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}

.fp-public-app .topline-time,
.fp-public-app .topline-price {
  display: inline;
  min-width: 0;
}

.fp-public-app .topline-price::before {
  content: "| ";
}

.fp-public-app .topline.green { color: #60c83d; }
.fp-public-app .topline.purple { color: #b766ed; }
.fp-public-app .topline.blue { color: #46b5e2; }
.fp-public-app .topline.coral { color: #ff6458; }

.fp-public-app .seat-badge {
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 900;
  white-space: nowrap;
}

.fp-public-app .seat-badge.green { background: #ebf8df; color: #68bd42; }
.fp-public-app .seat-badge.orange { background: #fff2df; color: #f59a22; }
.fp-public-app .seat-badge.blue { background: #edf8fe; color: #49b7e2; }
.fp-public-app .seat-badge.gray { background: #efefef; color: #8c8c90; }

.fp-public-app .card-content h3 {
  margin: 6px 0 10px;
  font-size: clamp(1.28rem, 2.9vw, 1.72rem);
  line-height: 1.12;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.fp-public-app .tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.fp-public-app .tag {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 12px;
  border-radius: 999px;
  background: #f3f1f4;
  color: #7a7b81;
  font-size: 0.92rem;
  font-weight: 800;
}

.fp-public-app .card-location, .fp-public-app .card-age-copy {
  color: #6e7077;
  font-size: 0.92rem;
  font-weight: 700;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.fp-public-app .fav-btn {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  color: #cbccd0;
  font-size: 26px;
  justify-self: center;
}

.fp-public-app .active-heart { color: #ff6073; }
.fp-public-app .ghost { background: rgba(250, 250, 250, 0.85); }
.fp-public-app .muted { opacity: 0.96; }

.fp-public-app .bottom-nav {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: min(100%, 860px);
  height: var(--nav-h);
  background: rgba(255, 255, 255, 0.96);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  box-shadow: 0 -8px 20px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.95);
  border-top-left-radius: 28px;
  border-top-right-radius: 28px;
  z-index: 4;
}

.fp-public-app .fp-calendar-engine {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  pointer-events: none;
  opacity: 0;
}

.fp-public-app .fp-sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(34, 35, 39, 0.22);
  backdrop-filter: blur(2px);
  z-index: 8;
}

.fp-public-app .fp-sheet {
  position: fixed;
  left: 50%;
  bottom: calc(var(--nav-h) + 14px);
  transform: translate(-50%, 18px);
  width: min(100% - 24px, 860px);
  max-height: calc(100vh - var(--nav-h) - 28px);
  background: rgba(255, 253, 248, 0.98);
  border-radius: 28px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  padding: 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  z-index: 9;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease, transform 140ms ease;
}

.fp-public-app .fp-sheet.is-open,
.fp-public-app .fp-sheet-backdrop.is-open {
  opacity: 1;
}

.fp-public-app .fp-sheet.is-open {
  transform: translate(-50%, 0);
  pointer-events: auto;
}

.fp-public-app .fp-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.fp-public-app .fp-sheet-head h3 {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 900;
}

.fp-public-app .fp-sheet-close {
  width: 42px;
  height: 42px;
  font-size: 18px;
}

.fp-public-app .fp-field-label,
.fp-public-app .fp-filter-title {
  display: block;
  margin-bottom: 10px;
  color: #5d5f66;
  font-size: 0.92rem;
  font-weight: 800;
}

.fp-public-app .fp-search-form,
.fp-public-app .fp-filter-block {
  margin: 0;
}

.fp-public-app .fp-search-input {
  width: 100%;
  height: 58px;
  border: 0;
  border-radius: 20px;
  background: #fff;
  color: #37373b;
  font: inherit;
  font-size: 1.02rem;
  padding: 0 18px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app .fp-search-input:focus {
  outline: 2px solid rgba(68, 189, 232, 0.28);
  outline-offset: 2px;
}

.fp-public-app .fp-sheet-actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.fp-public-app .fp-sheet-actions .filter-chip,
.fp-public-app .fp-booking-child,
.fp-public-app .fp-filter-option {
  cursor: pointer;
}

.fp-public-app .fp-nav-menu-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fp-public-app .fp-nav-menu-link {
  width: 100%;
  justify-content: flex-start;
  text-decoration: none;
}

.fp-public-app .fp-nav-menu-link i {
  width: 20px;
  text-align: center;
}

.fp-public-app .fp-nav-menu-link.is-current {
  background: #fff;
  color: #2f3338;
}

.fp-public-app [data-fp-detail-booking='true'] {
  background: linear-gradient(180deg, #f8cf48, #efc431);
  color: #473a17;
  box-shadow: 0 14px 24px rgba(239, 196, 49, 0.24);
}

.fp-public-app [data-fp-detail-favorite='true'] {
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app .ghost-chip {
  background: #f1eee8;
  color: #55575d;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.fp-public-app .danger-chip {
  background: linear-gradient(180deg, #f07c68, #dd5a48);
  color: #fffaf7;
  box-shadow: 0 12px 20px rgba(221, 90, 72, 0.24);
}

.fp-public-app .fp-filter-block + .fp-filter-block {
  margin-top: 18px;
}

.fp-public-app .fp-login-sheet {
  max-width: min(460px, calc(100vw - 32px));
}

.fp-public-app .fp-login-sheet-body {
  display: grid;
  gap: 14px;
}

.fp-public-app .fp-login-sheet .um {
  margin: 0;
}

.fp-public-app .fp-login-sheet .um:not(.um-admin) {
  opacity: 1;
}

.fp-public-app .fp-login-sheet .um-form,
.fp-public-app .fp-login-sheet .um-col-alt,
.fp-public-app .fp-login-sheet .um-col-1 {
  display: grid;
  gap: 12px;
}

.fp-public-app .fp-login-sheet .um-field-label label,
.fp-public-app .fp-login-sheet .um-field-label {
  color: #5d5f66;
  font-size: 0.92rem;
  font-weight: 800;
}

.fp-public-app .fp-login-sheet input[type="text"],
.fp-public-app .fp-login-sheet input[type="password"],
.fp-public-app .fp-login-sheet input[type="email"] {
  width: 100%;
  min-height: 56px;
  border: 0;
  border-radius: 18px;
  background: #fff;
  color: #37373b;
  font: inherit;
  padding: 0 16px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app .fp-login-sheet .um-button,
.fp-public-app .fp-login-sheet input[type="submit"].um-button {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, #f8cf48, #efc431);
  color: #43413d;
  font: inherit;
  font-size: 1rem;
  font-weight: 900;
  box-shadow: 0 12px 20px rgba(239, 196, 49, 0.24);
}

.fp-public-app .fp-login-sheet .um a {
  color: #4b4d54;
  font-weight: 700;
}

.fp-public-app .fp-login-sheet .um-response {
  margin: 0;
  padding: 12px 14px;
  border-radius: 16px;
}

.fp-public-app .fp-booking-sheet {
  max-width: min(520px, calc(100vw - 32px));
}

.fp-public-app .fp-booking-copy {
  color: #4f5259;
  line-height: 1.55;
  font-size: 0.98rem;
}

.fp-public-app .fp-booking-children {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.fp-public-app .fp-booking-child {
  width: 100%;
  border: 0;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.88);
  color: #3d4046;
  text-align: left;
  padding: 14px 16px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.fp-public-app .fp-booking-child:hover:not([disabled]) {
  transform: translateY(-1px);
  box-shadow: 0 14px 24px rgba(0, 0, 0, 0.12), var(--inset);
}

.fp-public-app .fp-booking-child[disabled] {
  opacity: 0.58;
}

.fp-public-app .fp-booking-child[data-age-ineligible="true"] {
  opacity: 0.58;
  color: #7d8188;
  background: rgba(242, 243, 245, 0.92);
}

.fp-public-app .fp-booking-child[data-age-ineligible="true"] .fp-booking-child-meta {
  color: #8b9097;
}

.fp-public-app .fp-booking-child-name {
  display: block;
  font-size: 1rem;
  font-weight: 900;
}

.fp-public-app .fp-booking-child-meta {
  display: block;
  margin-top: 6px;
  color: #6c6f76;
  font-size: 0.9rem;
  font-weight: 700;
}

.fp-public-app .fp-filter-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.fp-public-app .fp-age-filter-copy {
  width: 100%;
  color: #5d6067;
  font-size: 0.94rem;
  line-height: 1.5;
}

.fp-public-app .fp-age-filter-children {
  display: grid;
  gap: 12px;
  width: 100%;
}

.fp-public-app .fp-age-filter-child {
  width: 100%;
  border: 0;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.92);
  color: #3d4046;
  text-align: left;
  padding: 14px 16px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.fp-public-app .fp-age-filter-child:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 14px 24px rgba(0, 0, 0, 0.12), var(--inset);
}

.fp-public-app .fp-age-filter-child.is-active {
  background: linear-gradient(180deg, #f8cf48, #efc431);
  color: #43413d;
  box-shadow: 0 12px 20px rgba(239, 196, 49, 0.24);
}

.fp-public-app .fp-age-filter-child:disabled {
  opacity: 0.56;
  background: rgba(242, 243, 245, 0.92);
  color: #7d8188;
}

.fp-public-app .fp-age-filter-child-name {
  display: block;
  font-size: 1rem;
  font-weight: 900;
}

.fp-public-app .fp-age-filter-child-meta {
  display: block;
  margin-top: 6px;
  color: #6c6f76;
  font-size: 0.9rem;
  font-weight: 700;
}

.fp-public-app .fp-age-filter-input {
  width: 100%;
}

.fp-public-app .fp-age-filter-empty,
.fp-public-app .fp-age-filter-error {
  width: 100%;
  padding: 14px 16px;
  border-radius: 18px;
  font-size: 0.94rem;
  line-height: 1.5;
}

.fp-public-app .fp-age-filter-empty {
  background: rgba(255, 255, 255, 0.72);
  color: #666a71;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.fp-public-app .fp-age-filter-empty.is-error,
.fp-public-app .fp-age-filter-error {
  background: rgba(240, 124, 104, 0.14);
  color: #98392c;
}

.fp-public-app .fp-filter-option {
  border: 0;
  min-height: 46px;
  border-radius: 999px;
  padding: 10px 16px;
  background: #fff;
  color: #4b4d54;
  font: inherit;
  font-size: 0.96rem;
  font-weight: 800;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app .fp-filter-option.active {
  background: linear-gradient(180deg, #f8cf48, #efc431);
  color: #43413d;
  box-shadow: 0 12px 20px rgba(239, 196, 49, 0.24);
}

.fp-public-app .fp-detail-image-wrap {
  margin-bottom: 14px;
  border-radius: 24px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
  width: 50%;
}

.fp-public-app .fp-detail-image-wrap[hidden] {
  display: none;
}

.fp-public-app .fp-detail-image-wrap.is-clickable {
  cursor: zoom-in;
}

.fp-public-app .fp-detail-image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  cursor: inherit;
}

.fp-public-app .fp-detail-lightbox {
  position: fixed;
  inset: 0;
  z-index: 18;
  padding: 20px 16px;
  overflow: auto;
}

.fp-public-app .fp-detail-lightbox[hidden] {
  display: none;
}

.fp-public-app .fp-detail-lightbox-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 30, 0.82);
  backdrop-filter: blur(8px);
}

.fp-public-app .fp-detail-lightbox-content {
  position: relative;
  z-index: 1;
  width: min(1400px, 100%);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.fp-public-app .fp-detail-lightbox-close {
  flex: 0 0 auto;
}

.fp-public-app .fp-detail-lightbox-scroll {
  width: 100%;
  max-height: calc(100vh - 88px);
  overflow: auto;
  border-radius: 24px;
  padding: 8px;
  background: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.fp-public-app .fp-detail-lightbox-image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 18px;
  background: #fff;
}

.fp-public-app .fp-detail-status .topline {
  justify-content: flex-start;
  align-items: center;
}

.fp-public-app .fp-detail-category {
  color: #72747b;
  background: rgba(243, 241, 244, 0.92);
}

.fp-public-app .fp-detail-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.fp-public-app .fp-detail-copy {
  margin: 0;
  color: #4f5259;
  line-height: 1.55;
  font-size: 0.98rem;
}

.fp-public-app .fp-detail-bring-along {
  margin: 0;
  display: block;
}

.fp-public-app .fp-detail-bring-along[hidden] {
  display: none;
}

.fp-public-app .fp-detail-bring-along-card {
  padding: 14px 16px;
  border: 2px solid rgba(232, 191, 62, 0.85);
  border-left-width: 6px;
  border-radius: 18px;
  background: rgba(255, 248, 221, 0.92);
  box-shadow: 0 8px 20px rgba(214, 170, 39, 0.12);
}

.fp-public-app .fp-detail-bring-along-label {
  color: #8b6a11;
  font-size: 0.82rem;
  font-weight: 800;
  margin-bottom: 6px;
}

.fp-public-app .fp-detail-bring-along-copy {
  color: #4f4320;
  font-weight: 700;
  line-height: 1.5;
  white-space: pre-wrap;
}

.fp-public-app .fp-detail-facts {
  margin: 0;
  display: block;
}

.fp-public-app .fp-detail-facts[hidden] {
  display: none;
}

.fp-public-app .fp-detail-facts-card {
  padding: 14px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app .fp-detail-facts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.fp-public-app .fp-detail-fact {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(248, 245, 238, 0.9);
}

.fp-public-app .fp-detail-fact.is-wide {
  grid-column: 1 / -1;
}

.fp-public-app .fp-detail-fact-label {
  color: #7a7c82;
  font-size: 0.82rem;
  font-weight: 800;
}

.fp-public-app .fp-detail-fact-value {
  display: flex;
  align-items: center;
  min-width: 0;
  color: #3c3e45;
  font-weight: 700;
  overflow-wrap: anywhere;
  font-size: 0.92rem;
  justify-content: space-between;
}

.fp-public-app .fp-detail-inline-link {
  color: #3c3e45;
  text-decoration: none !important;
}

.fp-public-app .fp-detail-inline-link:hover {
  color: #3c3e45;
  text-decoration: none !important;
}

.fp-public-app .fp-detail-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: linear-gradient(180deg, #dedede, #d0d0ce);
  color: #52421c;
  text-decoration: none;
}

.fp-public-app.fp-profile-shell .sun-group {
  min-height: 128px;
}

.fp-public-app .profile-section-head {
  margin-top: 2px;
  padding: 0 4px;
}

.fp-public-app .profile-section-head h2 {
  margin: 0 0 10px 0;
  line-height: 1.04;
  font-weight: 900;
  color: #2f3137;
}

.fp-public-app .fp-profile-shell [data-fp-profile-nav='true'] {
  padding-bottom: 2px;
}

.fp-public-app .fp-profile-shell [data-fp-profile-nav='true'] .pill {
  min-width: 148px;
  height: 52px;
}

.fp-public-app .profile-stack {
  display: grid;
  gap: 16px;
}

.fp-public-app .profile-panel {
  background: rgba(255, 255, 255, 0.88);
  border-radius: 26px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08), var(--inset);
  padding: 20px;
  overflow: hidden;
}

.fp-public-app .profile-panel h3,
.fp-public-app .profile-panel h4 {
  margin: 0 0 12px;
  font-weight: 900;
}

.fp-public-app .profile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.fp-public-app .profile-field {
  display: grid;
  gap: 6px;
}

.fp-public-app .profile-field.full {
  grid-column: 1 / -1;
}

.fp-public-app .profile-field label,
.fp-public-app .profile-table th {
  color: #72747a;
  font-size: 0.88rem;
  font-weight: 800;
}

.fp-public-app .profile-input,
.fp-public-app .profile-select {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 18px;
  background: #fff;
  color: #3d4046;
  font: inherit;
  padding: 0 16px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08), var(--inset);
}

.fp-public-app textarea.profile-input {
  min-height: 120px;
  padding-block: 14px;
  resize: vertical;
}

.fp-public-app .profile-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.fp-public-app .profile-table-wrap {
  overflow-x: auto;
  margin-inline: -4px;
  padding-inline: 4px;
}

.fp-public-app .profile-table {
  width: 100%;
  border-collapse: collapse;
}

.fp-public-app .profile-table th,
.fp-public-app .profile-table td {
  text-align: left;
  padding: 12px 10px;
  border-bottom: 1px solid rgba(87, 92, 101, 0.12);
}

.fp-public-app .profile-empty,
.fp-public-app .profile-note {
  color: #72747a;
  font-size: 0.92rem;
}

.fp-public-app .manager-image-thumb {
  width: min(100%, 18rem);
  border-radius: 1.25rem;
  border: 1px solid rgba(214, 180, 73, 0.24);
  display: block;
  object-fit: cover;
}

.fp-public-app .manager-edit-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem 1.2rem;
  margin-bottom: 1rem;
  padding: 0.95rem 1.1rem;
  border-radius: 1.2rem;
  background: rgba(255, 248, 224, 0.8);
  color: #55515f;
  font-size: 0.94rem;
}

.fp-public-app .fp-manager-sheet .fp-manager-sheet-body {
  display: grid;
  gap: 1rem;
}

.fp-public-app .profile-shell-status {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 10px;
}

.fp-public-app .profile-shell-status .tag {
  background: rgba(255, 255, 255, 0.82);
}

.fp-public-app .consent-history {
  margin-top: 16px;
}

.fp-public-app .fp-confirm-copy {
  color: #4f5259;
  line-height: 1.6;
  font-size: 0.98rem;
}

.fp-public-app .profile-warning {
  margin-top: 10px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(240, 124, 104, 0.12);
  color: #8a4238;
  font-size: 0.92rem;
  font-weight: 700;
}

.fp-public-app .nav-item {
  position: relative;
  color: #5b5d63;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 1rem;
  font-weight: 800;
}

.fp-public-app .nav-item i { font-size: 1.8rem; }

.fp-public-app .nav-item.active {
  color: #e2a608;
  background: linear-gradient(180deg, #f8f4e2, #f9f7ef);
  border-top-left-radius: 28px;
}

@media (max-width: 760px) {

  body.wmk-app-shell::after {
    height: var(--nav-h-small);
  }

  .fp-public-app .app-surface {
    width: 100%;
    padding-inline: 12px;
  }

  .fp-public-app.fp-profile-shell .app-surface {
    gap: 14px;
  }

  .fp-public-app .topbar {
    grid-template-columns: 88px 1fr 96px;
    gap: 8px;
  }

  .fp-public-app .pill {
    min-width: 110px;
    height: 48px;
    font-size: 0.95rem;
  }

  .fp-public-app .filter-chip {
    height: 48px;
    font-size: 0.95rem;
  }

  .fp-public-app .filter-chip.age { min-width: 250px; }
  .fp-public-app .toggle-chip { min-width: 280px; }
  .fp-public-app .date-arrow { width: 48px; height: 48px; font-size: 18px; }
  .fp-public-app .date-chip { width: 76px; height: 92px; }
  .fp-public-app .event-card { grid-template-columns: 78px 1fr 58px; min-height: 118px; }
  .fp-public-app .seat-badge { font-size: 0.76rem; padding: 6px 10px; margin: 5px 5px 0 0; }
  .fp-public-app .tag,
  .fp-public-app .topline,
  .fp-public-app .card-location,
  .fp-public-app .card-age-copy { font-size: 0.8rem; }
  .fp-public-app .topline-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
  }
  .fp-public-app .topline-price::before {
    content: "";
  }
  .fp-public-app .fav-btn { width: 48px; height: 48px; font-size: 22px; }
  .fp-public-app .nav-item { font-size: 0.85rem; }
  .fp-public-app .nav-item i { font-size: 1.45rem; }
  .fp-public-app .fp-sheet {
    width: calc(100% - 16px);
    padding: 16px 14px;
    bottom: calc(var(--nav-h) + 10px);
  }
  .fp-public-app .fp-search-input {
    height: 52px;
    font-size: 0.96rem;
  }
  body.wmk-app-shell::after {
    height: var(--nav-h);
  }
  .fp-public-app .scroll-row {
    justify-content: flex-start;
    padding-inline: 2px;
  }

  .fp-public-app .fp-profile-shell [data-fp-profile-nav='true'] .pill {
    min-width: 132px;
    height: 48px;
  }

  .fp-public-app .fp-detail-image-wrap {
    width: 100%;
  }

  .fp-public-app .profile-panel {
    padding: 18px 16px;
    border-radius: 24px;
  }

  .fp-public-app .profile-actions .filter-chip {
    min-width: 0;
  }
  .fp-public-app .filter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    overflow: visible;
  }
  .fp-public-app .filter-chip,
  .fp-public-app .filter-chip.age,
  .fp-public-app .toggle-chip {
    min-width: 0;
    width: 100%;
  }
}

@media (max-width: 560px) {
  .fp-public-app .app-surface {
    padding-top: 10px;
  }

  .fp-public-app .topbar {
    grid-template-columns: 60px minmax(0, 1fr) 72px;
    align-items: center;
  }

  .fp-public-app .sun-group {
    min-height: 58px;
  }

  .fp-public-app.fp-profile-shell .sun-group {
    min-height: 102px;
  }

  .fp-public-app .sun {
    width: 34px;
    height: 34px;
  }

  .fp-public-app .sun::before {
    inset: -10px;
  }

  .fp-public-app .brand {
    font-size: clamp(1.55rem, 8.5vw, 2.15rem);
    line-height: 0.98;
    overflow-wrap: anywhere;
  }

  .fp-public-app .subtitle {
    margin-top: 4px;
    font-size: 0.84rem;
  }

  .fp-public-app .actions {
    gap: 6px;
    padding-top: 0;
  }

  .fp-public-app .circle-btn {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .fp-public-app .topbar-leading-action {
    bottom: 2px;
  }

  .fp-public-app .pill {
    min-width: 102px;
    height: 44px;
    font-size: 0.92rem;
    padding-inline: 16px;
  }

  .fp-public-app .filter-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
  }

  .fp-public-app .filter-chip {
    height: 50px;
    min-width: 0;
    width: 100%;
    padding-inline: 12px;
    font-size: 0.88rem;
    gap: 8px;
  }

  .fp-public-app .filter-chip.age,
  .fp-public-app .toggle-chip {
    min-width: 0;
  }

  .fp-public-app .filter-chip.age {
    justify-content: flex-start;
  }

  .fp-public-app .toggle-chip {
    justify-content: space-between;
  }

  .fp-public-app .toggle {
    width: 54px;
    height: 30px;
    flex: 0 0 auto;
  }

  .fp-public-app .toggle span {
    width: 22px;
    height: 22px;
  }

  .fp-public-app .date-row {
    gap: 10px;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
  }

  .fp-public-app .date-arrow {
    width: 44px;
    height: 44px;
  }

  .fp-public-app .date-scroll {
    gap: 10px;
    padding-bottom: 20px;
  }

  .fp-public-app .date-chip {
    width: 66px;
    height: 86px;
    border-radius: 22px;
  }

  .fp-public-app .fp-month-grid {
    padding: 10px;
  }

  .fp-public-app .fp-real-week-grid {
    padding: 10px;
  }

  .fp-public-app .fp-real-week-shell {
    --fp-week-slot-height: 64px;
    --fp-week-axis-width: 52px;
    --fp-week-day-width: 88px;
  }

  .fp-public-app .fp-week-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .fp-public-app .fp-real-week-head,
  .fp-public-app .fp-real-week-body {
    gap: 8px;
  }

  .fp-public-app .fp-real-week-day-heads,
  .fp-public-app .fp-real-week-columns {
    grid-template-columns: repeat(7, var(--fp-week-day-width));
    gap: 6px;
  }

  .fp-public-app .fp-real-week-time-axis {
    grid-template-rows: repeat(var(--fp-week-slot-count), var(--fp-week-slot-height));
  }

  .fp-public-app .fp-real-week-column {
    min-height: calc(var(--fp-week-slot-count) * var(--fp-week-slot-height));
    border-radius: 18px;
  }

  .fp-public-app .fp-real-week-column-grid {
    grid-template-rows: repeat(var(--fp-week-slot-count), var(--fp-week-slot-height));
  }

  .fp-public-app .fp-real-week-day-head {
    padding: 8px 6px;
    border-radius: 16px;
  }

  .fp-public-app .fp-real-week-date {
    font-size: 1rem;
  }

  .fp-public-app .fp-real-week-event {
    left: 4px;
    right: 4px;
    border-radius: 14px;
    padding: 6px 6px 5px;
  }

  .fp-public-app .fp-real-week-event-time {
    font-size: 0.62rem;
  }

  .fp-public-app .fp-real-week-event-title {
    font-size: 0.72rem;
  }

  .fp-public-app .fp-week-day {
    padding: 10px 10px;
    border-radius: 20px;
  }

  .fp-public-app .fp-month-weekdays,
  .fp-public-app .fp-month-weeks {
    gap: 6px;
  }

  .fp-public-app .fp-month-cell {
    min-height: 92px;
    border-radius: 18px;
    padding: 8px 6px;
    gap: 6px;
  }

  .fp-public-app .fp-month-event-title {
    font-size: 0.68rem;
  }

  .fp-public-app .date-scroll.is-month {
    width: 100%;
  }

  .fp-public-app .date-scroll.is-week {
    width: 100%;
  }

  .fp-public-app .week-chip {
    width: 100%;
    min-height: 56px;
    padding: 10px 12px;
    border-radius: 18px;
  }

  .fp-public-app .week-chip .date {
    font-size: 0.94rem;
  }

  .fp-public-app .month-chip {
    width: 100%;
    min-height: 56px;
    padding: 10px 12px;
    border-radius: 18px;
  }

  .fp-public-app .month-chip .date {
    font-size: 0.98rem;
  }

  .fp-public-app .event-card {
    grid-template-columns: 64px 1fr 52px;
    align-items: stretch;
  }

  .fp-public-app .card-content {
    padding: 14px 6px 14px 10px;
  }

  .fp-public-app .card-content h3 {
    font-size: 1.18rem;
  }

  .fp-public-app .fp-sheet-actions {
    flex-direction: column;
  }

  .fp-public-app .fp-sheet-actions .filter-chip {
    width: 100%;
    justify-content: center;
  }

  .fp-public-app .fp-detail-facts-grid {
    grid-template-columns: 1fr;
  }

  .fp-public-app .profile-grid {
    grid-template-columns: 1fr;
  }

  .fp-public-app .profile-section-head {
    padding-inline: 2px;
  }

  .fp-public-app .fp-profile-shell [data-fp-profile-nav='true'] {
    gap: 8px;
  }

  .fp-public-app .fp-profile-shell [data-fp-profile-nav='true'] .pill {
    min-width: 112px;
    padding-inline: 14px;
  }

  .fp-public-app .profile-panel {
    padding: 16px 14px;
    border-radius: 22px;
  }

  .fp-public-app .profile-table th,
  .fp-public-app .profile-table td {
    padding: 10px 8px;
    font-size: 0.88rem;
  }

  .fp-public-app .profile-actions {
    gap: 10px;
  }

  .fp-public-app .profile-actions .filter-chip {
    width: 100%;
    justify-content: center;
  }

  .fp-public-app .manager-edit-meta {
    flex-direction: column;
    gap: 0.55rem;
  }
}

@media (max-width: 420px) {
  .fp-public-app .topbar {
    grid-template-columns: 48px minmax(0, 1fr) 64px;
  }

  .fp-public-app .actions {
    gap: 4px;
  }

  .fp-public-app.fp-profile-shell .sun-group {
    min-height: 94px;
  }

  .fp-public-app .filter-row {
    gap: 6px;
  }

  .fp-public-app .filter-chip {
    padding-inline: 10px;
    font-size: 0.82rem;
  }

  .fp-public-app .brand {
    font-size: 1.42rem;
  }

  .fp-public-app .subtitle {
    font-size: 0.8rem;
  }

  .fp-public-app .fp-profile-shell [data-fp-profile-nav='true'] .pill {
    min-width: 102px;
    font-size: 0.84rem;
  }

  .fp-public-app .profile-panel {
    padding: 14px 12px;
  }

  .fp-public-app .date-row {
    gap: 8px;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
  }

  .fp-public-app .date-arrow {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .fp-public-app .date-scroll {
    gap: 8px;
    padding-bottom: 18px;
  }

  .fp-public-app .date-scroll.is-month {
    width: 100%;
  }

  .fp-public-app .date-scroll.is-week {
    width: 100%;
  }

  .fp-public-app .week-chip {
    width: 100%;
    min-height: 48px;
    padding: 8px 10px;
    border-radius: 16px;
  }

  .fp-public-app .week-chip .date {
    font-size: 0.88rem;
  }

  .fp-public-app .month-chip {
    width: 100%;
    min-height: 48px;
    padding: 8px 10px;
    border-radius: 16px;
  }

  .fp-public-app .month-chip .date {
    font-size: 0.9rem;
  }

  .fp-public-app .event-card {
    grid-template-columns: 58px 1fr 0px;
    border-radius: 22px;
  }

  .fp-public-app .fp-month-grid {
    padding: 8px;
  }

  .fp-public-app .fp-real-week-grid {
    padding: 8px;
  }

  .fp-public-app .fp-real-week-shell {
    --fp-week-slot-height: 60px;
    --fp-week-axis-width: 48px;
    --fp-week-day-width: 82px;
  }

  .fp-public-app .fp-month-weekdays,
  .fp-public-app .fp-month-weeks {
    gap: 4px;
  }

  .fp-public-app .fp-month-cell {
    min-height: 80px;
    border-radius: 16px;
    padding: 6px 5px;
  }

  .fp-public-app .fp-month-day-number {
    font-size: 0.88rem;
  }

  .fp-public-app .fp-month-event-time {
    font-size: 0.62rem;
  }

  .fp-public-app .fp-month-event-title,
  .fp-public-app .fp-month-more {
    font-size: 0.64rem;
  }

  .fp-public-app .date-chip .dow {
    font-size: 0.92rem;
  }

  .fp-public-app .date-chip .date {
    font-size: 1.2rem;
  }

  .fp-public-app .fav-btn {
    width: 42px;
    height: 42px;
    font-size: 19px;
    position: absolute;
    right: 10px;
    bottom: 10%;
  }

  .fp-public-app .bottom-nav {
    border-top-left-radius: 22px;
    border-top-right-radius: 22px;
  }

  .fp-public-app .nav-item.active {
    border-top-left-radius: 22px;
  }
}

.fp-public-app .fp-status-card h3 {
  max-width: 24ch;
}

.fp-public-app.is-loading .cards {
  opacity: 0.88;
}
