/* MyCollegePark v65.74 — Editors, public event pages, messages, calendar foundation and related page features.
   Source-order module: keep stylesheet link order unchanged. */
/* v48 event location editor */
.address-field-wrap {
  position: relative;
}

.address-field-wrap > label {
  display: grid;
  gap: 6px;
}

.address-suggestions {
  position: absolute;
  z-index: 1200;
  left: 0;
  right: 0;
  top: calc(100% - 14px);
  max-height: 230px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 14px 32px rgba(0, 0, 0, .18);
}

.address-suggestion {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.address-suggestion:hover,
.address-suggestion:focus {
  background: var(--surface-soft);
  outline: none;
}

.address-suggestion strong {
  font-size: 12px;
}

.address-suggestion span,
.address-suggestion-empty {
  color: var(--muted);
  font-size: 11px;
}

.address-suggestion-empty {
  padding: 10px;
}

.event-location-map-wrap {
  display: grid;
  gap: 8px;
}

.event-location-map {
  background: var(--surface-soft);
}

.location-map-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

@media (max-width: 680px) {
  .event-location-map { height: 220px; }
  .location-map-footer { align-items: flex-start; flex-direction: column; }
}

/* ---------------------------------------------------------
   v50 — collapsible navigation, account types and event media
   --------------------------------------------------------- */
.workspace {
  transition: grid-template-columns .2s ease;
}

.workspace.sidebar-collapsed {
  grid-template-columns: 0 minmax(0, 1fr);
}

.workspace.sidebar-collapsed .sidebar {
  visibility: hidden;
  border-right: 0;
}

.sidebar-collapse-toggle {
  position: absolute;
  left: 10px;
  top: 50%;
  z-index: 950;
  width: 30px;
  height: 54px;
  transform: translateY(-50%);
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  background: rgba(255,255,255,.94);
  color: var(--text);
  box-shadow: var(--shadow-soft);
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}

body.dark-theme .sidebar-collapse-toggle,
body.satellite-theme .sidebar-collapse-toggle {
  background: rgba(29, 34, 40, .94);
  color: var(--text);
}

.layers-section-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  color: #697586;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  font-weight: 800;
  text-transform: uppercase;
}
.layers-subsection-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  font-weight: 800;
  text-transform: uppercase;
}

.layers-section-toggle {
  margin: 10px 0 7px;
  padding: 4px 4px 7px;
  border-bottom: 1px solid var(--border, #dfe4ea);
  font-size: .76rem;
  letter-spacing: .08em;
}

.layers-subsection-toggle {
  margin: 8px 0 3px;
  padding: 4px 5px 4px 39px;
  font-size: 9px;
  letter-spacing: .08em;
  color: var(--muted);
}

.layers-section-chevron {
  font-size: 14px;
  transition: transform .15s ease;
}

.layers-section-toggle.collapsed .layers-section-chevron,
.layers-subsection-toggle.collapsed .layers-section-chevron {
  transform: rotate(-90deg);
}

.layers-section-body.collapsed {
  display: none;
}

.account-type-fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  display: grid;
  gap: 7px;
}

.account-type-fieldset legend {
  margin-bottom: 6px;
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
}

.account-type-option {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 10px !important;
  padding: 10px 11px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--surface-soft);
  cursor: pointer;
}

.account-type-option input {
  width: auto !important;
  margin: 0;
  padding: 0;
}

.account-type-option span {
  display: grid;
  gap: 2px;
}

.account-type-option small {
  color: var(--muted);
  font-weight: 400;
}

.event-card-media {
  display: flex;
  gap: 7px;
  margin-bottom: 11px;
}

.event-card-main-photo {
  width: 104px;
  height: 104px;
  flex: 0 0 104px;
  object-fit: cover;
  border-radius: 10px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
}

.event-card-gallery {
  display: grid;
  grid-template-columns: repeat(2, 46px);
  grid-auto-rows: 46px;
  gap: 6px;
  align-content: start;
}

.event-card-gallery img {
  width: 46px;
  height: 46px;
  object-fit: cover;
  border-radius: 7px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
}

.event-photo-editor {
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}

.event-photo-editor-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  
}

.event-photo-editor-head > div {
  display: grid;
  gap: 3px;
}

.photo-count {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.photo-add-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  
  align-items: center;
  margin-bottom: 10px;
}

.photo-file-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  font-size: 13px !important;
}

.photo-url-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
}

.event-photo-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 8px 0;
}

.event-photo-tile {
  position: relative;
  aspect-ratio: 1;
  min-width: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 10px;
  background: #e9edf1;
}

.event-photo-tile:has(input:checked) {
  border-color: var(--accent);
}

.event-photo-tile > img,
.photo-broken {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.photo-primary-choice {
  position: absolute;
  left: 5px;
  bottom: 5px;
  display: inline-flex !important;
  align-items: center;
  gap: 4px !important;
  padding: 4px 6px;
  border-radius: 999px;
  background: rgba(0,0,0,.7);
  color: #fff !important;
  font-size: 9px !important;
  cursor: pointer;
}

.photo-primary-choice input {
  width: auto !important;
  margin: 0;
  padding: 0;
}

.photo-remove-button {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(0,0,0,.72);
  color: #fff;
  cursor: pointer;
  font-size: 17px;
}

.photo-source-label {
  position: absolute;
  left: 5px;
  top: 5px;
  max-width: calc(100% - 38px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 3px 5px;
  border-radius: 5px;
  background: rgba(255,255,255,.86);
  color: #28313a;
  font-size: 8px;
  font-weight: 700;
}

.photo-empty-state {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px dashed var(--line-strong);
  border-radius: 10px;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}

.admin-event-detail-card {
  width: min(1080px, 100%);
}

.admin-review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: 22px;
  margin-top: 18px;
}

.review-section-title {
  margin: 0 0 10px;
  font-size: 14px;
}

.admin-detail-list {
  margin: 0;
  display: grid;
  gap: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}

.admin-detail-row {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 12px;
  padding: 9px 11px;
  border-bottom: 1px solid var(--line);
}

.admin-detail-row:last-child { border-bottom: 0; }
.admin-detail-row dt { color: var(--muted); font-size: 11px; font-weight: 700; }
.admin-detail-row dd { margin: 0; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-detail-row a { color: var(--accent); }

.admin-card-preview {
  max-width: 430px;
}

.admin-preview-card {
  cursor: default;
}

.admin-detail-actions {
  margin-top: 18px;
}

.admin-detail-actions .danger-inline {
  color: #b12828;
}

@media (max-width: 760px) {
  .workspace.sidebar-collapsed {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr) 0;
  }

  .workspace.sidebar-collapsed .map-panel {
    grid-row: 1;
  }

  .sidebar-collapse-toggle {
    top: auto;
    left: 50%;
    bottom: 10px;
    width: 54px;
    height: 30px;
    transform: translateX(-50%) rotate(90deg);
  }

  .photo-add-row,
.photo-url-row {
    grid-template-columns: 1fr;
  }
.admin-review-layout {
    grid-template-columns: 1fr;
  }

  .event-photo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .admin-detail-row {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

/* v51 compact event cards and detail previews */
.compact-card-top{position:relative}.compact-card-top h3{margin-top:6px}.compact-card-body{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:9px;align-items:stretch}.compact-card-body.no-photo{grid-template-columns:1fr}.compact-card-photo{width:100%;aspect-ratio:1/1;max-height:105px;object-fit:cover}.compact-card-description{min-width:0}.compact-card-description .description-clamp{margin-top:0;-webkit-line-clamp:3}.card-link-button{border:0;background:transparent;padding:0;font-size:12.5px;font-weight:700;cursor:pointer}.event-admin-delete{position:absolute;right:0;top:0;border:0;background:#fff0f0;color:#b12828;border-radius:999px;width:24px;height:24px;cursor:pointer}.event-detail-card{width:min(760px,100%)}.event-detail-header h2{margin:8px 0 4px}.event-detail-main-photo{max-height:360px;margin-top:14px;}.event-detail-gallery{}.event-detail-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}.event-detail-description{}.event-detail-meta{}.event-detail-meta>div{display:grid;grid-template-columns:100px 1fr;gap:8px}.event-detail-meta dt{}.event-detail-meta dd{margin:0}.event-website-link{display:inline-flex;text-decoration:none}.editor-preview-section{border-top:1px solid var(--line);padding-top:14px}.editor-preview-head{display:flex;gap:8px;align-items:baseline;margin-bottom:10px}.editor-preview-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);gap:18px}.preview-card{margin-top:5px}.event-detail-preview{margin-top:5px;padding:14px;border:1px solid var(--line);border-radius:12px;max-height:520px;overflow:auto}.community-layer-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 3px}.community-layer-row label{display:flex;align-items:center;gap:7px;min-width:0}.community-layer-symbol{width:20px;text-align:center}.community-layer-symbol img{}.layer-row-actions{display:flex;gap:4px;align-items:center}.layer-row-actions button {border:0;background:transparent;cursor:pointer;text-decoration:none;color:var(--muted);font-size:13px}
.layer-row-actions a {border:0;background:transparent;cursor:pointer;text-decoration:none;color:var(--muted);font-size:13px}.editable-dot{font-size:9px;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 4px}.admin-users-list{display:grid;gap:7px;margin-top:14px}.admin-user-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:10px}.admin-user-row span{display:grid}.admin-user-row small{color:var(--muted)}.checkbox-line{display:flex!important;align-items:center;gap:8px!important}.checkbox-line input{width:auto!important}
@media(max-width:800px){.editor-preview-grid{grid-template-columns:1fr}.event-detail-gallery{grid-template-columns:repeat(3,1fr)}}

/* v52 event detail photo layout */
.event-detail-flow::after{content:"";display:block;clear:both}
.event-detail-media{float:left;width:33.333%;min-width:210px;margin:14px 18px 10px 0}
.event-detail-photo-stage{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:14px;border:1px solid var(--line);background:var(--panel)}
.event-detail-main-photo{display:block;width:100%;height:100%;object-fit:cover;margin:0;border:0;border-radius:0}
.event-photo-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:30px;height:38px;border:0;border-radius:999px;background:rgba(15,23,42,.58);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.82;transition:opacity .15s ease,background .15s ease}
.event-photo-arrow:hover{opacity:1;background:rgba(15,23,42,.78)}
.event-photo-arrow-prev{left:7px}.event-photo-arrow-next{right:7px}
.event-detail-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:7px}
.event-gallery-thumb{display:block;width:100%;aspect-ratio:1/1;padding:0;border:2px solid transparent;border-radius:7px;overflow:hidden;background:transparent;cursor:pointer;opacity:.76}
.event-gallery-thumb:hover{opacity:1}.event-gallery-thumb.is-active{border-color:var(--accent);opacity:1}
.event-gallery-thumb img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:4px}
.event-detail-description{white-space:pre-wrap;line-height:1.55;margin:14px 0 16px}
.event-detail-meta{clear:both}
@media(max-width:640px){.event-detail-media{float:none;width:100%;min-width:0;margin:14px 0 12px}.event-detail-photo-stage{aspect-ratio:4/3}.event-detail-gallery{grid-template-columns:repeat(5,minmax(0,1fr))}}
.event-detail-photo-stage .event-detail-main-photo{max-height:none}

/* v53: use the same category symbol on event cards as on map markers */
.event-type-badge{display:inline-flex;align-items:center;gap:5px}
.event-type-icon{width:17px;height:20px;object-fit:contain;display:block;flex:0 0 auto}

/* v54 administrator search */
.admin-add-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.admin-add-buttons .secondary-action{white-space:normal;line-height:1.25}.admin-user-search-panel{margin:10px 0 18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft,#f8fafc)}.admin-user-search-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.admin-user-search-label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:5px}.admin-user-search-panel input{width:100%;box-sizing:border-box}.admin-user-search-results{display:grid;gap:6px;margin-top:8px;max-height:240px;overflow:auto}.admin-user-search-result{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);color:inherit;text-align:left;cursor:pointer}.admin-user-search-result:hover{border-color:var(--accent);background:var(--accent-soft,#f2f7ff)}.admin-user-search-result span:first-child{display:grid;min-width:0}.admin-user-search-result strong,.admin-user-search-result small{overflow:hidden;text-overflow:ellipsis}.admin-user-search-result small,.admin-candidate-role{color:var(--muted);font-size:11px}.admin-candidate-role{white-space:nowrap}.admin-current-heading{font-size:14px;margin:18px 0 2px}.text-button{border:0;background:transparent;color:var(--accent);cursor:pointer;font-weight:700}.hidden{display:none!important}@media(max-width:700px){.admin-add-buttons{grid-template-columns:1fr}.admin-user-search-result{align-items:flex-start;flex-direction:column}.admin-candidate-role{white-space:normal}}


/* v54.2 — visual standard icon picker for community layers */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.layer-icon-field{position:relative}
.layer-icon-picker{position:relative;margin-top:7px}
.layer-icon-picker-button{width:100%;height:48px;display:flex;align-items:center;justify-content:space-between;padding:4px 10px;background:var(--panel,#fff);border:1px solid var(--border,#d5d9e0);border-radius:9px;cursor:pointer}
.layer-icon-picker-button img{width:30px;height:38px;object-fit:contain;display:block}
.layer-icon-picker-chevron{font-size:20px;line-height:1;color:var(--muted,#667085)}
.layer-icon-picker-menu{position:absolute;z-index:2000;top:calc(100% + 5px);left:0;width:100%;min-width:232px;grid-template-columns:repeat(4,minmax(46px,1fr));gap:6px;padding:8px;background:var(--panel,#fff);border:1px solid var(--border,#d5d9e0);border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.16)}
.layer-icon-picker-menu:not(.hidden){display:grid}
.layer-icon-choice{height:54px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;padding:3px}
.layer-icon-choice:hover{background:rgba(37,99,235,.07);border-color:rgba(37,99,235,.22)}
.layer-icon-choice.selected{background:rgba(37,99,235,.10);border-color:#2563eb;box-shadow:0 0 0 1px rgba(37,99,235,.12)}
.layer-icon-choice img{width:31px;height:40px;object-fit:contain;display:block}
.community-layer-symbol img{width:20px;height:26px;object-fit:contain;display:block}
body.dark-theme .layer-icon-picker-button,body.dark-theme .layer-icon-picker-menu{background:#14171c;border-color:#343a46}
body.dark-theme .layer-icon-choice:hover{background:rgba(96,165,250,.10)}

/* v54.3 — geometry-specific community layer styles and import preview */
.layer-style-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft,#f8fafc)}
.layer-style-settings>label{margin:0}
.layer-preview-block{margin-top:4px}
.layer-preview-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:7px}
.layer-preview-heading small{color:var(--muted);text-align:right}
.layer-preview-map{height:260px;width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#eef2f6}
.community-layer-line-swatch{display:block;width:22px;border-top:3px solid currentColor;border-radius:2px}
#layerFillOpacity{width:100%;margin-top:8px}
#layerLineWidth,#layerPolygonLineWidth{width:100%}
body.dark-theme .layer-style-settings{background:#11151b}
body.dark-theme .layer-preview-map{background:#171b21}
@media(max-width:700px){.layer-style-settings{grid-template-columns:1fr}.layer-preview-map{height:220px}.layer-preview-heading{align-items:flex-start;flex-direction:column;gap:2px}.layer-preview-heading small{text-align:left}}

/* v54.4 modular frontend: compact media used in My Events and admin review cards. */
.my-event-photo-media {
  margin-top: 10px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--surface);
}

.my-event-photo-media img {
  display: block;
  width: 100%;
  max-height: 220px;
  object-fit: cover;
}

/* v55 event pages, likes, reviews, and messages */
.card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-like-count{font-size:.88rem;color:#6b7280;font-weight:700}.card-link-button{text-decoration:none}
.event-page-body {margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.messages-page-body {margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}.event-page-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:1000;}.event-page-brand{font-weight:800;color:#17212b;text-decoration:none;display:flex;align-items:center;gap:8px;}.event-page-account{display:flex;align-items:center;gap:8px}.event-page-shell{margin:0 auto;}.event-page-main-card {margin-bottom:22px;}
.event-community-section {margin-bottom:22px;}.event-page-back{margin-bottom:18px;text-decoration:none;}.event-page-hero{display:grid;}.event-page-main-photo{width:100%;height:280px;object-fit:cover;border-radius:14px;background:#eef1f4}.event-page-title-block h1{}.event-page-date{font-size:1.05rem;color:#526170}.event-page-rating{margin-top:10px;font-weight:750;color:#8a5b00}.event-page-actions{display:flex;flex-wrap:wrap;gap:10px;}.event-page-actions .is-liked{background:#fff1f2;border-color:#fda4af;color:#be123c}.event-page-layout{align-items:start;}.event-page-description{white-space:pre-wrap;margin-bottom:22px;}.event-location-map{}.event-community-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.event-community-section h2{margin-top:0}.review-form-wrap{margin:16px 0;}.review-form-wrap form{display:grid;gap:12px}.review-form-wrap label{display:grid;gap:6px;font-weight:650}.review-form-wrap textarea,.review-form-wrap select{font:inherit;padding:10px;border:1px solid #cfd6dd;border-radius:8px;background:white}.event-reviews-list{display:grid;}.review-card{border-top:1px solid #edf0f2;}.review-card:first-child{border-top:0}.review-card-head {display:flex;justify-content:space-between;gap:14px;}
.review-card-foot {display:flex;align-items:center;justify-content:space-between;gap:14px}.review-card p{white-space:pre-wrap;}.review-card-foot{font-size:.85rem;color:#6b7280}.review-stars{color:#d18b00;letter-spacing:1px}.nearby-event-grid{display:grid;}.nearby-event-card{gap:6px;}.nearby-event-card span{font-size:.86rem;color:#66727f}.event-page-meta-link{margin-left:6px}
.messages-shell{max-width:1200px;margin:24px auto;padding:0 20px;display:grid;grid-template-columns:340px 1fr;gap:18px;height:calc(100vh - 114px)}.messages-thread-list{border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;}.messages-conversation{border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;}.messages-thread-list h1{padding:18px;margin:0;border-bottom:1px solid #e5e7eb}.message-thread-button{width:100%;border:0;border-bottom:1px solid #eef0f2;background:#fff;text-align:left;padding:14px 16px;display:grid;gap:4px;position:relative;cursor:pointer}.message-thread-button:hover,.message-thread-button.active{background:#f5f8fb}.message-thread-button span,.message-thread-button small{color:#687583}.message-thread-button b{position:absolute;right:12px;top:12px;background:#17212b;color:white;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;font-size:.75rem}.messages-conversation{display:flex;flex-direction:column}.messages-conversation-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e5e7eb}.messages-conversation-head h2{margin:0;font-size:1.1rem}.conversation-messages{padding:18px;display:flex;flex-direction:column;gap:12px;overflow:auto;height:calc(100% - 142px)}.conversation-message{max-width:74%;border-radius:14px;padding:10px 12px;background:#f0f3f6}.conversation-message.mine{align-self:flex-end;background:#e7f0ff}.conversation-message p{white-space:pre-wrap;margin:5px 0}.conversation-message small{color:#6b7280}.message-reply-form{border-top:1px solid #e5e7eb;padding:12px;display:flex;gap:10px}.message-reply-form textarea{flex:1;resize:none;font:inherit;padding:10px;border:1px solid #cfd6dd;border-radius:10px}
@media(max-width:800px){.event-page-hero {grid-template-columns:1fr}
.event-page-layout {grid-template-columns:1fr}
.messages-shell {grid-template-columns:1fr}.event-page-main-photo{height:230px}.nearby-event-grid{grid-template-columns:1fr 1fr}.messages-shell{height:auto}.messages-thread-list{max-height:40vh}.messages-conversation{min-height:55vh}}@media(max-width:520px){.event-page-topbar{padding:0 12px}.event-page-shell{padding:14px 10px 40px}.event-page-main-card {padding:16px;border-radius:13px}
.event-community-section {padding:16px;border-radius:13px}.nearby-event-grid{grid-template-columns:1fr}.event-community-heading{align-items:flex-start;flex-direction:column}}

/* v55.1 — scrollable event pages, square gallery, crop editor, page preview */
.event-document,
.event-document body {
  width: 100%;
  height: auto;
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}
.event-document body.modal-open { overflow: hidden; }

.event-page-gallery {
  min-width: 0;
}
.event-page-gallery-stage {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.event-page-gallery-stage .event-page-main-photo {
  display: block;
  object-fit: cover;
  border-radius: 0;
  background: #eef1f4;
}
.event-page-gallery-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 999px;
  color: #fff;
  font-size: 30px;
  cursor: pointer;
  display: grid;
  place-items: center;
  z-index: 2;
}
.event-page-gallery-arrow:hover { background: rgba(15, 23, 42, .82); }
.event-page-gallery-arrow.prev { left: 10px; }
.event-page-gallery-arrow.next { right: 10px; }
.event-page-gallery-counter {
  position: absolute;
  right: 10px;
  bottom: 10px;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.event-page-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.event-page-gallery-thumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  background: #eef1f4;
  cursor: pointer;
}
.event-page-gallery-thumb.is-active {  opacity: 1; }
.event-page-gallery-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.event-page-photo-placeholder {
  display: grid;
  place-items: center;
  aspect-ratio: 1 / 1;
  border: 1px dashed #cfd6dd;
  border-radius: 14px;
  color: #7a8591;
  background: #f7f9fb;
}

.photo-crop-button {
  position: absolute;
  right: 5px;
  bottom: 5px;
  z-index: 3;
  border: 0;
  border-radius: 999px;
  padding: 5px 8px;
  background: rgba(255,255,255,.92);
  color: #17212b;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(15,23,42,.18);
}
.photo-crop-modal-card { width: min(560px, 100%); }
.photo-crop-viewport {
  position: relative;
  width: min(460px, 82vw);
  aspect-ratio: 1 / 1;
  margin: 18px auto 14px;
  overflow: hidden;
  background: #111827;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
.photo-crop-viewport.is-dragging { cursor: grabbing; }
.photo-crop-viewport > img {
  position: absolute;
  max-width: none;
  max-height: none;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}
.photo-crop-frame {
  position: absolute;
  inset: 0;
  border: 3px solid #fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.4);
  pointer-events: none;
  z-index: 2;
}
.photo-crop-frame::before {
  content: "";
  position: absolute;
}
.photo-crop-frame::after {
  content: "";
  position: absolute;
}
.photo-crop-frame::before { left: 33.333%; right: 33.333%; top: 0; bottom: 0; border-left: 1px solid rgba(255,255,255,.45); border-right: 1px solid rgba(255,255,255,.45); background: none; }
.photo-crop-frame::after { top: 33.333%; bottom: 33.333%; left: 0; right: 0; border-top: 1px solid rgba(255,255,255,.45); border-bottom: 1px solid rgba(255,255,255,.45); background: none; }
.photo-crop-zoom { display: grid; gap: 6px; font-weight: 700; }
.photo-crop-zoom input { width: 100%; }

.event-page-preview {
  margin-top: 5px;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: auto;
  max-height: 680px;
  background: #f4f6f8;
}
.event-page-preview-topbar {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  border-bottom: 1px solid #e5e7eb;
  background: #fff;
  font-size: 11px;
}
.event-page-preview-topbar span { color: var(--muted); }
.event-page-preview-shell { padding: 14px; }
.event-page-preview-card {
  padding: 14px;
  margin-bottom: 12px;
  border: 1px solid #e4e7eb;
  border-radius: 14px;
  background: #fff;
}
.event-page-preview-section {
  padding: 14px;
  margin-bottom: 12px;
  border: 1px solid #e4e7eb;
  border-radius: 14px;
  background: #fff;
}
.event-page-preview-hero {
  display: grid;
  grid-template-columns: minmax(0, 190px) 1fr;
  gap: 16px;
  align-items: center;
}
.event-page-preview-hero h2 { margin: 8px 0; font-size: 23px; line-height: 1.08; }
.event-page-preview-gallery {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
  background: #eef1f4;
}
.event-page-preview-photo-empty {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
  background: #eef1f4;
}
.event-page-preview-main-photo { display:block; width:100%; height:100%; object-fit:cover; }
.event-page-preview-gallery { position: relative; }
.event-page-preview-thumbs {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 6px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
}
.event-page-preview-thumbs img { width:100%; aspect-ratio:1/1; object-fit:cover; border:1px solid rgba(255,255,255,.85); border-radius:4px; }
.event-page-preview-photo-empty { display:grid; place-items:center; padding:12px; color:var(--muted); text-align:center; }
.event-page-preview-actions { display:flex; gap:7px; flex-wrap:wrap; margin:12px 0; }
.event-page-preview-actions span { padding:5px 8px; border:1px solid #d9dee4; border-radius:8px; background:#fff; font-size:10px; font-weight:700; }
.event-page-preview-content { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(150px,.75fr); gap:14px; align-items:start; }
.event-page-preview-content p { white-space:pre-wrap; line-height:1.45; font-size:11px; }
.event-page-preview-map { min-height:150px; display:grid; place-items:center; border:1px solid #d9dee4; border-radius:9px; background:linear-gradient(135deg,#eef4ee,#e8eef3); color:#66727f; text-align:center; font-size:10px; padding:8px; }
.event-page-preview-section { display:grid; gap:5px; }

@media (max-width: 800px) {
  .event-page-hero { grid-template-columns: 1fr; align-items: start; }
  .event-page-gallery { max-width: 520px; }
  .event-page-main-photo { height: auto; }
  .event-page-preview-hero { grid-template-columns: 1fr; }
.event-page-preview-content { grid-template-columns: 1fr; }
}

/* v55.2 — modern event page visual refresh */
.event-page-body {
  --event-ink: #172033;
  --event-muted: #687386;
  --event-line: #e7eaf0;
  --event-soft: #f7f8fb;
  --event-accent: #2563eb;
  --event-accent-soft: #eef4ff;
  --event-shadow: 0 18px 55px rgba(30, 41, 59, .08);
  
}
.event-page-topbar {
  min-height: 72px;
  padding: 0 max(24px, calc((100vw - 1240px) / 2));
  border-bottom: 1px solid rgba(226, 232, 240, .8);
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 rgba(15, 23, 42, .02);
}
.event-page-brand {
  font-size: 1.15rem;
  letter-spacing: -.02em;
}
.event-page-account .secondary-action {
  min-height: 40px;
  border-radius: 12px;
}
.event-page-account .login-button {
  min-height: 40px;
  border-radius: 12px;
}
.event-page-shell {
  padding: 34px 24px 76px;
}
.event-page-main-card {
  border: 1px solid rgba(226, 232, 240, .92);
}
.event-community-section {
  border: 1px solid rgba(226, 232, 240, .92);
}
.event-page-main-card {
  overflow: hidden;
}
.event-page-back {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  margin: 0 0 16px -10px;
  padding: 0 10px;
  border-radius: 10px;
  font-size: .92rem;
  font-weight: 700;
  transition: background .15s ease, color .15s ease;
}
.event-page-back:hover {
  background: var(--event-soft);
  color: var(--event-ink);
}
.event-page-hero {
}
.event-page-gallery-stage {
  border: 0;
  border-radius: 22px;
  background: #eef1f5;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .12);
}
.event-page-gallery-stage .event-page-main-photo {
  transition: transform .28s ease;
}
.event-page-gallery-stage:hover .event-page-main-photo {
  transform: scale(1.012);
}
.event-page-gallery-arrow {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(15,23,42,.58);
  box-shadow: 0 5px 18px rgba(15,23,42,.16);
  opacity: 0;
  transition: opacity .18s ease, background .18s ease;
}
.event-page-gallery-stage:hover .event-page-gallery-arrow { opacity: 1; }
.event-page-gallery-arrow:focus-visible { opacity: 1; }
.event-page-gallery-counter {
  padding: 6px 10px;
  background: rgba(15,23,42,.64);
  backdrop-filter: blur(8px);
}
.event-page-gallery-thumbs {
  gap: 8px;
  margin-top: 10px;
}
.event-page-gallery-thumb {
  border-radius: 10px;
  border-width: 2px;
  opacity: .62;
  transition: opacity .15s ease, transform .15s ease, border-color .15s ease;
}
.event-page-gallery-thumb:hover { opacity: 1; transform: translateY(-1px); }
.event-page-gallery-thumb.is-active {
  border-color: var(--event-accent);
  box-shadow: 0 0 0 2px rgba(37,99,235,.10);
}
.event-page-eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.event-category-pill,
.event-rating-pill {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 11px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 800;
}
.event-category-pill {
  background: var(--event-accent-soft);
  color: #1d4ed8;
}
.event-rating-pill {
  background: #fff8e7;
  color: #8a5b00;
}
.event-rating-pill small { margin-left: 4px; color: #9a6c1a; font-size: .75rem; }
.event-page-title-block h1 {
  margin: 0 0 24px;
  color: var(--event-ink);
  text-wrap: balance;
}
.event-hero-facts {
  display: grid;
  color: #4f5d70;
}
.event-hero-fact {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.45;
}
.event-hero-icon {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  border-radius: 8px;
  background: var(--event-soft);
  color: var(--event-accent);
  font-size: .85rem;
  font-weight: 900;
}
.event-page-actions {
  border-top: 1px solid var(--event-line);
  border-bottom: 1px solid var(--event-line);
}
.event-page-actions .secondary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid #dfe4eb;
  background: #fff;
  color: #334155;
  box-shadow: 0 1px 2px rgba(15,23,42,.03);
  font-weight: 750;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.event-page-actions .secondary-action:hover {
  transform: translateY(-1px);
  border-color: #cbd5e1;
  box-shadow: 0 6px 18px rgba(15,23,42,.07);
}
.event-page-actions .secondary-action.is-liked {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #be123c;
}
.event-action-icon { font-size: 1.1rem; line-height: 1; }
.event-action-count {
  min-width: 24px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(15,23,42,.055);
  font-size: .78rem;
}
.event-page-layout {
}
.event-page-about {
  min-width: 0;
  padding: 12px 4px 6px;
}
.event-section-kicker {
  margin-bottom: 5px;
  color: var(--event-accent);
  font-size: .72rem;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.event-page-about h2 {
  margin: 0;
  color: var(--event-ink);
  font-size: 1.42rem;
  letter-spacing: -.025em;
}
.event-info-card h2,
.event-location-card h2 {
  margin: 0;
  color: var(--event-ink);
  letter-spacing: -.025em;
}
.event-page-description {
  margin: 18px 0 0;
  color: #445064;
  font-size: 1.06rem;
  line-height: 1.82;
}
.event-page-sidebar {
  display: grid;
  gap: 16px;
  align-self: start;
}
.event-info-card {
  border: 1px solid var(--event-line);
  background: var(--event-soft);
}
.event-location-card {
  border: 1px solid var(--event-line);
  background: var(--event-soft);
}
.event-detail-meta {
  display: grid;
  gap: 0;
  margin: 14px 0 0;
}
.event-detail-meta > .event-meta-row {
  display: grid;
  grid-template-columns: 110px minmax(0,1fr);
  gap: 14px;
  padding: 13px 0;
  border-top: 1px solid #e7eaf0;
}
.event-detail-meta > .event-meta-row:first-child { border-top: 0; }
.event-detail-meta dt {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  color: #687386;
  font-weight: 750;
}
.event-detail-meta dd {
  color: #263246;
  line-height: 1.45;
  font-weight: 650;
}
.event-meta-icon { color: var(--event-accent); }
.event-detail-link {
  color: var(--event-accent);
  text-decoration: none;
  font-weight: 800;
}
.event-directions-link {
  color: var(--event-accent);
  text-decoration: none;
  font-weight: 800;
}
.event-detail-link:hover { text-decoration: underline; }
.event-directions-link:hover { text-decoration: underline; }
.event-location-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
}
.event-directions-link { white-space: nowrap; font-size: .84rem; }
.event-location-map {
  border: 0;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.04);
}
.event-community-section {
}
.event-community-section h2 {
  margin-bottom: 5px;
  color: var(--event-ink);
  letter-spacing: -.03em;
}
.event-community-heading {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--event-line);
}
#eventRatingSummary { color: var(--event-muted); font-size: .9rem; }
#writeReviewButton {
  min-height: 42px;
  padding: 0 15px;
  border-radius: 12px;
}
.review-form-wrap {
  padding: 20px;
  border: 1px solid #dfe5ed;
  border-radius: 16px;
  background: var(--event-soft);
}
.event-reviews-list {
  gap: 14px;
  margin-top: 18px;
}
.review-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--event-line) !important;
  border-radius: 16px;
  background: #fff;
}
.review-card-head { align-items: flex-start; }
.review-author { min-width:0; }
.review-avatar {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:50%;
  background:var(--event-accent-soft);
  color:#1d4ed8;
  font-weight:850;
}
.review-date { margin-top:2px; color:var(--event-muted); font-size:.77rem; }
.review-card p { margin:15px 0 6px; color:#475569; line-height:1.65; }
.review-stars { white-space:nowrap; }
.review-card-actions { display:flex; gap:8px; }
.event-empty-state {
  grid-column:1/-1;
  display:grid;
  justify-items:center;
  gap:5px;
  padding:34px 20px;
  border:1px dashed #dbe1e9;
  border-radius:16px;
  color:var(--event-muted);
  text-align:center;
  background:#fbfcfd;
}
.event-empty-state strong { color:var(--event-ink); }
.event-empty-state.compact { padding:24px; }
.event-empty-icon { font-size:1.6rem; color:#d18b00; }
.nearby-event-grid {
  grid-template-columns: repeat(4, minmax(0,1fr));
  margin-top: 18px;
}
.nearby-event-card {
  display: block;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--event-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(15,23,42,.04);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nearby-event-card:hover {
  transform: translateY(-3px);
  border-color: #d7dde6;
  box-shadow: 0 14px 32px rgba(15,23,42,.09);
}
.nearby-event-photo {
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  background:#eef1f5;
}
.nearby-event-photo-placeholder {
  display:grid;
  place-items:center;
  color:#94a3b8;
  font-size:2rem;
  font-weight:900;
  background:linear-gradient(145deg,#eef4ff,#f4f6fa);
}
.nearby-event-content { display:grid; gap:7px;  }
.nearby-event-date { color:var(--event-accent)!important; font-size:.76rem!important; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.nearby-event-content strong { line-height:1.3; font-size:.98rem; }
.nearby-event-bottom { display:flex; justify-content:space-between; gap:10px; color:var(--event-muted); font-size:.78rem; }
.nearby-event-bottom span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width: 960px) {
  .event-page-hero { grid-template-columns: minmax(300px,.9fr) minmax(0,1.1fr); gap: 30px; }
  .event-page-title-block h1 { font-size: clamp(2.25rem, 6vw, 3.5rem); }
  .event-page-layout { grid-template-columns: 1fr; }
  .event-page-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nearby-event-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .event-page-shell { padding: 16px 12px 56px; }
  .event-page-main-card { padding: 14px 18px 26px; border-radius: 20px; }
  .event-page-hero { grid-template-columns: 1fr; gap: 25px; }
  .event-page-title-block h1 { font-size: clamp(2.2rem, 11vw, 3.3rem); }
  .event-page-gallery-arrow { opacity: .92; }
  .event-page-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .event-page-actions .secondary-action { width:100%; }
  .event-page-sidebar { grid-template-columns:1fr; }
  .event-community-section { padding: 22px 18px; border-radius: 20px; }
  .event-reviews-list { grid-template-columns:1fr; }
}
@media (max-width: 520px) {
  .event-page-topbar { min-height:64px; padding:0 12px; }
  .event-page-brand { font-size:1rem; }
  .event-page-account { gap:5px; }
  .event-page-account .secondary-action { min-height:36px; padding:0 10px; }
.event-page-account .login-button { min-height:36px; padding:0 10px; }
  .event-page-back { margin-left:-6px; }
  .event-page-title-block h1 { letter-spacing:-.045em; }
  .event-page-actions { grid-template-columns:1fr 1fr; gap:8px; }
  #eventMessageButton { grid-column:1/-1; }
  .event-detail-meta > .event-meta-row { grid-template-columns:95px minmax(0,1fr); gap:9px; }
  .event-location-map { height:220px; }
  .nearby-event-grid { grid-template-columns:1fr; }
  .nearby-event-photo { aspect-ratio:16/9; }
}


/* v55.3 — nearby event carousel and map fallback */
.nearby-events-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}
.nearby-events-heading h2{margin:0 0 4px}
.nearby-events-heading p{margin:0;color:var(--event-muted);font-size:.92rem}
.nearby-events-nav{display:flex;gap:8px;flex:0 0 auto}
.nearby-events-arrow{width:42px;height:42px;border-radius:50%;border:1px solid var(--event-line);background:#fff;color:var(--event-ink);font-size:1.65rem;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(15,23,42,.06);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}
.nearby-events-arrow:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,23,42,.1)}
.nearby-events-arrow:disabled{opacity:.32;cursor:default}
.nearby-event-grid{display:flex!important;grid-template-columns:none!important;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:2px 2px 12px;margin:0 -2px;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.nearby-event-grid::-webkit-scrollbar{height:7px}.nearby-event-grid::-webkit-scrollbar-track{background:transparent}.nearby-event-grid::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}
.nearby-event-card{flex:0 0 clamp(235px,24vw,270px);scroll-snap-align:start;text-decoration:none;color:var(--event-ink)}
.nearby-event-map{position:relative;z-index:0;cursor:pointer;background:#eef3f7}
.nearby-event-map .leaflet-tile-pane{filter:saturate(.72) contrast(.95)}
.nearby-event-map .leaflet-control-container{display:none}
@media(max-width:720px){.nearby-events-heading{align-items:center}.nearby-events-heading p{display:none}.nearby-events-nav{display:none}.nearby-event-grid{margin-right:-18px;padding-right:18px;scrollbar-width:none}.nearby-event-grid::-webkit-scrollbar{display:none}.nearby-event-card{flex-basis:min(78vw,280px)}.nearby-event-photo{aspect-ratio:1/1!important}}

/* v55.4 — compact event page layout + reliable nearby map fallback */
.event-page-hero{
  padding-bottom:18px;
}
.event-page-title-block{min-width:0;}
.event-page-title-block h1{}
.event-hero-description{
  margin:0 0 20px;
  padding:0;
  color:#445064;
}
.event-page-actions{}
.event-page-layout{
  display:grid;
  padding-top:0;
}
.event-info-card {box-sizing:border-box;}
.event-location-card {box-sizing:border-box;}
.event-location-map{}
.event-detail-meta>.event-meta-row{}
.nearby-event-media{position:relative;width:100%;aspect-ratio:1/1;background:#eef1f5;overflow:hidden}
.nearby-event-media>.nearby-event-photo{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.nearby-event-media>.nearby-event-map{z-index:1}
.nearby-event-media>.nearby-event-photo-placeholder{z-index:2}
.nearby-event-media>.nearby-event-photo.hidden{display:none!important}
@media(max-width:960px){
  .event-page-hero{}
  .event-page-layout{}
}
@media(max-width:760px){
  .event-page-hero{}
  .event-page-layout{}
  .event-location-map{}
  .event-hero-description{font-size:1rem;line-height:1.62}
}
@media(max-width:520px){
  .nearby-event-media{aspect-ratio:1/1}
}

/* v55.5 — event page proportion and map stability pass */
.event-page-shell{
  max-width:1160px;
  padding-top:28px;
}
.event-page-main-card{
  padding:18px 30px 30px;
}
.event-page-hero{
  grid-template-columns:minmax(300px,350px) minmax(0,1fr);
  gap:clamp(28px,4vw,48px);
  align-items:start;
  padding:4px 0 16px;
}
.event-page-gallery{
  width:100%;
  max-width:350px;
}
.event-page-gallery-stage{
  width:100%;
}
.event-page-gallery-stage .event-page-main-photo{
  width:100%;
  aspect-ratio:1/1;
  height:auto;
}
.event-page-title-block{
  padding-top:10px;
  max-width:650px;
}
.event-page-eyebrow{
  margin-bottom:14px;
}
.event-page-title-block h1{
  max-width:620px;
  margin-bottom:14px;
  font-size:clamp(2.35rem,4.4vw,3.7rem);
  line-height:1.01;
  letter-spacing:-.048em;
}
.event-hero-description{
  max-width:610px;
  margin-bottom:16px;
  font-size:1rem;
  line-height:1.62;
}
.event-hero-facts{
  gap:9px;
  font-size:.94rem;
}
.event-page-actions{
  margin:4px 0 18px;
  padding:13px 0;
}
.event-page-actions .secondary-action{
  min-height:40px;
  padding:0 14px;
  border-radius:11px;
  font-size:.9rem;
}
.event-page-layout{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:16px;
}
.event-info-card {
  height:auto;
  min-height:0;
  padding:18px;
  border-radius:16px;
}
.event-location-card {
  height:auto;
  min-height:0;
  padding:18px;
  border-radius:16px;
}
.event-info-card h2,
.event-location-card h2{
  font-size:1.28rem;
}
.event-detail-meta{
  margin-top:10px;
}
.event-detail-meta>.event-meta-row{
  grid-template-columns:92px minmax(0,1fr);
  gap:10px;
  padding:9px 0;
}
.event-detail-meta dt{
  font-size:.78rem;
}
.event-detail-meta dd{
  font-size:.88rem;
}
.event-location-heading{
  margin-bottom:11px;
}
.event-location-map{
  width:100%;
  height:220px;
  min-height:220px;
  max-height:220px;
  overflow:hidden;
  border-radius:12px;
}
.event-location-map .leaflet-map-pane,
.event-location-map .leaflet-tile-pane,
.event-location-map .leaflet-overlay-pane{
  max-width:none;
}
.event-community-section{
  padding:26px 30px;
  margin-top:18px;
}
.event-community-section h2{
  font-size:1.42rem;
}
.event-reviews-list{
  grid-template-columns:repeat(auto-fit,minmax(290px,520px));
  justify-content:start;
}
.review-card{
  width:100%;
}
.nearby-event-card{
  flex-basis:clamp(220px,23vw,255px);
}
.nearby-event-content{
  padding:12px 13px 13px;
}
@media(max-width:960px){
  .event-page-hero{
    grid-template-columns:minmax(280px,330px) minmax(0,1fr);
    gap:26px;
  }
  .event-page-gallery{max-width:330px}
  .event-page-title-block h1{font-size:clamp(2.2rem,5.2vw,3.25rem)}
  .event-page-layout{grid-template-columns:1fr 1fr}
  .event-location-map{height:210px;min-height:210px;max-height:210px}
}
@media(max-width:760px){
  .event-page-main-card{padding:14px 18px 24px}
  .event-page-hero{grid-template-columns:1fr;gap:22px}
  .event-page-gallery{max-width:520px;margin:0 auto}
  .event-page-title-block{max-width:none;padding-top:0}
  .event-page-layout{grid-template-columns:1fr}
  .event-location-map{height:240px;min-height:240px;max-height:240px}
  .event-reviews-list{grid-template-columns:1fr}
}

/* v55.6 — interactive event photo and location */
.event-page-gallery-stage .event-page-main-photo{cursor:zoom-in}
.event-location-map{cursor:pointer}
.event-location-card{position:relative}
.event-media-modal{padding:24px;z-index:2200;background:rgba(7,12,22,.86);backdrop-filter:blur(8px)}
.event-photo-lightbox-card{position:relative;width:min(94vw,1200px);height:min(92vh,1000px);display:flex;align-items:center;justify-content:center}
.event-photo-lightbox-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.38)}
.event-media-close{position:absolute;right:8px;top:8px;z-index:5;background:rgba(15,23,42,.78);color:#fff;border-color:rgba(255,255,255,.28);box-shadow:0 6px 24px rgba(0,0,0,.18)}
.event-map-modal-card{width:min(94vw,1050px);background:#fff;border-radius:20px;padding:18px;box-shadow:0 28px 90px rgba(0,0,0,.35)}
.event-map-modal-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.event-map-modal-head h2{margin:2px 0 0;font-size:1.35rem}
.event-map-modal-actions{display:flex;align-items:center;gap:10px}
.event-map-modal-close{position:static;background:#fff;color:var(--event-ink);border:1px solid var(--event-line);box-shadow:none}
.event-map-modal-canvas{height:min(68vh,650px);min-height:420px;border-radius:14px;overflow:hidden;border:1px solid var(--event-line)}
@media(max-width:760px){
  .event-media-modal{padding:12px}
  .event-photo-lightbox-card{width:100%;height:92vh}
  .event-photo-lightbox-image{border-radius:12px}
  .event-map-modal-card{width:100%;padding:14px;border-radius:16px}
  .event-map-modal-canvas{min-height:360px;height:66vh}
}

/* v55.7 message unread badges */
.user-menu-button{display:inline-flex;align-items:center;gap:7px}
.message-unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e11d48;color:#fff;font-size:11px;font-weight:800;line-height:1;box-shadow:0 0 0 2px #fff}
.user-menu-row-with-badge{display:flex!important;align-items:center;justify-content:space-between;gap:14px}
.user-menu-row-with-badge .message-unread-badge{margin-left:auto;box-shadow:none}

/* v55.8 — consistent account navigation on Messages */
.messages-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.messages-topbar-link{white-space:nowrap}
.messages-add-event{text-decoration:none;display:inline-flex;align-items:center}
.messages-menu-link{display:flex;width:100%;box-sizing:border-box;border:0;border-radius:8px;background:transparent;padding:9px 10px;text-align:left;color:var(--text);cursor:pointer;text-decoration:none;font:inherit}
.messages-menu-link:hover{background:var(--surface-soft)}
.messages-menu-link.is-current{background:var(--surface-soft);font-weight:750}
@media(max-width:720px){
  .messages-topbar{align-items:flex-start;padding-top:10px;padding-bottom:10px}
  .messages-topbar-actions{gap:7px}
  .messages-topbar-link{display:none}
  .messages-add-event{padding-left:11px;padding-right:11px}
}
@media(max-width:480px){
  .messages-add-event{font-size:.86rem}
  .messagesUserMenuButton{max-width:150px}
}

/* v55.9 — one standard site header across home, event and messages pages */

.site-header-brand{display:block;color:var(--text);text-decoration:none;min-width:0}
.site-header-brand:hover h1{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}

.site-header-add-event{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.site-menu-link{display:flex;width:100%;box-sizing:border-box;border:0;border-radius:8px;background:transparent;padding:9px 10px;text-align:left;color:var(--text);cursor:pointer;text-decoration:none;font:inherit}
.site-menu-link:hover{background:var(--surface-soft)}
.site-menu-link.is-current{background:var(--surface-soft);font-weight:750}
.event-notice-card{max-width:460px}
.event-notice-text{color:var(--muted);line-height:1.55;margin:8px 0 0}
@media(max-width:720px){
  
  
  
  
  
  .site-header-add-event{padding-left:11px;padding-right:11px}
}
@media(max-width:480px){
  
  
  .site-header-add-event{font-size:.82rem;padding-left:9px;padding-right:9px}
  
  
}

/* v55.10 layer editing */
.layer-geometry-edit-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px;padding:8px 10px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fafc;}.layer-geometry-edit-toolbar .form-help{margin-left:auto}.layer-edit-vertex{background:#fff;border:2px solid #1f6feb;border-radius:50%;box-shadow:0 1px 5px rgba(15,23,42,.2)}.layer-preview-map.geometry-editing{}.community-layer-row .layer-row-actions button[data-layer-edit]{color:#1f6feb}.layer-editor-mode-note{font-size:12px;color:#64748b}


/* v55.11 map-object drawing and metadata editor */
.layer-geometry-edit-toolbar{align-items:center}.layer-geometry-edit-toolbar .primary-action.compact-action{padding:7px 11px}.layer-preview-map.geometry-editing{cursor:crosshair}.layer-feature-modal{z-index:6200}.layer-feature-card{max-width:560px}.layer-feature-card textarea{resize:vertical;min-height:110px}.layer-feature-photo-row{display:flex;align-items:flex-end;gap:12px;min-height:8px}.layer-feature-photo-preview{display:block;width:150px;height:110px;object-fit:cover;border:1px solid #dbe3ee;border-radius:12px;background:#f1f5f9}.layer-popup-photo{display:block;width:100%;max-height:150px;object-fit:cover;border-radius:8px;margin:0 0 8px}.layer-popup-title{display:block;font-size:14px;margin-bottom:4px;color:#0f172a}.layer-popup-description{font-size:12px;line-height:1.4;color:#475569;margin-bottom:6px;white-space:normal}
@media(max-width:700px){.layer-geometry-edit-toolbar{align-items:stretch}.layer-geometry-edit-toolbar button{flex:1 1 auto}.layer-geometry-edit-toolbar .form-help{width:100%;margin-left:0}.layer-feature-card{width:min(94vw,560px)}}

/* v55.12 — GIS import field recognition guide */
.layer-import-field-row{display:flex;align-items:flex-end;gap:10px}.layer-import-file-label{flex:1;min-width:0}.layer-import-help-button{white-space:nowrap;margin-bottom:1px}.layer-import-help-modal{z-index:6300}.layer-import-help-card{width:min(900px,94vw);max-height:min(86vh,820px);overflow:auto}.import-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.import-guide-grid section{border:1px solid #dbe3ee;border-radius:14px;padding:14px;background:#fbfdff}.import-guide-grid h3{margin:0 0 10px;font-size:16px}.import-field-aliases{display:grid;gap:8px;margin:0}.import-field-aliases>div{display:grid;grid-template-columns:110px 1fr;gap:10px}.import-field-aliases dt{font-weight:700}.import-field-aliases dd{margin:0;line-height:1.55}.import-code-example{margin:0;white-space:pre-wrap;overflow:auto;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px;font-size:12px;line-height:1.45}.import-guide-grid code{font-size:.92em}
@media(max-width:700px){.layer-import-field-row{align-items:stretch;flex-direction:column}.layer-import-help-button{align-self:flex-start}.import-guide-grid{grid-template-columns:1fr}.import-field-aliases>div{grid-template-columns:1fr;gap:2px}}

/* v56 — Event calendar */
.calendar-page-body{}.calendar-topbar .topbar-link.is-current{color:#0f6b4d;font-weight:800}.calendar-shell{max-width:1540px;margin:0 auto;padding:30px 30px 56px}.calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.calendar-heading h1{margin:4px 0 6px;font-size:clamp(2rem,3vw,3.2rem);letter-spacing:-.045em}.calendar-heading p{margin:0;color:#687386;font-size:1rem}.calendar-view-switch{display:flex;border:1px solid #dce3e8;background:#fff;box-shadow:0 4px 14px rgba(31,41,55,.05)}.calendar-view-switch button{border:0;background:transparent;border-radius:10px;font-weight:750;color:#687386;cursor:pointer}.calendar-view-switch button.active{background:#e8f4ef;color:#17664d}.calendar-toolbar{display:flex;justify-content:space-between;gap:22px;border:1px solid #dfe6ea;padding:14px 16px;margin-bottom:16px;}.calendar-period-nav{display:flex;align-items:center;gap:8px;min-width:340px}.calendar-period-nav h2{margin:0 8px;min-width:180px;text-align:center;font-size:1.25rem}.calendar-period-nav>button{border:1px solid #dce3e8;background:#fff;border-radius:10px;min-width:38px;height:38px;font-size:1.25rem;cursor:pointer}.calendar-period-nav .calendar-today-button{font-size:.84rem;font-weight:750;padding:0 12px}.calendar-filter-row{display:flex;align-items:end;}.calendar-filter-row label,.calendar-year-label{display:grid;gap:5px;color:#6b7484;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.calendar-filter-row select{height:39px;border:1px solid #d9e0e5;border-radius:10px;background:#fff;padding:0 11px;color:#263244;min-width:160px}.calendar-filter-row input{height:39px;border:1px solid #d9e0e5;border-radius:10px;background:#fff;padding:0 11px;color:#263244;}.calendar-year-label select{height:39px;border:1px solid #d9e0e5;border-radius:10px;background:#fff;padding:0 11px;color:#263244;}.calendar-filter-row input{min-width:240px}.calendar-workspace{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:start}.calendar-sidebar{position:sticky;border:1px solid #dfe6ea;padding:14px;}.calendar-year-label select{width:100%;min-width:0}.calendar-month-list{display:grid;gap:3px;margin-top:12px}.calendar-month-button{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;padding:9px 10px;border-radius:10px;color:#495568;cursor:pointer;text-align:left}.calendar-month-button:hover{background:#f2f6f4}.calendar-month-button.active{font-weight:800;}.calendar-month-button b{display:inline-flex;min-width:26px;height:24px;align-items:center;justify-content:center;border-radius:12px;background:#eef2f5;color:#667085;font-size:.74rem}.calendar-month-button.active b{background:#fff;color:#126148}.calendar-content{}.calendar-loading{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid #dfe6ea;color:#748092;}.calendar-empty-state{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid #dfe6ea;color:#748092;}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#dfe5e9;border:1px solid #dfe5e9;gap:1px;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(31,41,55,.045)}.calendar-weekday{background:#f8fafb;padding:10px 12px;color:#7a8492;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.calendar-day-cell{position:relative;background:#fff;padding:9px;overflow:hidden}.calendar-day-cell.muted{background:#fafbfc;color:#b5bbc3}.calendar-day-cell.today{box-shadow:inset 0 0 0 2px #42a67e}.calendar-day-number{font-size:.78rem;font-weight:850;margin:0 0 7px 2px}.calendar-day-cell.today .calendar-day-number{display:inline-flex;width:25px;height:25px;border-radius:50%;align-items:center;justify-content:center;background:#17664d;color:#fff;margin-left:0}.calendar-day-events{display:grid;gap:6px}.calendar-event-card{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr);min-height:92px;border:1px solid #e2e7ea;background:#fff;border-radius:13px;overflow:hidden;color:#1f2937;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.calendar-event-card:hover{transform:translateY(-1px);border-color:#bfd6ca;box-shadow:0 8px 18px rgba(31,41,55,.08)}.calendar-event-card.compact{border-radius:9px}.calendar-event-media,.calendar-event-mini-map{display:block;width:92px;height:92px;object-fit:cover;background:#e8ecef}.calendar-event-mini-map{z-index:0}.calendar-event-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e7f1ec,#f2eee4);color:#758177;font-size:.72rem;font-weight:800}.calendar-event-copy{display:grid;align-content:center;gap:2px;padding:9px;min-width:0}.calendar-event-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.91rem}.calendar-event-copy span{font-size:.76rem;font-weight:800;}.calendar-event-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a8492;font-size:.74rem}.calendar-event-card.compact .calendar-event-copy{gap:1px}.calendar-more-button{border:0;background:#edf5f1;color:#17664d;border-radius:8px;padding:6px;font-size:.68rem;font-weight:850;cursor:pointer}.calendar-agenda{display:grid;gap:12px}.calendar-agenda-day{display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;background:#fff;border:1px solid #dfe6ea;border-radius:17px;padding:14px;box-shadow:0 6px 20px rgba(31,41,55,.04)}.calendar-agenda-date{display:grid;justify-items:center;align-content:start;padding-top:6px;color:#687386}.calendar-agenda-date strong{font-size:.7rem;}.calendar-agenda-date b{font-size:2rem;line-height:1.05;color:#253044}.calendar-agenda-date span{font-size:.7rem;font-weight:800}.calendar-agenda-events{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}.calendar-day-modal{z-index:6500}.calendar-day-modal-card{width:min(820px,92vw);max-height:84vh;overflow:auto}.calendar-day-modal-events{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:14px}
@media(max-width:1050px){.calendar-shell{padding:22px 18px 44px}.calendar-workspace{grid-template-columns:155px minmax(0,1fr)}.calendar-event-card.compact .calendar-event-copy small{display:none}}
@media(max-width:760px){.calendar-shell{padding:18px 12px 36px}.calendar-heading{align-items:flex-start}.calendar-heading h1{font-size:2rem}.calendar-view-switch{display:none}.calendar-toolbar{display:grid;gap:12px}.calendar-period-nav{min-width:0;width:100%;justify-content:space-between}.calendar-period-nav h2{min-width:0;font-size:1.08rem;margin:0 3px}.calendar-filter-row{display:grid;grid-template-columns:1fr;gap:8px}.calendar-filter-row select{width:100%;min-width:0}.calendar-filter-row input{width:100%;min-width:0}.calendar-workspace{display:block}.calendar-sidebar{position:static;margin-bottom:12px;padding:10px}.calendar-month-list{display:flex;overflow-x:auto;gap:5px;padding-bottom:3px}.calendar-month-button{flex:0 0 auto;width:auto;gap:8px;padding:7px 9px}.calendar-year-label{max-width:130px}.calendar-month-grid{display:none!important}.calendar-agenda{display:grid!important}.calendar-agenda-day{grid-template-columns:58px minmax(0,1fr);padding:10px}.calendar-agenda-events{grid-template-columns:1fr}.calendar-event-card{grid-template-columns:78px minmax(0,1fr);min-height:78px}.calendar-event-media,.calendar-event-mini-map{width:78px;height:78px}.calendar-event-copy{padding:7px}.calendar-event-copy strong{font-size:.86rem}.calendar-event-copy small{font-size:.69rem}}
/* v56 compact month-card tuning */
.calendar-event-card.compact{display:grid;grid-template-columns:48px minmax(0,1fr);min-height:48px}.calendar-event-card.compact .calendar-event-media,.calendar-event-card.compact .calendar-event-mini-map{width:48px;height:48px}.calendar-event-card.compact .calendar-event-copy{padding:5px 6px;align-content:center}.calendar-event-card.compact .calendar-event-copy strong{font-size:.69rem}.calendar-event-card.compact .calendar-event-copy span{font-size:.61rem}.calendar-event-card.compact .calendar-event-copy small{font-size:.59rem}


/* v56.1 — calendar scrolling hotfix */
.calendar-page-html,
.calendar-page-html body {
  height: auto;
  min-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}
.calendar-page-body {
  min-height: 100vh;
  overflow-y: visible;
}
.calendar-content {
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
}
.calendar-month-grid {
  min-width: 980px;
}
.calendar-sidebar {
  top: 104px;
}
@media (max-width: 1050px) and (min-width: 761px) {
  .calendar-month-grid { min-width: 900px; }
}
@media (max-width: 760px) {
  .calendar-page-html,
  .calendar-page-html body { overflow-x: hidden; }
  .calendar-content { overflow-x: visible; padding-bottom: 0; }
  .calendar-month-grid { min-width: 0; }
}


/* v56.2 — calendar past-events filter */
.calendar-filter-row .calendar-past-checkbox{display:flex;align-items:center;gap:8px;height:39px;padding:0 10px;border:1px solid #d9e0e5;border-radius:10px;background:#fff;color:#495568;font-size:.82rem;font-weight:700;text-transform:none;letter-spacing:0;white-space:nowrap;cursor:pointer}
.calendar-filter-row .calendar-past-checkbox input{width:16px;height:16px;min-width:16px;margin:0;accent-color:#17664d}
@media(max-width:760px){.calendar-filter-row .calendar-past-checkbox{width:100%;justify-content:flex-start}}

/* v57 — richer event classification */
.audience-badge{background:#eef6ff;color:#1e4f85;border-color:#cfe3f7}
.students-only{background:#fff4dc;color:#8a5700;border-color:#f1d69b}
.event-tag-chip{display:inline-flex;align-items:center;padding:4px 8px;margin:2px 4px 2px 0;border-radius:999px;background:#f1f5f4;color:#38524a;font-size:.78rem;font-weight:700}
.audience-student-pill{background:#fff4dc!important;color:#8a5700!important;border-color:#f1d69b!important}

.official-source-badge{border-color:#c9e8d6}
.event-source-list{display:grid;gap:12px;margin-top:16px}.event-source-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid #dce4e0;border-radius:14px;background:#f8fbf9}.event-source-card .form-error{margin-top:6px}


/* v57.1 event source filters */
.source-filter-wrap { position: relative; width: 190px; min-width: 190px; }
.source-menu { width: 245px; }
.source-filter-badge { width: 24px; height: 24px; border-radius: 8px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 24px; font-size:11px; font-weight:900; border:1px solid var(--line); }
.source-filter-badge.official { background:#eaf7ef; color:#1f6b43; border-color:#c9e8d6; }
.source-filter-badge.community { background:#f3f4f6; color:#4b5563; border-color:#d8dce2; }
.community-source-badge { background:#f3f4f6; color:#4b5563; border-color:#d8dce2; }
@media (max-width: 900px) { .source-filter-wrap { width: 100%; min-width: 0; } }

@media (max-width: 760px) { .top-filter-row .search-wrap { grid-column: 1 / -1; } .category-filter-wrap, .source-filter-wrap { width:100%; min-width:0; } }

/* v57.3 online/hybrid event badges */
.online-event-badge,.online-event-pill{background:#e9f7ff!important;color:#0369a1!important;border-color:#bae6fd!important}
.hybrid-event-badge,.hybrid-event-pill{background:#f3e8ff!important;color:#7e22ce!important;border-color:#e9d5ff!important}

/* v57.6.3 - stable compact month/year controls */
.single-filter-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  
}
.single-filter-row > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.single-filter-row .filter-menu-wrap {
  flex: 0 0 auto;
  min-width: 0;
}
.single-filter-row #monthBtn {
  width: 94px;
  min-width: 94px;
  max-width: 94px;
}
.single-filter-row #yearBtn {
  width: 70px;
  min-width: 70px;
  max-width: 70px;
}
.single-filter-row #monthBtnLabel,
.single-filter-row #yearBtnLabel {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.single-filter-row .menu-filter-button {
  box-sizing: border-box;
  gap: 5px;
}
.single-filter-row .menu-chevron {
  flex: 0 0 auto;
}
.single-filter-row > .past-checkbox {
  flex: 0 0 auto;
}
@media (min-width: 761px) {
  .single-filter-row { overflow: visible; }
}
@media (max-width: 760px) {
  .single-filter-row { overflow-x: auto; }
}

/* v57.6.4 - equal spacing between date filters */
.single-filter-row { column-gap: 8px; }


/* v57.6.5 Admin Level 1 bulk event manager */
.admin-manage-events-card{width:min(1050px,calc(100vw - 32px));max-height:min(88vh,900px);overflow:auto}
.admin-event-manager-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) minmax(220px,1.4fr);gap:10px;align-items:end;margin:16px 0 12px}
.admin-event-manager-filters label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--muted)}
.admin-event-manager-filters select,.admin-event-manager-filters input{width:100%}
.admin-event-manager-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.admin-event-manager-toolbar #adminEventsSelectionCount{margin-right:auto}
.admin-event-manager-list{display:grid;gap:7px;margin-top:12px}
.admin-event-manager-row{display:grid;grid-template-columns:auto minmax(220px,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}
.admin-event-manager-row:hover{background:#f8fafc}
.admin-event-manager-row>input{width:auto}
.admin-event-manager-main{display:grid;gap:3px;min-width:0}.admin-event-manager-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-event-manager-main small{color:var(--muted)}
.admin-event-manager-badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.admin-event-manager-filters{grid-template-columns:1fr 1fr}.admin-event-manager-search{grid-column:1/-1}.admin-event-manager-row{grid-template-columns:auto 1fr}.admin-event-manager-badges,.admin-event-manager-row>a{grid-column:2}.admin-event-manager-badges{justify-content:flex-start}}

/* v58.1 — site problem reporting */
.report-problem-fab {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1080;
  border: 1px solid #d9e0ea;
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  color: #344054;
  padding: 10px 14px;
  font: inherit;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(15,23,42,.12);
  cursor: pointer;
}
.report-problem-fab:hover { background:#fff; color:#111827; transform:translateY(-1px); }
.report-problem-card { max-width: 520px; }
.report-problem-card textarea { width:100%; resize:vertical; margin-top:8px; margin-bottom:16px; }
.form-success { padding:10px 12px; border-radius:10px; background:#ecfdf3; color:#067647; margin-top:10px; }
.problem-thread-label { display:inline-flex; width:max-content; padding:2px 7px; border-radius:999px; background:#fff1f3; color:#c01048; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.message-thread-button.problem-thread { border-left:3px solid #e11d48; }
.problem-status { display:inline-flex; padding:3px 8px; border-radius:999px; background:#fff1f3; color:#c01048; font-size:12px; font-weight:800; }
.problem-status.resolved { background:#ecfdf3; color:#067647; }
@media (max-width: 640px) { .report-problem-fab { right:12px; bottom:12px; padding:9px 12px; font-size:13px; } }


/* v58.2 — keep map utility actions in one row */
.map-bottom-actions .report-problem-map-action {
  white-space: nowrap;
}
@media (max-width: 640px) {
  .map-bottom-actions { gap: 6px; right: 10px; bottom: 10px; }
  .map-bottom-actions .floating-action { padding-left: 10px; padding-right: 10px; }
  .map-bottom-actions .report-problem-map-action { font-size: 12px; }
}

/* v58.5: map fallback for events without real photos + contact inbox label */
.event-page-hero-map { width:100%; height:100%; min-height:350px; border-radius:16px; overflow:hidden; cursor:pointer; background:#eef2f5; }
.contact-thread-label { display:inline-flex; align-items:center; width:max-content; padding:3px 7px; border-radius:999px; background:#e8f2ff; color:#1556a8; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.message-thread-button.contact-thread { border-left:3px solid #2b78d0; }
@media (max-width: 720px) { .event-page-hero-map { min-height:280px; } }


/* v58.7 — no visual fallback for events without photos; photo-first map list */
.event-page-hero.no-photo { grid-template-columns:minmax(0,1fr); }
.event-page-hero.no-photo .event-page-title-block { max-width:860px; }
.calendar-event-card.no-media { grid-template-columns:minmax(0,1fr); }
.calendar-event-card.compact.no-media { grid-template-columns:minmax(0,1fr); }
.nearby-event-card:not(:has(.nearby-event-media)) .nearby-event-content { padding-top:16px; }

/* =========================================================
   v59 — modern map-first homepage
   ========================================================= */

.home-hero {
  position: relative;
  min-height: 112px;
  padding: 20px 26px 24px;
  overflow: hidden;
  border-bottom: 0;
  color: #fff;
  background:
    radial-gradient(circle at 82% 20%, rgba(255,255,255,.15), transparent 25%),
    radial-gradient(circle at 62% 125%, rgba(150,224,201,.22), transparent 38%),
    linear-gradient(118deg, #123f3a 0%, #176b5b 56%, #247b69 100%);
}

.home-hero-decoration {
  position: absolute;
  width: 340px;
  height: 340px;
  right: -90px;
  top: -210px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 50%;
  box-shadow: 0 0 0 48px rgba(255,255,255,.035), 0 0 0 96px rgba(255,255,255,.025);
  pointer-events: none;
}



.home-brand-mark {
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 10px 30px rgba(0,0,0,.1);
  font-weight: 850;
  letter-spacing: -.04em;
}



.home-hero .beta-badge {
  padding: 3px 7px;
  color: #d9fff3;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
}
.home-hero .brand-title-row h1 {
  max-width: 660px;
  font-size: clamp(24px, 2.35vw, 34px);
  line-height: 1.04;
  color: #fff;
  letter-spacing: -.045em;
}

.home-hero .topbar-actions {
  position: relative;
  z-index: 2;
  gap: 6px;
  align-self: flex-start;
  margin-top: 5px;
}
.home-hero .topbar-link {
  color: rgba(255,255,255,.82);
  border-radius: 10px;
  padding: 10px 11px;
}
.home-hero .topbar-link:hover {
  color: #fff;
  background: rgba(255,255,255,.10);
}
.home-hero .login-button {
  border-color: rgba(255,255,255,.2);
  background: #fff;
  color: #174d44;
  box-shadow: 0 8px 22px rgba(4,38,31,.14);
}
.home-hero .login-button:hover { opacity: 1; background: #f4fffb; }
.home-hero .user-menu-button { min-width: 112px; }
.home-hero .user-menu { color: var(--text); }

/* floating discovery toolbar */
.filter-panel {
  position: relative;
  z-index: 995;
  margin: -14px 18px 10px;
  padding: 9px;
  border: 1px solid rgba(205,216,214,.9);
  background: rgba(255,255,255,.97);
  box-shadow: 0 10px 30px rgba(29,62,56,.12);
  backdrop-filter: blur(12px);
}
.top-filter-row { gap: 8px; }
.top-filter-row .search-wrap input {
  height: 44px;
  border-radius: 11px;
}
.top-filter-row .category-control {
  height: 44px;
  border-radius: 11px;
}
.top-filter-row .search-wrap input {
  border-color: transparent;
  background: #f2f6f5;
  font-size: 13.5px;
}
.top-filter-row .search-wrap input:focus {
  border-color: #91bfb3;
  box-shadow: 0 0 0 3px rgba(35,128,109,.10);
}
.top-filter-row .category-control {
  border-color: #d9e2df;
  background: #fff;
  font-weight: 700;
  color: #344b48;
}

/* map/list framed as one modern workspace */
.workspace {
  gap: 10px;
  padding: 0 12px 12px;
  background: #edf2f0;
}
.sidebar {
  border: 1px solid #dce5e2;
  border-radius: 18px;
  background: rgba(250,252,251,.98);
  box-shadow: 0 7px 24px rgba(39,65,59,.06);
}
.map-panel {
  border: 1px solid #dce5e2;
  border-radius: 18px;
  box-shadow: 0 7px 24px rgba(39,65,59,.07);
}
#map { border-radius: inherit; }
.sidebar-header {
  min-height: 48px;
  padding: 13px 15px 10px;
  border-bottom-color: #e6ecea;
}
.result-count { color: #203a36; font-weight: 780; }
.result-period { color: #7b8d89; }
.sidebar-filters {
  padding: 9px 10px;
  background: #f4f7f6;
  border-bottom-color: #e5ece9;
}
.single-filter-row { gap: 8px; }
.single-filter-row .quick-filter,
.single-filter-row .filter-control,
.past-checkbox {
  border-color: #d5dfdc;
  background: #fff;
  box-shadow: 0 1px 0 rgba(255,255,255,.8);
}
.quick-filter:hover,
.quick-filter.active {
  border-color: #176b5b;
  background: #176b5b;
  color: #fff;
}
.event-list { padding: 10px; }
.card {
  margin-bottom: 9px;
  padding: 13px;
  border-color: #e0e7e5;
  border-radius: 15px;
  box-shadow: 0 2px 8px rgba(33,57,52,.045);
}
.card.clickable:hover {
  transform: translateY(-2px);
  border-color: #b9d2cb;
  box-shadow: 0 10px 24px rgba(33,57,52,.10);
}
.card.selected {
  border-color: #65a99a;
  background: #fbfffd;
  box-shadow: 0 0 0 3px rgba(35,128,109,.10), 0 8px 20px rgba(33,57,52,.07);
}
.card h3 { font-size: 15.5px; color: #193531; }
.compact-card-photo { border: 0; border-radius: 11px; }
.badge { background: #f0f4f3; color: #536763; }
.card-link-button, .card-link { color: #176b5b; }
.official-source-badge { background: #e9f6f1; color: #176147; }

.map-bottom-actions {
  gap: 7px;
  padding: 5px;
  border: 1px solid rgba(214,224,221,.9);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 8px 28px rgba(28,55,49,.14);
  backdrop-filter: blur(12px);
}
.map-bottom-actions .floating-action {
  border-color: transparent;
  box-shadow: none;
  background: transparent;
}
.map-bottom-actions .floating-action:hover { background: #eff5f3; }
.map-style-fab {
  border-color: #d6e1de !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(10px);
}

@media (max-width: 900px) {
  .home-hero { min-height: 96px; padding: 16px 18px 20px; }
  .home-brand-mark { width: 46px; height: 46px; flex-basis: 46px; border-radius: 15px; }
  .home-hero .brand-title-row h1 { font-size: 24px; }
  
  .filter-panel { margin-left: 10px; margin-right: 10px; }
  .workspace { padding: 0 8px 8px; gap: 8px; }
}

@media (max-width: 680px) {
  .home-hero {
    align-items: flex-start;
    min-height: 114px;
    padding: 13px 12px 22px;
  }
  .home-brand-mark { display: none; }
  
  .home-hero .brand-title-row h1 { font-size: 20px; max-width: 310px; }
  .home-hero .topbar-actions { margin-top: 0; }
  .home-hero .topbar-link { display: none; }
  .home-hero .login-button { height: 36px; padding: 0 10px; }
  .filter-panel { margin-top: -18px; border-radius: 14px; }
  .top-filter-row { grid-template-columns: minmax(0,1fr) 126px 116px; overflow-x: auto; }
  .workspace { border-radius: 0; }
  .sidebar, .map-panel { border-radius: 14px; }
}



/* v66.52 — public automatic event source registry. */
.legal-inline-action{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:#176b5b;text-decoration:none}
.legal-inline-action:hover{text-decoration:underline}
.public-source-list{display:grid;gap:12px;margin-top:18px}
.public-source-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--panel,#fff)}
.public-source-card h3{margin:0 0 4px;font-size:16px;color:var(--text)}
.public-source-card p{margin:0;color:var(--muted);font-size:13px}
.public-source-link{flex:0 0 auto;font-weight:800;color:#176b5b;text-decoration:none}
.public-source-link:hover{text-decoration:underline}
.public-source-loading{padding:16px 0;color:var(--muted)}
@media(max-width:600px){.public-source-card{align-items:flex-start;flex-direction:column}.public-source-link{margin-top:2px}}

/* v66.66 source intake inspector */
.event-source-card-main{min-width:0;flex:1}.event-source-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.event-source-items{margin-top:12px;padding-top:10px;border-top:1px solid var(--line,#dce4e0)}.source-import-list{display:grid;gap:8px;margin-top:8px;max-height:360px;overflow:auto}.source-import-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line,#dce4e0);border-radius:10px;background:#fff}.source-import-row strong{font-size:13px}.source-import-row .form-help{font-size:11px}@media(max-width:700px){.event-source-card{align-items:stretch;flex-direction:column}.event-source-card-actions{justify-content:flex-start}.source-import-row{flex-direction:column}}

.source-import-row-wrap{display:grid;gap:6px}.source-import-preview{padding:10px 12px;border:1px solid var(--line,#dce4e0);border-radius:10px;background:#f8fbf9}.source-import-preview-grid{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:5px 12px;font-size:12px}.source-import-preview-label{font-weight:700;color:#40504a}.source-import-preview-description{margin-top:10px;font-size:12px;white-space:pre-wrap}.source-import-preview-links{margin-top:10px;font-size:12px}@media(max-width:700px){.source-import-preview-grid{grid-template-columns:1fr;gap:2px}.source-import-preview-label{margin-top:6px}}

/* v66.73 community contribution verification */
.contribution-verification{display:grid;gap:.45rem;padding:.85rem 1rem;border:1px solid var(--border-color,#d8dee4);border-radius:12px;background:var(--surface-soft,#f6f8fa)}
.contribution-verification>div{display:flex;flex-direction:column;gap:.1rem}.contribution-verification small{font-weight:400}.verify-ok{color:#18743b}.verify-warning{color:#8a5a00}.verify-error{color:#b42318}.field-help{display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:50%;border:1px solid currentColor;background:transparent;font-size:.8rem;line-height:1;padding:0;cursor:help}.layer-popup-admin-meta{margin-top:.45rem;opacity:.75}.layer-popup-photo{max-width:100%;max-height:170px;object-fit:cover;border-radius:8px;margin-bottom:.45rem}

/* v66.75 — compact community object cards and dedicated review workspace. */
.layer-popup-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:start;max-width:290px}
.layer-popup-photo{width:112px!important;height:112px!important;max-width:112px!important;max-height:112px!important;aspect-ratio:1/1;object-fit:cover!important;border-radius:12px;display:block;margin:0!important}
.layer-popup-copy{min-width:0;display:grid;gap:6px}.layer-popup-title{display:block;font-size:1rem;line-height:1.15}.layer-popup-description{overflow-wrap:anywhere}.layer-popup-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.layer-popup-actions button{min-height:34px}
@media(max-width:520px){.layer-popup-card{grid-template-columns:92px minmax(0,1fr);gap:9px;max-width:260px}.layer-popup-photo{width:92px!important;height:92px!important;max-width:92px!important;max-height:92px!important}}

.admin-community-review-page{min-height:100vh;overflow-y:auto!important;overflow-x:hidden!important}
.admin-community-review-page main{overflow:visible!important;max-height:none!important}
.community-review-list{display:grid;gap:14px;margin-top:14px;padding-bottom:48px}
.community-review-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;padding:16px;border:1px solid var(--line,#dfe6ea);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(31,41,55,.05)}
.community-review-thumb{width:180px;height:180px;aspect-ratio:1/1;object-fit:cover;border-radius:14px;background:#eef2f3;cursor:zoom-in}
.community-review-content{min-width:0;display:grid;align-content:start;gap:10px}.community-review-title-row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.community-review-meta{color:var(--muted,#667085);font-size:.82rem}.community-review-description{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.community-review-report-badge{display:inline-flex;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;background:#fff1f0;color:#b42318;font-size:.78rem;font-weight:800}.community-review-actions{display:flex;gap:8px;flex-wrap:wrap}.community-review-message{display:grid;gap:5px}.community-review-message textarea{min-height:76px;resize:vertical}
@media(max-width:760px){.community-review-card{grid-template-columns:112px minmax(0,1fr);gap:12px;padding:12px}.community-review-thumb{width:112px;height:112px}.community-review-actions{grid-column:1/-1}.community-review-message{grid-column:1/-1}}
.contribution-hidden{display:none!important}

/* v66.75.1 — compact community popup action icons */
.layer-popup-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin-top:7px}.layer-popup-icon-action{appearance:none;width:38px;height:38px;min-width:38px;min-height:38px;padding:0;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f766e;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}.layer-popup-icon-action:hover{background:#f0fdfa;border-color:#5eead4}.layer-popup-icon-action:active{transform:translateY(1px)}.layer-popup-icon-action:focus-visible{outline:3px solid rgba(13,148,136,.22);outline-offset:2px}.layer-popup-icon-action svg{width:20px;height:20px;display:block;fill:currentColor}.layer-popup-icon-action.hidden{display:none!important}@media(max-width:520px){.layer-popup-actions{gap:7px}.layer-popup-icon-action{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:9px}.layer-popup-icon-action svg{width:19px;height:19px}}
