/* Step107 — desktop header, pro dating lightbox, safe previews and messenger polish. */

/* ---------- Desktop header ---------- */
@media (min-width: 1101px) {
  .site-header.portal-header .site-container { max-width: 1460px !important; padding-left: 24px !important; padding-right: 24px !important; }
  .site-header.portal-header .portal-header-row {
    min-height: 82px !important;
    display: grid !important;
    grid-template-columns: 88px minmax(0,1fr) auto !important;
    align-items: center !important;
    gap: 22px !important;
  }
  .site-header.portal-header .portal-logo,
  .site-header.portal-header .site-logo.portal-logo {
    width: 88px !important; min-width: 88px !important; max-width: 88px !important; height: 70px !important;
    align-items: center !important; justify-content: center !important;
  }
  .site-header.portal-header .portal-logo-img { width: 72px !important; height: 72px !important; max-width: 72px !important; object-fit: contain !important; }
  .portal-main-nav--step107 {
    min-width: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important;
    gap: 4px !important; flex-wrap: nowrap !important; white-space: nowrap !important;
  }
  .portal-main-nav--step107 > a,
  .portal-main-nav--step107 > details > summary {
    min-height: 38px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important;
    box-sizing: border-box !important; padding: 0 10px !important; border-radius: 10px !important;
    color: #252a31 !important; font-size: 13px !important; font-weight: 750 !important; line-height: 1 !important;
    letter-spacing: -.15px !important; text-decoration: none !important; list-style: none !important; cursor: pointer !important;
  }
  .portal-main-nav--step107 > a::after { display: none !important; }
  .portal-main-nav--step107 > a:hover,
  .portal-main-nav--step107 > details > summary:hover,
  .portal-main-nav--step107 > details[open] > summary { background: #f4f6f8 !important; color: #111827 !important; }
  .portal-main-nav--step107 .portal-dating-link { color: #d72848 !important; background: #fff3f6 !important; }
  .portal-main-nav--step107 .portal-dating-link:hover { background: #ffe7ed !important; }
  .portal-main-nav--step107 .nav-dropdown { position: relative !important; }
  .portal-main-nav--step107 .nav-dropdown > summary::after { margin-left: 5px !important; font-size: 10px !important; }
  .portal-main-nav--step107 .nav-dropdown-menu {
    top: calc(100% + 10px) !important; left: 0 !important; min-width: 215px !important; padding: 8px !important;
    border: 1px solid #e7eaf0 !important; border-radius: 16px !important; background: rgba(255,255,255,.985) !important;
    box-shadow: 0 18px 50px rgba(15,23,42,.14) !important;
  }
  .portal-main-nav--step107 .nav-dropdown-menu a {
    display: flex !important; min-height: 40px !important; align-items: center !important; padding: 8px 11px !important;
    border-radius: 10px !important; font-size: 14px !important; font-weight: 650 !important;
  }
  .portal-main-nav--step107 .nav-dropdown-menu a:hover { background: #f5f7f9 !important; }
  .portal-more-secondary { color: #697386 !important; font-size: 13px !important; }
  .portal-header-actions { gap: 7px !important; }
  .portal-icon-btn, .portal-menu-btn,
  .header-round-btn.portal-icon-btn, .burger-btn.portal-menu-btn { width: 40px !important; height: 40px !important; min-width: 40px !important; }
}
@media (min-width:1101px) and (max-width:1280px) {
  .site-header.portal-header .portal-header-row { grid-template-columns: 76px minmax(0,1fr) auto !important; gap: 10px !important; }
  .site-header.portal-header .portal-logo, .site-header.portal-header .site-logo.portal-logo { width:76px !important; min-width:76px !important; max-width:76px !important; }
  .site-header.portal-header .portal-logo-img { width:64px !important; height:64px !important; }
  .portal-main-nav--step107 > a, .portal-main-nav--step107 > details > summary { padding:0 7px !important; font-size:12px !important; }
}

/* ---------- Dating pro lightbox ---------- */
.dating-photo-lightbox--pro {
  position: fixed !important; inset: 0 !important; z-index: 100000 !important; display: grid !important;
  grid-template-rows: auto minmax(0,1fr) auto auto !important; padding: 0 !important;
  background: rgba(5,8,14,.97) !important; color: #fff !important; overscroll-behavior: contain !important;
  touch-action: none !important; backdrop-filter: blur(14px) !important;
}
.dating-photo-lightbox--pro[hidden] { display:none !important; }
.dating-photo-lightbox__topbar {
  min-height: 64px !important; display:flex !important; align-items:center !important; justify-content:space-between !important;
  gap:16px !important; padding: max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left)) !important;
  background: linear-gradient(180deg,rgba(0,0,0,.52),rgba(0,0,0,0)) !important; z-index:5 !important;
}
.dating-photo-lightbox__identity { min-width:0 !important; display:flex !important; align-items:baseline !important; gap:12px !important; }
.dating-photo-lightbox__identity strong { max-width:min(55vw,520px) !important; overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; font-size:17px !important; }
.dating-photo-lightbox__identity span { color:#cbd5e1 !important; font-size:13px !important; font-weight:700 !important; }
.dating-photo-lightbox__tools { display:flex !important; align-items:center !important; gap:7px !important; }
.dating-photo-lightbox__tools button,
.dating-photo-lightbox--pro .dating-photo-lightbox__close {
  position:static !important; transform:none !important; width:42px !important; height:42px !important; min-width:42px !important;
  display:grid !important; place-items:center !important; padding:0 !important; border:1px solid rgba(255,255,255,.14) !important;
  border-radius:12px !important; background:rgba(31,41,55,.62) !important; color:#fff !important; font-size:20px !important;
  line-height:1 !important; backdrop-filter:blur(14px) !important; cursor:pointer !important;
}
.dating-photo-lightbox__tools [data-lightbox-reset] { width:auto !important; min-width:58px !important; padding:0 9px !important; font-size:12px !important; font-weight:800 !important; }
.dating-photo-lightbox--pro .dating-photo-lightbox__close { font-size:30px !important; border-radius:50% !important; }
.dating-photo-lightbox__stage { min-height:0 !important; position:relative !important; display:grid !important; place-items:center !important; overflow:hidden !important; touch-action:none !important; }
.dating-photo-lightbox--pro .dating-photo-lightbox__figure { width:100% !important; height:100% !important; margin:0 !important; display:grid !important; place-items:center !important; overflow:hidden !important; }
.dating-photo-lightbox--pro .dating-photo-lightbox__figure img {
  max-width:calc(100vw - 150px) !important; max-height:calc(100vh - 190px) !important; width:auto !important; height:auto !important;
  object-fit:contain !important; border-radius:8px !important; box-shadow:0 20px 70px rgba(0,0,0,.35) !important;
  transform-origin:center center !important; will-change:transform !important; cursor:zoom-in !important; user-select:none !important;
}
.dating-photo-lightbox--pro .dating-photo-lightbox__nav {
  top:50% !important; transform:translateY(-50%) !important; width:52px !important; height:72px !important; border:1px solid rgba(255,255,255,.13) !important;
  border-radius:16px !important; background:rgba(17,24,39,.54) !important; color:#fff !important; font-size:42px !important; backdrop-filter:blur(12px) !important;
}
.dating-photo-lightbox--pro .dating-photo-lightbox__nav:hover { background:rgba(55,65,81,.78) !important; }
.dating-photo-lightbox--pro .dating-photo-lightbox__nav--prev { left:20px !important; }
.dating-photo-lightbox--pro .dating-photo-lightbox__nav--next { right:20px !important; }
.dating-photo-lightbox__thumbs {
  min-height:78px !important; max-width:100vw !important; display:flex !important; justify-content:center !important; align-items:center !important; gap:8px !important;
  padding:8px max(16px,env(safe-area-inset-right)) !important; overflow-x:auto !important; scrollbar-width:none !important; touch-action:pan-x !important;
}
.dating-photo-lightbox__thumbs::-webkit-scrollbar { display:none !important; }
.dating-photo-lightbox__thumbs button { flex:0 0 auto !important; width:54px !important; height:62px !important; padding:2px !important; border:2px solid transparent !important; border-radius:10px !important; background:rgba(255,255,255,.08) !important; opacity:.55 !important; overflow:hidden !important; cursor:pointer !important; }
.dating-photo-lightbox__thumbs button.is-active { opacity:1 !important; border-color:#fff !important; transform:translateY(-2px) !important; }
.dating-photo-lightbox__thumbs img { width:100% !important; height:100% !important; object-fit:cover !important; border-radius:6px !important; }
.dating-photo-lightbox__hint { padding:0 16px max(9px,env(safe-area-inset-bottom)) !important; color:#94a3b8 !important; font-size:11px !important; text-align:center !important; }
body.has-dating-lightbox { overflow:hidden !important; }

/* ---------- Messenger polish ---------- */
.messenger-page { width:min(100%, 920px) !important; margin-inline:auto !important; }
.messenger-chat-page { width:min(100%, 920px) !important; }
.messenger-thread { padding-inline:6px !important; }
.messenger-message__bubble { position:relative !important; overflow:visible !important; }
.messenger-message__top { min-height:24px !important; gap:8px !important; }
.messenger-message-tools { margin-left:auto !important; display:flex !important; align-items:center !important; }
.messenger-message-menu--step107 { position:relative !important; margin:0 !important; padding:0 !important; }
.messenger-message-menu--step107 > summary {
  width:32px !important; height:32px !important; min-width:32px !important; display:grid !important; place-items:center !important;
  padding:0 0 6px !important; border:0 !important; border-radius:50% !important; background:transparent !important;
  color:#64748b !important; font-size:24px !important; line-height:1 !important; cursor:pointer !important; list-style:none !important;
}
.messenger-message-menu--step107 > summary::-webkit-details-marker { display:none !important; }
.messenger-message-menu--step107[open] > summary { background:rgba(100,116,139,.13) !important; color:#334155 !important; }
.messenger-message-menu--step107 .messenger-message-menu__panel {
  position:absolute !important; top:36px !important; right:0 !important; left:auto !important; z-index:80 !important;
  width:210px !important; padding:6px !important; border:1px solid #e2e8f0 !important; border-radius:14px !important;
  background:rgba(255,255,255,.985) !important; box-shadow:0 16px 45px rgba(15,23,42,.18) !important; backdrop-filter:blur(16px) !important;
}
.messenger-message.is-other .messenger-message-menu--step107 .messenger-message-menu__panel { left:0 !important; right:auto !important; }
.messenger-message-menu--step107 .messenger-message-menu__panel button,
.messenger-message-menu--step107 .messenger-message-menu__panel form button {
  display:grid !important; grid-template-columns:26px minmax(0,1fr) !important; align-items:center !important; gap:8px !important;
  width:100% !important; min-height:42px !important; margin:0 !important; padding:8px 10px !important; border:0 !important; border-radius:9px !important;
  background:transparent !important; color:#1f2937 !important; font:inherit !important; font-size:14px !important; font-weight:650 !important; text-align:left !important; cursor:pointer !important;
}
.messenger-message-menu--step107 .messenger-message-menu__panel form { margin:0 !important; }
.messenger-message-menu--step107 .messenger-message-menu__panel button:hover { background:#f3f6f9 !important; }
.messenger-message-menu--step107 .messenger-message-menu__panel button.is-danger { color:#c62828 !important; }
.messenger-message-menu--step107 .messenger-message-menu__panel button.is-danger:hover { background:#fff0f0 !important; }
.messenger-message-menu--step107 .messenger-message-menu__panel button > span { display:grid !important; place-items:center !important; font-size:17px !important; }
.messenger-message__text { overflow-wrap:anywhere !important; word-break:normal !important; }
.messenger-message__text p { margin:0 0 4px !important; }
.messenger-message__text p:last-child { margin-bottom:0 !important; }
.messenger-dialog-card__preview { overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; }
.messenger-reaction-counts { margin-bottom:-7px !important; }
.messenger-composer { max-width:920px !important; margin-inline:auto !important; }
.messenger-editor-card { min-width:0 !important; }
.messenger-editor { min-width:0 !important; overflow-wrap:anywhere !important; }

/* General overflow guards for user-facing cards */
.blog-feed-card, .dating-page, .messenger-page, .messenger-dialog-card, .messenger-chat-header { min-width:0 !important; max-width:100% !important; box-sizing:border-box !important; }
.blog-feed-card__body p { overflow-wrap:anywhere !important; }

@media (max-width:760px) {
  .dating-photo-lightbox__topbar { min-height:56px !important; padding-left:12px !important; padding-right:10px !important; }
  .dating-photo-lightbox__identity strong { max-width:45vw !important; font-size:14px !important; }
  .dating-photo-lightbox__tools { gap:4px !important; }
  .dating-photo-lightbox__tools [data-lightbox-zoom-out],
  .dating-photo-lightbox__tools [data-lightbox-zoom-in],
  .dating-photo-lightbox__tools [data-lightbox-fullscreen] { display:none !important; }
  .dating-photo-lightbox__tools [data-lightbox-reset] { min-width:50px !important; height:38px !important; }
  .dating-photo-lightbox--pro .dating-photo-lightbox__close { width:40px !important; height:40px !important; min-width:40px !important; }
  .dating-photo-lightbox--pro .dating-photo-lightbox__figure img { max-width:100vw !important; max-height:calc(100vh - 154px) !important; border-radius:0 !important; box-shadow:none !important; }
  .dating-photo-lightbox--pro .dating-photo-lightbox__nav { display:none !important; }
  .dating-photo-lightbox__thumbs { min-height:64px !important; justify-content:flex-start !important; padding-top:5px !important; padding-bottom:5px !important; }
  .dating-photo-lightbox__thumbs button { width:44px !important; height:50px !important; border-radius:8px !important; }
  .dating-photo-lightbox__hint { display:none !important; }
  .messenger-page { width:100% !important; }
  .messenger-thread { padding-inline:0 !important; }
  .messenger-message__bubble { max-width:min(84vw, 470px) !important; }
  .messenger-message-menu--step107 .messenger-message-menu__panel { position:fixed !important; left:12px !important; right:12px !important; top:auto !important; bottom:max(16px,env(safe-area-inset-bottom)) !important; width:auto !important; padding:8px !important; border-radius:18px !important; z-index:100002 !important; }
  .messenger-message-menu--step107 .messenger-message-menu__panel button,
  .messenger-message-menu--step107 .messenger-message-menu__panel form button { min-height:48px !important; font-size:16px !important; }
  .messenger-composer { bottom:4px !important; grid-template-columns:minmax(0,1fr) auto auto !important; }
}

/* Final Step107 overrides */
.dating-photo-lightbox--pro { width:100vw !important; height:100dvh !important; place-items:stretch !important; }
.dating-photo-lightbox__topbar, .dating-photo-lightbox__stage, .dating-photo-lightbox__thumbs, .dating-photo-lightbox__hint { width:100% !important; box-sizing:border-box !important; }

.messenger-actions-menu__panel {
  width:230px !important; padding:7px !important; border:1px solid #e2e8f0 !important; border-radius:15px !important;
  background:rgba(255,255,255,.99) !important; box-shadow:0 18px 48px rgba(15,23,42,.16) !important;
}
.messenger-actions-menu__panel a,
.messenger-actions-menu__panel button {
  width:100% !important; min-height:42px !important; padding:9px 11px !important; border:0 !important; border-radius:9px !important;
  background:transparent !important; text-align:left !important; font-size:14px !important; font-weight:650 !important;
}
.messenger-actions-menu__panel a:hover,
.messenger-actions-menu__panel button:hover { background:#f3f6f9 !important; }
.messenger-editor-toolbar { flex-wrap:wrap !important; }

@media (max-width:760px) {
  .messenger-actions-menu__panel {
    position:fixed !important; left:12px !important; right:12px !important; bottom:max(16px,env(safe-area-inset-bottom)) !important;
    top:auto !important; width:auto !important; max-width:none !important; border-radius:18px !important; z-index:100002 !important;
  }
  .messenger-editor-toolbar { gap:3px !important; padding:5px 7px 0 !important; }
  .messenger-editor-toolbar button { min-height:28px !important; padding:4px 7px !important; font-size:12px !important; }
}
