.detail-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.detail-overlay.open{opacity:1;pointer-events:auto}
.detail-panel{
  position:fixed;top:0;right:0;bottom:0;width:420px;max-width:92vw;
  background:var(--bg-card);z-index:210;transform:translateX(100%);
  transition:transform .3s ease;overflow-y:auto;padding:28px 24px;
  border-left:1px solid var(--border);
  display:flex;flex-direction:column;gap:16px;
}
.detail-panel.open{transform:translateX(0)}
.detail-close{
  position:absolute;top:14px;right:14px;font-size:1.4rem;
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:6px;transition:background .2s;
}
.detail-close:hover{background:var(--hover-bg)}
.detail-panel h2{font-size:1.2rem;font-weight:700;line-height:1.3;padding-right:36px}
.detail-meta{display:flex;flex-direction:column;gap:10px;font-size:.88rem}
.detail-meta .row{display:flex;align-items:center;gap:8px}
.badge{display:inline-flex;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:600;white-space:nowrap}
.badge-outline{border:1px solid var(--border)}
.detail-thumb{width:100%;border-radius:8px;overflow:hidden;margin-bottom:8px}
.detail-thumb img{width:100%;height:160px;object-fit:cover;display:block}
.detail-desc-wrap{margin:8px 0 12px}
.lang-tabs{display:flex;gap:4px;margin-bottom:6px}
.lang-tab{padding:4px 12px;border-radius:6px;font-size:.75rem;font-weight:600;border:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer;transition:all .2s}
.lang-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.lang-tab:hover:not(.active){background:var(--hover-bg)}
.detail-desc{font-size:.88rem;line-height:1.6;color:var(--text2);padding:10px 12px;background:var(--bg-card);border-radius:8px;border:1px solid var(--border)}
.detail-speakers{display:flex;flex-direction:column;gap:4px}
.detail-speakers span{font-size:.85rem}
.detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.detail-tags .tag{font-size:.75rem;padding:3px 8px;border-radius:12px;background:var(--accent);color:#fff;opacity:.8}
.detail-extra{font-size:.82rem;color:var(--text2);margin-top:8px;display:flex;flex-direction:column;gap:4px}
.detail-extra .extra-item{display:flex;align-items:center;gap:6px}
.detail-fav-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:10px;border-radius:8px;font-size:.9rem;font-weight:600;
  border:2px solid var(--accent);color:var(--accent);transition:all .2s;
  margin-top:auto;
}
.detail-fav-btn.on{background:var(--accent);color:#fff}
.detail-fav-btn:hover{opacity:.85}

/* Notes section */
.detail-notes{display:flex;flex-direction:column;gap:8px}
.detail-notes textarea{
  width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;
  background:var(--input-bg);font-size:.85rem;resize:vertical;min-height:60px;
  outline:none;transition:border .2s;
}
.detail-notes textarea:focus{border-color:var(--accent)}
.note-actions{display:flex;gap:8px}
.note-btn{
  padding:6px 16px;border-radius:6px;font-size:.82rem;font-weight:500;
  background:var(--accent);color:#fff;transition:opacity .2s;
}
.note-btn:hover{opacity:.85}
.note-btn-del{background:transparent;border:1px solid #EF4444;color:#EF4444}
.note-btn-del:hover{background:#EF444420}

/* Copy address icon */
.copy-addr{transition:opacity .2s}
.copy-addr:hover{opacity:1 !important}

/* Map Event Modal (centered) */
.map-modal-backdrop{
  position:fixed;inset:0;z-index:300;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .3s;
}
.map-modal-backdrop.open{opacity:1;pointer-events:auto}
.map-modal{
  width:560px;max-width:92vw;max-height:85vh;
  background:var(--bg-card);border-radius:16px;
  border:1px solid var(--border);
  box-shadow:0 20px 60px rgba(0,0,0,.4);
  position:relative;
  transform:scale(.92) translateY(20px);
  transition:transform .3s ease;
  display:flex;flex-direction:column;
}
.map-modal-backdrop.open .map-modal{transform:scale(1) translateY(0)}
.map-modal-back{
  position:absolute;top:12px;left:12px;z-index:2;
  font-size:1.3rem;width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  border-radius:8px;background:rgba(0,0,0,.3);color:#fff;
  transition:background .2s;cursor:pointer;
}
.map-modal-back:hover{background:rgba(0,0,0,.5)}
.map-modal.no-thumb .map-modal-back,
.map-modal.no-thumb .map-modal-close{background:var(--bg-sidebar);color:var(--text);border:1px solid var(--border)}
.map-modal.no-thumb .map-modal-back:hover,
.map-modal.no-thumb .map-modal-close:hover{background:var(--border)}
.map-modal.no-thumb .map-modal-scroll{padding-top:56px}
.map-modal-close{
  position:absolute;top:12px;right:12px;z-index:2;
  font-size:1.5rem;width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  border-radius:8px;background:rgba(0,0,0,.3);color:#fff;
  transition:background .2s;
}
.map-modal-close:hover{background:rgba(0,0,0,.5)}
.map-modal-scroll{
  overflow-y:auto;padding:28px 28px 20px;
  display:flex;flex-direction:column;gap:16px;
}
.map-modal-thumb{width:100%;border-radius:12px 12px 0 0;overflow:hidden;margin:-28px -28px 0;width:calc(100% + 56px)}
.map-modal-thumb img{width:100%;height:180px;object-fit:cover;display:block}
.map-modal h2{font-size:1.25rem;font-weight:700;line-height:1.3;padding-right:40px}
.map-modal-meta{display:flex;flex-direction:column;gap:10px;font-size:.88rem}
.map-modal-meta .row{display:flex;align-items:center;gap:8px}
.map-modal-desc-wrap{margin:4px 0 8px}
.mm-lang-tabs{display:flex;gap:4px;margin-bottom:6px}
.map-modal-desc{
  font-size:.88rem;line-height:1.7;color:var(--text2);
  padding:12px 14px;background:var(--bg-sidebar);
  border-radius:8px;border:1px solid var(--border);
  max-height:200px;overflow-y:auto;
}
.map-modal-speakers{display:flex;flex-direction:column;gap:4px}
.map-modal-speakers span{font-size:.85rem}
.map-modal-tags{display:flex;flex-wrap:wrap;gap:6px}
.map-modal-tags .tag{font-size:.75rem;padding:3px 8px;border-radius:12px;background:var(--accent);color:#fff;opacity:.8}
.map-modal-extra{font-size:.82rem;color:var(--text2);display:flex;flex-direction:column;gap:4px}
.map-modal-extra .extra-item{display:flex;align-items:center;gap:6px}
.mm-directions-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;border-radius:8px;font-size:.82rem;font-weight:600;
  background:#4285F4;color:#fff;text-decoration:none;transition:opacity .2s;
}
.mm-directions-btn:hover{opacity:.85;color:#fff}
