/* EV v311 — chat list scrolling, explicit opening feedback, and cross-device swipe support. */

/* The document owns chat-list scrolling. The list itself must never become a trapped gesture surface. */
body.ev-chat-list-page-body{
  min-height:100dvh!important;
  height:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
body.ev-chat-list-page-body #ev-app-main,
body.ev-chat-list-page-body #ev-app-main>.ev-user-main-inner,
body.ev-chat-list-page-body #ev-app-main>.max-w-5xl,
body.ev-chat-list-page-body .ev-chat-list-page{
  position:relative!important;
  inset:auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
body.ev-admin-chat-list-page{
  min-height:100dvh!important;
  height:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
body.ev-admin-chat-list-page .ev-admin-shell,
body.ev-admin-chat-list-page .ev-main,
body.ev-admin-chat-list-page .ev-content,
body.ev-admin-chat-list-page .hsc-chat-page{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch!important;
}
body.ev-chat-list-page-body [data-chat-row],
body.ev-admin-chat-list-page [data-chat-row]{
  touch-action:pan-y!important;
}

/* A clear, stable response when a conversation is selected. */
[data-chat-row].is-opening-chat{
  position:relative!important;
  isolation:isolate!important;
  border-color:#0ea5e9!important;
  background:linear-gradient(90deg,rgba(14,165,233,.20),rgba(14,165,233,.07),var(--ev-card,#fff))!important;
  box-shadow:0 0 0 3px rgba(14,165,233,.18),0 16px 38px rgba(14,165,233,.18)!important;
  animation:ev311ChatOpeningPulse .72s ease-in-out infinite alternate!important;
}
[data-chat-row].is-opening-chat::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.42) 48%,transparent 76%);
  transform:translateX(-115%);
  animation:ev311ChatOpeningSheen 1s linear infinite;
}
.ev-opening-chat-status{
  position:absolute!important;
  right:38px!important;
  bottom:8px!important;
  z-index:6!important;
  display:inline-flex!important;
  align-items:center!important;
  min-height:22px!important;
  padding:3px 8px!important;
  border-radius:999px!important;
  background:#0ea5e9!important;
  color:#fff!important;
  font-size:9.5px!important;
  line-height:1!important;
  font-weight:1000!important;
  letter-spacing:.01em!important;
  box-shadow:0 7px 18px rgba(14,165,233,.26)!important;
  pointer-events:none!important;
  white-space:nowrap!important;
}
html.dark .ev-opening-chat-status{background:#38bdf8!important;color:#082f49!important}
@keyframes ev311ChatOpeningPulse{from{transform:scale(1)}to{transform:scale(.992)}}
@keyframes ev311ChatOpeningSheen{to{transform:translateX(115%)}}

/* Keep the conversation vertical while a message itself follows a left-swipe. */
body.ev-private-clean-page .evdm-msgs,
body.ev-admin-direct-clean-page .evdm-msgs,
body.ev-escrow-private-layout #chatBox,
body.ev-escrow-admin-chat-page #chatBox{
  overflow-x:hidden!important;
  overscroll-behavior-x:none!important;
  touch-action:pan-y!important;
}
body.ev-private-clean-page .evdm-row[data-id],
body.ev-admin-direct-clean-page .evdm-row[data-id],
body.ev-escrow-private-layout [data-escrow-mid],
body.ev-escrow-admin-chat-page [data-escrow-mid]{
  max-width:100%!important;
  touch-action:pan-y!important;
  -webkit-user-select:none;
  user-select:none;
}
body.ev-private-clean-page .evdm-row[data-id] .evdm-text,
body.ev-admin-direct-clean-page .evdm-row[data-id] .evdm-text,
body.ev-escrow-private-layout [data-escrow-mid] .evdm-text,
body.ev-escrow-admin-chat-page [data-escrow-mid] .evdm-text{
  -webkit-user-select:text;
  user-select:text;
}


/* EV v312 — iPhone Safari/PWA private chat visibility and viewport hardening. */
html{min-height:100%;}
body.ev-private-clean-page,body.ev-admin-direct-clean-page{
  min-height:100vh!important;
  min-height:-webkit-fill-available!important;
  overflow:hidden!important;
}
body.ev-private-clean-page #ev-app-main,
body.ev-admin-direct-clean-page #ev-app-main,
body.ev-admin-direct-clean-page .ev-admin-shell,
body.ev-admin-direct-clean-page .ev-main,
body.ev-admin-direct-clean-page .ev-content,
body.ev-private-clean-page .evdm-shell,
body.ev-admin-direct-clean-page .evdm-shell{
  visibility:visible!important;
  opacity:1!important;
  height:100vh!important;
  height:100svh!important;
  height:100dvh!important;
  min-height:-webkit-fill-available!important;
  min-width:0!important;
  overflow:hidden!important;
}
body.ev-private-clean-page .evdm-msgs,body.ev-admin-direct-clean-page .evdm-msgs{
  visibility:visible!important;opacity:1!important;min-height:80px!important;
  overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;
}
@supports (-webkit-touch-callout:none){
  body.ev-private-clean-page,body.ev-admin-direct-clean-page{height:-webkit-fill-available!important;}
  body.ev-private-clean-page #ev-app-main,body.ev-admin-direct-clean-page #ev-app-main,
  body.ev-private-clean-page .evdm-shell,body.ev-admin-direct-clean-page .evdm-shell{height:-webkit-fill-available!important;}
}


/* EV v346: stable homepage press cards and password-eye positioning. */
body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-proof{width:100%;min-width:0;overflow:hidden;contain:layout paint;}
body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-heading{margin:0 0 12px;font-size:13px;font-weight:900;line-height:1.35;color:var(--ev-muted,#64748b);}
body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-grid{width:100%;min-width:0;align-items:stretch;}
body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-item{display:flex!important;min-width:0!important;width:100%!important;min-height:126px!important;padding:14px!important;box-sizing:border-box!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:9px!important;overflow:hidden!important;border:1px solid var(--ev-border,#e2e8f0)!important;border-radius:18px!important;background:var(--ev-card,#fff)!important;text-align:center!important;text-decoration:none!important;contain:layout paint!important;}
body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-item img{display:block!important;width:100%!important;max-width:160px!important;height:64px!important;max-height:64px!important;min-height:0!important;object-fit:contain!important;object-position:center!important;flex:0 0 64px!important;margin:0 auto!important;}
body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-item span{display:block!important;width:100%!important;font-size:11px!important;line-height:1.2!important;font-weight:900!important;color:#0369a1!important;white-space:normal!important;}
@media(max-width:640px){body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-item{min-height:112px!important;padding:11px!important}body:not(.ev-user):not(.ev-admin) .ev-home-shell .ev-press-item img{height:54px!important;max-height:54px!important;flex-basis:54px!important;max-width:138px!important}}
#togglePass{position:absolute!important;right:9px!important;top:50%!important;transform:translateY(-50%)!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;margin:0!important;padding:0!important;border:0!important;border-radius:12px!important;display:grid!important;place-items:center!important;line-height:0!important;z-index:5!important;transition:background-color .12s ease!important;touch-action:manipulation!important;}
#togglePass svg{display:block!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;margin:0!important;pointer-events:none!important;}
#password{padding-right:56px!important;}

/* EV v346: mentions must look active, including inside the edit modal. */
.ev-text .mention,.hvc-text .mention{display:inline-flex!important;align-items:center!important;max-width:100%!important;margin:0 2px!important;padding:2px 7px!important;border:1px solid rgba(14,165,233,.48)!important;border-radius:999px!important;background:rgba(14,165,233,.10)!important;color:#0369a1!important;font-weight:950!important;line-height:1.25!important;text-decoration:none!important;vertical-align:baseline!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)!important;}
html.dark .ev-text .mention,html.dark .hvc-text .mention{border-color:rgba(125,211,252,.58)!important;background:rgba(56,189,248,.17)!important;color:#bae6fd!important;}
#evVillageModalInput{position:relative!important;}
#evVillageModalMention{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;max-height:190px;overflow:auto;}
.ev-edit-media-preview-list{display:grid;gap:9px;margin-top:10px;}
.ev-edit-media-preview-item{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;padding:8px;border:1px solid var(--ev-border,#e2e8f0);border-radius:14px;background:rgba(148,163,184,.08);}
.ev-edit-media-preview-item img,.ev-edit-media-preview-item video{display:block;width:64px;height:54px;object-fit:cover;border-radius:10px;background:#0f172a0d;}
.ev-edit-media-preview-item audio{width:64px;max-width:64px;}
.ev-edit-media-preview-item label,.ev-edit-media-remove-all{display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:850;line-height:1.35;cursor:pointer;}
.ev-edit-media-remove-all{margin-top:10px;padding:10px;border:1px solid rgba(239,68,68,.28);border-radius:13px;background:rgba(239,68,68,.07);color:#b91c1c;}

/* EV v346: direct-support header menu and Scam Alert dialog. */
.evdm-head-menu{width:auto!important;min-width:70px!important;padding:0 12px!important;gap:6px!important;font-size:12px!important;white-space:nowrap!important;}
.ev-scam-menu-btn{display:flex;width:100%;align-items:center;gap:8px;border:0;background:transparent;padding:10px 8px;text-align:left;font:inherit;font-weight:900;color:inherit;cursor:pointer;border-radius:12px;}
.ev-scam-menu-btn:hover{background:rgba(14,165,233,.10);}
.ev-scam-modal-backdrop{position:fixed;inset:0;z-index:1000002;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(2,6,23,.72);backdrop-filter:blur(5px);}
.ev-scam-modal-backdrop.show{display:flex;}
.ev-scam-modal{width:min(520px,96vw);max-height:88dvh;overflow:auto;border-radius:24px;padding:20px;background:var(--ev-card,#fff);color:var(--ev-text,#0f172a);border:1px solid var(--ev-border,#e2e8f0);box-shadow:0 32px 90px rgba(2,6,23,.35);}
.ev-scam-modal h3{margin:0;font-size:20px;font-weight:1000;}.ev-scam-modal p{margin:6px 0 0;color:var(--ev-muted,#64748b);font-size:12px;line-height:1.5;}
.ev-scam-modal label{display:block;margin-top:13px;font-size:12px;font-weight:950;}.ev-scam-modal input,.ev-scam-modal select,.ev-scam-modal textarea{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid var(--ev-border,#e2e8f0);border-radius:14px;background:var(--ev-card,#fff);color:var(--ev-text,#0f172a);outline:none;box-sizing:border-box;}.ev-scam-modal textarea{min-height:108px;resize:vertical;}
.ev-scam-modal-result{display:none;margin-top:14px;padding:12px;border-radius:14px;border:1px solid var(--ev-border,#e2e8f0);font-size:12px;line-height:1.5;white-space:pre-wrap;}.ev-scam-modal-result.show{display:block;}.ev-scam-modal-result.ok{background:rgba(16,185,129,.09);border-color:rgba(16,185,129,.35);}.ev-scam-modal-result.bad{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.32);}
.ev-scam-modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px;}.ev-scam-modal-actions button{min-height:42px;padding:0 16px;border-radius:14px;border:1px solid var(--ev-border,#e2e8f0);font-weight:950;cursor:pointer;}.ev-scam-modal-cancel{background:transparent;color:inherit;}.ev-scam-modal-submit{background:#b91c1c!important;color:#fff!important;border-color:#b91c1c!important;}

.ev-scam-current,.ev-scam-history-item,.ev-scam-no-history{margin-top:10px;padding:11px;border-radius:12px;background:rgba(148,163,184,.10);border:1px solid rgba(148,163,184,.22)}
.ev-scam-current>span,.ev-scam-history>strong{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:1000;color:#b91c1c}
.ev-scam-current b,.ev-scam-history-item b{display:block;margin-top:4px;font-size:12px}.ev-scam-current small,.ev-scam-history-item small{display:block;margin-top:2px;color:var(--ev-muted,#64748b);font-weight:850}.ev-scam-current p,.ev-scam-history-item p{margin:6px 0 0!important;color:var(--ev-text,#0f172a)!important;white-space:pre-wrap}
.ev-scam-history{margin-top:12px}.ev-scam-history-item span{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:1000;text-transform:uppercase;letter-spacing:.06em}.ev-scam-history-item span.enforced{background:rgba(239,68,68,.12);color:#b91c1c}.ev-scam-history-item span.removed{background:rgba(16,185,129,.12);color:#047857}

/* EV v348: exactly one responsive login password visibility control. */
#password::-ms-reveal,#password::-ms-clear{display:none!important;width:0!important;height:0!important;}
#password::-webkit-credentials-auto-fill-button{visibility:hidden!important;display:none!important;pointer-events:none!important;position:absolute!important;right:0!important;}
#togglePass .ev-pass-eye{display:block!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;pointer-events:none!important;}
