:root{
  --bg-dark:#1F2024;
  --bg-darker:#17181B;
  --panel:#202125;
  --panel-soft:#292B31;
  --text:#F6F8FB;
  --muted:#AEB6C6;
  --line:rgba(255,255,255,.08);
  --hinata:#34A8E0;
  --hinata-strong:#49B6E8;
  --violet:#8B5CF6;
  --sakura:#ED78B8;
  --gold:#F4C542;
  --green:#2FC39A;
  --shadow:0 18px 46px rgba(0,0,0,.32);
  --focus:0 0 0 4px rgba(73,182,232,.35);
  --mobile-nav-surface:rgba(20,21,24,.96);
  --mobile-nav-border:rgba(255,255,255,.09);
  --mobile-nav-shadow:0 -8px 28px rgba(0,0,0,.18);
  --mobile-tab-text:#AAB1BE;
  --mobile-tab-active:#9F7DFF;
  --mobile-card-surface:rgba(31,32,36,.96);
  --mobile-card-border:rgba(255,255,255,.12);
  --mobile-card-shadow:0 10px 28px rgba(0,0,0,.22);
  --mobile-card-title:#FFFFFF;
  --mobile-card-copy:#D2D7E2;
  --mobile-count:#F8FAFF;
  --mobile-count-shadow:0 1px 4px rgba(0,0,0,.8),0 0 10px rgba(0,0,0,.45);
  --mobile-surface:rgba(31,32,36,.96);
  --mobile-surface-muted:#292B31;
  --mobile-text:#F6F8FB;
  --mobile-text-muted:#AEB6C6;
  --mobile-border:rgba(255,255,255,.10);
  --mobile-shadow:0 10px 28px rgba(0,0,0,.18);
  --mobile-space-1:4px;
  --mobile-space-2:8px;
  --mobile-space-3:12px;
  --mobile-space-4:16px;
  --mobile-space-5:20px;
  --mobile-space-6:24px;
  --mobile-elevation-card:0 10px 28px rgba(0,0,0,.18);
  --mobile-elevation-overlay:0 24px 64px rgba(0,0,0,.38);
  --mobile-motion-fast:140ms;
  --mobile-motion-standard:200ms;
  --mobile-motion-ease:cubic-bezier(.2,.8,.2,1);
  --mobile-focus-ring:0 0 0 3px rgba(73,182,232,.38);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  overflow:hidden;
  background:var(--bg-darker);
  color:var(--text);
  font-family:'Noto Sans TC','Noto Sans JP','Yu Gothic','PingFang TC','Microsoft JhengHei',system-ui,sans-serif;
}
button,input,a{font:inherit}
button,a{touch-action:manipulation}
button:focus-visible,
a:focus-visible,
input:focus-visible{outline:none;box-shadow:var(--focus)}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.map-app-shell{
  height:100dvh;
  min-height:620px;
  display:grid;
  grid-template-columns:336px minmax(0,1fr);
  background:var(--bg-darker);
}

.place-sidebar{
  position:relative;
  z-index:20;
  min-width:0;
  min-height:0;
  height:100dvh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:linear-gradient(180deg,#202125 0%,#1A1B1E 100%);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:20px 0 50px rgba(0,0,0,.26);
}
.place-sidebar > :not(.place-list){flex:0 0 auto}
.sidebar-brand{
  min-height:74px;
  padding:18px 18px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.brand-link{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--text);
  text-decoration:none;
}
.brand-mark{
  width:32px;
  height:32px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#101218;
  font-weight:1000;
  background:linear-gradient(135deg,var(--hinata),#D7F3FF 45%,var(--violet));
  box-shadow:0 0 0 5px rgba(73,182,232,.1),0 12px 24px rgba(0,0,0,.24);
}
.brand-mark svg{
  width:19px;
  height:19px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.brand-title{
  display:block;
  font-size:20px;
  font-weight:950;
  letter-spacing:.075em;
  color:#BFA9FF;
}
.brand-subtitle{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:750;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.legacy-link{
  flex:0 0 auto;
  color:#CFD5E3;
  text-decoration:none;
  border:1px solid var(--line);
  border-radius:999px;
  padding:7px 10px;
  font-size:12px;
  font-weight:800;
  background:rgba(255,255,255,.045);
}
.legacy-link:hover{background:rgba(139,92,246,.16);color:#fff}

.sidebar-tabs{
  margin:0 16px 14px;
  padding:6px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:5px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:999px;
  background:#28292E;
}
.sidebar-tab{
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  color:#AAB1BE;
  text-decoration:none;
}
.sidebar-tab span{display:none}
.sidebar-tab svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sidebar-tab:hover{color:#fff;background:rgba(255,255,255,.08)}
.sidebar-tab.is-active{
  color:#11131A;
  background:linear-gradient(135deg,#B8A0FF,#805CFF);
  box-shadow:0 10px 26px rgba(139,92,246,.3);
}

.top-search-float input{
  width:100%;
  border:0;
  color:#F8FAFF;
  background:#2A2B2F;
  min-height:42px;
  border-radius:999px;
  padding:0 14px;
  font-size:13px;
  font-weight:650;
  outline:0;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;
}
.top-search-float input:focus{
  outline:0;
  box-shadow:none;
  background:transparent;
}
.top-search-float input::placeholder{color:#9BA3AF}
.top-search-float input:disabled{opacity:.56}
.top-search-count{display:none}
.icon-button{
  min-height:42px;
  border:0;
  border-radius:999px;
  background:#2A2B2F;
  color:#B7A6FF;
  font-size:20px;
  cursor:pointer;
}
.icon-button:hover:not(:disabled){background:#343641;color:#fff}
.icon-button:disabled{opacity:.45;cursor:not-allowed}

.place-filter-panel{
  margin:0 16px 12px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
}
.place-filter-panel label{
  display:grid;
  gap:5px;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
}
.place-filter-panel select{
  width:100%;
  min-width:0;
  min-height:34px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:0 9px;
  color:#F8FAFF;
  background:#2A2B2F;
  font-size:12px;
  font-weight:800;
}
.place-filter-panel select:disabled{opacity:.45}

.sidebar-meta{
  margin:0 16px 12px;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 10px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.meta-label{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
#resultCount{
  display:block;
  margin-top:2px;
  color:#fff;
  font-size:20px;
  line-height:1;
  white-space:nowrap;
}
.soft-button{
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.055);
  color:#fff;
  min-height:34px;
  border-radius:999px;
  padding:7px 12px;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.soft-button:hover:not(:disabled){background:rgba(73,182,232,.18)}
.soft-button:disabled{opacity:.45;cursor:not-allowed}

.recent-added-panel{
  margin:0 16px 12px;
  padding:10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  background:rgba(255,255,255,.035);
}
.recent-added-panel header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  color:#E9EDFF;
  font-size:11px;
  font-weight:950;
  letter-spacing:.06em;
}
.recent-added-panel header button{
  border:0;
  border-radius:999px;
  padding:4px 8px;
  color:#D6F5FF;
  background:rgba(73,182,232,.16);
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.recent-added-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.recent-added-chip{
  width:100%;
  border:1px solid rgba(255,255,255,.07);
  border-radius:12px;
  padding:7px 8px;
  color:#D9DEEA;
  background:rgba(255,255,255,.045);
  text-align:left;
  font-size:11px;
  font-weight:800;
  line-height:1.35;
  cursor:pointer;
}
.recent-added-chip span{
  display:block;
  margin-bottom:2px;
  color:#8FE6FF;
  font-size:10px;
  font-weight:950;
}
.recent-added-chip:hover,
.recent-added-chip.is-active{
  border-color:rgba(139,92,246,.48);
  background:linear-gradient(135deg,rgba(73,182,232,.18),rgba(139,92,246,.16));
  color:#fff;
}

.status{
  margin:0 16px 12px;
  min-height:34px;
  color:#ACB8C8;
  font-size:12px;
  line-height:1.45;
  font-weight:720;
}
.status[data-type="success"]{color:#8FE6FF}
.status[data-type="warning"]{color:#F7D26A}
.status[data-type="danger"]{color:#FF8B9B}

.place-list{
  flex:1 1 0;
  min-height:0;
  overflow:auto;
  padding:0 14px 14px;
  scrollbar-width:thin;
  scrollbar-color:#5C6070 transparent;
}
.sidebar-account-footer{
  flex:0 0 auto;
  position:relative;
  z-index:30;
  padding:10px 14px 14px;
  padding-bottom:max(14px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background:var(--bg-darker);
}
.place-list::-webkit-scrollbar{width:8px}
.place-list::-webkit-scrollbar-thumb{background:#5C6070;border-radius:999px}
.place-card{
  position:relative;
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:12px;
  padding:10px;
  border:1px solid transparent;
  border-radius:18px;
  cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.place-card + .place-card{margin-top:8px}
.place-card:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.06);
}
.place-card.is-active{
  background:linear-gradient(135deg,rgba(73,182,232,.18),rgba(139,92,246,.16));
  border-color:rgba(139,92,246,.48);
}
.place-thumb{
  width:76px;
  height:76px;
  border-radius:16px;
  overflow:hidden;
  background:#2D3038;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#CDBFFF;
  font-weight:1000;
  box-shadow:0 12px 24px rgba(0,0,0,.2);
}
.place-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.place-card-body{min-width:0;padding:2px 0 0}
.place-card-eyebrow{
  display:inline-flex;
  align-items:center;
  min-height:21px;
  padding:3px 8px;
  border-radius:999px;
  color:#D7DDFF;
  background:#3A3C46;
  font-size:10px;
  font-weight:900;
  letter-spacing:.02em;
}
.place-card h2{
  margin:7px 0 3px;
  color:#F8FAFF;
  font-size:15px;
  line-height:1.28;
  font-weight:950;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.place-card p{
  margin:0;
  color:#B5BBC7;
  font-size:12px;
  line-height:1.45;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.place-card-tags{
  margin-top:4px!important;
  color:#9FE8FF!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.02em;
  -webkit-line-clamp:1!important;
}

.place-card-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}
.place-card-actions button,
.place-card-actions a{
  min-height:28px;
  border:0;
  border-radius:999px;
  padding:5px 9px;
  background:rgba(73,182,232,.16);
  color:#D6F5FF;
  text-decoration:none;
  font-size:11px;
  font-weight:850;
  cursor:pointer;
}
.place-card-actions a{background:rgba(255,255,255,.08);color:#E9EDFF}
.place-card-actions button:hover,
.place-card-actions a:hover{background:rgba(139,92,246,.28);color:#fff}
.empty-state,
.result-limit-notice{
  margin:18px 4px;
  padding:18px;
  border:1px dashed rgba(255,255,255,.16);
  border-radius:18px;
  color:#B9C0CD;
  text-align:center;
  line-height:1.7;
}
.result-limit-notice{
  margin-top:10px;
  border-style:solid;
  background:rgba(255,255,255,.045);
  color:#D9DEEA;
  font-size:12px;
  font-weight:750;
}
.load-more-results{
  width:100%;
  margin:8px 0 14px;
  padding:11px 14px;
  border:1px solid rgba(167,139,250,.28);
  border-radius:999px;
  background:rgba(139,92,246,.12);
  color:#DCD4FF;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.load-more-results:hover{
  background:rgba(139,92,246,.22);
  color:#fff;
}

.map-stage{
  position:relative;
  isolation:isolate;
  min-width:0;
  height:100dvh;
  overflow:hidden;
  background:var(--bg-darker);
}
.map-loading-overlay{
  position:absolute;
  inset:0;
  z-index:20;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:7px;
  color:#F8FAFF;
  pointer-events:none;
  text-align:center;
  text-shadow:0 2px 12px rgba(0,0,0,.3);
  background:
    radial-gradient(circle at 50% 32%,rgba(139,92,246,.34),transparent 35%),
    linear-gradient(160deg,#1B2332 0%,#252C3D 52%,#171B27 100%);
  transition:opacity var(--mobile-motion-standard,200ms) var(--mobile-motion-ease,ease-out),visibility 0s linear var(--mobile-motion-standard,200ms);
}
.map-loading-overlay[aria-hidden="true"]{opacity:0;visibility:hidden}
.map-loading-overlay strong{font-size:16px;font-weight:900;letter-spacing:.02em}
.map-loading-overlay > span:last-child{color:#D6DDF0;font-size:12px;font-weight:750}
.map-loading-spinner{
  width:36px;
  height:36px;
  border:3px solid rgba(255,255,255,.18);
  border-top-color:#B9A4FF;
  border-radius:50%;
  box-shadow:0 0 0 7px rgba(139,92,246,.12);
  animation:mapLoadingSpin .9s linear infinite;
}
.results-map{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
}
.map-fallback{
  position:absolute;
  top:20px;
  left:50%;
  transform:translateX(-50%);
  z-index:30;
  max-width:520px;
  padding:12px 16px;
  border-radius:16px;
  background:rgba(30,32,36,.9);
  color:#FFBAC5;
  font-weight:850;
  box-shadow:var(--shadow);
}
.map-location-control{
  position:absolute;
  z-index:32;
  right:16px;
  bottom:18px;
  display:grid;
  gap:6px;
  pointer-events:none;
}
.map-location-control[hidden]{display:none!important}
.map-location-button{
  min-width:44px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  background:rgba(31,32,36,.94);
  color:#F8FAFF;
  box-shadow:0 16px 38px rgba(0,0,0,.28);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  pointer-events:auto;
  transition:transform .16s ease,background .16s ease,border-color .16s ease,opacity .16s ease;
}
.map-location-button svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.map-location-button:hover:not(:disabled){
  border-color:#73D3FF;
  background:rgba(31,32,36,.98);
  transform:translateY(-1px);
}
.map-location-button:disabled{opacity:.58;cursor:wait}
.map-location-button.is-loading svg{animation:mapLocationPulse 1s ease-in-out infinite}
@keyframes mapLocationPulse{50%{opacity:.42;transform:scale(.82)}}
@media(min-width:901px){.map-location-control{display:none!important;}}
.top-filter-float{
  position:absolute;
  z-index:32;
  top:16px;
  left:16px;
  right:auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  pointer-events:none;
}
.top-search-float{
  position:absolute;
  z-index:31;
  top:16px;
  left:50%;
  transform:translateX(-50%);
  flex:0 0 auto;
  width:min(360px,34vw);
  min-width:260px;
  max-width:360px;
  min-height:42px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(31,32,36,.94);
  box-shadow:0 16px 38px rgba(0,0,0,.3);
  overflow:hidden;
  pointer-events:auto;
}
.top-search-float svg{
  width:18px;
  height:18px;
  margin-left:15px;
  fill:none;
  stroke:#A78BFA;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.top-search-float input{
  background:transparent;
  min-height:42px;
  border-radius:0;
  padding-left:8px;
  outline:0;
  box-shadow:none;
}
.top-date-filter{
  position:relative;
  flex:0 0 auto;
  min-width:0;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(31,32,36,.94);
  box-shadow:0 16px 38px rgba(0,0,0,.24);
  padding:0 10px;
  color:#F8FAFF;
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.top-date-filter:disabled{
  opacity:.48;
  cursor:not-allowed;
}
.added-date-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  white-space:nowrap;
}
.date-picker-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:1px;
  color:#B7A6FF;
  font-size:12px;
  line-height:1;
}
.added-date-calendar{
  position:fixed;
  top:var(--added-date-calendar-top,58px);
  left:var(--added-date-calendar-left,12px);
  z-index:1100;
  pointer-events:auto;
  width:min(320px,calc(100vw - 24px));
  margin:0;
  padding:14px;
  color:#F8FAFF;
  background:rgba(31,32,36,.97);
  border:1px solid rgba(154,119,255,.48);
  border-radius:20px;
  box-shadow:0 18px 42px rgba(0,0,0,.35);
  backdrop-filter:blur(14px);
}
.added-date-calendar[hidden]{
  display:none;
}
.added-date-calendar header{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 36px;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.added-date-calendar header strong{
  overflow:hidden;
  font-size:14px;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.added-date-calendar header button{
  width:36px;
  height:32px;
  padding:0;
  color:inherit;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  border-radius:10px;
}
.added-date-calendar header button:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.added-date-calendar-weekdays,
.added-date-calendar-days{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
}
.added-date-calendar-weekdays{
  margin-bottom:4px;
  color:rgba(248,250,255,.62);
  font-size:11px;
  text-align:center;
}
.added-date-calendar-day,
.added-date-calendar-spacer{
  aspect-ratio:1;
  min-height:34px;
}
.added-date-calendar-day{
  padding:0;
  color:inherit;
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  background:rgba(255,255,255,.08);
  border:1px solid transparent;
  border-radius:10px;
}
.added-date-calendar-day:hover:not(:disabled),
.added-date-calendar-day:focus-visible:not(:disabled){
  background:rgba(154,119,255,.36);
  border-color:rgba(185,159,255,.85);
  outline:none;
}
.added-date-calendar-day.is-selected{
  color:#FFF;
  background:#7E57FF;
  border-color:#B99FFF;
}
.added-date-calendar-day:disabled{
  color:rgba(248,250,255,.32);
  cursor:not-allowed;
  background:rgba(255,255,255,.025);
}
.clear-added-date-btn{
  position:relative;
  z-index:36;
  flex:0 0 28px;
  width:28px;
  min-width:28px;
  height:36px;
  display:inline-grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(31,32,36,.94);
  color:#F8FAFF;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  pointer-events:auto;
}
.clear-added-date-btn:hover:not(:disabled){
  background:rgba(139,92,246,.34);
}
.clear-added-date-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.clear-added-date-btn[hidden]{display:none!important}

.map-pill-button{
  flex:0 0 auto;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(31,32,36,.94);
  color:#F8FAFF;
  box-shadow:0 16px 38px rgba(0,0,0,.24);
  padding:0 10px;
  font-size:12px;
  font-weight:950;
  cursor:pointer;
  pointer-events:auto;
  transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.map-pill-button svg{
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.map-pill-button:hover:not(:disabled){
  border-color:rgba(115,211,255,.62);
  background:rgba(31,32,36,.96);
  box-shadow:0 16px 38px rgba(0,0,0,.26),0 0 0 1px rgba(115,211,255,.18);
  transform:translateY(-1px);
}
.map-pill-button.is-open,
.map-pill-button.is-active{
  border-color:#73D3FF;
  background:rgba(31,32,36,.94);
  box-shadow:0 16px 38px rgba(0,0,0,.24),0 0 0 2px rgba(115,211,255,.42);
}
.map-pill-button:disabled{opacity:.48;cursor:not-allowed}
.category-preset-chips{
  order:1;
  flex:0 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  gap:7px;
  pointer-events:auto;
}
.map-filter-button{order:2}
.latest-added-button{order:3}
.top-date-filter{order:4}
.clear-added-date-btn{order:5}
.category-preset-chip{
  min-height:36px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  padding:0 10px;
  background:rgba(31,32,36,.9);
  color:#E9EDFF;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
}
.category-preset-chip:hover:not(:disabled){
  border-color:rgba(115,211,255,.58);
  background:rgba(31,32,36,.94);
  color:#fff;
}
.category-preset-chip.is-active{
  border-color:#73D3FF;
  background:rgba(31,32,36,.9);
  color:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.22),0 0 0 2px rgba(115,211,255,.34);
}
.map-stage.is-filter-tight .category-preset-chips{
  display:none;
}
.map-stage.is-filter-crowded .top-filter-float{
  top:12px;
  gap:6px;
}
.map-stage.is-filter-crowded .top-search-float{
  top:62px;
  width:min(320px,calc(100% - 24px));
  max-width:320px;
}
.map-stage.is-filter-crowded .map-pill-button{
  min-height:34px;
  padding:0 9px;
  font-size:11px;
}
.map-stage.is-filter-crowded .clear-added-date-btn{
  width:26px;
  height:34px;
}
.category-filter-popover{
  position:fixed;
  top:var(--category-filter-popover-top,58px);
  left:var(--category-filter-popover-left,0px);
  right:auto;
  bottom:auto;
  width:min(420px,calc(100vw - 48px));
  max-height:var(--category-filter-popover-max-height,min(520px,calc(100dvh - 96px)));
  margin:0;
  overflow:auto;
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:rgba(31,32,36,.96);
  box-shadow:0 24px 64px rgba(0,0,0,.38);
  pointer-events:auto;
  backdrop-filter:blur(14px);
  z-index:1100;
}
.category-filter-popover header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 2px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:#F8FAFF;
}
.category-filter-popover header button{
  width:32px;
  height:32px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.category-filter-options{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  padding-top:12px;
}
.category-member-filter-section{display:none}
.category-filter-option{
  min-height:36px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  padding:0 13px;
  background:rgba(255,255,255,.055);
  color:#DDE4F2;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.category-filter-option:hover{
  border-color:rgba(115,211,255,.55);
  background:rgba(255,255,255,.07);
  color:#fff;
}
.category-filter-option.is-active{
  border-color:#73D3FF;
  background:rgba(255,255,255,.055);
  color:#fff;
  box-shadow:0 0 0 2px rgba(115,211,255,.34);
}
.my-tour-filter-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}

.filter-rail{
  position:absolute;
  z-index:12;
  top:72px;
  right:14px;
  width:180px;
  max-height:calc(100dvh - 96px);
  overflow:auto;
  padding:6px 0 18px 16px;
  scrollbar-width:auto;
  scrollbar-color:rgba(255,255,255,.3) transparent;
}
.filter-rail::-webkit-scrollbar{width:6px}
.filter-rail::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:999px}
.member-rail-list{display:grid;gap:8px}
.member-group-block{
  display:grid;
  gap:7px;
  justify-items:end;
  margin-top:10px;
}
.rail-group-title{
  justify-self:end;
  padding:3px 8px;
  border-radius:999px;
  color:rgba(255,255,255,.72);
  background:rgba(31,32,36,.62);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}
.member-filter-chip{
  justify-self:end;
  max-width:168px;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;
  padding:7px 12px;
  color:#F7F8FF;
  background:rgba(31,32,36,.94);
  box-shadow:0 10px 24px rgba(0,0,0,.28);
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:transform .14s ease,background .14s ease,border-color .14s ease;
}
.member-filter-chip:hover:not(:disabled){transform:translateX(-3px);background:rgba(43,45,52,.96)}
.member-filter-chip:disabled{opacity:.45;cursor:not-allowed}
.member-filter-chip.is-active{
  border-color:rgba(255,255,255,.42);
  background:linear-gradient(135deg,rgba(73,182,232,.96),rgba(139,92,246,.96));
  color:#fff;
}
.chip-dot{
  width:9px;
  height:9px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--hinata);
  box-shadow:0 0 0 4px rgba(73,182,232,.13);
}
.chip-dot-all{background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.13)}
.member-og .chip-dot{background:var(--hinata)}
.member-second .chip-dot{background:var(--gold);box-shadow:0 0 0 4px rgba(244,197,66,.14)}
.member-third .chip-dot{background:var(--green);box-shadow:0 0 0 4px rgba(47,195,154,.14)}
.member-fourth .chip-dot{background:var(--violet);box-shadow:0 0 0 4px rgba(139,92,246,.14)}
.member-fifth .chip-dot{background:var(--sakura);box-shadow:0 0 0 4px rgba(237,120,184,.14)}
.member-filter-chip.has-penlight-color .chip-dot{
  width:11px;
  height:11px;
  background:linear-gradient(90deg,var(--penlight-color-1) 0 50%,var(--penlight-color-2) 50% 100%);
  border:1px solid rgba(255,255,255,.58);
  box-shadow:0 0 0 4px rgba(255,255,255,.13),0 2px 8px rgba(0,0,0,.20);
  box-sizing:border-box;
}

.results-map :is(.gm-style-iw,.gm-style-iw-d){
  color:#20242B;
  font-family:'Noto Sans TC','Noto Sans JP','Yu Gothic','PingFang TC','Microsoft JhengHei',system-ui,sans-serif;
}
.results-map .gm-style-iw-c{
  padding:0!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:none!important;
  border:0!important;
}
.results-map .gm-style-iw-c:focus,
.results-map .gm-style-iw-c:focus-visible{
  outline:none!important;
  box-shadow:none!important;
}
.results-map .gm-style-iw-chr{display:none!important}
.results-map .gm-style-iw-d{
  border-radius:inherit;
  overflow:hidden!important;
}
.results-map .gm-ui-hover-effect{display:none!important}
.results-map .gm-style-iw-tc::after{background:var(--mobile-card-surface,#1F2024)!important}
@keyframes mapPreviewEnter{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes mapLoadingSpin{to{transform:rotate(1turn)}}
@keyframes mapSkeletonShimmer{to{background-position:-200% 0}}
.result-preview-card{
  animation:mapPreviewEnter var(--mobile-motion-standard,200ms) var(--mobile-motion-ease,ease-out);
  width:min(286px,calc(100vw - 56px));
  height:88px;
  min-height:88px;
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:10px;
  border-radius:18px;
  background:rgba(31,32,36,.98);
  color:#F8FAFF;
  box-shadow:0 16px 40px rgba(0,0,0,.34);
}
@media (min-width:901px){.result-preview-card[role="button"]{cursor:pointer}}
.result-preview-thumb{
  width:64px;
  height:64px;
  display:block;
  border-radius:12px;
  object-fit:cover;
  background:#111318;
}
.result-preview-placeholder{display:grid;place-items:center;color:#8FE6FF;font-size:22px;font-weight:900}
.result-preview-body{min-width:0}
.result-preview-body .ui-preview-title{
  display:-webkit-box;
  overflow:hidden;
  margin:0 0 4px;
  color:#FFFFFF;
  font-size:15px;
  font-weight:900;
  line-height:1.25;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.result-preview-body p{
  display:-webkit-box;
  overflow:hidden;
  margin:0;
  color:#C8CFDB;
  font-size:12px;
  font-weight:700;
  line-height:1.3;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:1;
}
.place-card-detail{
  min-height:36px;
  padding:7px 12px;
  border:0;
  border-radius:10px;
  background:rgba(139,92,246,.22);
  color:#EDE7FF;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.place-card-detail:hover{background:rgba(139,92,246,.34)}
html[data-theme="light"] .result-preview-card{
  background:rgba(255,255,255,.98);
  color:#17202A;
  box-shadow:0 16px 36px rgba(39,74,96,.18);
}
html[data-theme="light"] .result-preview-body .ui-preview-title{color:#17202A}
html[data-theme="light"] .result-preview-body p{color:#5F7280}
html[data-theme="light"] .place-card-detail{background:rgba(123,78,196,.12);color:#6844A7}
.marker-hover-overlay{
  position:absolute;
  z-index:1000;
  transform:translate(-50%,calc(-100% - 18px));
  pointer-events:auto;
}
.marker-hover-overlay[hidden]{display:none!important}
.marker-hover-card{
  width:300px;
  min-height:86px;
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(24,25,29,.96);
  color:#F8FAFF;
  box-shadow:0 18px 46px rgba(0,0,0,.42);
  backdrop-filter:blur(14px);
}
.marker-hover-thumb{
  width:86px;
  height:64px;
  display:block;
  border-radius:12px;
  object-fit:cover;
  background:#090A0D;
}
.marker-hover-placeholder{
  display:grid;
  place-items:center;
  color:#8FE6FF;
  font-size:24px;
  font-weight:900;
}
.marker-hover-body{min-width:0}
.marker-hover-body h3{
  margin:0 0 5px;
  color:#fff;
  font-size:15px;
  font-weight:950;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.marker-hover-body p{
  margin:0;
  color:#CBD2DE;
  font-size:13px;
  font-weight:800;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.place-card-members{
  color:#B5BBC7;
  font-size:13px;
  font-weight:760;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.place-card-body{
  display:flex;
  min-height:76px;
  flex-direction:column;
  justify-content:center;
}
.place-card h2{
  margin:0 0 6px;
}

.place-detail-panel{
  position:absolute;
  z-index:24;
  top:76px;
  left:10px;
  right:auto;
  width:430px;
  height:auto;
  max-height:calc(100dvh - 94px);
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.42) rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  background:rgba(31,32,36,.97);
  color:var(--text);
  box-shadow:0 28px 70px rgba(0,0,0,.44);
  backdrop-filter:blur(18px);
}
.place-detail-panel::-webkit-scrollbar{
  width:10px;
}
.place-detail-panel::-webkit-scrollbar-track{
  margin:22px 0;
  border-radius:999px;
  background:rgba(255,255,255,.08);
}
.place-detail-panel::-webkit-scrollbar-thumb{
  border:2px solid transparent;
  border-radius:999px;
  background:rgba(255,255,255,.46);
  background-clip:content-box;
}
.place-detail-panel::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,.62);
  background-clip:content-box;
}
.place-detail-panel[hidden]{display:none}
.detail-panel-header{
  flex:0 0 auto;
  min-height:64px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 18px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.detail-panel-header #detailTitle{
  min-width:0;
  flex:1;
  margin:0;
  color:#fff;
  font-size:22px;
  line-height:1.25;
  font-weight:1000;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.detail-panel-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.detail-share-btn{
  min-height:44px;
  padding:0 14px;
  border:1px solid rgba(73,182,232,.36);
  border-radius:999px;
  background:rgba(73,182,232,.16);
  color:#b7efff;
  font:inherit;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}
.detail-share-btn:hover{background:rgba(73,182,232,.28);color:#fff}
.detail-share-btn:disabled{cursor:wait;opacity:.62}
.detail-close-btn{
  width:34px;
  height:34px;
  flex:0 0 auto;
  border:0;
  border-radius:999px;
  background:rgba(0,0,0,.42);
  color:#E8ECF7;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.detail-close-btn:hover{background:rgba(139,92,246,.55);color:#fff}
.detail-media{
  flex:0 0 260px;
  min-height:260px;
  max-height:260px;
  padding:16px 16px 0;
  background:linear-gradient(180deg,rgba(139,92,246,.14),rgba(31,32,36,0));
}
.detail-media.has-thumbs{
  flex-basis:326px;
  min-height:326px;
  max-height:326px;
}
.detail-main-image{
  width:100%;
  height:228px;
  max-height:none;
  object-fit:contain;
  display:block;
  border-radius:18px;
  background:#07080A;
}
.detail-media.has-thumbs .detail-main-image{
  height:236px;
}
.detail-media-placeholder{
  height:228px;
  min-height:228px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  color:#CDBFFF;
  background:#272931;
  font-size:42px;
}
.detail-thumbs{
  display:flex;
  gap:8px;
  margin-top:10px;
  padding-bottom:2px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  cursor:grab;
  touch-action:pan-x;
  user-select:none;
  scroll-behavior:smooth;
}
.detail-thumbs::-webkit-scrollbar{
  display:none;
}
.detail-thumbs.is-dragging{
  cursor:grabbing;
  scroll-behavior:auto;
}
.detail-thumbs button{
  width:56px;
  height:56px;
  flex:0 0 auto;
  padding:0;
  overflow:hidden;
  border:2px solid transparent;
  border-radius:12px;
  background:#2D3038;
  cursor:pointer;
}
.detail-thumbs button.is-active{
  border-color:#A78BFA;
  box-shadow:0 0 0 3px rgba(167,139,250,.18);
}
.detail-thumbs img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.detail-body{
  min-height:0;
  flex:0 0 auto;
  overflow:visible;
  padding:16px 20px 22px;
}
.detail-members{
  display:inline-flex;
  max-width:100%;
  margin:0 0 8px;
  padding:5px 10px;
  border-radius:999px;
  color:#DCD4FF;
  background:rgba(139,92,246,.18);
  font-size:12px;
  font-weight:900;
}
.my-tour-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:2px 0 14px;
}
.my-tour-actions button{
  min-height:36px;
  padding:0 13px;
  border:1px solid rgba(73,182,232,.28);
  border-radius:999px;
  background:rgba(73,182,232,.1);
  color:#B7EFFF;
  font:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.my-tour-actions button:hover:not(:disabled){background:rgba(73,182,232,.2);transform:translateY(-1px)}
.my-tour-actions button[aria-pressed="true"]{border-color:#73D3FF;background:rgba(73,182,232,.28);color:#fff;box-shadow:0 0 0 2px rgba(115,211,255,.14)}
.my-tour-actions button:disabled{cursor:not-allowed;opacity:.48}
html[data-theme="light"] .my-tour-actions button{border-color:rgba(47,148,190,.28);background:rgba(73,182,232,.1);color:#286A82}
html[data-theme="light"] .my-tour-actions button[aria-pressed="true"]{border-color:#2F9CC7;background:rgba(73,182,232,.18);color:#1F5A70}
.detail-action-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:2px 0 14px;
}
.detail-action-row > button,
.detail-action-row > .catalog-detail-share-button{
  min-height:36px;
  padding:0 13px;
  border:1px solid rgba(73,182,232,.28);
  border-radius:999px;
  background:rgba(73,182,232,.1);
  color:#B7EFFF;
  font:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.detail-action-row > .catalog-detail-share-button{
  width:auto;
  min-width:0;
  flex:0 0 auto;
  height:36px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  white-space:nowrap;
  text-decoration:none;
}
.detail-action-row > .catalog-detail-share-button:hover,
.detail-action-row > button:hover:not(:disabled){background:rgba(73,182,232,.2);color:#fff;transform:translateY(-1px)}
.detail-action-row > button[aria-pressed="true"]{border-color:#73D3FF;background:rgba(73,182,232,.28);color:#fff;box-shadow:0 0 0 2px rgba(115,211,255,.14)}
.catalog-detail-share-status{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}
html[data-theme="light"] .detail-action-row > button,
html[data-theme="light"] .detail-action-row > .catalog-detail-share-button{border-color:rgba(47,148,190,.28);background:rgba(73,182,232,.1);color:#286A82}
html[data-theme="light"] .detail-action-row > button[aria-pressed="true"]{border-color:#2F9CC7;background:rgba(73,182,232,.18);color:#1F5A70}
.detail-section + .detail-section{margin-top:18px}
.detail-section h3{
  margin:0 0 9px;
  color:#A78BFA;
  font-size:13px;
  font-weight:950;
  letter-spacing:.04em;
}
.detail-description{
  color:#D4DAE7;
  font-size:14px;
  line-height:1.75;
  overflow-wrap:anywhere;
  white-space:pre-wrap;
}
.detail-description a,
.detail-links a{
  color:#9DDCFF;
  text-decoration:none;
  font-weight:850;
}
.detail-description a:hover,
.detail-links a:hover{text-decoration:underline}
.detail-links{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  align-items:center;
}
.detail-map-address{
  flex:1 0 100%;
  display:flex;
  align-items:flex-start;
  gap:9px;
  color:#E8ECF7;
  font-size:14px;
  font-weight:850;
  line-height:1.55;
}
.detail-map-pin{
  width:22px;
  height:22px;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#A78BFA;
  font-size:18px;
}
.detail-links a,
.detail-coordinates,
.detail-muted{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  border-radius:8px;
  padding:7px 11px;
  background:rgba(255,255,255,.07);
  color:#E8ECF7;
  font-size:12px;
  font-weight:850;
}
.detail-coordinates{color:#B7BFD0}
.detail-muted{color:#939BAC}

@media(max-width:1024px){
  .map-app-shell{grid-template-columns:300px minmax(0,1fr)}
  .top-filter-float{left:16px;right:16px;justify-content:flex-start}
  .top-search-float{width:300px;min-width:240px;max-width:300px}
  .category-preset-chips{display:none}
  .filter-rail{width:154px}
  .member-filter-chip{max-width:144px;font-size:12px}
}

@media(max-width:1024px){
  .place-detail-panel{
    left:308px;
    width:390px;
    height:auto;
    max-height:calc(100dvh - 94px);
  }
}

/* Map mobile route and detail compatibility */
@media(max-width:900px){
  body{overflow:hidden;background:var(--bg-darker)}
  body[data-active-view="catalog"] .place-sidebar,
  body[data-active-view="gallery"] .place-sidebar{
    order:2;
    height:0;
    min-height:0;
    max-height:0;
    overflow:visible;
    border:0;
  }
  body[data-active-view="catalog"] .place-sidebar > :not(.sidebar-tabs):not(.sidebar-account-footer),
  body[data-active-view="gallery"] .place-sidebar > :not(.sidebar-tabs):not(.sidebar-account-footer){
    display:none!important;
  }
  body[data-active-view="catalog"] .map-stage,
  body[data-active-view="gallery"] .map-stage{
    order:1;
    height:calc(100dvh - var(--mobile-top-nav-space));
    min-height:calc(100dvh - var(--mobile-top-nav-space));
  }
  .place-detail-panel{
    position:fixed;
    left:12px;
    right:12px;
    top:calc(var(--mobile-top-nav-space) + 8px);
    width:auto;
    height:auto;
    max-height:calc(100dvh - var(--mobile-top-nav-space) - 24px);
    border-radius:22px;
  }
  .detail-panel-header{min-height:58px;padding:13px 14px 12px}
  .detail-panel-header #detailTitle{font-size:19px}
  .detail-media{flex-basis:226px;min-height:226px;max-height:226px}
  .detail-media.has-thumbs{flex-basis:278px;min-height:278px;max-height:278px}
  .detail-main-image{height:194px;max-height:none}
  .detail-media.has-thumbs .detail-main-image{height:194px}
  .detail-media-placeholder{height:194px;min-height:194px}
}

@media(max-width:480px){
  .sidebar-brand{padding-inline:14px}
  .sidebar-meta,.status{margin-inline:14px}
  .place-list{padding-inline:12px}
  .place-card{grid-template-columns:64px minmax(0,1fr)}
  .place-thumb{width:64px;height:64px;border-radius:14px}
}

html[data-theme="light"]{
  --mobile-surface:rgba(255,255,255,.96);
  --mobile-surface-muted:#EEF8FD;
  --mobile-text:#17202A;
  --mobile-text-muted:#5F7280;
  --mobile-border:rgba(217,235,244,.96);
  --mobile-shadow:0 12px 30px rgba(73,182,232,.14);
  --mobile-elevation-card:0 12px 30px rgba(73,182,232,.14);
  --mobile-elevation-overlay:0 24px 64px rgba(39,74,96,.20);
  --mobile-focus-ring:0 0 0 3px rgba(123,78,196,.30);
  --bg-dark:#FFFFFF;
  --bg-darker:#F4FAFE;
  --panel:#FFFFFF;
  --panel-soft:#EEF8FD;
  --text:#17202A;
  --muted:#5F7280;
  --line:rgba(73,182,232,.18);
  --shadow:0 16px 38px rgba(73,182,232,.14);
  --focus:0 0 0 4px rgba(73,182,232,.28);
  --mobile-nav-surface:rgba(255,255,255,.96);
  --mobile-nav-border:rgba(73,182,232,.18);
  --mobile-nav-shadow:0 -8px 28px rgba(39,74,96,.12);
  --mobile-tab-text:#687887;
  --mobile-tab-active:#7656D8;
  --mobile-card-surface:rgba(255,255,255,.96);
  --mobile-card-border:rgba(73,182,232,.22);
  --mobile-card-shadow:0 10px 28px rgba(39,74,96,.16);
  --mobile-card-title:#17202A;
  --mobile-card-copy:#5F7280;
  --mobile-count:#17202A;
  --mobile-count-shadow:0 1px 3px rgba(255,255,255,.95),0 0 8px rgba(255,255,255,.85);
}
html[data-theme="light"] body{
  background:
    linear-gradient(90deg, rgba(73,182,232,.08) 1px, transparent 1px),
    linear-gradient(180deg, rgba(123,78,196,.07) 1px, transparent 1px),
    linear-gradient(135deg,#FFFFFF 0%,#F4FAFE 54%,#FFF8FB 100%);
  background-size:44px 44px,44px 44px,auto;
  color:var(--text);
}
html[data-theme="light"] .map-app-shell{
  background:transparent;
}
html[data-theme="light"] .place-sidebar{
  background:rgba(255,255,255,.88);
  border-right-color:rgba(73,182,232,.18);
  box-shadow:18px 0 44px rgba(73,182,232,.12);
  backdrop-filter:blur(18px);
}
html[data-theme="light"] .sidebar-tabs,
html[data-theme="light"] .icon-button{
  background:rgba(73,182,232,.10);
  color:#5F7280;
}
html[data-theme="light"] .sidebar-tab,
html[data-theme="light"] .icon-button{
  color:#5F7280;
}
html[data-theme="light"] .sidebar-tab.is-active,
html[data-theme="light"] .member-filter-chip.is-active{
  color:#FFFFFF;
}
html[data-theme="light"] .top-search-float,
html[data-theme="light"] .top-date-filter,
html[data-theme="light"] .map-pill-button,
html[data-theme="light"] .category-preset-chip,
html[data-theme="light"] .category-filter-popover,
html[data-theme="light"] .added-date-calendar{
  background:rgba(255,255,255,.86);
  border-color:rgba(73,182,232,.18);
  color:var(--text);
}
html[data-theme="light"] .added-date-calendar-day{
  background:rgba(73,182,232,.08);
}
html[data-theme="light"] .added-date-calendar-day:disabled{
  color:rgba(47,111,139,.35);
  background:rgba(47,111,139,.04);
}
html[data-theme="light"] .clear-added-date-btn{
  background:rgba(73,182,232,.12);
  color:#2F6F8B;
}
html[data-theme="light"] .clear-added-date-btn:hover:not(:disabled){
  background:rgba(123,78,196,.16);
  color:#5F4A8B;
}
html[data-theme="light"] .place-card:hover{
  background:rgba(52,168,224,.08);
  border-color:rgba(52,168,224,.16);
}
html[data-theme="light"] .place-card.is-active{
  background:rgba(52,168,224,.12);
}
html[data-theme="light"] .gallery-magazine-publisher-button{
  background:rgba(123,78,196,.07);
  color:#6A45A8;
}
html[data-theme="light"] .gallery-magazine-publisher-button:hover{
  background:rgba(123,78,196,.12);
  color:#583390;
}
html[data-theme="light"] .gallery-magazine-publisher-count{
  background:rgba(123,78,196,.13);
  color:#6A45A8;
}
html[data-theme="light"] .gallery-magazine-publisher-caret{
  color:#6A45A8;
}
html[data-theme="light"] .gallery-magazine-book{
  color:#425466;
}
html[data-theme="light"] .gallery-magazine-book:hover{
  background:rgba(123,78,196,.08);
  color:#6A45A8;
}
html[data-theme="light"] .gallery-magazine-book.is-active,
html[data-theme="light"] .gallery-magazine-book[aria-pressed="true"]{
  background:rgba(123,78,196,.14);
  color:#6A45A8;
}
html[data-theme="light"] .map-stage{
  background:linear-gradient(135deg,#FFFFFF 0%,#F4FAFE 58%,#FFF8FB 100%);
}
html[data-theme="light"] .map-loading-overlay{
  background:
    radial-gradient(circle at 50% 32%,rgba(139,92,246,.18),transparent 35%),
    linear-gradient(160deg,#F8FBFF 0%,#EDF5FF 52%,#FAF3FF 100%);
  color:#273244;
  text-shadow:none;
}
html[data-theme="light"] .map-loading-overlay > span:last-child{color:#5F6D82}
html[data-theme="light"] .map-loading-spinner{border-color:rgba(86,101,128,.2);border-top-color:#7B5CDB;box-shadow:0 0 0 7px rgba(123,92,219,.1)}

.map-stage[data-active-view="catalog"] #resultsMap,
.map-stage[data-active-view="catalog"] #mapFallback,
.map-stage[data-active-view="catalog"] #placeDetailPanel,
  .map-stage[data-active-view="catalog"] .top-filter-float,
  .map-stage[data-active-view="catalog"] .top-search-float,
  .map-stage[data-active-view="catalog"] .filter-rail,
  .map-stage[data-active-view="catalog"] .map-location-control,
  .map-stage[data-active-view="catalog"] #mapLoadingOverlay,
.map-stage[data-active-view="gallery"] #resultsMap,
.map-stage[data-active-view="gallery"] #mapFallback,
.map-stage[data-active-view="gallery"] #placeDetailPanel,
.map-stage[data-active-view="gallery"] #mapLoadingOverlay,
  .map-stage[data-active-view="gallery"] .top-filter-float,
  .map-stage[data-active-view="gallery"] .top-search-float,
  .map-stage[data-active-view="gallery"] .filter-rail,
  .map-stage[data-active-view="gallery"] .map-location-control{
  display:none!important;
}
body[data-active-view="gallery"] .sidebar-meta,
body[data-active-view="catalog"] .sidebar-meta{
  display:none!important;
}
body[data-active-view="gallery"] .place-list{
  padding-top:0;
}
.gallery-nav-section + .gallery-nav-section,
.catalog-member-section + .catalog-member-section{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.gallery-nav-heading{
  padding:4px 4px 8px;
}
.gallery-nav-heading h2{
  margin:0 0 4px;
  color:#EAF7FF;
  font-size:13px;
  font-weight:950;
}
.gallery-nav-heading p{
  margin:0;
  color:#ACB8C8;
  font-size:11px;
  font-weight:750;
}
.gallery-nav-card .place-thumb.placeholder{
  background:linear-gradient(135deg,rgba(73,182,232,.28),rgba(139,92,246,.24));
  color:#FFFFFF;
}
.gallery-nav-icon,
.catalog-member-icon{
  font-size:24px;
  line-height:1;
  font-weight:1000;
  text-shadow:0 2px 12px rgba(101,194,236,.32);
}
.gallery-magazine-nav-section{
  --magazine-accent:#8B5CF6;
}
.gallery-magazine-publisher + .gallery-magazine-publisher{
  margin-top:8px;
}
.gallery-magazine-publisher-button{
  width:100%;
  min-height:36px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border:0;
  border-radius:12px;
  background:rgba(255,255,255,.045);
  color:#B9A7F5;
  font-size:12px;
  font-weight:950;
  line-height:1.25;
  text-align:left;
  cursor:pointer;
  transition:background-color .16s ease,color .16s ease;
}
.gallery-magazine-publisher-button:hover{
  background:rgba(139,92,246,.13);
  color:#FFFFFF;
}
.gallery-magazine-publisher-button .gallery-nav-cover{
  display:none!important;
}
.gallery-magazine-publisher-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.gallery-magazine-publisher-count{
  min-width:24px;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(139,92,246,.18);
  color:#D7CCFF;
  font-size:11px;
  font-weight:950;
  text-align:center;
}
.gallery-magazine-publisher-caret{
  color:#D7CCFF;
  font-size:11px;
  transform:rotate(-90deg);
  transition:transform .16s ease;
}
.gallery-magazine-publisher.is-expanded .gallery-magazine-publisher-caret{
  transform:rotate(0deg);
}
.gallery-magazine-book-list{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:2px;
  margin-top:4px;
}
.gallery-magazine-book-list[hidden]{
  display:none!important;
}
.gallery-magazine-book{
  width:100%;
  min-height:34px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:7px 10px 7px 12px;
  border:0;
  border-left:3px solid transparent;
  border-radius:0;
  background:transparent;
  color:#DDE6F6;
  font-size:13px;
  font-weight:850;
  line-height:1.35;
  text-align:left;
  white-space:normal;
  cursor:pointer;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease;
}
.gallery-magazine-book .gallery-nav-cover{
  width:42px;
  height:50px;
  margin:0;
  border-radius:8px;
}
.gallery-magazine-book-title{
  min-width:0;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.gallery-magazine-book:hover{
  background:rgba(139,92,246,.10);
  color:#FFFFFF;
}
.gallery-magazine-book.is-active,
.gallery-magazine-book[aria-pressed="true"]{
  border-left-color:var(--magazine-accent);
  background:rgba(139,92,246,.18);
  color:#FFFFFF;
}
.place-thumb.has-avatar{
  position:relative;
}
.place-thumb.has-avatar .avatar-fallback{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.place-thumb.has-avatar img{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
}
.place-thumb.has-avatar.is-avatar-missing img{
  display:none;
}
.catalog-member-heading{
  padding-top:10px;
}
.catalog-member-card .place-thumb.placeholder{
  background:linear-gradient(135deg,rgba(73,182,232,.28),rgba(139,92,246,.24));
  color:#FFFFFF;
}
.catalog-member-card .chip-dot{
  width:18px;
  height:18px;
  margin:0;
  border-radius:50%;
  background:linear-gradient(90deg,var(--penlight-color-1,#49B6E8) 0 50%,var(--penlight-color-2,#A78BFA) 50% 100%);
  box-shadow:0 0 0 2px rgba(255,255,255,.70),0 0 18px rgba(101,194,236,.22);
}
.catalog-member-card .place-card-body{
  display:flex;
  align-items:center;
}
.catalog-member-card .place-card-body h2{
  margin:0;
}
.gallery-embed-view{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:var(--bg-darker);
}
.gallery-embed-view[hidden]{display:none!important}
.gallery-embed-frame{
  width:100%;
  height:100%;
  display:block;
  border:0;
  background:transparent;
}
.catalog-embed-view{
  position:absolute;
  inset:0;
  overflow:auto;
  padding:28px clamp(18px,3vw,42px) 48px;
  background:var(--bg-darker);
  color:var(--text);
}
.catalog-embed-view[hidden]{display:none!important}
.catalog-embed-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.catalog-embed-kicker{
  margin:0 0 8px;
  color:#BFA9FF;
  font-size:12px;
  font-weight:950;
  letter-spacing:.12em;
}
.catalog-embed-header h1{
  margin:0;
  font-size:clamp(30px,4vw,56px);
  line-height:1;
}
.catalog-embed-header p{
  max-width:620px;
  margin:10px 0 0;
  color:var(--muted);
  font-size:14px;
  font-weight:720;
  line-height:1.7;
}
.catalog-open-link{
  flex:0 0 auto;
  border:1px solid rgba(139,92,246,.34);
  border-radius:999px;
  padding:9px 14px;
  color:#DCD4FF;
  background:rgba(139,92,246,.12);
  text-decoration:none;
  font-size:12px;
  font-weight:900;
  font:inherit;
  cursor:pointer;
}
.catalog-embed-actions{
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}
.catalog-submission-dialog{
  width:min(640px,calc(100% - 28px));
  max-height:min(88dvh,760px);
  overflow:hidden;
  padding:0;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:rgba(31,32,36,.98);
  color:var(--text);
  box-shadow:0 28px 70px rgba(0,0,0,.46);
  backdrop-filter:blur(18px);
}
.catalog-submission-dialog::backdrop{
  background:rgba(0,0,0,.58);
}
.catalog-submission-panel[hidden]{display:none!important}
.catalog-submission-header #catalogSubmissionTitle{
  min-width:0;
  flex:1;
  margin:0;
  color:#fff;
  font-size:22px;
  line-height:1.25;
  font-weight:1000;
}
.catalog-submission-form{
  max-height:calc(min(88dvh,760px) - 64px);
  overflow:auto;
  display:grid;
  gap:12px;
  padding:16px;
}
.catalog-submission-form label{
  display:grid;
  gap:6px;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
}
.catalog-submission-inline{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(160px,.52fr);
  gap:12px;
}
.catalog-submission-form input,
.catalog-submission-form select,
.catalog-submission-form textarea{
  min-width:0;
  min-height:42px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:10px 12px;
  background:rgba(255,255,255,.08);
  color:var(--text);
  font:inherit;
  font-weight:780;
}
.catalog-submission-form select option{
  background:#2F3036;
  color:#F7F8FF;
}
.catalog-submission-form select{
  color-scheme:dark;
}
.catalog-submission-form select option:checked{
  background:#6D4CAC;
  color:#FFFFFF;
}
.catalog-submission-form textarea{
  min-height:56px;
  resize:vertical;
}
.catalog-submission-form textarea.catalog-submission-images{
  min-height:132px;
}
#submissionOutput{
  min-height:104px;
  font-family:Consolas,"Courier New",monospace;
}
.catalog-submission-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.catalog-submission-actions button{
  min-height:42px;
  border:1px solid rgba(191,169,255,.42);
  border-radius:14px;
  padding:9px 13px;
  background:rgba(139,92,246,.78);
  color:#fff;
  font:inherit;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(139,92,246,.20);
}
.catalog-submission-actions button:hover:not(:disabled){
  background:rgba(139,92,246,.92);
}
.catalog-submission-actions button:disabled{
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.10);
  color:rgba(247,248,255,.46);
  box-shadow:none;
  opacity:1;
  cursor:not-allowed;
}
.submission-status{
  margin:0;
  color:#BFA9FF;
  font-size:13px;
  font-weight:800;
}
.catalog-embed-tools{
  position:sticky;
  top:0;
  z-index:5;
  display:grid;
  grid-template-columns:minmax(220px,1fr) 150px 150px auto;
  gap:10px;
  align-items:end;
  margin:0 0 16px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:22px;
  background:rgba(31,32,36,.9);
  backdrop-filter:blur(18px);
}
html[data-theme="light"] .catalog-embed-view{
  background:
    linear-gradient(90deg, rgba(73,182,232,.08) 1px, transparent 1px),
    linear-gradient(180deg, rgba(123,78,196,.07) 1px, transparent 1px),
    linear-gradient(135deg,#FFFFFF 0%,#F4FAFE 54%,#FFF8FB 100%);
  background-size:44px 44px,44px 44px,auto;
}
html[data-theme="light"] .catalog-embed-kicker,
html[data-theme="light"] .catalog-place span{
  color:#7B4EC4;
}
html[data-theme="light"] .catalog-open-link{
  border-color:rgba(123,78,196,.22);
  background:rgba(123,78,196,.12);
  color:#5F4A8B;
}
html[data-theme="light"] .catalog-submission-dialog{
  border-color:rgba(217,235,244,.96);
  background:rgba(255,255,255,.98);
  color:#173244;
  box-shadow:0 28px 70px rgba(23,44,58,.24);
}
html[data-theme="light"] .catalog-submission-header{
  border-bottom-color:rgba(217,235,244,.96);
}
html[data-theme="light"] .catalog-submission-header #catalogSubmissionTitle{
  color:#173244;
}
html[data-theme="light"] .catalog-submission-form input,
html[data-theme="light"] .catalog-submission-form select,
html[data-theme="light"] .catalog-submission-form textarea{
  border-color:rgba(217,235,244,.96);
  background:#fff;
  color:#173244;
}
html[data-theme="light"] .catalog-submission-form select option{
  background:#FFFFFF;
  color:#173244;
}
html[data-theme="light"] .catalog-submission-form select{
  color-scheme:light;
}
html[data-theme="light"] .catalog-submission-form select option:checked{
  background:#7B4EC4;
  color:#FFFFFF;
}
html[data-theme="light"] .catalog-submission-actions button{
  border-color:rgba(123,78,196,.24);
  background:#7B4EC4;
  color:#FFFFFF;
  box-shadow:0 10px 22px rgba(123,78,196,.16);
}
html[data-theme="light"] .catalog-submission-actions button:hover:not(:disabled){
  background:#6D4CAC;
}
html[data-theme="light"] .catalog-submission-actions button:disabled{
  border-color:rgba(65,101,121,.12);
  background:rgba(65,101,121,.12);
  color:rgba(65,101,121,.50);
  box-shadow:none;
}
html[data-theme="light"] .submission-status{
  color:#5F4A8B;
}
html[data-theme="light"] .catalog-embed-tools{
  background:rgba(255,255,255,.88);
  border-color:rgba(217,235,244,.96);
  box-shadow:0 14px 34px rgba(73,182,232,.12);
}
.catalog-field{
  display:grid;
  gap:6px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
}
.catalog-field input,
.catalog-field select,
.catalog-embed-tools button{
  min-height:38px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel-soft);
  color:var(--text);
  padding:8px 11px;
  font-weight:820;
}
.catalog-embed-tools button{
  cursor:pointer;
  background:rgba(139,92,246,.16);
  color:#DCD4FF;
}
html[data-theme="light"] .catalog-field input,
html[data-theme="light"] .catalog-field select{
  background:#FFFFFF;
  border-color:rgba(217,235,244,.96);
  color:#17202A;
}
html[data-theme="light"] .catalog-embed-tools button{
  background:rgba(123,78,196,.14);
  color:#5F4A8B;
}
.catalog-summary{
  margin:0 0 14px;
  color:var(--muted);
  font-size:13px;
  font-weight:900;
}
.catalog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));
  gap:22px;
}
.catalog-card{
  min-width:0;
  min-height:100%;
  display:grid;
  grid-template-rows:auto 1fr;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--panel);
  box-shadow:var(--shadow);
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.catalog-card:hover{
  transform:translateY(-2px);
  border-color:rgba(139,92,246,.35);
}
.catalog-image-frame{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--panel-soft);
}
.catalog-image-frame img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.catalog-no-image{
  height:100%;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-weight:900;
}
.catalog-card-body{
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:14px 14px 16px;
}
.catalog-card-topline{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  align-items:center;
}
.catalog-type,
.catalog-status{
  width:max-content;
  max-width:100%;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  background:rgba(255,255,255,.08);
  color:var(--text);
  font-size:11px;
  font-weight:950;
}
.catalog-status{
  color:#BFA9FF;
  background:rgba(139,92,246,.18);
}
.catalog-members{
  color:var(--muted);
  font-size:13px;
  font-weight:850;
  line-height:1.5;
}
.catalog-member-name + .catalog-member-name::before{content:"、"}
.catalog-card h2{
  min-height:2.35em;
  margin:0;
  color:var(--text);
  font-size:18px;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.catalog-source,
.catalog-place,
.catalog-notes{
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:720;
  line-height:1.55;
}
.catalog-place{
  margin-top:auto;
  padding-top:8px;
}
.catalog-place span{
  display:block;
  margin-bottom:2px;
  color:#BFA9FF;
  font-size:11px;
  font-weight:950;
  line-height:1.2;
  text-transform:uppercase;
}
.catalog-place-link{
  display:block;
  width:max-content;
  max-width:100%;
}
.catalog-notes{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.catalog-group-count{
  padding:4px 8px;
  border-radius:999px;
  background:rgba(143,230,255,.12);
  color:#8FE6FF;
  font-size:11px;
  font-weight:950;
}
.catalog-group-summary{
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  line-height:1.5;
}
.catalog-group-items{
  display:grid;
  gap:9px;
  margin-top:4px;
}
.catalog-group-item{
  padding:10px;
  border:1px solid rgba(143,230,255,.14);
  border-radius:14px;
  background:rgba(255,255,255,.045);
}
.catalog-group-item-topline{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin-bottom:6px;
}
.catalog-group-index{
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:999px;
  background:rgba(143,230,255,.15);
  color:#8FE6FF;
  font-size:12px;
  font-weight:950;
}
.catalog-group-item h3{
  margin:0 0 6px;
  color:var(--text);
  font-size:14px;
  line-height:1.35;
}
.catalog-dialog-group-items .catalog-group-item h3{
  font-size:17px;
}
.catalog-source-link,
.catalog-place-link,
.catalog-link-button{
  color:#8FE6FF;
  text-decoration:none;
  font-weight:900;
}
html[data-theme="light"] .catalog-card{
  border-color:rgba(217,235,244,.96);
  background:rgba(255,255,255,.92);
  box-shadow:0 16px 36px rgba(73,182,232,.14);
}
html[data-theme="light"] .catalog-card:hover{
  border-color:rgba(73,182,232,.36);
  background:#FFFFFF;
}
html[data-theme="light"] .catalog-type{
  background:rgba(73,182,232,.14);
  color:#2F6F8B;
}
html[data-theme="light"] .catalog-status{
  background:rgba(123,78,196,.13);
  color:#6D4CAC;
}
html[data-theme="light"] .catalog-members,
html[data-theme="light"] .catalog-source,
html[data-theme="light"] .catalog-place,
html[data-theme="light"] .catalog-notes{
  color:#5F7280;
}
html[data-theme="light"] .catalog-source-link,
html[data-theme="light"] .catalog-place-link,
html[data-theme="light"] .catalog-link-button{
  color:#1E82B2;
}
.catalog-link-button{
  width:max-content;
  max-width:100%;
  display:inline-flex;
  border:1px solid rgba(73,182,232,.22);
  border-radius:999px;
  padding:7px 10px;
  background:rgba(73,182,232,.1);
}
.catalog-share-button{
  box-sizing:border-box;
  width:30px;
  min-width:30px;
  height:30px;
  min-height:30px;
  flex:0 0 30px;
  display:inline-grid;
  place-items:center;
  margin:0 0 0 2px;
  padding:0;
  border:1px solid rgba(191,169,255,.28);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(139,92,246,.26),rgba(73,182,232,.12));
  color:#BFA9FF;
  box-shadow:none;
  text-decoration:none;
  cursor:pointer;
  touch-action:manipulation;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.catalog-share-button:hover{
  border-color:rgba(191,169,255,.5);
  background:linear-gradient(135deg,rgba(139,92,246,.34),rgba(73,182,232,.18));
  box-shadow:0 6px 16px rgba(139,92,246,.18);
  transform:translateY(-1px);
  text-decoration:none;
}
.catalog-share-button:active{transform:translateY(0) scale(.96)}
.catalog-share-icon{
  width:18px;
  height:18px;
  display:block;
}
.catalog-share-status{
  color:#BFA9FF;
  font-size:12px;
  font-weight:900;
}
html[data-theme="light"] .catalog-share-button{
  border-color:rgba(123,78,196,.18);
  background:linear-gradient(135deg,rgba(123,78,196,.18),rgba(73,182,232,.12));
  color:#7B4EC4;
}
html[data-theme="light"] .catalog-share-button:hover{
  border-color:rgba(123,78,196,.34);
  background:linear-gradient(135deg,rgba(123,78,196,.26),rgba(73,182,232,.18));
  box-shadow:0 6px 16px rgba(123,78,196,.14);
}
html[data-theme="light"] .catalog-share-status{color:#5F4A8B}
.catalog-empty{
  grid-column:1/-1;
  margin:40px 0;
  color:var(--muted);
  text-align:center;
  font-weight:850;
}
.catalog-dialog{
  width:min(980px,calc(100% - 36px));
  max-height:88vh;
  overflow:hidden;
  padding:0;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--panel);
  color:var(--text);
  box-shadow:var(--shadow);
}
#catalogDialogBody{
  max-height:88vh;
  margin-right:2px;
  overflow:auto;
  border-radius:inherit;
  scrollbar-gutter:stable;
  scrollbar-width:auto;
  scrollbar-color:rgba(236,240,246,.62) rgba(255,255,255,.08);
}
#catalogDialogBody::-webkit-scrollbar{
  width: 15px;
  height:15px;
}
#catalogDialogBody::-webkit-scrollbar-track{
  margin:26px 4px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
}
#catalogDialogBody::-webkit-scrollbar-thumb{
  border:2px solid transparent;
  border-radius:999px;
  background:rgba(236,240,246,.62);
  background-clip:content-box;
}
#catalogDialogBody::-webkit-scrollbar-thumb:hover{
  background:rgba(236,240,246,.8);
  background-clip:content-box;
}
.catalog-dialog::backdrop{background:rgba(0,0,0,.58)}
.catalog-dialog-images{
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px;
  align-items:start;
  gap:14px;
  padding:10px 18px 18px;
  clear:both;
}
.catalog-dialog-main-image{
  min-width:0;
  margin:0;
  height:min(58vh,520px);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel-soft);
}
.catalog-dialog-main-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
.catalog-dialog-thumbs{
  display:grid;
  gap:8px;
  max-height:min(52vh,420px);
  overflow:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.catalog-dialog-thumbs::-webkit-scrollbar{
  display:none;
}
.catalog-dialog-thumb{
  min-height:58px;
  padding:0;
  border:2px solid transparent;
  border-radius:12px;
  background:var(--panel-soft);
  overflow:hidden;
  cursor:pointer;
}
.catalog-dialog-thumb.is-active{
  border-color:#49B6E8;
}
.catalog-dialog-thumb img{
  width:100%;
  aspect-ratio:1/1;
  display:block;
  object-fit:cover;
}
.catalog-dialog-content{
  display:grid;
  gap:12px;
  padding:0 22px 22px;
}
.catalog-dialog-content h2{
  margin:0;
  font-size:28px;
}
.catalog-dialog-notes{
  color:var(--text);
  line-height:1.8;
}

@media(max-width:880px){
  .catalog-embed-tools{grid-template-columns:1fr 1fr}
  .catalog-embed-tools .catalog-field:first-child{grid-column:1/-1}
  .catalog-submission-inline{grid-template-columns:1fr}
}
@media(max-width:640px){
  .catalog-embed-view{padding:18px 14px 34px}
  .catalog-embed-header{display:grid;align-items:start}
  .catalog-embed-actions{justify-content:start}
  .catalog-embed-tools{grid-template-columns:1fr}
  .catalog-dialog-images{grid-template-columns:1fr}
  .catalog-dialog-thumbs{
    grid-auto-flow:column;
    grid-auto-columns:72px;
    max-height:none;
    overflow-x:auto;
  }
  .catalog-dialog-main-image{height:min(52vh,420px)}
}

html[data-theme="light"] .place-list::-webkit-scrollbar-thumb,
html[data-theme="light"] .filter-rail::-webkit-scrollbar-thumb{
  background:rgba(73,182,232,.34);
}
html[data-theme="light"] .place-card{
  background:rgba(255,255,255,.68);
  border-color:rgba(73,182,232,.08);
}
html[data-theme="light"] .place-card:hover{
  background:rgba(255,255,255,.92);
  border-color:rgba(73,182,232,.28);
}
html[data-theme="light"] .place-card.is-active{
  background:linear-gradient(135deg,rgba(73,182,232,.15),rgba(123,78,196,.10));
  border-color:rgba(123,78,196,.35);
  box-shadow:0 12px 28px rgba(73,182,232,.14);
}
html[data-theme="light"] .place-thumb{
  background:#EEF8FD;
  color:#7B4EC4;
  box-shadow:0 10px 22px rgba(73,182,232,.16);
}
html[data-theme="light"] .place-card-eyebrow{
  color:#6D4CAC;
  background:rgba(123,78,196,.12);
}
html[data-theme="light"] .place-card h2{
  color:#17202A;
}
html[data-theme="light"] .place-card p,
html[data-theme="light"] .place-card-members{
  color:#5F7280;
}
html[data-theme="light"] .place-card-actions button,
html[data-theme="light"] .place-card-actions a{
  background:rgba(73,182,232,.12);
  color:#2F6F8B;
}
html[data-theme="light"] .place-card-actions a{
  background:rgba(123,78,196,.10);
  color:#6D4CAC;
}
html[data-theme="light"] .sidebar-meta{
  border-color:rgba(73,182,232,.18);
  background:rgba(255,255,255,.54);
}
html[data-theme="light"] .meta-label{
  color:#5F7280;
}
html[data-theme="light"] #resultCount{
  color:#17202A;
}
html[data-theme="light"] .soft-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-color:rgba(123,78,196,.18);
  background:rgba(123,78,196,.10);
  color:#5F4A8B;
  line-height:1;
}
html[data-theme="light"] .soft-button:hover:not(:disabled){
  background:rgba(123,78,196,.16);
}
html[data-theme="light"] .status{
  color:#2F6F8B;
}

html[data-theme="light"] .place-detail-panel{
  border-color:rgba(217,235,244,.96);
  background:rgba(255,255,255,.94);
  color:#17202A;
  box-shadow:0 28px 70px rgba(73,182,232,.18);
  scrollbar-color:rgba(73,182,232,.55) rgba(73,182,232,.12);
}
html[data-theme="light"] .place-detail-panel::-webkit-scrollbar-track{
  background:rgba(73,182,232,.12);
}
html[data-theme="light"] .place-detail-panel::-webkit-scrollbar-thumb{
  background:rgba(73,182,232,.58);
  background-clip:content-box;
}
html[data-theme="light"] .place-detail-panel::-webkit-scrollbar-thumb:hover{
  background:rgba(73,182,232,.75);
  background-clip:content-box;
}
html[data-theme="light"] .detail-panel-header{
  border-bottom-color:rgba(73,182,232,.16);
}
html[data-theme="light"] .detail-panel-header #detailTitle{
  color:#17202A;
}
html[data-theme="light"] .detail-close-btn{
  background:rgba(73,182,232,.12);
  color:#2F6F8B;
}
html[data-theme="light"] .detail-close-btn:hover{
  background:rgba(123,78,196,.16);
  color:#5F4A8B;
}
html[data-theme="light"] .detail-media{
  background:linear-gradient(180deg,rgba(73,182,232,.12),rgba(255,255,255,0));
}
html[data-theme="light"] .detail-main-image,
html[data-theme="light"] .detail-media-placeholder,
html[data-theme="light"] .detail-thumbs button{
  background:#EEF8FD;
}
html[data-theme="light"] .detail-media-placeholder{
  color:#7B4EC4;
}
html[data-theme="light"] .detail-members{
  color:#6D4CAC;
  background:rgba(123,78,196,.12);
}
html[data-theme="light"] .detail-section h3{
  color:#7B4EC4;
}
html[data-theme="light"] .detail-description{
  color:#344455;
}
html[data-theme="light"] .detail-map-address{
  color:#344455;
}
html[data-theme="light"] .detail-map-pin{
  color:#7B4EC4;
}
html[data-theme="light"] .detail-links a,
html[data-theme="light"] .detail-coordinates,
html[data-theme="light"] .detail-muted{
  background:rgba(73,182,232,.10);
  color:#2F6F8B;
}
html[data-theme="light"] .detail-coordinates,
html[data-theme="light"] .detail-muted{
  color:#5F7280;
}

html[data-theme="light"] .rail-group-title{
  color:#6D4CAC;
  background:rgba(123,78,196,.10);
}
html[data-theme="light"] .member-filter-chip{
  border-color:rgba(73,182,232,.16);
  background:rgba(255,255,255,.88);
  color:#2F3B4A;
  box-shadow:0 10px 24px rgba(73,182,232,.13);
}
html[data-theme="light"] .member-filter-chip:hover:not(:disabled){
  background:#FFFFFF;
  border-color:rgba(73,182,232,.34);
}
html[data-theme="light"] .member-filter-chip.is-active{
  color:#FFFFFF;
  box-shadow:0 12px 24px rgba(123,78,196,.20);
}
html[data-theme="light"] .chip-dot-all{
  background:#7B4EC4;
  box-shadow:0 0 0 4px rgba(123,78,196,.13);
}

.catalog-card-footer{
  margin-top:auto;
  padding-top:10px;
  display:grid;
  gap:8px;
  justify-items:start;
  align-content:end;
}
.catalog-card-footer .catalog-link-button,
.catalog-card-footer .catalog-place{
  margin-top:0;
  padding-top:0;
}
.catalog-link-button{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(73,182,232,.34);
  border-radius:12px;
  padding:0 12px;
  background:rgba(73,182,232,.12);
  color:#8FE6FF;
  font-size:13px;
  font-weight:950;
  line-height:1;
  text-align:center;
  vertical-align:middle;
  box-sizing:border-box;
}
html[data-theme="light"] .catalog-link-button{
  background:#FFFFFF;
  border-color:rgba(73,182,232,.42);
  color:#2F6F8B;
  box-shadow:0 8px 18px rgba(73,182,232,.10);
}
.catalog-card-footer .catalog-link-button{
  min-height:40px;
  padding:0 14px;
  line-height:1;
}
html[data-theme="light"] .catalog-link-button:hover{
  background:#F1FAFE;
  border-color:rgba(73,182,232,.62);
}
.catalog-notes a,
.catalog-dialog-notes a{
  display:inline-flex;
  max-width:100%;
  align-items:center;
  min-height:24px;
  border:1px solid rgba(73,182,232,.22);
  border-radius:999px;
  padding:2px 8px;
  background:rgba(73,182,232,.10);
  color:#8FE6FF;
  text-decoration:none;
  font-size:.95em;
  font-weight:900;
  line-height:1.35;
  vertical-align:baseline;
  overflow-wrap:anywhere;
}
.catalog-notes a:hover,
.catalog-dialog-notes a:hover{
  background:rgba(73,182,232,.18);
  text-decoration:none;
}
html[data-theme="light"] .catalog-notes a,
html[data-theme="light"] .catalog-dialog-notes a{
  border-color:rgba(73,182,232,.34);
  background:#FFFFFF;
  color:#1E82B2;
}
html[data-theme="light"] .catalog-dialog{
  border-color:rgba(217,235,244,.96);
  background:#FFFFFF;
  color:#17202A;
  box-shadow:0 28px 70px rgba(73,182,232,.18);
}
html[data-theme="light"] #catalogDialogBody{
  scrollbar-color:rgba(65,101,121,.48) rgba(65,101,121,.1);
}
html[data-theme="light"] .catalog-dialog-main-image,
html[data-theme="light"] .catalog-dialog-thumb{
  background:#EEF8FD;
}
html[data-theme="light"] #catalogDialogBody::-webkit-scrollbar-track{
  background:rgba(65,101,121,.1);
}
html[data-theme="light"] #catalogDialogBody::-webkit-scrollbar-thumb{
  background:rgba(65,101,121,.48);
  background-clip:content-box;
}
html[data-theme="light"] #catalogDialogBody::-webkit-scrollbar-thumb:hover{
  background:rgba(65,101,121,.64);
  background-clip:content-box;
}
html[data-theme="light"] .catalog-dialog-notes{
  color:#344455;
}

.catalog-mobile-member-field,
.gallery-mobile-controls{
  display:none;
}

.gallery-desktop-controls{
  display:grid;
  flex:0 0 auto;
  min-width:0;
  gap:8px;
  padding:10px 14px 12px;
  border-bottom:1px solid var(--line);
  background:rgba(20,21,24,.5);
}
.gallery-desktop-controls[hidden]{display:none!important}
.gallery-desktop-controls select{
  width:100%;
  min-width:0;
  min-height:var(--mobile-control-height,44px);
  padding:0 38px 0 12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--mobile-control-radius,14px);
  appearance:none;
  -webkit-appearance:none;
  background-color:rgba(41,43,49,.92);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23DCEEFF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-position:right 12px center;
  background-repeat:no-repeat;
  background-size:16px;
  color:#F6F8FB;
  color-scheme:dark;
  font:inherit;
  font-weight:850;
  line-height:1.2;
  cursor:pointer;
  transition:color var(--mobile-motion-fast) var(--mobile-motion-ease),background-color var(--mobile-motion-fast) var(--mobile-motion-ease),border-color var(--mobile-motion-fast) var(--mobile-motion-ease),box-shadow var(--mobile-motion-fast) var(--mobile-motion-ease);
}
.gallery-desktop-controls select:hover{
  border-color:rgba(73,182,232,.68);
  background-color:rgba(53,56,65,.98);
}
.gallery-desktop-controls select:focus-visible{
  outline:none;
  border-color:var(--hinata-strong);
  box-shadow:var(--mobile-focus-ring);
}
.gallery-desktop-controls select:disabled{
  opacity:.56;
  cursor:not-allowed;
}
.gallery-desktop-controls select option,
.gallery-desktop-controls select optgroup{
  background:#292B31;
  color:#F6F8FB;
}
html[data-theme="light"] .gallery-desktop-controls{
  border-color:rgba(217,235,244,.96);
  background:rgba(255,255,255,.74);
}
html[data-theme="light"] .gallery-desktop-controls select{
  border-color:rgba(217,235,244,.96);
  background-color:#EEF8FD;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231E82B2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  color:#17202A;
  color-scheme:light;
}
html[data-theme="light"] .gallery-desktop-controls select:hover{background-color:#E2F3FB}
html[data-theme="light"] .gallery-desktop-controls select option,
html[data-theme="light"] .gallery-desktop-controls select optgroup{
  background:#FFFFFF;
  color:#17202A;
}

/* Map mobile canonical layout */
@media(max-width:900px){
  .gallery-desktop-controls{display:none!important}
  .gallery-embed-view{
    display:flex;
    flex-direction:column;
  }
  .gallery-mobile-controls{
    flex:0 0 auto;
    display:grid;
    gap:8px;
    padding:10px var(--mobile-page-gutter) 12px;
    border-bottom:1px solid var(--mobile-border);
    background:var(--mobile-surface);
    box-shadow:var(--mobile-shadow);
    z-index:2;
  }
  .gallery-mobile-collection-field{
    display:block;
    min-width:0;
  }
  .gallery-mobile-collection-field select{
    width:100%;
    min-height:var(--mobile-control-height);
    border:1px solid var(--mobile-border);
    border-radius:var(--mobile-control-radius);
    padding:0 12px;
    background:var(--mobile-surface-muted);
    color:var(--mobile-text);
    font:inherit;
    font-weight:900;
  }
  .gallery-mobile-album-field{
    display:block;
    min-width:0;
  }
  .gallery-mobile-album-field select{
    width:100%;
    min-height:var(--mobile-control-height);
    border:1px solid var(--mobile-border);
    border-radius:var(--mobile-control-radius);
    padding:0 12px;
    background:var(--mobile-surface-muted);
    color:var(--mobile-text);
    font:inherit;
    font-weight:850;
  }
  .gallery-embed-frame{
    flex:1 1 auto;
    height:auto;
    min-height:0;
  }
  .catalog-mobile-member-field{
    display:block;
  }
  .catalog-embed-view{
    display:flex;
    flex-direction:column;
    padding:0 var(--mobile-page-gutter) var(--mobile-content-bottom-space);
  }
  .catalog-embed-tools{
    order:1;
    position:sticky;
    top:0;
    z-index:10;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) var(--mobile-control-height);
    gap:6px;
    align-items:center;
    margin:0 calc(var(--mobile-page-gutter) * -1) 10px;
    padding:10px var(--mobile-page-gutter);
    border-width:0 0 1px;
    border-radius:0;
    background:var(--mobile-surface);
    box-shadow:var(--mobile-shadow);
  }
  .catalog-embed-tools .catalog-field,
  .catalog-embed-tools .catalog-field:first-child{
    min-width:0;
    display:block;
    grid-column:auto;
  }
  .catalog-embed-tools .catalog-query-field,
  .catalog-embed-tools .catalog-status-field{
    display:none;
  }
  .catalog-embed-tools .catalog-field > span{
    display:none;
  }
  .catalog-embed-tools input,
  .catalog-embed-tools select{
    width:100%;
    min-width:0;
    height:var(--mobile-control-height);
    min-height:var(--mobile-control-height);
    padding:0 12px;
    font-size:16px;
    text-overflow:ellipsis;
  }
  .catalog-embed-tools #catalogClear{
    display:grid;
    width:var(--mobile-control-height);
    height:var(--mobile-control-height);
    min-height:var(--mobile-control-height);
    padding:0;
    place-items:center;
    border-color:var(--mobile-border);
    background:var(--mobile-surface-muted);
    color:var(--mobile-text-muted);
    font-size:25px;
    font-weight:500;
    line-height:1;
  }
  .catalog-embed-header{
    order:2;
    display:flex;
    align-items:center;
    margin:0 0 10px;
    padding:0 0 10px;
  }
  .catalog-embed-header > div:first-child{
    display:none;
  }
  .catalog-embed-actions{
    width:100%;
    justify-content:flex-start;
  }
  .catalog-summary{order:3}
  .catalog-grid{order:4}
  html[data-theme="light"] .gallery-mobile-controls,
  html[data-theme="light"] .catalog-embed-tools{
    background:var(--mobile-surface);
    border-color:var(--mobile-border);
    box-shadow:var(--mobile-shadow);
  }
}

@media(min-width:901px){
  .sidebar-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sidebar-tabs #settingsTab,
  .place-list .place-card-detail{display:none!important}
  .place-list{overflow:auto}
}

@media(max-width:900px){
  :root{
    --mobile-panel-radius:18px;
    --mobile-card-radius:18px;
    --mobile-sheet-radius:24px;
    --mobile-control-radius:14px;
    --mobile-control-height:44px;
    --mobile-map-card-height:144px;
    --mobile-map-card-stack-height:154px;
    --mobile-page-gutter:var(--mobile-space-3);
    --mobile-content-bottom-space:var(--mobile-space-4);
    --mobile-panel-border:1px solid var(--mobile-border);
    --mobile-panel-shadow:var(--mobile-elevation-card);
  }
  .map-app-shell{
    --mobile-top-nav-space:0px;
    --mobile-bottom-nav-space:calc(58px + env(safe-area-inset-bottom,0px));
    display:flex;
    flex-direction:column;
    height:100dvh;
    min-height:100dvh;
    padding-top:0;
    padding-bottom:0;
    overflow:hidden;
  }
  .sidebar-brand{display:none}
  .sidebar-tabs{
    position:fixed;
    z-index:1000;
    left:0;
    right:0;
    bottom:0;
    top:auto;
    width:100%;
    transform:none;
    min-height:var(--mobile-bottom-nav-space);
    margin:0;
    padding:5px 8px max(5px,env(safe-area-inset-bottom,0px));
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    border:0;
    border-top:1px solid var(--mobile-nav-border);
    border-radius:0;
    background:var(--mobile-nav-surface);
    box-shadow:var(--mobile-nav-shadow);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }
  .sidebar-tab{
    min-width:0;
    width:100%;
    min-height:48px;
    display:flex!important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:4px 6px;
    border:0;
    border-radius:10px;
    gap:2px;
    background:transparent;
    color:var(--mobile-tab-text);
    font:inherit;
    font-size:10px;
    font-weight:850;
    cursor:pointer;
    touch-action:manipulation;
  }
  .sidebar-tab span{display:block;line-height:1}
  .sidebar-tab svg{
    width:26px;
    height:26px;
    stroke-width:2;
    vector-effect:non-scaling-stroke;
  }
  .sidebar-tab.is-active{
    color:var(--mobile-tab-active);
    background:transparent;
    box-shadow:none;
  }
  .map-stage{
    height:calc(100dvh - var(--mobile-bottom-nav-space));
    min-height:calc(100dvh - var(--mobile-bottom-nav-space));
    flex:0 0 auto;
  }
  .map-location-control{
    right:12px;
    /* .map-stage ends above --mobile-bottom-nav-space, which includes safe-area. */
    bottom:max(12px, var(--map-location-bottom-offset, 14px));
  }
  .map-location-button{
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    padding:0;
    gap:0;
    border-radius:50%;
    border-color:rgba(255,255,255,.2);
    background:rgba(31,32,36,.82);
    box-shadow:0 8px 22px rgba(0,0,0,.24);
  }
  .map-location-button span{display:none}
  .map-location-button svg{width:21px;height:21px}
  .map-location-button:disabled{opacity:.68}
  .place-sidebar{
    position:fixed;
    inset:0;
    z-index:19;
    min-height:0;
    height:0;
    overflow:visible;
    border:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    pointer-events:none;
  }
  .sidebar-tabs,.sidebar-meta,.place-list,.sidebar-account-footer{pointer-events:auto}
  .status,.sidebar-account-footer{display:none}
  body.is-settings-open .sidebar-account-footer{
    position:fixed;
    z-index:1300;
    left:12px;
    right:12px;
    bottom:calc(var(--mobile-bottom-nav-space) + 10px);
    display:block!important;
    padding:0;
    border:0;
    background:transparent;
  }
  body.is-settings-open .sidebar-account-footer [data-auth-account-slot]{width:100%}
  body.is-settings-open .auth-account-button{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip-path:inset(50%);
    white-space:nowrap;
    border:0;
  }
  body.is-settings-open .sidebar-account-footer .auth-menu{
    left:0;
    right:0;
    bottom:0;
    width:auto;
    max-height:calc(100dvh - var(--mobile-bottom-nav-space) - 24px);
  }
  body.is-settings-open #settingsTab{color:var(--mobile-tab-active)}
  .top-search-float{
    top:calc(10px + env(safe-area-inset-top,0px));
    left:12px;
    right:12px;
    width:auto;
    min-width:0;
    max-width:none;
    min-height:44px;
    grid-template-columns:38px minmax(0,1fr) auto;
    transform:none;
    border-radius:var(--mobile-control-radius);
  }
  #floatingSearch{min-height:44px;font-size:16px}
  .top-search-count{
    display:block;
    padding-right:14px;
    color:var(--mobile-count);
    font-size:12px;
    font-weight:900;
    line-height:1;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
    text-shadow:var(--mobile-count-shadow);
    pointer-events:none;
  }
  body.is-map-loading .top-search-count{font-size:0}
  body.is-map-loading .top-search-count::before{content:"載入中";font-size:12px}
  .top-filter-float{
    top:calc(62px + env(safe-area-inset-top,0px));
    left:12px;
    right:12px;
    width:auto;
    gap:6px;
    overflow-x:auto;
    overflow-y:visible;
    padding-bottom:2px;
    scrollbar-width:none;
    transform:none;
  }
  .top-filter-float::-webkit-scrollbar{display:none}
  .category-preset-chips{display:none}
  .map-pill-button{
    min-height:40px;
    padding-inline:12px;
    border-radius:var(--mobile-control-radius);
  }
  .filter-rail{
    top:110px;
    bottom:auto;
    padding:0 12px;
    scrollbar-width:none;
  }
  .filter-rail::-webkit-scrollbar{display:none}
  .member-filter-chip{min-height:40px;padding:6px 10px}
  .sidebar-meta{
    display:none;
    position:fixed;
    left:12px;
    right:12px;
    bottom:calc(112px + env(safe-area-inset-bottom,0px));
    z-index:22;
    min-height:40px;
    margin:0;
    padding:4px 6px 4px 12px;
    border:var(--mobile-panel-border);
    border-radius:var(--mobile-control-radius);
    background:rgba(31,32,36,.94);
    box-shadow:var(--mobile-panel-shadow);
    backdrop-filter:blur(18px);
  }
  #resultCount{font-size:14px;line-height:1}
  #fitAllBtn{
    width:44px;
    height:44px;
    min-height:44px;
    padding:0;
    border-radius:12px;
    font-size:22px;
  }
  .place-list{
    position:fixed;
    left:0;
    right:0;
    bottom:env(safe-area-inset-bottom,0px);
    z-index:21;
    display:flex;
    gap:10px;
    flex:0 0 auto;
    height:var(--mobile-map-card-stack-height);
    min-height:var(--mobile-map-card-stack-height);
    max-height:var(--mobile-map-card-stack-height);
    padding:0 20px 10px;
    align-items:stretch;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:20px;
    scrollbar-width:none;
  }
  .place-list::-webkit-scrollbar{display:none}
  .place-list .place-card{
    flex:0 0 calc(100% - 34px);
    height:var(--mobile-map-card-height);
    min-height:var(--mobile-map-card-height);
    grid-template-columns:104px minmax(0,1fr);
    align-items:start;
    scroll-snap-align:center;
    border:var(--mobile-panel-border);
    border-radius:var(--mobile-panel-radius);
    padding:7px;
    box-shadow:var(--mobile-panel-shadow);
  }
  .place-list .place-thumb{width:104px;height:104px;border-radius:14px}
  .place-list .place-card-body{padding:0;gap:4px}
  .place-list .ui-preview-actions{align-self:end;margin-top:4px}
  .place-list .place-card-detail{width:max-content;max-width:100%}
  .place-list .place-card h2{
    display:-webkit-box;
    overflow:hidden;
    margin:0;
    font-size:15px;
    line-height:1.25;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  .place-list .place-card p,.place-list .place-card-members{
    display:-webkit-box;
    overflow:hidden;
    margin:0;
    font-size:12px;
    line-height:1.3;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:1;
  }
  .place-list .empty-state{
    flex:0 0 calc(100% - 34px);
    min-height:118px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:6px;
    padding:16px;
    text-align:center;
    scroll-snap-align:center;
    border:var(--mobile-panel-border);
    border-radius:var(--mobile-panel-radius);
    background:var(--panel);
    box-shadow:var(--mobile-panel-shadow);
  }
  .place-list .empty-state strong{font-size:15px}
  .place-list .empty-state span{color:var(--mobile-text-muted);font-size:12px}
  .place-list .empty-state button{min-height:36px;padding:7px 12px;border:0;border-radius:10px;background:rgba(139,92,246,.22);color:var(--mobile-text);font-weight:850}
  .load-more-results,.result-limit-notice{flex:0 0 calc(100% - 34px);scroll-snap-align:center}
  .map-loading-skeleton{
    flex:0 0 calc(100% - 34px);
    min-height:118px;
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:10px;
    padding:10px;
    border:var(--mobile-panel-border);
    border-radius:var(--mobile-panel-radius);
    background:var(--mobile-surface);
    box-shadow:var(--mobile-panel-shadow);
    scroll-snap-align:center;
    overflow:hidden;
  }
  .map-loading-skeleton-media{border-radius:14px;background:linear-gradient(110deg,var(--mobile-surface-muted) 8%,rgba(255,255,255,.09) 28%,var(--mobile-surface-muted) 45%);background-size:200% 100%;animation:mapSkeletonShimmer 1.2s linear infinite}
  .map-loading-skeleton-copy{display:grid;align-content:center;gap:10px}
  .map-loading-skeleton-copy i{display:block;height:14px;border-radius:999px;background:linear-gradient(110deg,var(--mobile-surface-muted) 8%,rgba(255,255,255,.09) 28%,var(--mobile-surface-muted) 45%);background-size:200% 100%;animation:mapSkeletonShimmer 1.2s linear infinite}
  .map-loading-skeleton-copy i:last-child{width:68%}
  .place-list > .place-card,
  .place-list > .empty-state,
  .place-list > .map-loading-skeleton,
  .place-list > .load-more-results,
  .place-list > .result-limit-notice{
    flex:0 0 calc(100% - 34px);
    width:calc(100% - 34px);
    height:var(--mobile-map-card-height);
    min-height:var(--mobile-map-card-height);
    max-height:var(--mobile-map-card-height);
    margin:0;
    padding:10px;
    border-radius:var(--mobile-panel-radius);
    overflow:hidden;
    scroll-snap-align:center;
  }
  .ui-preview-card{
    border-radius:var(--mobile-card-radius);
    border:var(--mobile-panel-border);
    background:var(--mobile-surface);
    color:var(--mobile-text);
    box-shadow:var(--mobile-panel-shadow);
  }
  .ui-preview-content{
    min-width:0;
    display:grid;
    align-content:center;
    gap:4px;
  }
  .result-preview-card.ui-preview-card--map,
  .place-list .place-card.ui-preview-card--map{
    align-items:start;
  }
  .result-preview-card.ui-preview-card--map .ui-preview-content,
  .place-list .place-card.ui-preview-card--map .ui-preview-content{
    width:100%;
    min-height:0;
    align-content:start;
    justify-content:start;
    justify-items:start;
    text-align:left;
  }
  .place-list .place-card.ui-preview-card--map .ui-preview-content{
    min-height:100%;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto minmax(0,1fr);
    justify-content:stretch;
    justify-items:stretch;
  }
  .place-list .place-card.ui-preview-card--map .ui-preview-subtitle,
  .place-list .place-card.ui-preview-card--map .ui-preview-subtitle p{
    display:block;
    width:100%;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  .place-list .place-card.ui-preview-card--map h2{
    display:block;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  .place-list .place-card.ui-preview-card--map .ui-preview-actions{
    grid-row:3;
    align-self:end;
    justify-self:stretch;
    margin-top:0;
    justify-content:flex-end;
  }
  .place-list .place-card.ui-preview-card--map .place-card-detail{
    min-height:32px;
    padding:6px 10px;
  }
  .ui-preview-title{
    overflow:hidden;
    margin:0;
    color:var(--mobile-text);
    font-weight:950;
    line-height:1.25;
    text-overflow:ellipsis;
  }
  .ui-preview-subtitle,
  .ui-preview-subtitle p{
    margin:0;
    color:var(--mobile-muted);
    line-height:1.35;
  }
  .ui-preview-actions{display:flex;align-items:center;gap:8px}
  .ui-detail-surface{
    border-radius:var(--mobile-sheet-radius);
    border-color:var(--mobile-border);
    background:var(--mobile-surface);
    color:var(--mobile-text);
    box-shadow:var(--mobile-elevation-overlay);
  }
  .ui-sheet-handle{
    width:72px;
    height:36px;
    display:grid;
    place-items:center;
    touch-action:none;
    cursor:grab;
    margin:0 auto;
    background:transparent;
  }
  .ui-sheet-handle::after{
    content:"";
    width:72px;
    height:5px;
    border-radius:999px;
    background:rgba(255,255,255,.28);
  }
  .ui-sheet-chrome{
    position:sticky;
    top:0;
    z-index:4;
    min-height:48px;
    background:var(--mobile-surface);
  }
  .ui-sheet-close{
    position:absolute;
    top:4px;
    right:8px;
    width:40px;
    height:40px;
    border:0;
    border-radius:50%;
    background:transparent;
    color:var(--mobile-text);
    font-size:28px;
    line-height:1;
  }
  .ui-control-bar{
    background:var(--mobile-surface);
    border-color:var(--mobile-border);
    box-shadow:var(--mobile-elevation-card);
  }
  .ui-preview-card,
  .ui-detail-surface,
  .ui-control-bar{
    transition:background-color var(--mobile-motion-fast) var(--mobile-motion-ease),border-color var(--mobile-motion-fast) var(--mobile-motion-ease),box-shadow var(--mobile-motion-standard) var(--mobile-motion-ease),transform var(--mobile-motion-standard) var(--mobile-motion-ease);
  }
  .sidebar-tab,
  .ui-filter-field > input,
  .ui-filter-field > select,
  .ui-filter-clear{
    transition:color var(--mobile-motion-fast) var(--mobile-motion-ease),background-color var(--mobile-motion-fast) var(--mobile-motion-ease),border-color var(--mobile-motion-fast) var(--mobile-motion-ease),box-shadow var(--mobile-motion-fast) var(--mobile-motion-ease),transform var(--mobile-motion-fast) var(--mobile-motion-ease);
  }
  .sidebar-tab:active,
  .ui-filter-clear:active{
    transform:scale(.96);
  }
  .sidebar-tab:focus-visible,
  .ui-filter-field > input:focus-visible,
  .ui-filter-field > select:focus-visible,
  .ui-filter-clear:focus-visible{
    outline:none;
    box-shadow:var(--mobile-focus-ring);
  }
  .ui-filter-bar{
    min-width:0;
    align-items:center;
    gap:8px;
  }
  .ui-filter-field{
    min-width:0;
    margin:0;
  }
  .ui-filter-field > input,
  .ui-filter-field > select{
    width:100%;
    min-width:0;
    height:var(--mobile-control-height);
    min-height:var(--mobile-control-height);
    border-radius:var(--mobile-control-radius);
  }
  .ui-filter-clear{
    flex:0 0 var(--mobile-control-height);
    width:var(--mobile-control-height);
    height:var(--mobile-control-height);
    min-height:var(--mobile-control-height);
    padding:0;
    border-radius:var(--mobile-control-radius);
  }
  [data-filter-bar="map"]{
    display:flex;
    align-items:center;
  }
  [data-filter-bar="catalog"]{
    align-items:end;
  }
  [data-filter-bar="gallery"]{
    align-items:stretch;
  }
  .catalog-card,.gallery-photo-card{
    border-radius:var(--mobile-card-radius);
    border:var(--mobile-panel-border);
    background:var(--mobile-surface);
    color:var(--mobile-text);
    box-shadow:var(--mobile-panel-shadow);
  }
  .catalog-embed-tools,
  .gallery-mobile-controls{
    background:var(--mobile-surface);
    border-color:var(--mobile-border);
    box-shadow:var(--mobile-shadow);
  }
  .catalog-embed-tools select,.catalog-embed-tools #catalogClear,
  .gallery-mobile-controls select,.gallery-mobile-controls button{
    min-height:var(--mobile-control-height);
    border-radius:var(--mobile-control-radius);
    border-color:var(--mobile-border);
    background:var(--mobile-surface-muted);
    color:var(--mobile-text);
  }
  body[data-active-view="catalog"] .catalog-embed-view{
    padding-bottom:var(--mobile-content-bottom-space);
  }
  body[data-active-view="gallery"] .gallery-embed-view{
    padding-bottom:0;
  }
  .catalog-dialog{
    inset:var(--catalog-sheet-top,20dvh) 0 0;
    margin:0;
    width:100%;
    height:calc(100dvh - var(--catalog-sheet-top,20dvh));
    max-width:none;
    max-height:none;
    overflow:hidden;
    border-radius:var(--mobile-sheet-radius) var(--mobile-sheet-radius) 0 0;
    border-color:var(--mobile-border);
    background:var(--mobile-surface);
    color:var(--mobile-text);
    box-shadow:var(--mobile-elevation-overlay);
    transition:top var(--mobile-motion-standard) var(--mobile-motion-ease);
    will-change:top;
  }
  .catalog-dialog[open]{
    display:flex;
    flex-direction:column;
  }
  .catalog-dialog.is-dragging{transition:none;}
  #catalogDialogBody{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:max(16px,env(safe-area-inset-bottom,0px));
    overscroll-behavior:contain;
    touch-action:pan-y;
  }
  .map-stage.is-filter-crowded .top-search-float{
    top:calc(10px + env(safe-area-inset-top,0px));
    left:12px;
    right:12px;
    width:auto;
    max-width:none;
  }
  .map-stage.is-filter-crowded .top-filter-float{
    top:calc(62px + env(safe-area-inset-top,0px));
    gap:6px;
  }
  .map-stage.is-filter-crowded .map-pill-button{
    min-height:40px;
    padding-inline:12px;
    font-size:12px;
  }
  .top-filter-float{
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .top-filter-float .map-pill-button,
  .top-filter-float .clear-added-date-btn{
    box-shadow:none;
  }
  .filter-rail{display:none}
  .category-filter-popover{
    top:48px;
    max-height:calc(100dvh - 180px);
  }
  .category-filter-popover[hidden]{
    display:none!important;
    pointer-events:none;
  }
  .category-member-filter-section{display:grid}
  .category-filter-section{
    display:grid;
    gap:8px;
  }
  .category-filter-section + .category-filter-section{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--line);
  }
  .category-filter-section h3{
    margin:0;
    color:var(--muted);
    font-size:12px;
    font-weight:900;
  }
  .category-filter-option-grid,
  .category-member-filter-options{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  .category-member-group-label{
    flex:0 0 100%;
    margin-top:4px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
  }
  .sidebar-meta{
    left:20px;
    right:auto;
    bottom:calc(106px + env(safe-area-inset-bottom,0px));
    min-height:0;
    width:auto;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .sidebar-meta > div{display:block}
  .sidebar-meta .meta-label{display:none}
  #resultCount{
    color:var(--mobile-count);
    font-size:13px;
    font-weight:900;
    line-height:1;
    text-shadow:var(--mobile-count-shadow);
  }
  body.is-map-loading #resultCount{font-size:0}
  body.is-map-loading #resultCount::before{
    content:"載入中";
    font-size:13px;
  }
  #fitAllBtn{display:none}
  .place-list .place-card,
  .place-list .place-card.is-active{
    margin-top:0;
    background:var(--mobile-card-surface);
    border-color:var(--mobile-card-border);
    box-shadow:var(--mobile-card-shadow);
  }
  .place-list .place-card h2{
    color:var(--mobile-card-title);
    font-size:17px;
    font-weight:950;
    text-shadow:0 1px 2px rgba(0,0,0,.45);
  }
  .place-list .place-card p,
  .place-list .place-card-members{
    color:var(--mobile-card-copy);
    font-size:13px;
    font-weight:760;
  }
  .top-date-filter.is-disabled{
    opacity:.48;
    cursor:not-allowed;
  }
  .place-list{
    bottom:calc(var(--mobile-bottom-nav-space) + 18px);
  }
  .sidebar-meta{
    bottom:calc(var(--mobile-bottom-nav-space) + 18px + var(--mobile-map-card-stack-height) + 10px);
  }
  .category-filter-popover{
    position:fixed;
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:calc(var(--mobile-bottom-nav-space) + 12px)!important;
    width:auto;
    max-width:none;
    height:auto;
    max-height:min(70dvh,calc(100dvh - var(--mobile-bottom-nav-space) - 24px))!important;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    border-radius:16px;
    background:rgba(31,32,36,.96);
    box-shadow:0 20px 52px rgba(0,0,0,.38);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    z-index:1100;
    transform:translateY(8px);
    opacity:0;
    transition:opacity var(--mobile-motion-standard) var(--mobile-motion-ease),transform var(--mobile-motion-standard) var(--mobile-motion-ease);
  }
  .category-filter-popover:not([hidden]){
    opacity:1;
    transform:translateY(0);
  }
  .category-filter-popover header{
    min-height:52px;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:4px 8px 4px 16px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .category-filter-popover header strong{
    font-size:15px;
    font-weight:900;
    letter-spacing:.01em;
  }
  .category-filter-popover header button{
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:10px;
    background:rgba(255,255,255,.06);
    color:var(--mobile-text);
    font-size:22px;
    line-height:1;
    cursor:pointer;
  }
  .category-filter-popover header button:hover,
  .category-filter-popover header button:focus-visible{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.22);
  }
  #categoryFilterOptions{
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    touch-action:pan-y;
    padding:12px 14px max(16px,env(safe-area-inset-bottom,0px));
  }
  .category-filter-section{
    display:grid;
    gap:8px;
  }
  .category-filter-section + .category-filter-section{
    margin-top:16px;
    padding-top:16px;
    border-top:1px solid rgba(255,255,255,.08);
  }
  .category-filter-section h3{
    margin:0;
    color:var(--mobile-text-muted);
    font-size:12px;
    font-weight:900;
  }
  .category-filter-section-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:32px;
  }
  .category-filter-section-header h3{margin:0}
  .category-filter-section-header .category-filter-option,
  .category-member-clear-all,
  .category-member-select-all{
    min-height:36px;
    padding:0 10px;
    border:0;
    background:transparent;
    color:var(--mobile-text-muted);
    font-size:12px;
    font-weight:850;
    white-space:nowrap;
  }
  .category-filter-section-header .category-filter-option:hover,
  .category-member-clear-all:hover:not(:disabled),
  .category-member-select-all:hover:not(:disabled){
    color:var(--mobile-text);
    background:rgba(255,255,255,.06);
  }
  .category-filter-option-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .my-tour-filter-options{grid-template-columns:repeat(3,minmax(0,1fr))}
  .category-filter-option{
    min-width:0;
    min-height:44px;
    padding:0 10px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:10px;
    background:rgba(255,255,255,.05);
    color:var(--mobile-text);
    font-size:12px;
    font-weight:850;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    cursor:pointer;
    transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,box-shadow 140ms ease;
  }
  .category-filter-option:hover{
    border-color:rgba(255,255,255,.22);
    background:rgba(255,255,255,.08);
  }
  .category-filter-option:focus-visible{
    outline:none;
    box-shadow:var(--mobile-focus-ring);
  }
  .category-filter-option.is-active{
    border-color:rgba(73,182,232,.54);
    background:rgba(73,182,232,.16);
    color:#fff;
    box-shadow:inset 0 0 0 1px rgba(73,182,232,.12);
  }
  .category-member-mobile-panel{display:grid;gap:10px}
  .category-member-mobile-tabs{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:6px;
  }
  .category-member-generation-tab{
    min-width:0;
    min-height:44px;
    padding:0 4px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:10px;
    background:rgba(255,255,255,.04);
    color:var(--mobile-text-muted);
    font-size:11px;
    font-weight:850;
    white-space:nowrap;
    cursor:pointer;
  }
  .category-member-generation-tab.is-active{
    border-color:rgba(73,182,232,.54);
    background:rgba(73,182,232,.14);
    color:var(--mobile-text);
  }
  .category-member-filter-options{min-height:0}
  .category-member-generation:not(.is-mobile-active){display:none}
  .category-member-generation{display:grid;gap:8px}
  .category-member-generation-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:32px;
  }
  .category-member-generation-header h4{
    margin:0;
    color:var(--mobile-text-muted);
    font-size:12px;
  }
  .category-member-generation-options{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    max-height:220px;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-right:2px;
  }
  .category-member-generation-options .category-filter-option{min-width:0}
  body:has(#categoryFilterPanel:not([hidden])) .map-stage::after{
    content:"";
    position:fixed;
    inset:0;
    z-index:1050;
    background:rgba(0,0,0,.18);
    pointer-events:auto;
  }
  body.is-detail-open .map-stage::after{
    content:"";
    position:fixed;
    inset:0;
    z-index:1100;
    background:rgba(0,0,0,.42);
    pointer-events:auto;
  }
  body.is-detail-open .top-filter-float,
  body.is-detail-open .sidebar-meta,
  body.is-detail-open .place-list,
  body.is-detail-open .map-location-control,
  body.is-detail-open .sidebar-tabs{
    visibility:hidden;
    pointer-events:none;
  }
  body.is-detail-open .place-detail-panel{
    z-index:1200;
    left:0;
    right:0;
    bottom:0;
    top:var(--sheet-top,40dvh);
    width:100%;
    max-height:none;
    border-radius:24px 24px 0 0;
    overflow-y:auto;
    overscroll-behavior:contain;
    pointer-events:auto;
    background:var(--mobile-surface);
    transform:none;
    transition:top var(--mobile-motion-standard) var(--mobile-motion-ease);
    will-change:top;
  }
  body.is-detail-open .place-detail-panel.is-dragging{transition:none}
  body.is-detail-open .place-detail-panel::before{display:none}
  body.is-detail-open .detail-panel-header,
  body.is-detail-open .detail-media,
  body.is-detail-open .detail-body{
    background:transparent;
  }
  body.is-detail-open .detail-panel-header{
    position:relative;
    top:auto;
    z-index:1;
  }
  body.is-detail-open .detail-close-btn{
    position:relative;
    z-index:4;
    width:44px;
    height:44px;
  }
  body.is-detail-open .detail-media{
    flex-basis:auto;
    min-height:0;
    max-height:none;
    padding-top:14px;
  }
  body.is-detail-open .detail-main-image,
  body.is-detail-open .detail-media.has-thumbs .detail-main-image{
    height:min(48dvh,420px);
  }
  html[data-theme="light"] .place-sidebar{
    background:transparent;
    border:0;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  html[data-theme="light"] .sidebar-tabs{
    background:var(--mobile-nav-surface);
    border-top-color:var(--mobile-nav-border);
    box-shadow:var(--mobile-nav-shadow);
  }
  html[data-theme="light"] .sidebar-tab{color:var(--mobile-tab-text)}
  html[data-theme="light"] .sidebar-tab.is-active,
  html[data-theme="light"] body.is-settings-open #settingsTab{color:var(--mobile-tab-active)}
  html[data-theme="light"] .place-list .place-card,
  html[data-theme="light"] .place-list .place-card.is-active{
    background:var(--mobile-card-surface);
    border-color:var(--mobile-card-border);
    box-shadow:var(--mobile-card-shadow);
  }
  html[data-theme="light"] .place-list .place-card h2{
    color:var(--mobile-card-title);
    text-shadow:none;
  }
  html[data-theme="light"] .place-list .place-card p,
  html[data-theme="light"] .place-list .place-card-members{color:var(--mobile-card-copy)}
  html[data-theme="light"] #resultCount{
    color:var(--mobile-count);
    text-shadow:var(--mobile-count-shadow);
  }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  .place-card:hover,.member-filter-chip:hover{transform:none}
}

/* Map detail actions and links: restrained controls scoped away from Catalog. */
#detailMyTourActions{
  display:grid;
  grid-template-columns:minmax(90px,1fr) minmax(114px,1.2fr) minmax(116px,1.15fr) 44px;
  gap:8px;
  width:100%;
  min-width:0;
  align-items:stretch;
}
.action-button{
  width:100%;
  height:44px;
  min-width:0;
  min-height:42px;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding-inline:12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);
  font:inherit;
  font-size:11px;
  font-weight:850;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:none;
  transform:none;
  transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease;
}
#detailMyTourActions > .action-button{
  height:44px;
  min-height:42px;
  padding-inline:12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);
  font:inherit;
  font-size:11px;
  font-weight:850;
  line-height:1;
  box-shadow:none;
  transform:none;
}
.action-button .action-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.action-button .action-icon svg,
.action-button .action-icon img{
  display:block;
  width:18px;
  height:18px;
  object-fit:contain;
}
#favoritePlaceBtn .action-icon svg{
  width:15px;
  height:15px;
}
.action-button .action-icon svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:fill 150ms ease;
}
.action-button .action-icon svg [data-heart-outline="true"]{
  fill:none;
}
.action-button .action-icon svg [data-heart-fill="true"]{
  display:none;
  fill:none;
  stroke:none;
}
.action-button .action-icon svg [data-flag-outline="true"]{
  fill:none;
}
.action-button .action-icon svg [data-flag-fill="true"]{
  display:none;
  fill:none;
  stroke:none;
}
#detailMyTourActions > .detail-action-share,
#detailMyTourActions > #sharePlaceBtn{
  width:44px;
  min-width:44px;
  padding:0;
  gap:0;
}
#detailMyTourActions > button > .action-icon[src*="share-1-svgrepo-com"],
#detailMyTourActions > button > .action-icon img[src*="share-1-svgrepo-com"]{
  filter:invert(1) opacity(.82);
}
#detailMyTourActions > .detail-action-map img,
#detailMyTourActions > .detail-google-maps-link img,
.detail-action-map .action-icon img,
.detail-google-maps-link .action-icon img{
  width:16px;
  height:16px;
  flex:0 0 16px;
  object-fit:contain;
}
#detailMyTourActions > .detail-action-map{
  min-width:0;
  text-decoration:none;
}
#detailMyTourActions > .detail-action-map > .action-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
}
#detailMyTourActions > .detail-action-map .action-label{
  flex:1 1 auto;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#detailMyTourActions > button:hover:not(:disabled){
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  transform:none;
}
#detailMyTourActions > a:hover:not([aria-disabled="true"]){
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  text-decoration:none;
}
#detailMyTourActions > button[aria-pressed="true"]{
  border-color:rgba(161,198,207,.46);
  background:rgba(108,152,166,.18);
  color:rgba(242,248,249,.92);
  box-shadow:none;
  transform:none;
}
#favoritePlaceBtn[aria-pressed="true"] .action-icon svg{
  fill:currentColor;
}
#favoritePlaceBtn[aria-pressed="true"] .action-icon svg [data-heart-fill="true"]{
  display:block;
  fill:currentColor;
}
#visitedPlaceBtn[aria-pressed="true"] .action-icon svg [data-flag-fill="true"]{
  display:block;
  fill:currentColor;
}
#detailMyTourActions .action-button[aria-pressed="true"] .action-icon svg[data-icon="heart"]{
  fill:currentColor;
}
#detailMyTourActions .action-button:focus-visible{
  outline:2px solid rgba(177,208,215,.86);
  outline-offset:2px;
  box-shadow:none;
}
#detailMyTourActions > button:disabled,
#detailMyTourActions > a[aria-disabled="true"]{
  cursor:not-allowed;
  opacity:.48;
  pointer-events:none;
}

.detail-links a{
  height:40px;
  min-height:40px;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);
  font-size:12px;
  font-weight:850;
  line-height:1;
  text-decoration:none;
  box-shadow:none;
  transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease;
}
.detail-links a:hover{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  text-decoration:none;
}
.detail-links a:focus-visible{
  outline:2px solid rgba(177,208,215,.86);
  outline-offset:2px;
  box-shadow:none;
}
.detail-google-maps-link{
  gap:8px;
}
.detail-action-status{
  display:block;
  min-height:18px;
  margin:6px 0 0;
  color:rgba(255,255,255,.64);
  font-size:11px;
  line-height:18px;
  visibility:hidden;
}
.detail-action-status:not(:empty){
  visibility:visible;
}
.detail-google-maps-link img{
  width:16px;
  height:16px;
  flex:0 0 16px;
  display:block;
  object-fit:contain;
}

html[data-theme="light"] #detailMyTourActions > button{
  border-color:rgba(47,70,78,.22);
  background:rgba(31,46,53,.06);
  color:rgba(23,32,42,.82);
}
html[data-theme="light"] #detailMyTourActions > button:hover:not(:disabled){
  border-color:rgba(47,70,78,.34);
  background:rgba(31,46,53,.10);
  color:rgba(23,32,42,.94);
}
html[data-theme="light"] #detailMyTourActions > button[aria-pressed="true"]{
  border-color:rgba(73,130,147,.38);
  background:rgba(73,130,147,.14);
  color:rgba(32,68,79,.94);
}
html[data-theme="light"] #detailMyTourActions > a{
  border-color:rgba(47,70,78,.22);
  background:rgba(31,46,53,.06);
  color:rgba(23,32,42,.82);
}
html[data-theme="light"] #detailMyTourActions > a:hover:not([aria-disabled="true"]){
  border-color:rgba(47,70,78,.34);
  background:rgba(31,46,53,.10);
  color:rgba(23,32,42,.94);
}
html[data-theme="light"] #detailMyTourActions > button > .action-icon[src*="share-1-svgrepo-com"],
html[data-theme="light"] #detailMyTourActions > button > .action-icon img[src*="share-1-svgrepo-com"]{
  filter:none;
}
html[data-theme="light"] .detail-links a{
  border-color:rgba(47,70,78,.22);
  background:rgba(31,46,53,.06);
  color:rgba(23,32,42,.82);
}
html[data-theme="light"] .detail-links a:hover{
  border-color:rgba(47,70,78,.34);
  background:rgba(31,46,53,.10);
  color:rgba(23,32,42,.94);
}
html[data-theme="light"] #detailMyTourActions .action-button:focus-visible,
html[data-theme="light"] .detail-links a:focus-visible{
  outline:2px solid rgba(47,70,78,.86);
  outline-offset:2px;
  box-shadow:none;
}
@media(max-width:480px){
  #detailMyTourActions{
    width:calc(100% + 40px);
    margin-inline:-20px;
  }
  #detailMyTourActions > .action-button{
    gap:8px;
    padding-inline:6px;
    font-size:11px;
  }
  #detailMyTourActions{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr) 44px;
  }
  #detailMyTourActions > .detail-action-share,
  #detailMyTourActions > #sharePlaceBtn{
    width:44px;
    min-width:44px;
    padding:0;
    gap:0;
  }
}

@media(max-width:420px){
  #detailMyTourActions{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:44px;
  }
  #detailMyTourActions > .action-button{
    padding-inline:12px;
    font-size:11px;
  }
  #detailMyTourActions > button,
  #detailMyTourActions > a{
    min-width:44px;
    width:100%;
    height:44px;
    min-height:44px;
  }
  #detailMyTourActions > .detail-action-share,
  #detailMyTourActions > #sharePlaceBtn{
    width:44px;
    min-width:44px;
  }
  #detailMyTourActions > .detail-action-map .action-label{
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
  }
}
