*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#08111f;color:#eaf3ff}button,input{font:inherit}.hidden{display:none!important}.auth-body{display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#173b67,#08111f 55%)}.auth-card{width:min(420px,92vw);background:rgba(12,27,48,.96);border:1px solid #2a5687;border-radius:24px;padding:34px;box-shadow:0 25px 80px #0008;text-align:center}.brand-orb,.big-logo{margin:auto;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#44d46b,#28a0ff);font-weight:900;box-shadow:0 0 35px #31b8ff66}.brand-orb{width:84px;height:84px;font-size:28px}.auth-card h1{margin:18px 0 4px}.subtitle{opacity:.72}.auth-card form{display:grid;gap:10px;text-align:left;margin-top:25px}.auth-card input,.add-contact input,.composer input{border:1px solid #31516f;background:#0a1727;color:white;padding:13px 14px;border-radius:12px;outline:none}.auth-card input:focus,.composer input:focus{border-color:#39aaff}.auth-card button,.add-contact button,.composer>button{border:0;border-radius:12px;background:linear-gradient(135deg,#44d46b,#2196f3);font-weight:800;padding:13px;cursor:pointer}.link{display:inline-block;margin-top:18px;color:#72c8ff}.error{padding:11px;background:#6f1d2f;border-radius:10px}.messenger-shell{height:100vh;display:grid;grid-template-columns:330px 1fr}.sidebar{border-right:1px solid #223b55;background:#0c1726;display:flex;flex-direction:column}.profile{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid #20374f}.profile .avatar{font-size:32px}.profile div:nth-child(2){display:flex;flex-direction:column;min-width:0}.profile span{font-size:12px;opacity:.75;margin-top:3px}.logout{margin-left:auto;color:#8ecfff;text-decoration:none;font-size:13px}.brand-mini{font-weight:900;letter-spacing:2px;padding:16px 18px 5px;color:#70d7ff}.add-contact{display:flex;gap:8px;padding:12px 16px}.add-contact input{min-width:0;flex:1}.add-contact button{width:44px}.contacts{overflow:auto;padding:4px 9px 18px}.contact{width:100%;display:flex;gap:10px;align-items:center;text-align:left;border:0;background:transparent;color:white;padding:11px;border-radius:12px;cursor:pointer}.contact:hover,.contact.active{background:#172b42}.contact span:last-child{display:flex;flex-direction:column;min-width:0}.contact small{opacity:.62;margin-top:3px}.presence{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.presence.on{background:#42df68;box-shadow:0 0 10px #42df68}.presence.off{background:#596779}.no-contacts{padding:20px;opacity:.6;text-align:center}.chat{position:relative;min-width:0;display:grid;grid-template-rows:auto 1fr auto auto;background:linear-gradient(180deg,#0c1a2a,#07101b)}.chat-header{height:74px;border-bottom:1px solid #20374f;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.chat-header>div:first-of-type{display:flex;flex-direction:column}.chat-header span{font-size:12px;opacity:.65;margin-top:4px}.header-actions{display:flex;gap:8px}.header-actions button{font-size:23px;background:#13283f;border:1px solid #2a4c6d;color:white;border-radius:12px;padding:8px 12px;cursor:pointer}.messages{overflow:auto;padding:22px;display:flex;flex-direction:column;gap:10px}.empty-state{margin:auto;text-align:center;opacity:.75}.big-logo{width:110px;height:110px;font-size:38px}.msg{display:flex}.msg.mine{justify-content:flex-end}.bubble{max-width:min(620px,75%);padding:11px 13px;border-radius:17px;background:#172e48;line-height:1.35;overflow:hidden}.mine .bubble{background:#1268a6}.message-text{white-space:pre-wrap;overflow-wrap:anywhere}.bubble>.msg-time{display:block;font-size:10px;opacity:.55;margin-top:6px;text-align:right}.typing{height:22px;padding:0 22px;font-size:12px;opacity:.65}.composer{display:flex;gap:9px;padding:12px 18px;border-top:1px solid #20374f;align-items:center;background:#081421}.composer input[type=text],.composer>input:not([type]){flex:1;min-width:0}.composer #messageInput{flex:1;min-width:0}.composer>button#sendBtn{width:58px;flex:0 0 auto}.composer-tools{display:flex;gap:7px;flex:0 0 auto}.tool-btn{width:44px;height:44px;border:1px solid #31516f;border-radius:12px;background:#122943;color:white;font-size:21px;cursor:pointer;display:grid;place-items:center}.tool-btn:hover:not(:disabled){background:#1a3a5c;border-color:#4c8bbc}.tool-btn:disabled{opacity:.35;cursor:not-allowed}.file-card{display:flex;align-items:center;gap:11px;color:white;text-decoration:none;background:#ffffff12;border:1px solid #ffffff24;border-radius:12px;padding:10px 12px;min-width:min(360px,64vw)}.file-card:hover{background:#ffffff1d}.file-icon{font-size:30px}.file-info{display:flex;flex-direction:column;min-width:0}.file-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-info small{opacity:.65;margin-top:3px}.msg-image{display:block;max-width:min(420px,64vw);max-height:430px;border-radius:12px;object-fit:contain;background:#0004}.image-link{display:block}.file-caption{display:block;color:#dff4ff;text-decoration:none;margin-top:7px;font-size:12px;max-width:min(420px,64vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-audio{display:block;max-width:min(360px,64vw)}.msg-video{display:block;max-width:min(420px,64vw);max-height:360px;border-radius:12px;background:#000}.wink-panel{position:fixed;right:24px;bottom:86px;background:#10243a;border:1px solid #315d83;border-radius:18px;padding:12px;display:grid;grid-template-columns:repeat(3,95px);gap:8px;z-index:80;box-shadow:0 20px 60px #000a}.wink-panel button{border:0;background:#193450;color:white;border-radius:12px;min-height:78px;font-size:28px;cursor:pointer}.wink-panel button span{display:block;font-size:10px;margin-top:7px}.toast{position:fixed;top:20px;right:20px;background:#0e2942;border:1px solid #3b75a3;padding:13px 16px;border-radius:12px;opacity:0;transform:translateY(-10px);pointer-events:none;transition:.2s;z-index:150}.toast.show{opacity:1;transform:translateY(0)}.effect-layer{position:fixed;inset:0;z-index:120;pointer-events:none;display:none;overflow:hidden}.effect-layer.show{display:block;background:#0002}.wink-scene{width:100%;height:100%;position:relative;display:grid;place-items:center}.wink-title{position:absolute;bottom:12%;font-size:clamp(38px,8vw,110px);font-weight:1000;text-shadow:0 8px 25px #000}.fart-man{font-size:clamp(160px,30vw,420px);animation:walkIn 2.5s ease both}.fart-cloud{position:absolute;font-size:clamp(80px,18vw,250px);left:52%;top:48%;animation:fartCloud 2.5s ease both}.water-balloon{position:absolute;top:-20%;font-size:180px;animation:dropBalloon 1.2s ease-in forwards}.splash{font-size:clamp(120px,30vw,420px);opacity:0;animation:splash 1.4s 1s ease forwards}.heart-rain,.party{font-size:clamp(70px,12vw,160px);animation:party 3s ease both;text-align:center}.boom{font-size:clamp(180px,35vw,520px);animation:boom 1.2s ease both}.camera-modal{position:fixed;inset:0;z-index:200;background:#000c;display:grid;place-items:center;padding:20px}.camera-card{width:min(860px,96vw);background:#0e1d2e;border:1px solid #315d83;border-radius:22px;box-shadow:0 30px 100px #000;overflow:hidden}.camera-top{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #25435f}.camera-top button{border:0;background:#263d55;color:white;border-radius:10px;width:38px;height:38px;cursor:pointer}.camera-view{height:min(64vh,560px);background:#02070c;display:grid;place-items:center;position:relative;overflow:hidden}.camera-view video{width:100%;height:100%;object-fit:contain;background:#000}.camera-fallback{text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center;padding:30px;color:#d7eaff}.camera-fallback>div{font-size:80px}.camera-fallback span{opacity:.7;max-width:480px}.camera-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding:14px}.camera-actions button{border:1px solid #315d83;background:#17334f;color:white;border-radius:12px;padding:11px 15px;cursor:pointer}.camera-actions .capture-btn{background:linear-gradient(135deg,#44d46b,#2196f3);border:0;font-weight:800}.upload-overlay{position:fixed;inset:0;z-index:230;background:#0009;display:grid;place-items:center}.upload-box{background:#10243a;border:1px solid #315d83;border-radius:18px;padding:22px 28px;display:flex;align-items:center;gap:14px;box-shadow:0 20px 70px #000}.upload-spinner{width:28px;height:28px;border:3px solid #ffffff38;border-top-color:#6bd7ff;border-radius:50%;animation:spin .75s linear infinite}.nudge-flash{position:fixed;inset:0;pointer-events:none;z-index:140;opacity:0;border:0 solid #7ee8ff}.nudge-flash.show{animation:nudgeFlash 1.4s steps(2,end) both}
@keyframes walkIn{0%{transform:translateX(-100vw) rotate(-6deg)}60%{transform:translateX(-5vw)}100%{transform:translateX(8vw)}}@keyframes fartCloud{0%,35%{opacity:0;transform:scale(.2)}55%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateX(40vw) scale(2)}}@keyframes dropBalloon{0%{transform:translateY(0) rotate(0)}100%{transform:translateY(55vh) rotate(40deg);opacity:0}}@keyframes splash{0%,20%{opacity:0;transform:scale(.2)}50%{opacity:1;transform:scale(1.2)}100%{opacity:0;transform:scale(1.8)}}@keyframes party{0%{transform:scale(.2) rotate(-20deg);opacity:0}35%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:0}}@keyframes boom{0%{transform:scale(.1);opacity:0}45%{transform:scale(1.4);opacity:1}100%{transform:scale(2);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}
/* Sacode forte no estilo do MSN antigo: toda a interface, não só a conversa. */
@keyframes rogerMegaShake{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}4%{transform:translate3d(-28px,12px,0) rotate(-.7deg)}8%{transform:translate3d(28px,-14px,0) rotate(.7deg)}12%{transform:translate3d(-32px,-10px,0) rotate(-.8deg)}16%{transform:translate3d(31px,13px,0) rotate(.8deg)}20%{transform:translate3d(-27px,15px,0) rotate(-.6deg)}24%{transform:translate3d(29px,-15px,0) rotate(.6deg)}28%{transform:translate3d(-26px,-11px,0) rotate(-.5deg)}32%{transform:translate3d(27px,12px,0) rotate(.5deg)}36%{transform:translate3d(-23px,10px,0) rotate(-.45deg)}40%{transform:translate3d(24px,-10px,0) rotate(.45deg)}46%{transform:translate3d(-20px,-8px,0) rotate(-.4deg)}52%{transform:translate3d(20px,9px,0) rotate(.4deg)}58%{transform:translate3d(-17px,7px,0) rotate(-.3deg)}64%{transform:translate3d(17px,-7px,0) rotate(.3deg)}70%{transform:translate3d(-13px,-5px,0) rotate(-.2deg)}76%{transform:translate3d(13px,5px,0) rotate(.2deg)}82%{transform:translate3d(-9px,4px,0)}88%{transform:translate3d(9px,-4px,0)}94%{transform:translate3d(-4px,2px,0)}}
html.roger-shake body{overflow:hidden}.roger-shake #app,.roger-shake .wink-panel,.roger-shake .toast{animation:rogerMegaShake 1.35s cubic-bezier(.36,.07,.19,.97) both;transform-origin:center center;will-change:transform}.roger-shake #app{filter:contrast(1.05) brightness(1.05)}
@keyframes nudgeFlash{0%,100%{opacity:0;border-width:0}10%,30%,50%,70%{opacity:1;border-width:10px;box-shadow:inset 0 0 70px #4bdcff99}20%,40%,60%,80%{opacity:.15;border-width:3px}}
@media(max-width:760px){.messenger-shell{grid-template-columns:105px 1fr}.profile{padding:10px;flex-wrap:wrap}.profile>div:nth-child(2),.logout,.brand-mini,.add-contact{display:none}.contact span:last-child small{display:none}.contact{padding:10px 6px}.bubble{max-width:92%}.wink-panel{right:10px;bottom:78px;grid-template-columns:repeat(2,95px)}.composer{padding:9px;gap:6px}.composer-tools{gap:4px}.tool-btn{width:39px;height:42px;font-size:19px}.composer>button#sendBtn{width:48px}.msg-image,.msg-video{max-width:72vw}.file-card{min-width:0;max-width:72vw}.camera-modal{padding:8px}.camera-view{height:55vh}.camera-actions{gap:7px}.camera-actions button{flex:1 1 42%;padding:10px 8px;font-size:13px}}


/* ROGER CONNECT MSN V0.3 — ações da conversa ao lado do anexo */
.chat-header{justify-content:flex-start}
.composer-tools .attention-btn,.composer-tools .wink-btn{font-size:23px}
.composer-tools .attention-btn{border-color:#3a668d;background:linear-gradient(180deg,#17324e,#102943)}
.composer-tools .wink-btn{border-color:#3a668d;background:linear-gradient(180deg,#17324e,#102943)}
.composer-tools .attention-btn:hover:not(:disabled),.composer-tools .wink-btn:hover:not(:disabled){background:#1d4468;border-color:#65a9df;box-shadow:0 0 14px #319cff30;transform:translateY(-1px)}
.composer-tools .attention-btn:active:not(:disabled),.composer-tools .wink-btn:active:not(:disabled),.composer-tools .tool-btn:active:not(:disabled){transform:scale(.94)}

@media(max-width:760px){
  .messenger-shell{grid-template-columns:76px 1fr}
  .contact{justify-content:center}
  .contact span:last-child{display:none}
  .composer{gap:5px;padding:8px 7px}
  .composer-tools{gap:3px}
  .tool-btn{width:32px;height:38px;border-radius:10px;font-size:17px}
  .composer-tools .attention-btn,.composer-tools .wink-btn{font-size:18px}
  .composer #messageInput{padding:10px 9px;font-size:13px}
  .composer>button#sendBtn{width:42px;padding:10px 7px}
}


/* =========================================================
   ROGER CONNECT MSN V0.4
   Layout celular + notificações + vibração do Chamar Atenção
   ========================================================= */
.mobile-back{display:none;border:0;background:transparent;color:#dff4ff;font-size:38px;line-height:1;width:42px;height:42px;padding:0;cursor:pointer;margin-right:8px}
.notification-banner{position:fixed;left:50%;top:16px;transform:translateX(-50%);z-index:260;width:min(720px,calc(100vw - 24px));display:flex;align-items:center;gap:12px;background:#102b46;border:1px solid #3e7db2;border-radius:16px;padding:12px 14px;box-shadow:0 18px 55px #000a;color:#fff}
.notification-banner-icon{font-size:28px;flex:0 0 auto}
.notification-banner-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.notification-banner-text strong{font-size:14px}
.notification-banner-text span{font-size:12px;opacity:.78;line-height:1.35}
.notification-banner>button:not(.notification-banner-close){border:0;border-radius:10px;background:linear-gradient(135deg,#44d46b,#2196f3);color:#061421;font-weight:900;padding:10px 13px;cursor:pointer;flex:0 0 auto}
.notification-banner-close{border:0;background:transparent;color:#b9d8ef;font-size:17px;cursor:pointer;padding:7px;flex:0 0 auto}

@media(max-width:760px){
  body.messenger-page{height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;background:#07101b;position:fixed;inset:0;width:100%;padding:0}
  .messenger-shell{position:relative;display:block;width:100vw;height:100vh;height:100dvh;overflow:hidden;background:#07101b}

  /* No celular, primeiro mostra a agenda completa. Ao abrir contato, a conversa ocupa a tela toda. */
  .sidebar,.chat{position:absolute;inset:0;width:100%;height:100%;transition:transform .22s ease;will-change:transform}
  .sidebar{z-index:20;transform:translateX(0);border-right:0;background:#0c1726}
  .chat{z-index:30;transform:translateX(100%);grid-template-rows:auto 1fr auto auto}
  .messenger-shell.chat-open .sidebar{transform:translateX(-100%)}
  .messenger-shell.chat-open .chat{transform:translateX(0)}

  .profile{min-height:72px;padding:max(12px,env(safe-area-inset-top)) 14px 12px;flex-wrap:nowrap}
  .profile .avatar{font-size:34px}
  .profile>div:nth-child(2){display:flex!important;min-width:0;flex:1}
  .profile>div:nth-child(2) strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .profile .logout{display:block!important;margin-left:auto;padding:8px 10px;border-radius:10px;background:#13283f}
  .brand-mini{display:block!important;padding:13px 16px 4px;font-size:12px;letter-spacing:1.5px}
  .add-contact{display:flex!important;padding:10px 12px 9px}
  .add-contact input{font-size:16px;padding:12px}
  .contacts{padding:4px 8px calc(20px + env(safe-area-inset-bottom));overflow:auto;-webkit-overflow-scrolling:touch}
  .contact{justify-content:flex-start!important;padding:13px 12px;border-radius:14px;min-height:62px}
  .contact span:last-child{display:flex!important;min-width:0;flex:1}
  .contact span:last-child b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .contact span:last-child small{display:block!important;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .presence{width:12px;height:12px}

  .chat-header{height:auto;min-height:62px;padding:max(8px,env(safe-area-inset-top)) 12px 8px;justify-content:flex-start;background:#0b1a2a}
  .mobile-back{display:block;flex:0 0 auto}
  .chat-header>div:first-of-type{min-width:0}
  .chat-header strong{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 80px);display:block}
  .messages{padding:14px 10px 10px;gap:8px;-webkit-overflow-scrolling:touch}
  .bubble{max-width:88%;font-size:15px;border-radius:17px;padding:10px 12px}
  .typing{height:20px;padding:0 12px;font-size:11px}

  /* Barra de conversa pensada para celular: ferramentas juntas e campo de texto abaixo. */
  .composer{display:grid;grid-template-columns:minmax(0,1fr) 48px;grid-template-areas:"tools tools" "input send";gap:7px 8px;padding:8px 9px max(8px,env(safe-area-inset-bottom));background:#081421}
  .composer-tools{grid-area:tools;display:flex;gap:8px;width:100%;overflow-x:auto;scrollbar-width:none}
  .composer-tools::-webkit-scrollbar{display:none}
  .composer #messageInput{grid-area:input;width:100%;min-width:0;font-size:16px!important;padding:12px 13px;border-radius:18px}
  .composer>button#sendBtn{grid-area:send;width:48px;height:46px;padding:0;border-radius:16px;font-size:20px;align-self:stretch}
  .tool-btn{width:48px;height:44px;min-width:48px;border-radius:14px;font-size:21px}
  .composer-tools .attention-btn,.composer-tools .wink-btn{font-size:22px}

  .msg-image,.msg-video{max-width:78vw;max-height:48vh}
  .msg-audio{max-width:76vw}
  .file-card{min-width:0;max-width:78vw}
  .file-caption{max-width:78vw}
  .wink-panel{left:10px;right:10px;bottom:126px;grid-template-columns:repeat(3,1fr);gap:7px;padding:9px;border-radius:16px}
  .wink-panel button{min-width:0;min-height:68px;font-size:25px}
  .camera-modal{padding:0;align-items:end}
  .camera-card{width:100vw;max-width:none;border-radius:20px 20px 0 0;border-left:0;border-right:0;border-bottom:0}
  .camera-view{height:52vh}
  .camera-actions{padding:10px 10px max(10px,env(safe-area-inset-bottom));gap:7px}
  .camera-actions button{flex:1 1 45%;font-size:13px}
  .toast{top:max(10px,env(safe-area-inset-top));left:10px;right:10px;transform:translateY(-10px);text-align:center}
  .toast.show{transform:translateY(0)}
  .notification-banner{top:max(8px,env(safe-area-inset-top));left:8px;right:8px;transform:none;width:auto;padding:10px 11px;gap:8px;border-radius:14px}
  .notification-banner-icon{font-size:24px}
  .notification-banner-text strong{font-size:13px}
  .notification-banner-text span{font-size:11px}
  .notification-banner>button:not(.notification-banner-close){padding:9px 10px;font-size:11px}
  .notification-banner-close{font-size:15px;padding:5px}

  /* No celular o sacode é forte, mas limitado para não recortar o conteúdo fora da viewport. */
  @keyframes rogerMobileShake{0%,100%{transform:translate3d(0,0,0) rotate(0)}8%{transform:translate3d(-15px,8px,0) rotate(-.6deg)}16%{transform:translate3d(15px,-8px,0) rotate(.6deg)}24%{transform:translate3d(-17px,-7px,0) rotate(-.7deg)}32%{transform:translate3d(17px,7px,0) rotate(.7deg)}40%{transform:translate3d(-14px,6px,0)}48%{transform:translate3d(14px,-6px,0)}58%{transform:translate3d(-11px,-5px,0)}68%{transform:translate3d(11px,5px,0)}78%{transform:translate3d(-7px,3px,0)}88%{transform:translate3d(7px,-3px,0)}}
  .roger-shake #app{animation:rogerMobileShake 1.35s cubic-bezier(.36,.07,.19,.97) both}
}

@media(max-width:390px){
  .tool-btn{width:44px;min-width:44px;height:42px}
  .composer-tools{gap:6px}
  .wink-panel{grid-template-columns:repeat(2,1fr)}
}

/* V0.7 — foto volta a aparecer dentro da bolha da conversa */
.msg-image{min-width:160px;min-height:90px;width:auto;height:auto}
.msg-image-error{width:min(420px,64vw);height:180px;object-fit:contain;background:#0a1624;border:1px dashed #54708c}
@media(max-width:760px){.msg-image-error{width:78vw;height:160px}}



/* V0.9 — conversa abre no fim + seta central para voltar à última mensagem */
.scroll-bottom-btn{
  position:absolute;
  left:50%;
  right:auto;
  bottom:92px;
  transform:translateX(-50%);
  z-index:75;
  min-width:58px;
  height:44px;
  padding:0 16px;
  border-radius:24px;
  border:1px solid #4b91bf;
  background:#123b5a;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 9px 30px #000a,0 0 0 1px #ffffff0b;
  transition:background .16s ease,opacity .16s ease,box-shadow .16s ease;
}
.scroll-bottom-btn:hover{background:#18577f;box-shadow:0 10px 34px #000b,0 0 18px #31a7ff25}
.scroll-bottom-arrow{font-size:30px;line-height:1;font-weight:900;margin-top:-4px}
.scroll-bottom-count{
  position:absolute;right:-7px;top:-7px;min-width:22px;height:22px;padding:0 6px;border-radius:12px;
  background:#28a9ff;color:#fff;border:2px solid #081421;font-size:11px;font-weight:900;
  line-height:18px;text-align:center;box-shadow:0 3px 10px #0008
}
.scroll-bottom-btn:not(.hidden){animation:rogerScrollButtonInV09 .18s ease both}
@keyframes rogerScrollButtonInV09{
  from{opacity:0;transform:translate(-50%,8px) scale(.94)}
  to{opacity:1;transform:translate(-50%,0) scale(1)}
}
.messages{scroll-behavior:auto;overscroll-behavior:contain}
.composer{position:relative;z-index:60}

@media(max-width:760px){
  .scroll-bottom-btn{
    left:50%;right:auto;bottom:calc(126px + env(safe-area-inset-bottom));transform:translateX(-50%);
    min-width:56px;height:44px;border-color:#55b9ee;background:#155f90;box-shadow:0 8px 27px #000b
  }
  .scroll-bottom-arrow{font-size:29px}
}


/* =========================================================
   ROGER CONNECT MSN V1.0
   Cabeçalho/lateral/composer travados; somente mensagens rolam.
   Chamar Atenção em prioridade máxima.
   ========================================================= */
html,body.messenger-page{width:100%;height:100%;overflow:hidden!important;overscroll-behavior:none}
body.messenger-page{position:fixed!important;inset:0!important;margin:0!important}
body.messenger-page .messenger-shell{
  position:fixed!important;inset:0!important;width:100vw!important;
  height:100vh!important;height:100dvh!important;overflow:hidden!important;
}
body.messenger-page .sidebar{min-height:0!important;overflow:hidden!important}
body.messenger-page .profile{flex:0 0 auto;position:relative;z-index:72;background:#0c1726}
body.messenger-page .brand-mini,body.messenger-page .add-contact,body.messenger-page .mini-notice{flex:0 0 auto}
body.messenger-page .contacts{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
body.messenger-page .chat{
  height:100%!important;min-height:0!important;overflow:hidden!important;
  grid-template-rows:74px minmax(0,1fr) 22px auto!important;
}
body.messenger-page .chat-header{
  position:relative!important;inset:auto!important;z-index:72!important;flex:0 0 auto!important;
  background:#0b1a2a!important;box-shadow:0 1px 0 #20374f;
}
body.messenger-page .messages{
  min-height:0!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;
  overscroll-behavior:contain!important;scrollbar-gutter:stable;
}
body.messenger-page .typing{position:relative;z-index:68;background:#081421;overflow:hidden}
body.messenger-page .composer{
  position:relative!important;z-index:72!important;flex:0 0 auto!important;
  background:#081421!important;box-shadow:0 -1px 0 #20374f;
}
body.messenger-page .scroll-bottom-btn{
  position:absolute!important;left:50%!important;right:auto!important;
  bottom:calc(var(--roger-composer-height,72px) + 28px)!important;
  transform:translateX(-50%)!important;z-index:90!important;
}

/* Aviso em primeiro plano do Chamar Atenção: acima de modal, wink e upload. */
.nudge-priority-alert{
  position:fixed;z-index:10000;left:50%;top:max(14px,env(safe-area-inset-top));
  transform:translate(-50%,-140%);width:min(560px,calc(100vw - 24px));
  display:flex;align-items:center;gap:14px;padding:15px 18px;border-radius:18px;
  border:2px solid #7ee8ff;background:linear-gradient(135deg,#0c3154,#165983);
  color:#fff;box-shadow:0 20px 70px #000d,0 0 38px #32bfff66;pointer-events:none;
}
.nudge-priority-alert.show{animation:rogerPriorityAlert 3.1s cubic-bezier(.2,.9,.2,1) both}
.nudge-priority-icon{font-size:34px;filter:drop-shadow(0 3px 8px #0008)}
.nudge-priority-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.nudge-priority-copy strong{font-size:13px;letter-spacing:1.3px;color:#9eeaff}
.nudge-priority-copy span{font-size:17px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes rogerPriorityAlert{
  0%{transform:translate(-50%,-150%) scale(.95);opacity:0}
  10%,82%{transform:translate(-50%,0) scale(1);opacity:1}
  88%{transform:translate(calc(-50% - 7px),2px)}
  91%{transform:translate(calc(-50% + 7px),-2px)}
  94%{transform:translate(calc(-50% - 4px),1px)}
  100%{transform:translate(-50%,-150%);opacity:0}
}

/* Sacode de verdade da interface quando a página está visível. */
@keyframes rogerMegaShakeV10{
  0%,100%{transform:translate3d(0,0,0) rotate(0)}
  6%{transform:translate3d(-20px,10px,0) rotate(-.45deg)}
  12%{transform:translate3d(20px,-10px,0) rotate(.45deg)}
  18%{transform:translate3d(-22px,-9px,0) rotate(-.55deg)}
  24%{transform:translate3d(22px,9px,0) rotate(.55deg)}
  31%{transform:translate3d(-18px,8px,0)}
  38%{transform:translate3d(18px,-8px,0)}
  46%{transform:translate3d(-15px,-7px,0)}
  54%{transform:translate3d(15px,7px,0)}
  63%{transform:translate3d(-11px,5px,0)}
  72%{transform:translate3d(11px,-5px,0)}
  82%{transform:translate3d(-6px,3px,0)}
  91%{transform:translate3d(6px,-3px,0)}
}
html.roger-shake body.messenger-page .messenger-shell{
  animation:rogerMegaShakeV10 1.55s cubic-bezier(.36,.07,.19,.97) both!important;
  transform-origin:center center;will-change:transform;
}
/* Não anima separadamente os filhos; toda a tela sacode como uma peça só. */
html.roger-shake #app,html.roger-shake .wink-panel,html.roger-shake .toast{animation:none!important}

@media(max-width:760px){
  body.messenger-page .chat{grid-template-rows:minmax(62px,auto) minmax(0,1fr) 20px auto!important}
  body.messenger-page .chat-header{position:relative!important}
  body.messenger-page .messages{min-height:0!important;height:auto!important;overflow-y:auto!important}
  body.messenger-page .composer{position:relative!important}
  body.messenger-page .scroll-bottom-btn{
    bottom:calc(var(--roger-composer-height,118px) + 26px)!important;
  }
  .nudge-priority-alert{top:max(8px,env(safe-area-inset-top));padding:12px 13px;border-radius:15px;gap:10px}
  .nudge-priority-icon{font-size:28px}
  .nudge-priority-copy span{font-size:15px}
  html.roger-shake body.messenger-page .messenger-shell{animation:rogerMegaShakeV10 1.55s cubic-bezier(.36,.07,.19,.97) both!important}
}


/* =========================================================
   ROGER CONNECT MSN V1.2 — Foto de perfil
   Clique/toque na própria foto para trocar. Contatos e topo da
   conversa mostram o avatar salvo em users.avatar.
   ========================================================= */
.profile .avatar-button{
  position:relative;flex:0 0 48px;width:48px;height:48px;padding:0;border:1px solid #31516f;
  border-radius:50%;overflow:visible;background:#11263c;color:#fff;cursor:pointer;display:grid;place-items:center;
  box-shadow:0 5px 18px #0005;
}
.profile .avatar-button:hover{border-color:#63c8ff;box-shadow:0 0 0 3px #3aaeff1b,0 5px 18px #0005}
.profile-photo{width:100%;height:100%;display:block;object-fit:cover;border-radius:50%}
.avatar-fallback{font-size:29px;line-height:1}
.avatar-camera-badge{
  position:absolute;right:-4px;bottom:-3px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:#1688d2;border:2px solid #0c1726;font-size:11px;box-shadow:0 2px 8px #0008;
}
.change-photo-link{border:0;background:transparent;color:#74caff;padding:2px 0 0;text-align:left;font-size:11px;cursor:pointer;width:max-content}
.change-photo-link:hover{text-decoration:underline}
.contact-avatar{
  width:38px;height:38px;min-width:38px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:#152c43;border:1px solid #294862;font-size:19px;
}
.contact-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.contact-avatar.avatar-load-error{font-size:0}.contact-avatar.avatar-load-error:after{content:'👤';font-size:19px}
.contact .presence{margin-left:-16px;margin-top:25px;border:2px solid #0c1726;position:relative;z-index:2}
.contact-copy{flex:1!important}
.chat-person{display:flex!important;align-items:center;gap:10px}
.chat-person-copy{display:flex;flex-direction:column;min-width:0}
.chat-avatar{width:42px;height:42px;min-width:42px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#152c43;border:1px solid #31516f;font-size:21px}
.chat-avatar img{width:100%;height:100%;object-fit:cover;display:block}

@media(max-width:760px){
  .profile .avatar-button{width:46px;height:46px;flex-basis:46px}
  .change-photo-link{font-size:10px}
  .contact-avatar{width:42px;height:42px;min-width:42px}
  .contact .presence{margin-left:-17px;margin-top:29px}
  .chat-avatar{width:40px;height:40px;min-width:40px}
}

/* =========================================================
   ROGER CONNECT MSN V1.3 — seletor nativo de foto de perfil
   ========================================================= */
.profile-photo-input{
  position:fixed!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;
  opacity:0!important;overflow:hidden!important;pointer-events:none!important;
}
label.avatar-button,label.change-photo-link{user-select:none;-webkit-user-select:none}
label.avatar-button:focus-visible,label.change-photo-link:focus-visible{outline:2px solid #63c8ff;outline-offset:3px}


/* =========================================================
   ROGER CONNECT MSN V1.4 — iPhone PWA + "está digitando"
   ========================================================= */
.typing{transition:opacity .16s ease,color .16s ease}
.typing.active{opacity:1!important;color:#78cfff;font-weight:700}
.typing.active::before{content:'✍️ ';font-size:11px}

.ios-install-guide{position:fixed;inset:0;z-index:12000;background:#000c;display:grid;place-items:center;padding:18px}
.ios-install-card{position:relative;width:min(560px,96vw);max-height:min(760px,92dvh);overflow:auto;background:#0c2238;border:1px solid #3e7db2;border-radius:22px;padding:24px 22px;box-shadow:0 28px 100px #000;color:#eef8ff}
.ios-install-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:11px;background:#183a58;color:#fff;font-size:18px;cursor:pointer}
.ios-install-icon{text-align:center;font-size:54px;margin:4px 0 8px}
.ios-install-card h2{text-align:center;margin:5px 0 10px}
.ios-install-card p{line-height:1.5;color:#c8dded}
.ios-install-card ol{margin:14px 0;padding-left:24px;display:grid;gap:10px;line-height:1.45}
.ios-install-note{background:#071829;border:1px solid #244c6d;border-radius:13px;padding:12px;color:#9fe3ff!important}
@media(max-width:760px){
  .ios-install-guide{padding:9px;place-items:end center}
  .ios-install-card{width:100%;max-height:88dvh;border-radius:22px 22px 12px 12px;padding:22px 17px}
  .ios-install-icon{font-size:46px}
}

/* V1.8 - acesso ao diagnóstico dentro da mesma sessão/PWA */
.push-diagnostic-link{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 16px 12px;padding:9px 12px;border:1px solid #294c6c;border-radius:11px;background:#0b2137;color:#9bd7ff;text-decoration:none;font-size:12px;font-weight:700}
.push-diagnostic-link:hover{background:#10304f;color:#fff}
@media(max-width:760px){.push-diagnostic-link{margin:0 14px 12px;padding:11px 12px;font-size:13px}}

/* =========================================================
   ROGER CONNECT MSN V1.9 — VIDEOCHAMADA
   ========================================================= */
.chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.chat-call-actions{margin-left:auto;display:flex;align-items:center;padding-right:14px}
.header-call-btn{width:46px;height:46px;border-radius:15px;border:1px solid #2e6288;background:#0d2942;color:#fff;font-size:23px;cursor:pointer;display:grid;place-items:center;box-shadow:0 5px 18px #0005}
.header-call-btn:hover:not(:disabled){background:#123b5e;border-color:#5cc9ff;transform:translateY(-1px)}
.header-call-btn:disabled{opacity:.35;cursor:not-allowed}

.incoming-call-modal,.video-call-modal{position:fixed;inset:0;z-index:20000;background:#020b14ed;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));backdrop-filter:blur(14px)}
.incoming-call-card{width:min(430px,94vw);text-align:center;color:#fff;background:linear-gradient(180deg,#0b2a45,#071827);border:1px solid #32668c;border-radius:30px;padding:34px 22px 26px;box-shadow:0 28px 100px #000,0 0 50px #159cff22}
.incoming-call-avatar{width:118px;height:118px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;font-size:60px;background:#173a58;border:3px solid #5ac9ff;overflow:hidden;box-shadow:0 0 0 8px #2eb7ff18,0 18px 50px #0008}
.incoming-call-avatar img,.call-remote-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.incoming-call-type{font-size:12px;letter-spacing:2px;font-weight:900;color:#76d8ff;margin-bottom:8px}
.incoming-call-card h2{margin:0;font-size:26px}.incoming-call-card p{color:#9fb9cd;margin:7px 0 28px}
.incoming-call-actions{display:flex;align-items:center;justify-content:center;gap:52px}
.call-round-btn{width:76px;height:76px;border:0;border-radius:50%;color:#fff;font-size:28px;display:grid;place-items:center;cursor:pointer;position:relative;box-shadow:0 12px 30px #0007}
.call-round-btn span{position:absolute;top:84px;left:50%;transform:translateX(-50%);font-size:12px;font-weight:800;white-space:nowrap;color:#d4e5f2}
.call-round-btn.reject{background:#e33f4c}.call-round-btn.accept{background:#23b96a;animation:rogerCallPulse 1.4s infinite}
@keyframes rogerCallPulse{0%,100%{box-shadow:0 0 0 0 #23b96a55,0 12px 30px #0007}50%{box-shadow:0 0 0 16px #23b96a00,0 12px 30px #0007}}

.video-call-modal{padding:0;background:#000}
.video-call-stage{position:relative;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at 50% 30%,#173249,#02070d 68%)}
.remote-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#050a10}
.remote-video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;gap:8px;background:radial-gradient(circle at center,#173249,#03080e 70%);transition:opacity .25s}
.remote-video-placeholder.connected{opacity:0;pointer-events:none}
.call-remote-avatar{width:128px;height:128px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#15344e;border:2px solid #4cbaff;font-size:64px;box-shadow:0 20px 60px #0008}
.remote-video-placeholder h2{margin:12px 0 0;font-size:28px}.remote-video-placeholder p{margin:0;color:#bcd3e5;font-size:16px}.remote-video-placeholder span{font-variant-numeric:tabular-nums;color:#7fd7ff;font-weight:900}
.local-video{position:absolute;right:22px;top:88px;width:min(220px,24vw);aspect-ratio:9/13;object-fit:cover;border-radius:20px;border:2px solid #fff8;background:#111;box-shadow:0 18px 50px #000b;z-index:4}
.video-call-topbar{position:absolute;left:0;right:0;top:0;z-index:5;padding:calc(18px + env(safe-area-inset-top)) 22px 24px;background:linear-gradient(#000c,transparent);color:#fff;pointer-events:none}
.video-call-topbar>div{display:flex;flex-direction:column}.video-call-topbar strong{font-size:20px}.video-call-topbar span{font-size:13px;color:#c5d7e5}
.video-call-controls{position:absolute;left:50%;bottom:calc(28px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:6;display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 16px;border-radius:28px;background:#08131dcc;backdrop-filter:blur(12px);border:1px solid #ffffff1f;box-shadow:0 16px 60px #000b}
.call-control-btn{width:58px;height:58px;border:0;border-radius:50%;background:#263744;color:#fff;font-size:24px;cursor:pointer;display:grid;place-items:center}.call-control-btn.off{background:#6d2830}.call-control-btn.hangup{background:#e43c4b;transform:rotate(135deg)}

@media(max-width:760px){
  .chat-call-actions{padding-right:8px}.header-call-btn{width:42px;height:42px;border-radius:14px;font-size:21px}
  .incoming-call-modal{padding:0}.incoming-call-card{width:100%;height:100%;border:0;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 20px calc(44px + env(safe-area-inset-bottom))}
  .incoming-call-avatar{width:126px;height:126px}.incoming-call-actions{gap:70px;margin-top:18px}
  .local-video{right:12px;top:calc(70px + env(safe-area-inset-top));width:31vw;max-width:138px;border-radius:16px}
  .video-call-controls{bottom:calc(16px + env(safe-area-inset-bottom));gap:10px;padding:10px 12px}.call-control-btn{width:54px;height:54px;font-size:22px}
  .video-call-topbar{padding-left:15px;padding-right:15px}.video-call-topbar strong{font-size:17px}
}

/* =========================================================
   ROGER CONNECT MSN V2.0 — PROFESSIONAL NEON UI
   Layout inspirado no conceito aprovado pelo usuário.
   Responsivo para desktop, Android e iPhone/PWA.
   ========================================================= */
:root{
  --rc-bg:#03101e;
  --rc-bg-2:#06192d;
  --rc-panel:#07182a;
  --rc-panel-2:#0a2038;
  --rc-panel-3:#0d2946;
  --rc-line:#164b75;
  --rc-line-soft:rgba(63,179,255,.18);
  --rc-cyan:#13d8ff;
  --rc-blue:#168dff;
  --rc-blue-2:#0664c9;
  --rc-green:#00e08a;
  --rc-text:#f4f8ff;
  --rc-muted:#86a9cd;
  --rc-shadow:0 24px 80px rgba(0,0,0,.38);
  --rc-glow:0 0 24px rgba(0,194,255,.18);
  --rc-radius:22px;
}
html,body{background:var(--rc-bg)!important;color:var(--rc-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Arial,sans-serif}
body.messenger-page{background:
  radial-gradient(circle at 73% 8%,rgba(0,139,255,.11),transparent 26%),
  linear-gradient(145deg,#06192d,#020b16 72%)!important;
}
body.messenger-page .messenger-shell{
  grid-template-columns:430px minmax(0,1fr)!important;
  background:transparent!important;
}
body.messenger-page .sidebar{
  display:grid!important;
  grid-template-columns:86px minmax(0,1fr)!important;
  border-right:1px solid rgba(39,151,222,.30)!important;
  background:linear-gradient(180deg,#06172a 0%,#041321 100%)!important;
  box-shadow:18px 0 50px rgba(0,0,0,.17);
}
.sidebar-rail{
  min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;gap:9px;
  padding:18px 8px 16px;border-right:1px solid rgba(47,154,224,.20);
  background:linear-gradient(180deg,rgba(5,25,45,.98),rgba(2,14,26,.98));
  overflow:hidden;
}
.rail-logo{width:54px;height:52px;position:relative;margin:0 auto 14px;filter:drop-shadow(0 0 12px rgba(20,215,255,.5))}
.rail-logo span,.brand-symbol span{position:absolute;border-radius:50%;background:linear-gradient(180deg,#24e9ff,#0989f8)}
.rail-logo span:nth-child(1){width:15px;height:15px;left:9px;top:4px}.rail-logo span:nth-child(2){width:14px;height:14px;right:8px;top:7px}
.rail-logo i,.rail-logo b,.brand-symbol i,.brand-symbol b{position:absolute;display:block;background:linear-gradient(180deg,#22e4ff,#0a8df7);border-radius:16px 16px 7px 7px;transform:skew(-8deg)}
.rail-logo i{width:24px;height:27px;left:3px;bottom:4px}.rail-logo b{width:24px;height:25px;right:1px;bottom:4px}
.rail-item{
  width:68px;min-height:67px;padding:8px 4px;border:1px solid transparent;border-radius:17px;
  background:transparent;color:#80abdb;text-decoration:none;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:.18s ease;
}
.rail-item:hover,.rail-item.active{color:#45ddff;border-color:rgba(27,180,255,.34);background:linear-gradient(180deg,rgba(17,78,125,.58),rgba(5,42,75,.60));box-shadow:inset 3px 0 0 #0ed5ff,0 0 20px rgba(0,174,255,.10)}
.rail-icon{font-size:22px;line-height:1}.rail-item small{font-size:10px;white-space:nowrap}.rail-spacer{flex:1}
.sidebar-main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(180deg,rgba(5,22,39,.97),rgba(5,19,33,.99))}
.desktop-brand{height:86px;display:flex;align-items:center;gap:12px;padding:14px 18px 12px;border-bottom:1px solid rgba(48,150,215,.16)}
.brand-symbol{width:58px;height:54px;position:relative;flex:0 0 auto;filter:drop-shadow(0 0 16px rgba(0,209,255,.34))}
.brand-symbol span:nth-child(1){width:17px;height:17px;left:10px;top:3px}.brand-symbol span:nth-child(2){width:16px;height:16px;right:8px;top:7px}
.brand-symbol i{width:27px;height:30px;left:3px;bottom:2px}.brand-symbol b{width:27px;height:28px;right:0;bottom:2px}
.brand-symbol.small{transform:scale(.72);margin:-7px -5px -7px -9px}
.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy strong,.mobile-brand-center strong{font-size:18px;letter-spacing:.2px;white-space:nowrap}.brand-copy strong em,.mobile-brand-center strong em{font-style:normal;color:var(--rc-cyan)}.brand-copy small,.mobile-brand-center small{color:#6f9cc9;font-size:11px;margin-top:2px}
body.messenger-page .profile{
  min-height:106px;padding:15px 17px!important;gap:12px!important;border-bottom:0!important;
  background:transparent!important;box-shadow:none!important;
}
.profile .avatar-button{width:64px!important;height:64px!important;flex-basis:64px!important;border:2px solid rgba(66,192,255,.62)!important;box-shadow:0 0 0 5px rgba(13,157,255,.07),0 12px 28px rgba(0,0,0,.34)!important}
.avatar-camera-badge{width:22px!important;height:22px!important;background:#0f9ef4!important;border-color:#06172a!important}
.profile-copy{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.profile-copy strong{font-size:14px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-copy #myStatus{display:flex;align-items:center;gap:6px;color:#b5d3ee;font-size:12px!important;opacity:1!important}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.status-dot.online{background:var(--rc-green);box-shadow:0 0 11px rgba(0,224,138,.8)}
.change-photo-link{color:#47cfff!important;font-size:10px!important;opacity:.8}.logout{color:#70bdec!important}
.brand-mini{display:none!important}.contacts-title-row{display:flex;align-items:end;justify-content:space-between;padding:2px 17px 8px}.contacts-title-row span{font-size:15px;font-weight:800}.contacts-title-row small{font-size:10px;color:#5f87ad;text-transform:uppercase;letter-spacing:.9px}
.add-contact{position:relative;padding:0 14px 13px!important;gap:8px!important}.add-contact .search-glyph{position:absolute;left:28px;top:13px;color:#72bce8;font-size:24px;z-index:2;line-height:1}.add-contact input{height:48px;padding:0 15px 0 44px!important;border:1px solid #24547b!important;border-radius:18px!important;background:rgba(5,26,46,.88)!important;color:#f4f8ff!important;box-shadow:inset 0 0 20px rgba(0,0,0,.16)}.add-contact input:focus{border-color:#16bdf8!important;box-shadow:0 0 0 3px rgba(0,190,255,.08)}.add-contact button{width:48px!important;height:48px!important;padding:0!important;border-radius:16px!important;background:linear-gradient(145deg,#31dba9,#11a8ff)!important;color:#00314d!important;font-size:23px;box-shadow:0 9px 24px rgba(0,168,255,.22)}
.mini-notice{padding:0 16px 5px!important;color:#73d8ff!important;font-size:11px!important}
body.messenger-page .contacts{padding:0 10px 18px!important;scrollbar-width:thin;scrollbar-color:#20577d transparent}
.contact{min-height:60px;padding:9px 10px!important;gap:9px!important;border-radius:15px!important;border:1px solid transparent!important;transition:.16s ease;position:relative}.contact:hover,.contact.active{background:linear-gradient(90deg,rgba(16,60,97,.94),rgba(13,49,80,.66))!important;border-color:rgba(48,151,216,.18)!important;box-shadow:inset 3px 0 0 #0dd4ff,0 8px 22px rgba(0,0,0,.12)}
.contact-avatar{width:44px!important;height:44px!important;min-width:44px!important;border:1px solid rgba(68,185,255,.45)!important;box-shadow:0 5px 16px rgba(0,0,0,.28)}.contact .presence{margin-left:-17px!important;margin-top:31px!important;border:2px solid #071a2c!important;width:11px!important;height:11px!important}.contact-copy b{font-size:14px}.contact-copy small{font-size:11px!important;color:#8fb0d0!important;opacity:.86!important}
.sidebar-footer-note{padding:14px 20px 18px;text-align:center;color:#5792c7;font-size:10px;font-style:italic;border-top:1px solid rgba(41,134,196,.10)}

body.messenger-page .chat{
  position:relative!important;isolation:isolate;grid-template-rows:88px minmax(0,1fr) 24px auto!important;
  background:
    radial-gradient(circle at 80% 12%,rgba(0,112,221,.15),transparent 30%),
    radial-gradient(circle at 48% 76%,rgba(0,98,170,.08),transparent 38%),
    linear-gradient(180deg,#06192d 0%,#03111f 100%)!important;
}
body.messenger-page .chat::before{content:"";position:absolute;z-index:-1;left:39%;right:2%;bottom:8%;height:44%;opacity:.22;pointer-events:none;background:linear-gradient(145deg,transparent 0 38%,#0a4a82 39% 41%,transparent 42%),linear-gradient(35deg,transparent 0 52%,#07375f 53% 55%,transparent 56%);clip-path:polygon(0 100%,0 68%,10% 72%,20% 48%,31% 72%,45% 28%,56% 61%,67% 44%,78% 74%,88% 59%,100% 76%,100% 100%)}
.mobile-appbar,.mobile-bottom-nav{display:none}
body.messenger-page .chat-header{height:88px!important;padding:0 28px!important;border-bottom:1px solid rgba(43,143,205,.22)!important;background:linear-gradient(180deg,rgba(4,21,38,.88),rgba(5,25,44,.72))!important;backdrop-filter:blur(15px);box-shadow:0 8px 28px rgba(0,0,0,.08)!important}
.chat-person{gap:13px!important}.chat-avatar{width:58px!important;height:58px!important;min-width:58px!important;border:2px solid rgba(40,186,255,.55)!important;box-shadow:0 0 0 5px rgba(5,137,255,.05),0 8px 26px rgba(0,0,0,.30)!important}.chat-person-copy strong{font-size:20px;letter-spacing:.1px}.chat-person-copy span{font-size:12px!important;color:#8bb1d4!important;opacity:1!important}.chat-person-copy span:not(:empty)::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--rc-green);box-shadow:0 0 10px rgba(0,224,138,.75);margin-right:7px;vertical-align:0}
.chat-call-actions{padding-right:0!important}.header-call-btn{width:auto!important;height:48px!important;padding:0 18px!important;display:flex!important;align-items:center!important;gap:9px!important;border-radius:24px!important;border:1px solid #17659b!important;background:rgba(4,29,51,.74)!important;color:#eaf7ff!important;box-shadow:none!important}.header-call-btn:hover:not(:disabled){background:rgba(12,63,101,.84)!important;border-color:#23c9ff!important;box-shadow:0 0 22px rgba(0,194,255,.13)!important}.call-glyph{font-size:17px;color:#66e3ff}.call-label{font-size:12px!important;opacity:1!important;margin:0!important;color:#dcefff!important}
body.messenger-page .messages{padding:28px 34px 20px!important;gap:9px!important;scrollbar-color:#1f557a transparent;scrollbar-width:thin;background:transparent!important}.msg{position:relative}.bubble{max-width:min(640px,72%)!important;padding:10px 14px!important;border-radius:17px!important;background:linear-gradient(180deg,#12314f,#0e2944)!important;border:1px solid rgba(74,157,216,.20);box-shadow:0 8px 18px rgba(0,0,0,.10);font-size:14px;line-height:1.42}.msg:not(.mine) .bubble{border-bottom-left-radius:5px!important}.mine .bubble{background:linear-gradient(145deg,#087fce,#079de5)!important;border-color:rgba(79,214,255,.44)!important;border-bottom-right-radius:5px!important;box-shadow:0 9px 23px rgba(0,99,187,.20),inset 0 1px 0 rgba(255,255,255,.10)}.message-text{color:#f8fbff}.bubble>.msg-time{color:#b6cfe5!important;opacity:.72!important;font-size:9px!important}.mine .bubble>.msg-time{color:#d8f5ff!important}.msg-image{max-width:min(470px,62vw)!important;max-height:50vh!important;border-radius:14px!important;box-shadow:0 12px 26px rgba(0,0,0,.24)}.file-caption{color:#c7eaff!important}.file-card{background:rgba(255,255,255,.06)!important;border-color:rgba(112,197,255,.18)!important}
.empty-state{opacity:1!important}.big-logo{width:104px!important;height:104px!important;background:linear-gradient(145deg,#18d4c2,#168ff2)!important;color:#dff9ff!important;box-shadow:0 0 44px rgba(0,186,255,.22)!important}.empty-state h2{letter-spacing:.4px}.empty-state p{color:#789abb}
body.messenger-page .typing{height:24px!important;padding:0 34px!important;background:transparent!important;color:#8dc9ef!important;font-weight:500!important}.typing.active::before{content:'•••';display:inline-grid;place-items:center;margin-right:8px;padding:0 8px;height:20px;border-radius:10px;background:#0a3555;color:#22d5ff;letter-spacing:2px;box-shadow:0 0 15px rgba(0,188,255,.12)}

body.messenger-page .composer{
  min-height:94px;padding:13px 22px 16px!important;display:flex!important;align-items:center!important;gap:13px!important;
  border-top:1px solid rgba(37,137,201,.30)!important;background:linear-gradient(180deg,rgba(4,20,35,.88),rgba(2,13,24,.98))!important;
  box-shadow:0 -18px 40px rgba(0,0,0,.08)!important;backdrop-filter:blur(18px)
}
.composer-tools{display:flex!important;gap:9px!important;align-items:center;flex:0 0 auto!important}.tool-btn{width:66px!important;height:62px!important;min-width:66px!important;padding:6px 4px!important;border:1px solid rgba(45,139,203,.42)!important;border-radius:18px!important;background:rgba(5,28,49,.80)!important;color:#dff5ff!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;box-shadow:inset 0 0 18px rgba(0,61,107,.18);transition:.18s ease!important}.tool-btn:hover:not(:disabled){transform:translateY(-2px);border-color:#19caff!important;background:rgba(9,50,83,.95)!important;box-shadow:0 8px 22px rgba(0,164,255,.12),inset 0 0 18px rgba(0,105,171,.18)!important}.tool-icon{font-size:22px;line-height:1;color:#eefaff}.tool-label{font-size:9px;white-space:nowrap;color:#9ec6e4;font-weight:600}.attention-btn .tool-icon{color:#ffd45b}.wink-btn .tool-icon{color:#6ce8ff}
.message-field-wrap{height:54px;flex:1;min-width:80px;position:relative;display:flex;align-items:center}.composer #messageInput{width:100%;height:54px!important;padding:0 48px 0 17px!important;border:1px solid #23577f!important;border-radius:18px!important;background:rgba(5,28,49,.86)!important;color:#f6fbff!important;font-size:14px!important;box-shadow:inset 0 0 20px rgba(0,0,0,.12)}.composer #messageInput:focus{border-color:#14c9fb!important;box-shadow:0 0 0 3px rgba(0,190,255,.07),inset 0 0 20px rgba(0,0,0,.10)!important}.composer #messageInput::placeholder{color:#6589ad}.message-field-face{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:24px;color:#dff6ff;opacity:.92;pointer-events:none}
.composer>button#sendBtn{width:58px!important;height:58px!important;min-width:58px;padding:0!important;border-radius:50%!important;background:linear-gradient(145deg,#13d8ff,#0a7cff)!important;color:#fff!important;font-size:25px!important;box-shadow:0 0 0 3px rgba(26,210,255,.10),0 0 25px rgba(0,174,255,.35)!important;display:grid!important;place-items:center!important}.composer>button#sendBtn:hover:not(:disabled){transform:scale(1.04);box-shadow:0 0 0 5px rgba(26,210,255,.10),0 0 36px rgba(0,174,255,.50)!important}.composer>button#sendBtn:disabled{filter:saturate(.4);opacity:.42}
.scroll-bottom-btn{border-color:#1ebfff!important;background:rgba(5,54,88,.94)!important;color:#fff!important;box-shadow:0 0 24px rgba(0,185,255,.17),0 10px 28px rgba(0,0,0,.35)!important}
.wink-panel{background:rgba(6,30,51,.96)!important;border-color:#1b6c9f!important;backdrop-filter:blur(18px);box-shadow:0 24px 70px rgba(0,0,0,.55),0 0 25px rgba(0,177,255,.10)!important}.wink-panel button{background:linear-gradient(180deg,#0d3859,#092840)!important;border:1px solid rgba(65,172,237,.18)!important}.toast,.notification-banner{background:linear-gradient(145deg,#0b2945,#103b60)!important;border-color:#2d85bd!important;box-shadow:0 18px 55px rgba(0,0,0,.45),0 0 25px rgba(0,181,255,.11)!important}

/* Login e cadastro no mesmo padrão visual */
.auth-body{background:radial-gradient(circle at 25% 16%,#0b4779,#03101e 48%,#010914)!important}.auth-card{background:linear-gradient(180deg,rgba(7,30,51,.96),rgba(4,18,32,.98))!important;border-color:#1b6696!important;box-shadow:0 28px 90px rgba(0,0,0,.55),0 0 42px rgba(0,179,255,.08)!important}.brand-orb{background:linear-gradient(145deg,#17dbc0,#148eff)!important;color:#e9fcff;box-shadow:0 0 36px rgba(0,188,255,.32)!important}.auth-card input{background:#061a2e!important;border-color:#23577e!important}.auth-card button{background:linear-gradient(145deg,#21d5b0,#1298ff)!important;color:#002942!important;box-shadow:0 10px 28px rgba(0,158,255,.20)}

/* ---------- MOBILE / PWA ---------- */
@media(max-width:760px){
  body.messenger-page .messenger-shell{display:block!important;width:100vw!important;height:100dvh!important}
  body.messenger-page .sidebar,body.messenger-page .chat{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}
  body.messenger-page .sidebar{display:block!important;transform:translateX(0);background:#061525!important}
  .sidebar-rail{display:none!important}.sidebar-main{width:100%;height:100%;background:linear-gradient(180deg,#06182b,#03111f)!important}
  .desktop-brand{height:82px;padding:max(14px,env(safe-area-inset-top)) 17px 9px}.brand-symbol{width:50px;height:47px}.brand-copy strong{font-size:17px}.brand-copy small{font-size:10px}
  body.messenger-page .profile{min-height:90px;padding:10px 16px!important}.profile .avatar-button{width:58px!important;height:58px!important;flex-basis:58px!important}.profile-copy strong{font-size:16px}.logout{display:block!important;background:rgba(13,50,82,.75);border:1px solid rgba(54,148,210,.18);padding:8px 10px;border-radius:11px;text-decoration:none}
  .contacts-title-row{padding:4px 18px 10px}.contacts-title-row span{font-size:17px}.add-contact{padding:0 14px 14px!important}.add-contact input{font-size:16px!important;height:50px}.add-contact button{height:50px!important;width:50px!important}.contact{min-height:68px!important;padding:10px 13px!important}.contact-avatar{width:48px!important;height:48px!important;min-width:48px!important}.contact .presence{margin-left:-18px!important;margin-top:34px!important}.contact-copy b{font-size:16px}.contact-copy small{font-size:13px!important}.sidebar-footer-note{padding-bottom:calc(16px + env(safe-area-inset-bottom))}

  body.messenger-page .chat{transform:translateX(100%);grid-template-rows:68px 82px minmax(0,1fr) 24px auto 70px!important;background:linear-gradient(180deg,#061a2f,#03111f)!important}
  .messenger-shell.chat-open .sidebar{transform:translateX(-100%)!important}.messenger-shell.chat-open .chat{transform:translateX(0)!important}
  .mobile-appbar{display:flex;align-items:center;justify-content:space-between;height:68px;padding:calc(7px + env(safe-area-inset-top)) 15px 7px;border-bottom:1px solid rgba(36,142,208,.15);background:linear-gradient(180deg,#071d35,#06182b)}
  .mobile-menu-btn{width:42px;height:42px;border:0;background:transparent;color:#e9f7ff;font-size:27px}.mobile-brand-center{display:flex;align-items:center;justify-content:center;min-width:0}.mobile-brand-center>div:last-child{display:flex;flex-direction:column;min-width:0}.mobile-brand-center strong{font-size:15px}.mobile-brand-center small{font-size:9px}.mobile-search-icon{font-size:30px;color:#e9f7ff;width:42px;text-align:center}
  body.messenger-page .chat-header{height:82px!important;min-height:82px!important;padding:0 13px!important;background:rgba(5,26,46,.76)!important}.mobile-back{display:block!important;color:#9fcbff!important;font-size:42px!important;margin-right:2px!important}.chat-avatar{width:52px!important;height:52px!important;min-width:52px!important}.chat-person{gap:10px!important}.chat-person-copy strong{font-size:19px}.chat-person-copy span{font-size:12px!important}.chat-call-actions{margin-left:auto!important}.header-call-btn{width:48px!important;height:48px!important;padding:0!important;border-radius:50%!important;justify-content:center!important}.call-glyph{font-size:20px}.call-label{display:none!important}
  body.messenger-page .messages{padding:14px 14px 12px!important;gap:9px!important}.bubble{max-width:88%!important;font-size:15px!important;padding:10px 13px!important}.msg-image{max-width:78vw!important;max-height:44vh!important}.file-card{max-width:78vw!important}.file-caption{max-width:78vw!important}.typing{padding:0 16px!important;font-size:12px!important}
  body.messenger-page .composer{min-height:146px!important;display:grid!important;grid-template-columns:minmax(0,1fr) 58px!important;grid-template-areas:"tools tools" "field send"!important;gap:9px 10px!important;padding:9px 12px 11px!important;border-top:1px solid rgba(31,135,203,.35)!important;background:rgba(3,17,30,.97)!important}
  .composer-tools{grid-area:tools!important;width:100%!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:8px!important;overflow:visible!important}.tool-btn{width:100%!important;min-width:0!important;height:62px!important;border-radius:18px!important;gap:3px!important}.tool-icon{font-size:22px}.tool-label{font-size:9px}
  .message-field-wrap{grid-area:field!important;height:54px!important}.composer #messageInput{height:54px!important;font-size:16px!important;border-radius:18px!important}.composer>button#sendBtn{grid-area:send!important;width:58px!important;height:58px!important;align-self:center!important}.message-field-face{font-size:23px}
  .mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);height:70px;padding:5px 7px calc(5px + env(safe-area-inset-bottom));border-top:1px solid rgba(31,132,197,.22);background:rgba(3,15,27,.98);z-index:80}.mobile-bottom-nav button,.mobile-bottom-nav a{border:0;background:transparent;color:#7ca8d2;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:14px}.mobile-bottom-nav span{font-size:22px;line-height:1}.mobile-bottom-nav small{font-size:10px}.mobile-bottom-nav .active{color:#18d8ff;background:linear-gradient(180deg,rgba(7,81,129,.48),rgba(3,49,83,.38));box-shadow:inset 0 -2px 0 #0bd3ff}
  body.messenger-page .scroll-bottom-btn{bottom:calc(var(--roger-composer-height,146px) + 82px)!important;left:50%!important}
  .wink-panel{left:10px!important;right:10px!important;bottom:calc(224px + env(safe-area-inset-bottom))!important;grid-template-columns:repeat(3,1fr)!important}
  .notification-banner{top:max(8px,env(safe-area-inset-top))!important;background:linear-gradient(145deg,#0b3152,#104366)!important;border-color:#2d8cc8!important}
}
@media(max-width:390px){
  .mobile-brand-center strong{font-size:14px}.mobile-brand-center small{display:none}.brand-symbol.small{transform:scale(.62);margin:-9px -9px -9px -12px}
  .tool-label{font-size:8px}.composer-tools{gap:6px!important}.tool-btn{height:58px!important}.composer #messageInput{font-size:15px!important}
}


/* ============================================================
   ROGER CONNECT MSN V2.1 — PERFIL GRANDE + EMOTICONS + WINKS
   ============================================================ */
.sound-toggle-btn.muted{opacity:.58;filter:saturate(.35)}
.emoji-trigger{border:0;background:transparent;cursor:pointer;pointer-events:auto!important;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;padding:0!important}
.emoji-trigger:hover{background:rgba(21,155,224,.16);color:#39dcff}
.emoji-panel{position:fixed;right:92px;bottom:92px;z-index:115;width:min(390px,calc(100vw - 26px));padding:12px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;background:rgba(5,27,48,.98);border:1px solid rgba(43,175,244,.42);border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.58),0 0 30px rgba(0,184,255,.12);backdrop-filter:blur(18px)}
.emoji-panel button{height:58px;border:1px solid rgba(70,168,229,.18);border-radius:15px;background:linear-gradient(180deg,#0d3859,#092840);font-size:31px;cursor:pointer;transition:.16s ease}.emoji-panel button:hover{transform:scale(1.08);border-color:#21cfff;background:#104b74}
.wink-panel{grid-template-columns:repeat(4,100px)!important;max-height:min(58vh,520px);overflow:auto}.wink-panel button{min-height:92px!important;font-size:38px!important}.wink-panel button span{font-size:10px!important;font-weight:800;letter-spacing:.5px}
.effect-layer.show{backdrop-filter:brightness(.88)}
.fart-stage{position:relative;width:100%;height:100%;display:grid;place-items:center}.fart-man{font-size:clamp(230px,38vw,560px)!important;filter:drop-shadow(0 25px 30px rgba(0,0,0,.45))}.fart-cloud{font-size:clamp(130px,24vw,340px)!important;filter:drop-shadow(0 10px 20px rgba(0,0,0,.3))}.water-balloon{font-size:clamp(190px,28vw,360px)!important}.splash{font-size:clamp(190px,40vw,560px)!important}.heart-rain,.party{font-size:clamp(100px,17vw,230px)!important}.boom{font-size:clamp(240px,45vw,650px)!important}.mega-emote{font-size:clamp(250px,48vw,680px);filter:drop-shadow(0 22px 32px rgba(0,0,0,.42));animation:megaBounce 2.7s cubic-bezier(.2,.85,.3,1) both}.kiss-emote{animation:kissFly 3s ease both}.laugh-emote{animation:laughShake 2.9s ease both}.ghost-emote{animation:ghostZoom 3s ease both}.gift-emote{animation:giftPop 3s ease both}.fire-rain,.rain-scene,.tomato-storm{font-size:clamp(90px,15vw,210px);text-align:center;letter-spacing:.15em;animation:stormFall 3.2s ease both}.wink-title{z-index:3;color:#fff;text-shadow:0 6px 30px #000,0 0 30px rgba(0,192,255,.3)}
@keyframes megaBounce{0%{opacity:0;transform:scale(.15) rotate(-18deg)}38%{opacity:1;transform:scale(1.2) rotate(8deg)}62%{transform:scale(.92) rotate(-4deg)}100%{opacity:0;transform:scale(1.55)}}
@keyframes kissFly{0%{opacity:0;transform:translate(-55vw,35vh) scale(.2) rotate(-35deg)}45%{opacity:1;transform:translate(0,0) scale(1.2) rotate(8deg)}100%{opacity:0;transform:translate(35vw,-25vh) scale(1.8) rotate(25deg)}}
@keyframes laughShake{0%{opacity:0;transform:scale(.2)}30%{opacity:1;transform:scale(1.15)}40%,60%,80%{transform:translateX(-35px) rotate(-8deg) scale(1.05)}50%,70%,90%{transform:translateX(35px) rotate(8deg) scale(1.05)}100%{opacity:0;transform:scale(1.5)}}
@keyframes ghostZoom{0%{opacity:0;transform:scale(.1) translateY(30vh)}45%{opacity:1;transform:scale(1.25) translateY(0)}75%{transform:scale(.85) rotate(-10deg)}100%{opacity:0;transform:scale(2.2) rotate(15deg)}}
@keyframes giftPop{0%{opacity:0;transform:scale(.1) rotate(-30deg)}40%{opacity:1;transform:scale(1.25) rotate(7deg)}70%{transform:scale(.92)}100%{opacity:0;transform:scale(1.7)}}
@keyframes stormFall{0%{opacity:0;transform:translateY(-55vh) rotate(-8deg)}30%{opacity:1}80%{opacity:1;transform:translateY(20vh) rotate(8deg)}100%{opacity:0;transform:translateY(60vh) rotate(14deg)}}

/* Perfil desktop mais nobre */
body.messenger-page .profile{min-height:124px!important;padding:15px 18px!important;align-items:center!important}.profile .avatar-button{width:82px!important;height:82px!important;flex-basis:82px!important}.profile-copy strong{font-size:16px!important}.change-photo-link{font-size:11px!important}.contact-avatar{width:50px!important;height:50px!important;min-width:50px!important}.contact{min-height:68px!important}.contact .presence{margin-left:-19px!important;margin-top:36px!important}

@media(max-width:760px){
  /* Corrige a área do perfil que estava apertada/embola no iPhone */
  .sidebar-main{overflow:hidden!important}
  .desktop-brand{height:96px!important;padding-top:max(18px,env(safe-area-inset-top))!important;padding-bottom:10px!important}
  body.messenger-page .profile{min-height:150px!important;height:auto!important;padding:14px 20px 16px!important;gap:16px!important;align-items:center!important;border-bottom:1px solid rgba(37,137,201,.13)!important}
  .profile .avatar-button{width:104px!important;height:104px!important;flex:0 0 104px!important;border-width:3px!important;box-shadow:0 0 0 7px rgba(11,179,255,.09),0 16px 36px rgba(0,0,0,.34)!important}
  .avatar-camera-badge{width:31px!important;height:31px!important;font-size:16px!important}
  .profile-copy{gap:5px!important}.profile-copy strong{font-size:22px!important;line-height:1.08!important}.profile-copy #myStatus{font-size:16px!important}.change-photo-link{font-size:13px!important;color:#38d6ff!important}.logout{margin-left:auto!important;font-size:13px!important;padding:10px 12px!important}
  .contacts-title-row{padding:14px 20px 12px!important;align-items:center!important}.contacts-title-row span{font-size:25px!important}.contacts-title-row small{font-size:11px!important}
  .add-contact{padding:0 18px 14px!important}.add-contact .search-glyph{left:34px!important;top:15px!important}.add-contact input{height:56px!important;font-size:17px!important;border-radius:22px!important;padding-left:50px!important}.add-contact button{width:56px!important;height:56px!important;border-radius:19px!important;font-size:28px!important}
  body.messenger-page .contacts{padding:0 14px 18px!important}.contact{min-height:86px!important;padding:11px 14px!important;border-radius:20px!important;gap:13px!important}.contact-avatar{width:66px!important;height:66px!important;min-width:66px!important;border-width:2px!important}.contact .presence{width:16px!important;height:16px!important;margin-left:-25px!important;margin-top:48px!important;border-width:3px!important}.contact-copy b{font-size:18px!important}.contact-copy small{font-size:14px!important}
  .chat-avatar{width:64px!important;height:64px!important;min-width:64px!important}.chat-person-copy strong{font-size:21px!important}
  .emoji-panel{left:10px!important;right:10px!important;bottom:calc(226px + env(safe-area-inset-bottom))!important;width:auto!important;grid-template-columns:repeat(5,1fr)!important}.emoji-panel button{height:56px!important;font-size:30px!important}
  .wink-panel{grid-template-columns:repeat(3,1fr)!important;max-height:46vh!important}.wink-panel button{min-height:88px!important;font-size:38px!important}
  .tool-icon{font-size:27px!important}.tool-label{font-size:10px!important}.message-field-face{font-size:28px!important}
}
@media(max-width:390px){
  .profile .avatar-button{width:92px!important;height:92px!important;flex-basis:92px!important}.profile-copy strong{font-size:19px!important}.profile-copy #myStatus{font-size:14px!important}.contacts-title-row span{font-size:22px!important}.contact-avatar{width:60px!important;height:60px!important;min-width:60px!important}
}


/* =========================================================
   ROGER CONNECT MSN V2.2 — chamadas de áudio/vídeo tipo telefone
   ========================================================= */
.incoming-call-card{position:relative;overflow:hidden}
.incoming-call-card::before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle,#22c7ff18 0 18%,transparent 45%);animation:rogerIncomingAura 2.1s ease-in-out infinite;pointer-events:none}
@keyframes rogerIncomingAura{0%,100%{transform:scale(.86);opacity:.55}50%{transform:scale(1.1);opacity:1}}
.incoming-call-avatar{position:relative;z-index:1;animation:rogerIncomingAvatar 1.65s ease-in-out infinite}
@keyframes rogerIncomingAvatar{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.incoming-call-type,.incoming-call-card h2,.incoming-call-card p,.incoming-call-actions{position:relative;z-index:1}
.call-round-btn.accept b{font-size:24px;line-height:1}

.audio-call-waves{display:none;align-items:center;justify-content:center;gap:6px;height:34px;margin:5px 0 2px}
.audio-call-waves.active{display:flex}
.audio-call-waves i{display:block;width:5px;height:10px;border-radius:9px;background:#48d7ff;box-shadow:0 0 12px #36c9ff88;animation:rogerAudioWave .85s ease-in-out infinite}
.audio-call-waves i:nth-child(2){animation-delay:.12s}.audio-call-waves i:nth-child(3){animation-delay:.24s}.audio-call-waves i:nth-child(4){animation-delay:.36s}.audio-call-waves i:nth-child(5){animation-delay:.48s}
@keyframes rogerAudioWave{0%,100%{height:9px;opacity:.48}50%{height:30px;opacity:1}}
.video-call-modal.audio-only .video-call-stage{background:radial-gradient(circle at 50% 35%,#123f63 0,#071a2b 44%,#020a12 100%)}
.video-call-modal.audio-only .remote-video{opacity:0;pointer-events:none}
.video-call-modal.audio-only .remote-video-placeholder{opacity:1!important;pointer-events:auto!important;background:transparent}
.video-call-modal.audio-only .call-remote-avatar{width:164px;height:164px;font-size:78px;border:3px solid #54d9ff;box-shadow:0 0 0 12px #22bfff12,0 0 60px #1aa8ff30,0 25px 90px #000a}
.video-call-modal.audio-only .local-video{display:none}
.video-call-modal.audio-only #toggleCameraBtn,.video-call-modal.audio-only #switchCallCameraBtn{display:none!important}
.video-call-modal.audio-only .remote-video-placeholder h2{font-size:32px}
.video-call-modal.audio-only .remote-video-placeholder p{font-size:17px}
.header-call-btn#phoneCallBtn,.header-call-btn#audioCallBtn{border-color:#2180a7!important}
@media(max-width:760px){
  body.messenger-page .chat-call-actions{gap:7px!important}
  body.messenger-page #audioCallBtn,body.messenger-page #videoCallBtn{width:46px!important;height:46px!important}
  .video-call-modal.audio-only .call-remote-avatar{width:142px;height:142px}
  .video-call-modal.audio-only .remote-video-placeholder h2{font-size:27px}
}


/* =========================================================
   ROGER CONNECT MSN V2.3 — emoticons grandes + efeito visto uma vez
   ========================================================= */
.bubble.emoji-bubble,
.mine .bubble.emoji-bubble,
.msg:not(.mine) .bubble.emoji-bubble{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  padding:4px 6px!important;
  overflow:visible!important;
}
.message-text.emoji-message{
  display:block;
  font-size:64px!important;
  line-height:1.05!important;
  letter-spacing:.04em;
  padding:4px 0 3px;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.28));
  white-space:normal;
  overflow:visible;
}
.message-text.emoji-message.emoji-count-1{font-size:82px!important}
.message-text.emoji-message.emoji-count-2{font-size:70px!important}
.message-text.emoji-message.emoji-count-3{font-size:60px!important}
.message-text.emoji-message.emoji-count-4{font-size:52px!important}
.message-text.emoji-message.emoji-count-5,
.message-text.emoji-message.emoji-count-6,
.message-text.emoji-message.emoji-count-7,
.message-text.emoji-message.emoji-count-8{font-size:44px!important}
.emoji-row .msg-time{margin-top:2px!important}

/* O seletor também fica mais confortável para as carinhas. */
.emoji-panel{grid-template-columns:repeat(5,minmax(58px,1fr))!important;gap:10px!important;padding:14px!important}
.emoji-panel button{height:68px!important;font-size:39px!important;border-radius:17px!important}

@media(max-width:760px){
  .message-text.emoji-message{font-size:58px!important}
  .message-text.emoji-message.emoji-count-1{font-size:76px!important}
  .message-text.emoji-message.emoji-count-2{font-size:66px!important}
  .message-text.emoji-message.emoji-count-3{font-size:56px!important}
  .message-text.emoji-message.emoji-count-4{font-size:48px!important}
  .message-text.emoji-message.emoji-count-5,
  .message-text.emoji-message.emoji-count-6,
  .message-text.emoji-message.emoji-count-7,
  .message-text.emoji-message.emoji-count-8{font-size:40px!important}
  .emoji-panel{grid-template-columns:repeat(4,1fr)!important;gap:9px!important}
  .emoji-panel button{height:66px!important;font-size:38px!important}
}


/* V2.4 — Conversas x Contatos + menu de ações */
.conversation-menu-wrap{position:relative;display:flex;align-items:center}
.header-more-btn{min-width:48px;height:48px;border:1px solid rgba(64,184,255,.35);border-radius:16px;background:rgba(7,31,57,.9);color:#8edcff;font-size:20px;font-weight:900;cursor:pointer}
.header-more-btn:disabled{opacity:.35;cursor:not-allowed}
.conversation-menu{position:absolute;right:0;top:58px;z-index:80;width:min(310px,calc(100vw - 28px));padding:10px;border:1px solid rgba(64,184,255,.28);border-radius:16px;background:#081b30;box-shadow:0 18px 50px rgba(0,0,0,.4)}
.conversation-menu.hidden{display:none}
.conversation-menu button{width:100%;min-height:46px;text-align:left;padding:10px 12px;border:0;border-radius:11px;background:transparent;color:#dcefff;font:inherit;font-weight:700;cursor:pointer}
.conversation-menu button:hover{background:rgba(40,162,236,.12)}
.conversation-menu button.danger{color:#ff9d9d}
.conversation-menu small{display:block;padding:7px 12px 3px;color:#7594b1;line-height:1.35}
.contact .contact-copy small.preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.list-mode-btn.is-selected{background:rgba(26,160,235,.16)!important;color:#74dcff!important}
@media(max-width:720px){
  .conversation-menu{position:fixed;left:14px;right:14px;top:auto;bottom:calc(var(--roger-composer-height,150px) + 74px);width:auto}
  .header-more-btn{min-width:44px;height:44px;border-radius:14px}
}


/* =========================================================
   ROGER CONNECT MSN V2.7 — MOBILE COMPACTO / BOTÃO ENVIAR SEMPRE VISÍVEL
   ========================================================= */
.mobile-only-menu-item{display:none!important}
@media(max-width:760px){
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  body.messenger-page .messenger-shell{width:100%!important;max-width:100%!important;overflow:hidden!important}
  body.messenger-page .sidebar,body.messenger-page .chat{max-width:100%!important;overflow:hidden!important}

  /* Lista inicial: continua com foto boa, mas sem ocupar metade da tela. */
  .desktop-brand{height:72px!important;padding:max(8px,env(safe-area-inset-top)) 14px 6px!important}
  .brand-symbol{width:42px!important;height:40px!important;transform:scale(.84);transform-origin:left center}
  .brand-copy strong{font-size:15px!important}.brand-copy small{font-size:9px!important}
  body.messenger-page .profile{min-height:116px!important;padding:10px 14px 12px!important;gap:12px!important}
  .profile .avatar-button{width:84px!important;height:84px!important;flex:0 0 84px!important}
  .avatar-camera-badge{width:27px!important;height:27px!important;font-size:14px!important}
  .profile-copy{gap:3px!important}.profile-copy strong{font-size:18px!important}.profile-copy #myStatus{font-size:13px!important}.change-photo-link{font-size:11px!important}.logout{font-size:11px!important;padding:8px 9px!important}
  .contacts-title-row{padding:8px 16px!important}.contacts-title-row span{font-size:20px!important}
  .add-contact{padding:0 14px 10px!important}.add-contact input{height:48px!important;font-size:16px!important;border-radius:18px!important}.add-contact button{width:48px!important;height:48px!important;font-size:24px!important}
  body.messenger-page .contacts{padding:0 10px 12px!important}.contact{min-height:72px!important;padding:8px 11px!important}.contact-avatar{width:56px!important;height:56px!important;min-width:56px!important}.contact .presence{width:14px!important;height:14px!important;margin-left:-22px!important;margin-top:41px!important}.contact-copy b{font-size:16px!important}.contact-copy small{font-size:12px!important}

  /* Chat compacto: evita largura maior que o iPhone/Android. */
  body.messenger-page .chat{grid-template-rows:56px 68px minmax(0,1fr) 22px auto 56px!important;min-width:0!important}
  .mobile-appbar{height:56px!important;padding:calc(4px + env(safe-area-inset-top)) 10px 4px!important;min-width:0!important}
  .mobile-menu-btn,.mobile-search-icon{width:36px!important;font-size:23px!important}.mobile-brand-center{min-width:0!important;max-width:calc(100% - 78px)!important}.mobile-brand-center strong{font-size:13px!important;overflow:hidden;text-overflow:ellipsis}.mobile-brand-center small{display:none!important}.brand-symbol.small{transform:scale(.54)!important;margin:-12px -13px -12px -16px!important}

  body.messenger-page .chat-header{height:68px!important;min-height:68px!important;padding:0 8px!important;gap:4px!important;max-width:100%!important;overflow:hidden!important}
  .mobile-back{width:30px!important;height:38px!important;font-size:34px!important;margin-right:0!important;flex:0 0 30px!important}
  .chat-person{flex:1 1 auto!important;min-width:0!important;gap:7px!important;overflow:hidden!important}
  .chat-avatar{width:44px!important;height:44px!important;min-width:44px!important;flex:0 0 44px!important}
  .chat-person-copy{min-width:0!important;overflow:hidden!important}.chat-person-copy strong{font-size:16px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important}.chat-person-copy span{font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body.messenger-page .chat-call-actions{flex:0 0 auto!important;margin-left:4px!important;gap:4px!important;padding:0!important;min-width:0!important}
  body.messenger-page #audioCallBtn,body.messenger-page #videoCallBtn{width:38px!important;height:38px!important;min-width:38px!important;border-radius:50%!important;padding:0!important}
  body.messenger-page #soundToggleBtn{display:none!important}
  .header-more-btn{min-width:38px!important;width:38px!important;height:38px!important;border-radius:50%!important;font-size:15px!important;padding:0!important}
  .call-glyph{font-size:17px!important}.mobile-only-menu-item{display:block!important}

  body.messenger-page .messages{padding:10px 10px 8px!important}.bubble{max-width:91%!important;font-size:14px!important}.typing{height:22px!important;padding:0 12px!important}

  /* Composer: duas linhas pequenas. A seta fica reservada numa coluna própria. */
  body.messenger-page .composer{
    width:100%!important;max-width:100%!important;min-width:0!important;min-height:108px!important;
    display:grid!important;grid-template-columns:minmax(0,1fr) 50px!important;
    grid-template-areas:"tools tools" "field send"!important;
    gap:6px 8px!important;padding:6px 8px 8px!important;overflow:hidden!important;
  }
  .composer-tools{grid-area:tools!important;width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
  .tool-btn{width:100%!important;min-width:0!important;height:44px!important;border-radius:13px!important;padding:3px 2px!important;gap:1px!important;overflow:hidden!important}
  .tool-icon{font-size:19px!important;line-height:1!important}.tool-label{font-size:7.5px!important;line-height:1!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .message-field-wrap{grid-area:field!important;width:100%!important;min-width:0!important;height:48px!important}
  .composer #messageInput{width:100%!important;min-width:0!important;height:48px!important;font-size:16px!important;border-radius:15px!important;padding:0 42px 0 13px!important}
  .message-field-face{right:10px!important;font-size:22px!important;width:34px!important;height:34px!important}
  .composer>button#sendBtn{grid-area:send!important;display:grid!important;visibility:visible!important;opacity:1;position:relative!important;z-index:8!important;width:50px!important;min-width:50px!important;height:50px!important;max-width:50px!important;border-radius:50%!important;padding:0!important;margin:0!important;align-self:center!important;justify-self:end!important;font-size:22px!important;overflow:visible!important}
  .composer>button#sendBtn:disabled{opacity:.42!important}

  .mobile-bottom-nav{height:56px!important;padding:3px 4px calc(3px + env(safe-area-inset-bottom))!important}.mobile-bottom-nav span{font-size:19px!important}.mobile-bottom-nav small{font-size:8px!important}
  body.messenger-page .scroll-bottom-btn{bottom:calc(var(--roger-composer-height,108px) + 66px)!important}
  .wink-panel,.emoji-panel{bottom:calc(var(--roger-composer-height,108px) + 64px + env(safe-area-inset-bottom))!important}
  .conversation-menu{bottom:calc(var(--roger-composer-height,108px) + 62px)!important}
}

@media(max-width:390px){
  body.messenger-page .profile{min-height:108px!important}.profile .avatar-button{width:78px!important;height:78px!important;flex-basis:78px!important}.profile-copy strong{font-size:17px!important}
  .chat-avatar{width:40px!important;height:40px!important;min-width:40px!important}.chat-person-copy strong{font-size:15px!important}
  body.messenger-page #audioCallBtn,body.messenger-page #videoCallBtn,.header-more-btn{width:36px!important;min-width:36px!important;height:36px!important}
  body.messenger-page .composer{grid-template-columns:minmax(0,1fr) 46px!important;padding-left:6px!important;padding-right:6px!important;gap:5px 6px!important}
  .composer>button#sendBtn{width:46px!important;min-width:46px!important;max-width:46px!important;height:46px!important;font-size:21px!important}
  .tool-label{font-size:7px!important}.tool-icon{font-size:18px!important}
}

/* ============================================================
   V2.8 — STATUS COM FOTOS PASSANDO + MÚSICA (WEB / PWA)
   ============================================================ */
.status-nav-badge{position:absolute;top:5px;right:7px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ff426b;color:#fff;font-size:10px;font-style:normal;font-weight:800;display:grid;place-items:center;box-shadow:0 0 0 2px #061529}.status-nav-badge.hidden{display:none!important}.status-open-btn{position:relative}.status-mobile-icon{color:#26ddff}
.status-hub,.status-create-modal,.status-viewer{position:fixed;inset:0;z-index:1500;background:rgba(0,7,14,.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid;place-items:center;padding:18px}.status-hub.hidden,.status-create-modal.hidden,.status-viewer.hidden{display:none!important}
.status-hub-card{width:min(920px,96vw);max-height:min(850px,92vh);overflow:hidden;border:1px solid rgba(73,201,255,.24);border-radius:28px;background:linear-gradient(160deg,rgba(7,31,51,.98),rgba(3,17,31,.99));box-shadow:0 28px 90px rgba(0,0,0,.55);display:flex;flex-direction:column}.status-hub-header{display:flex;align-items:center;gap:15px;padding:20px 22px;border-bottom:1px solid rgba(63,175,232,.18)}.status-hub-header>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.status-hub-header strong{font-size:22px;color:#f3fbff}.status-hub-header span{font-size:12px;color:#8fbad8}.status-hub-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.status-primary-btn,.status-publish-btn{border:0;border-radius:15px;background:linear-gradient(135deg,#17d9ff,#167af5);color:#fff;font-weight:800;padding:12px 17px;box-shadow:0 10px 28px rgba(0,157,255,.25)}.status-close-btn,.status-create-card header button,.status-viewer-header-actions button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(110,195,239,.18);background:rgba(8,39,62,.82);color:#e9f8ff;font-size:18px}.status-feed-loading{padding:28px;color:#9fc8e2;text-align:center}.status-feed-list{padding:18px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.status-feed-user{border:1px solid rgba(66,165,221,.16);background:linear-gradient(145deg,rgba(11,46,71,.86),rgba(5,28,48,.9));border-radius:22px;padding:14px;text-align:left;color:#fff;display:flex;align-items:center;gap:12px;min-width:0;cursor:pointer}.status-feed-user:hover{border-color:rgba(38,214,255,.5);transform:translateY(-1px)}.status-feed-cover{width:68px;height:68px;min-width:68px;border-radius:50%;padding:3px;background:linear-gradient(135deg,#19dbff,#8c5cff,#ff4b91);position:relative}.status-feed-user.seen .status-feed-cover{background:#3c5c70}.status-feed-cover img,.status-feed-cover .fallback{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid #081c2d;background:#0c2a40;display:grid;place-items:center;font-size:26px}.status-feed-copy{min-width:0;display:flex;flex-direction:column}.status-feed-copy strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-feed-copy small{font-size:11px;color:#8db7d2;margin-top:3px}.status-unseen-pill{margin-top:6px;width:max-content;background:rgba(18,210,255,.13);border:1px solid rgba(18,210,255,.25);color:#4ee5ff;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800}.status-empty{grid-column:1/-1;padding:42px;text-align:center;color:#8fb4cf}.status-own-new{border-style:dashed}.status-own-new .status-feed-cover{background:#0d6fa7}.status-own-new .status-feed-cover:after{content:'+';position:absolute;right:-1px;bottom:-1px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#19d7ff;color:#052033;border:3px solid #081c2d;font-weight:900}
.status-create-card{width:min(560px,96vw);max-height:92vh;overflow:auto;border:1px solid rgba(56,193,244,.25);border-radius:28px;background:linear-gradient(155deg,#09243a,#051626);padding:20px;box-shadow:0 28px 90px rgba(0,0,0,.58)}.status-create-card header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.status-create-card header>div{display:flex;flex-direction:column}.status-create-card header strong{font-size:22px}.status-create-card header span{font-size:12px;color:#8db6d1}.status-create-card header button{margin-left:auto}.status-picker-card{border:1px dashed rgba(74,196,247,.36);background:rgba(7,43,69,.7);border-radius:18px;padding:15px;display:grid;grid-template-columns:42px 1fr;column-gap:10px;cursor:pointer;margin-bottom:10px}.status-picker-card>span{grid-row:1/3;font-size:28px;align-self:center}.status-picker-card strong{font-size:14px}.status-picker-card small{font-size:10px;color:#84adc6}.status-photo-preview{display:flex;gap:8px;overflow-x:auto;margin:4px 0 14px}.status-photo-thumb{width:72px;height:92px;min-width:72px;border-radius:13px;object-fit:cover;border:1px solid rgba(84,196,236,.25)}.status-music-name{font-size:11px;color:#8fc7e5;margin:-2px 2px 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-field-label{display:block;color:#9cc7df;font-size:11px;margin:8px 3px 6px}.status-caption-input{width:100%;height:48px;border-radius:14px;border:1px solid rgba(57,151,207,.32);background:#071c2e;color:#fff;padding:0 13px;font-size:15px;box-sizing:border-box}.status-duration-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.status-duration-row label{font-size:12px;color:#a6c9df}.status-duration-row select{border:1px solid rgba(57,151,207,.32);background:#071c2e;color:#eaf9ff;border-radius:12px;padding:9px 12px}.status-publish-btn{width:100%;height:52px;font-size:15px;margin-top:4px}.status-publish-btn:disabled{opacity:.45}.status-create-note{display:block;color:#759ab4;text-align:center;margin-top:10px;line-height:1.4}
.status-viewer{background:#000;padding:0}.status-viewer-stage{width:min(520px,100vw);height:100vh;max-height:100vh;background:#02070b;position:relative;overflow:hidden;display:flex;flex-direction:column}.status-progress{position:absolute;left:10px;right:10px;top:10px;z-index:7;display:flex;gap:4px}.status-progress-segment{height:3px;flex:1;border-radius:999px;background:rgba(255,255,255,.28);overflow:hidden}.status-progress-segment i{display:block;height:100%;width:0;background:#fff;border-radius:inherit}.status-progress-segment.done i{width:100%}.status-progress-segment.active i{animation:rogerStatusProgress linear forwards}.status-viewer-header{position:absolute;top:22px;left:0;right:0;z-index:8;display:flex;align-items:center;padding:10px 13px;background:linear-gradient(180deg,rgba(0,0,0,.58),transparent)}.status-viewer-avatar{width:46px;height:46px;border-radius:50%;background:#14344a;overflow:hidden;display:grid;place-items:center}.status-viewer-avatar img{width:100%;height:100%;object-fit:cover}.status-viewer-person{display:flex;flex-direction:column;margin-left:10px;min-width:0}.status-viewer-person strong{font-size:15px;color:#fff}.status-viewer-person span{font-size:10px;color:#c0ced6}.status-viewer-header-actions{margin-left:auto;display:flex;gap:7px}.status-delete-btn{font-size:15px!important}.status-delete-btn.hidden{display:none}.status-photo-stage{position:relative;flex:1;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#13293a,#020609 70%)}.status-photo-stage>img{width:100%;height:100%;object-fit:contain}.status-side-nav{position:absolute;top:18%;bottom:18%;width:25%;border:0;background:transparent;color:transparent;font-size:1px;z-index:4}.status-side-nav.prev{left:0}.status-side-nav.next{right:0}.status-viewer-caption{position:absolute;left:18px;right:18px;bottom:68px;z-index:5;color:#fff;font-size:17px;font-weight:700;text-align:center;text-shadow:0 2px 10px #000;background:rgba(0,0,0,.24);backdrop-filter:blur(5px);border-radius:16px;padding:10px 13px}.status-viewer-caption:empty{display:none}.status-music-badge{position:absolute;left:16px;bottom:20px;z-index:5;max-width:calc(100% - 32px);background:rgba(4,19,30,.75);border:1px solid rgba(76,204,255,.25);color:#dff7ff;border-radius:999px;padding:8px 12px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-music-badge.hidden,.status-music-unlock.hidden{display:none!important}.status-music-unlock{position:absolute;z-index:9;left:50%;bottom:118px;transform:translateX(-50%);border:0;border-radius:999px;padding:11px 15px;background:#fff;color:#061725;font-weight:800;box-shadow:0 6px 25px rgba(0,0,0,.4)}
@keyframes rogerStatusProgress{from{width:0}to{width:100%}}
@media(max-width:760px){
  .status-hub,.status-create-modal{padding:0;place-items:stretch}.status-hub-card,.status-create-card{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;border:0}.status-hub-header{padding:14px 14px 11px}.status-hub-header strong{font-size:18px}.status-primary-btn{padding:10px 11px;font-size:11px}.status-feed-list{grid-template-columns:1fr;padding:11px;gap:8px}.status-feed-user{padding:10px 12px;border-radius:18px}.status-feed-cover{width:60px;height:60px;min-width:60px}.status-create-card{padding:16px}.status-create-card header{margin-top:env(safe-area-inset-top)}
  .mobile-bottom-nav.status-nav-five{grid-template-columns:repeat(5,1fr)!important}.mobile-bottom-nav.status-nav-five small{font-size:7px!important}.mobile-bottom-nav.status-nav-five span{font-size:18px!important}.status-nav-badge{top:2px;right:calc(50% - 22px);min-width:15px;height:15px;font-size:8px}
  .status-viewer-stage{width:100vw;height:100vh}.status-viewer-header{padding-top:calc(10px + env(safe-area-inset-top))}.status-progress{top:calc(8px + env(safe-area-inset-top))}
}
@media(prefers-reduced-motion:reduce){.status-progress-segment.active i{animation:none;width:100%}.status-feed-user:hover{transform:none}}

/* ============================================================
   V2.9 — AVATARES QUADRADOS COM CANTOS ARREDONDADOS
   Perfil, contatos, topo do chat e status.
   A imagem usa object-fit: cover para preencher sem deformar.
   ============================================================ */
:root{--roger-avatar-radius:22px;--roger-avatar-radius-small:16px}

/* Perfil do usuário na lateral */
body.messenger-page .profile .avatar-button{
  border-radius:var(--roger-avatar-radius)!important;
  overflow:visible!important;
}
body.messenger-page .profile .avatar-button .profile-photo{
  width:100%!important;height:100%!important;display:block!important;
  object-fit:cover!important;object-position:center!important;
  border-radius:calc(var(--roger-avatar-radius) - 3px)!important;
}
body.messenger-page .profile .avatar-button .avatar-fallback{
  width:100%;height:100%;display:grid;place-items:center;
  border-radius:calc(var(--roger-avatar-radius) - 3px)!important;
  overflow:hidden;background:#102a42;
}

/* Contatos */
body.messenger-page .contact-avatar{
  border-radius:18px!important;overflow:hidden!important;
}
body.messenger-page .contact-avatar img{
  width:100%!important;height:100%!important;display:block!important;
  object-fit:cover!important;object-position:center!important;
  border-radius:inherit!important;
}

/* Avatar no topo da conversa */
body.messenger-page .chat-avatar{
  border-radius:18px!important;overflow:hidden!important;
}
body.messenger-page .chat-avatar img{
  width:100%!important;height:100%!important;display:block!important;
  object-fit:cover!important;object-position:center!important;
  border-radius:inherit!important;
}

/* Status: miniatura/lista e avatar do visualizador */
.status-feed-cover{border-radius:20px!important}
.status-feed-cover img,.status-feed-cover .fallback{
  border-radius:17px!important;object-fit:cover!important;object-position:center!important;
}
.status-viewer-avatar{border-radius:15px!important}
.status-viewer-avatar img{
  border-radius:inherit!important;object-fit:cover!important;object-position:center!important;
}

/* Mantém bolinha de online e câmera bem posicionadas */
body.messenger-page .profile .avatar-camera-badge{right:-5px!important;bottom:-5px!important}
body.messenger-page .contact .presence{border-radius:50%!important}

@media(max-width:760px){
  :root{--roger-avatar-radius:19px;--roger-avatar-radius-small:14px}
  body.messenger-page .profile .avatar-button{border-radius:19px!important}
  body.messenger-page .profile .avatar-button .profile-photo,
  body.messenger-page .profile .avatar-button .avatar-fallback{border-radius:16px!important}
  body.messenger-page .contact-avatar{border-radius:16px!important}
  body.messenger-page .chat-avatar{border-radius:15px!important}
  .status-feed-cover{border-radius:18px!important}
  .status-feed-cover img,.status-feed-cover .fallback{border-radius:15px!important}
  .status-viewer-avatar{border-radius:14px!important}
}

/* ==========================================================
   ROGER CONNECT MSN V3.0 — Publicação de Status no PWA
   ========================================================== */
.status-pwa-quick-add{display:none}
.status-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
.status-source-grid .status-picker-card{margin-bottom:6px;min-height:82px;box-sizing:border-box}
.status-camera-picker{border-color:rgba(44,226,255,.34);background:linear-gradient(145deg,rgba(5,58,82,.78),rgba(6,35,56,.82))}
.status-pwa-hint{display:none;margin:4px 0 14px;padding:10px 12px;border:1px solid rgba(54,195,245,.2);border-radius:14px;background:rgba(8,45,70,.58);color:#9ed4ed;font-size:11px;line-height:1.45}
.status-photo-thumb-wrap{position:relative;width:72px;height:92px;min-width:72px;flex:0 0 72px}
.status-photo-thumb-wrap .status-photo-thumb{width:100%;height:100%;min-width:0;margin:0}
.status-photo-remove{position:absolute;right:-4px;top:-5px;width:25px;height:25px;border-radius:50%;border:2px solid #071725;background:#ff4166;color:#fff;font-size:18px;font-weight:800;line-height:18px;display:grid;place-items:center;padding:0;box-shadow:0 5px 14px rgba(0,0,0,.35)}
.status-photo-count{height:92px;min-width:48px;display:grid;place-items:center;color:#79dfff;font-weight:800;font-size:12px}

@media (max-width:760px){
  .status-hub-card{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .status-hub-actions #newStatusBtn{display:none}
  .status-pwa-quick-add{display:block;position:absolute;left:14px;right:14px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:6;height:52px;border:0;border-radius:17px;background:linear-gradient(135deg,#18dafa,#1785ff);color:#fff;font-size:15px;font-weight:900;box-shadow:0 12px 28px rgba(0,149,255,.30)}
  .status-hub-card{position:relative}
  .status-source-grid{grid-template-columns:1fr 1fr;gap:8px}
  .status-source-grid .status-picker-card{grid-template-columns:34px 1fr;padding:12px 10px;min-height:78px;border-radius:16px}
  .status-source-grid .status-picker-card>span{font-size:24px}
  .status-source-grid .status-picker-card strong{font-size:12px}
  .status-source-grid .status-picker-card small{font-size:9px;line-height:1.25}
  .roger-standalone-pwa .status-pwa-hint{display:block}
  .roger-standalone-pwa .status-create-card{padding-bottom:calc(22px + env(safe-area-inset-bottom))}
  .status-photo-preview{padding-top:5px;min-height:0}
}

@media (max-width:380px){
  .status-source-grid{grid-template-columns:1fr}
  .status-source-grid .status-picker-card{min-height:64px}
}


/* ==========================================================
   ROGER CONNECT MSN V3.1 — PWA FOTO NÍTIDA + MÚSICA ONLINE
   ========================================================== */
.status-online-music{margin:10px 0 12px;padding:13px;border:1px solid rgba(54,190,242,.24);border-radius:18px;background:linear-gradient(145deg,rgba(6,43,68,.84),rgba(4,27,46,.90))}
.status-online-music-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}.status-online-music-title>span{font-size:27px}.status-online-music-title>div{display:flex;flex-direction:column;min-width:0}.status-online-music-title strong{font-size:14px;color:#f0fbff}.status-online-music-title small{font-size:10px;color:#83afc9;line-height:1.35}
.status-music-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.status-music-search-row input{width:100%;min-width:0;height:44px;border:1px solid rgba(57,151,207,.34);border-radius:13px;background:#06192a;color:#fff;padding:0 12px;font-size:15px;outline:none}.status-music-search-row input:focus{border-color:#21cef8;box-shadow:0 0 0 3px rgba(33,206,248,.08)}.status-music-search-row button{height:44px;border:0;border-radius:13px;background:linear-gradient(135deg,#18d5f7,#197df4);color:#fff;font-weight:900;padding:0 15px}.status-music-search-row button:disabled{opacity:.55}
.status-music-search-info{font-size:9.5px;color:#789fb9;margin:7px 2px}.status-music-results{display:flex;flex-direction:column;gap:7px;max-height:255px;overflow:auto;-webkit-overflow-scrolling:touch}.status-music-result{display:grid;grid-template-columns:48px minmax(0,1fr) 40px 52px;align-items:center;gap:8px;padding:7px;border:1px solid rgba(72,162,215,.14);border-radius:14px;background:rgba(3,25,43,.72)}.status-music-result.selected{border-color:#24d6ff;background:rgba(11,80,113,.56);box-shadow:inset 0 0 0 1px rgba(36,214,255,.13)}.status-music-result-cover{width:48px;height:48px;border-radius:11px;overflow:hidden;background:#0c304b;display:grid;place-items:center;font-size:22px}.status-music-result-cover img{width:100%;height:100%;object-fit:cover}.status-music-result-copy{min-width:0;display:flex;flex-direction:column}.status-music-result-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-music-result-copy small{font-size:9px;color:#8aacbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.status-music-preview-btn,.status-music-choose-btn{height:36px;border-radius:11px;border:1px solid rgba(68,171,229,.28);background:#092d48;color:#dff8ff;font-weight:900}.status-music-preview-btn.playing{color:#20e0ff;border-color:#20d8ff}.status-music-choose-btn{border:0;background:#0f8bd2;color:#fff;font-size:10px}.status-music-empty{padding:18px;text-align:center;color:#789db7;font-size:11px}
.status-selected-music{margin-top:9px;display:grid;grid-template-columns:46px minmax(0,1fr) 34px;gap:9px;align-items:center;padding:8px;border:1px solid rgba(32,218,255,.34);border-radius:14px;background:rgba(10,88,117,.35)}.status-selected-music.hidden{display:none!important}.status-selected-music-cover{width:46px;height:46px;border-radius:11px;overflow:hidden;background:#0d334d;display:grid;place-items:center;font-size:20px}.status-selected-music-cover img{width:100%;height:100%;object-fit:cover}.status-selected-music-copy{display:flex;flex-direction:column;min-width:0}.status-selected-music-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-selected-music-copy small{font-size:9px;color:#9ec4d8;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-selected-music button{width:32px;height:32px;border-radius:50%;border:0;background:#ff4667;color:#fff;font-size:20px;display:grid;place-items:center}.status-music-or{display:flex;align-items:center;gap:10px;margin:4px 0 10px;color:#6e91a8;font-size:9px;text-transform:uppercase}.status-music-or:before,.status-music-or:after{content:"";height:1px;background:rgba(91,159,200,.17);flex:1}

/* Visualização padrão Story: preserva a foto nítida e usa o fundo desfocado somente para preencher a tela. */
.status-photo-stage{overflow:hidden!important;background:#03080d!important}.status-viewer-blur{position:absolute;inset:-34px;z-index:0;background-position:center;background-size:cover;filter:blur(28px) brightness(.48) saturate(1.12);transform:scale(1.10);opacity:.75}.status-viewer-photo-frame{position:absolute;inset:0;z-index:1;display:grid;place-items:center;padding:76px 8px 0}.status-viewer-photo-frame img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;image-rendering:auto;transform:translateZ(0)}.status-side-nav,.status-viewer-caption,.status-music-badge,.status-music-unlock{z-index:5!important}

/* PWA/iPhone: uma única barra no topo da conversa. A foto não fica embaixo da Dynamic Island/status bar. */
@media(max-width:760px){
  .messenger-shell.chat-open .mobile-appbar{display:none!important}
  body.messenger-page .messenger-shell.chat-open .chat{grid-template-rows:calc(76px + env(safe-area-inset-top)) minmax(0,1fr) 22px auto 56px!important}
  body.messenger-page .messenger-shell.chat-open .chat-header{
    height:calc(76px + env(safe-area-inset-top))!important;min-height:calc(76px + env(safe-area-inset-top))!important;
    padding:calc(env(safe-area-inset-top) + 7px) 9px 7px!important;align-items:center!important;overflow:visible!important;
    background:linear-gradient(180deg,#071d35,#06182b)!important;
  }
  .messenger-shell.chat-open .chat-avatar{width:58px!important;height:58px!important;min-width:58px!important;flex:0 0 58px!important;border-radius:17px!important;overflow:hidden!important;align-self:center!important}
  .messenger-shell.chat-open .chat-avatar img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;filter:none!important;image-rendering:auto!important}
  .messenger-shell.chat-open .chat-person{gap:9px!important;align-items:center!important}.messenger-shell.chat-open .chat-person-copy strong{font-size:18px!important;line-height:1.1!important}.messenger-shell.chat-open .chat-person-copy span{font-size:10px!important}
  .messenger-shell.chat-open .mobile-back{width:31px!important;flex:0 0 31px!important}.messenger-shell.chat-open #audioCallBtn,.messenger-shell.chat-open #videoCallBtn,.messenger-shell.chat-open .header-more-btn{width:40px!important;min-width:40px!important;height:40px!important}
  .status-viewer-photo-frame{padding:calc(72px + env(safe-area-inset-top)) 6px calc(4px + env(safe-area-inset-bottom))}
  .status-create-card{padding-top:calc(14px + env(safe-area-inset-top))!important}
  .status-online-music{padding:11px;margin-top:7px}.status-music-results{max-height:220px}.status-music-result{grid-template-columns:44px minmax(0,1fr) 38px 48px;gap:6px;padding:6px}.status-music-result-cover{width:44px;height:44px}.status-music-search-row input{font-size:16px}
  .status-photo-thumb-wrap{width:76px!important;height:126px!important;min-width:76px!important}.status-photo-count{height:126px!important}.status-photo-thumb{border-radius:14px!important;object-fit:cover!important;object-position:center!important}
}
@media(max-width:380px){.status-music-result{grid-template-columns:40px minmax(0,1fr) 36px 44px}.status-music-result-cover{width:40px;height:40px}.status-music-choose-btn{font-size:9px;padding:0 5px}}

/* ==========================================================
   ROGER CONNECT MSN V3.2 — RECIBOS, LOCALIZAÇÃO, STATUS VÍDEO,
   QUEM VIU E MÚSICA NO PERFIL
   ========================================================== */

/* Recibos de mensagem e menu da mensagem */
.msg-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:6px;min-height:18px;font-size:10px;color:rgba(232,247,255,.68)}
.msg-meta .msg-time{font-size:10px;opacity:.72;margin:0}.msg-receipt{display:inline-flex;align-items:center;min-width:18px;justify-content:center;font-size:13px;font-weight:900;letter-spacing:-3px;color:#b8d7e8}.msg-receipt.read{color:#52ddff;text-shadow:0 0 8px rgba(54,219,255,.3)}
.msg-action-btn{width:23px;height:23px;min-width:23px;border:0;border-radius:50%;background:transparent;color:rgba(233,247,255,.74);display:grid;place-items:center;cursor:pointer;font-weight:900;font-size:14px;line-height:1}.msg-action-btn:hover{background:rgba(255,255,255,.10);color:#fff}.message-deleted{font-style:italic;color:#9ab0bf;opacity:.86}.mine .message-deleted{color:#d0e8f4}

.message-action-modal,.status-viewers-modal,.profile-music-modal,.profile-viewer-modal{position:fixed;inset:0;z-index:430;background:rgba(0,8,16,.78);backdrop-filter:blur(10px);display:grid;place-items:center;padding:18px}.message-action-card,.status-viewers-card,.profile-music-card,.profile-viewer-card{width:min(460px,94vw);max-height:min(720px,90vh);overflow:auto;background:linear-gradient(155deg,#0b2941,#061827 78%);border:1px solid rgba(52,187,244,.32);border-radius:24px;box-shadow:0 28px 90px rgba(0,0,0,.62);padding:16px}.message-action-card header,.status-viewers-card header,.profile-music-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(87,179,224,.14)}.message-action-card header button,.status-viewers-card header button,.profile-music-card header button{width:36px;height:36px;border:0;border-radius:12px;background:#143550;color:#fff;font-weight:900}.message-action-preview{margin:13px 0;padding:12px;border-radius:14px;background:rgba(255,255,255,.055);color:#cce8f7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-action-card>button:not(header button){width:100%;margin-top:8px;min-height:47px;border:1px solid rgba(80,174,219,.24);border-radius:14px;background:#0b3551;color:#eaf9ff;text-align:left;padding:0 14px;font-weight:800}.message-action-card>button.danger{background:rgba(130,25,49,.28);border-color:rgba(255,75,108,.30);color:#ffb7c5}.message-action-card>button:disabled{opacity:.38}.message-action-card>small{display:block;margin-top:10px;color:#7fa6bc;font-size:10px;line-height:1.4}

/* Localização */
.location-card{min-width:min(310px,72vw);border:1px solid rgba(77,210,255,.24);border-radius:15px;background:linear-gradient(145deg,rgba(3,45,70,.88),rgba(6,31,50,.93));overflow:hidden}.location-card-top{min-height:90px;display:grid;place-items:center;background:radial-gradient(circle at 42% 42%,rgba(21,180,224,.30),rgba(3,25,42,.36));font-size:42px}.location-card-body{padding:10px 12px;display:flex;flex-direction:column;gap:4px}.location-card-body strong{font-size:13px}.location-card-body small{font-size:10px;color:#8bb6cd}.location-card a{display:block;margin:0 10px 10px;text-align:center;text-decoration:none;color:#fff;font-size:11px;font-weight:900;padding:9px 10px;border-radius:11px;background:linear-gradient(135deg,#19bce8,#1889ee)}

/* Status com foto/vídeo + contador de visualizações */
.status-viewer-photo-frame video{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:#000;border-radius:0}.status-viewers-btn{position:absolute;z-index:8;left:50%;bottom:20px;transform:translateX(-50%);height:39px;max-width:calc(100% - 32px);border:1px solid rgba(104,214,255,.35);border-radius:999px;background:rgba(2,22,36,.80);backdrop-filter:blur(9px);color:#e9fbff;padding:0 14px;font-size:11px;font-weight:900;white-space:nowrap}.status-viewers-btn:hover{background:rgba(9,64,91,.88)}.status-viewer-caption:not(:empty)~.status-viewers-btn{bottom:74px}
.status-media-video-thumb{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#0b334e,#061b2d);font-size:30px;position:relative}.status-media-video-thumb:after{content:'VÍDEO';position:absolute;left:6px;bottom:6px;background:rgba(0,0,0,.62);border-radius:999px;padding:3px 6px;font-size:7px;font-weight:900;color:#fff}
.status-viewers-card header>div,.profile-music-card header>div{display:flex;flex-direction:column;min-width:0}.status-viewers-card header span,.profile-music-card header span{font-size:10px;color:#89afc5;margin-top:3px}.status-viewers-list{padding:8px 0;display:flex;flex-direction:column;gap:6px}.status-viewer-person-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;border-radius:15px;background:rgba(255,255,255,.045)}.status-viewer-person-row img,.status-viewer-person-row .viewer-fallback{width:46px;height:46px;border-radius:14px;object-fit:cover;background:#113551;display:grid;place-items:center}.status-viewer-person-row>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.status-viewer-person-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-viewer-person-row small{font-size:9px;color:#81a8bd;margin-top:3px}.status-viewer-person-row time{font-size:9px;color:#749bb1}.status-viewers-empty{padding:28px;text-align:center;color:#7fa5b9;font-size:11px}

/* Música na foto do perfil */
.profile-music-link{border:0;background:transparent;color:#43d8ff;padding:0;margin-top:4px;font-size:10px;font-weight:800;text-align:left;cursor:pointer}.profile-music-link:hover{text-decoration:underline}.profile-music-current{display:block!important;color:#9adcf0!important;opacity:.95!important;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-music-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:13px 0}.profile-music-search-row input{height:44px;min-width:0;border:1px solid rgba(60,169,220,.30);border-radius:13px;background:#051a2b;color:#fff;padding:0 12px;font-size:15px;outline:none}.profile-music-search-row button{height:44px;border:0;border-radius:13px;background:linear-gradient(135deg,#1bd3f2,#197dec);color:#fff;padding:0 15px;font-weight:900}.profile-music-results{display:flex;flex-direction:column;gap:7px;max-height:310px;overflow:auto}.profile-music-result{display:grid;grid-template-columns:48px minmax(0,1fr) 40px 54px;gap:8px;align-items:center;padding:7px;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(67,171,221,.14)}.profile-music-result-cover{width:48px;height:48px;border-radius:12px;overflow:hidden;background:#0b3049;display:grid;place-items:center}.profile-music-result-cover img{width:100%;height:100%;object-fit:cover}.profile-music-result-copy{display:flex;flex-direction:column;min-width:0}.profile-music-result-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-music-result-copy small{font-size:9px;color:#82aabd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.profile-music-result button{height:36px;border:0;border-radius:10px;background:#0d4364;color:#fff;font-weight:900}.profile-music-result .profile-use-btn{background:#1089c7;font-size:9px}.profile-music-or{display:flex;align-items:center;gap:9px;color:#668da4;font-size:9px;margin:13px 0}.profile-music-or:before,.profile-music-or:after{content:'';height:1px;background:rgba(79,155,198,.17);flex:1}.profile-music-upload{display:grid;place-items:center;min-height:48px;border:1px dashed rgba(53,203,245,.32);border-radius:14px;background:rgba(7,53,78,.54);color:#dff8ff;font-size:11px;font-weight:900;cursor:pointer}.profile-music-remove{width:100%;height:43px;margin-top:10px;border:1px solid rgba(255,91,118,.25);border-radius:13px;background:rgba(121,26,44,.23);color:#ffafbd;font-size:10px;font-weight:800}
.profile-viewer-card{text-align:center;position:relative;padding:28px 18px 20px}.profile-viewer-close{position:absolute;right:12px;top:12px;width:36px;height:36px;border:0;border-radius:12px;background:#143550;color:#fff}.profile-viewer-avatar{width:min(260px,70vw);height:min(260px,70vw);margin:10px auto 15px;border-radius:30px;overflow:hidden;background:#0d2d45;display:grid;place-items:center;font-size:82px;border:2px solid rgba(51,210,255,.38);box-shadow:0 0 34px rgba(17,182,238,.14)}.profile-viewer-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 72%;transform:scale(1.04);transform-origin:center 72%}.profile-viewer-card h2{margin:4px 0;font-size:22px}.profile-viewer-card>span{display:block;color:#8ec1d8;font-size:11px}.profile-viewer-music{margin:17px auto 0;max-width:350px;display:grid;grid-template-columns:52px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:9px;border-radius:16px;background:rgba(10,69,96,.42);border:1px solid rgba(43,203,241,.24);text-align:left}.profile-viewer-music-cover{width:52px;height:52px;border-radius:13px;overflow:hidden;background:#0d3048;display:grid;place-items:center;font-size:24px}.profile-viewer-music-cover img{width:100%;height:100%;object-fit:cover}.profile-viewer-music>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.profile-viewer-music strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-viewer-music small{font-size:9px;color:#88b2c6;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-viewer-music button{width:42px;height:42px;border:0;border-radius:50%;background:#16a8de;color:#fff;font-size:15px}

@media(max-width:760px){
  /* Cinco ferramentas sem empurrar o botão de enviar para fora da tela */
  body.messenger-page .messenger-shell.chat-open .composer-tools{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;width:100%!important;gap:5px!important}
  body.messenger-page .messenger-shell.chat-open .tool-btn{width:100%!important;min-width:0!important;max-width:none!important;height:50px!important;padding:4px 1px!important}
  body.messenger-page .messenger-shell.chat-open .tool-btn .tool-icon{font-size:19px!important}
  body.messenger-page .messenger-shell.chat-open .tool-btn .tool-label{font-size:7px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .location-card{min-width:min(280px,76vw)}
  .message-action-modal,.status-viewers-modal,.profile-music-modal,.profile-viewer-modal{padding:10px calc(10px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left))}
  .message-action-card,.status-viewers-card,.profile-music-card,.profile-viewer-card{width:100%;max-height:86vh;border-radius:21px}
  .status-viewer-photo-frame video{padding:0;object-fit:contain}
  .status-viewers-btn{bottom:calc(16px + env(safe-area-inset-bottom))}
  .profile-music-result{grid-template-columns:44px minmax(0,1fr) 38px 48px;gap:6px}.profile-music-result-cover{width:44px;height:44px}
  .profile-viewer-avatar{width:min(250px,72vw);height:min(250px,72vw);border-radius:26px}
  .profile-music-link{font-size:9px}.profile-music-current{font-size:8px!important;max-width:112px}
}
@media(max-width:380px){.profile-music-result{grid-template-columns:40px minmax(0,1fr) 36px 44px}.profile-music-result-cover{width:40px;height:40px}.profile-music-result .profile-use-btn{padding:0 3px}.status-viewers-btn{font-size:10px}}
/* V3.2 aliases/finalização dos componentes gerados pelo JavaScript */
.msg-menu-btn{width:23px;height:23px;min-width:23px;border:0;border-radius:50%;background:transparent;color:rgba(233,247,255,.76);display:grid;place-items:center;cursor:pointer;font-weight:900;font-size:14px;line-height:1;padding:0}.msg-menu-btn:hover{background:rgba(255,255,255,.10);color:#fff}
.location-card{display:grid!important;grid-template-columns:50px minmax(0,1fr)!important;align-items:center!important;gap:9px!important;padding:10px 11px!important;text-decoration:none!important;color:#fff!important}.location-pin{font-size:36px;display:grid;place-items:center}.location-copy{min-width:0;display:flex;flex-direction:column}.location-copy strong{font-size:12px}.location-copy small{font-size:9px;color:#9fc9dc;margin-top:3px;line-height:1.4}.location-card:hover{border-color:rgba(62,216,255,.48);background:linear-gradient(145deg,rgba(4,64,96,.9),rgba(8,38,59,.95))}
.status-viewer-person-row>span:first-child{width:46px;height:46px;border-radius:14px;overflow:hidden;background:#113551;display:grid;place-items:center}.status-viewer-person-row>span:first-child img{width:100%;height:100%;object-fit:cover}.status-viewer-person-row>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.status-viewer-person-row>span:nth-child(2) strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-viewer-person-row>span:nth-child(2) small{font-size:9px;color:#81a8bd;margin-top:3px}.status-viewer-person-row>b{color:#45dbff;font-size:15px}
.profile-music-empty{padding:22px;text-align:center;color:#7da7bc;font-size:10px}.profile-music-result .cover{width:48px;height:48px;border-radius:12px;overflow:hidden;background:#0b3049;display:grid;place-items:center;font-size:22px}.profile-music-result .cover img{width:100%;height:100%;object-fit:cover}.profile-music-result .copy{display:flex;flex-direction:column;min-width:0}.profile-music-result .copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-music-result .copy small{font-size:9px;color:#82aabd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.profile-music-result .preview,.profile-music-result .use{height:36px;border:0;border-radius:10px;background:#0d4364;color:#fff;font-weight:900}.profile-music-result .use{background:#1089c7;font-size:9px}.profile-music-result .preview.playing{color:#30e5ff;border:1px solid rgba(48,229,255,.4)}
.status-video-thumb{width:100%;height:100%;object-fit:cover;background:#02070b}.status-video-badge{position:absolute;left:6px;bottom:6px;z-index:2;border-radius:999px;background:rgba(0,0,0,.70);color:#fff;padding:4px 7px;font-size:7px;font-weight:900;letter-spacing:.4px}
\n\n/* ==========================================================\n   ROGER CONNECT MSN V3.3 — brilho de status + perfil/recado\n   ========================================================== */\n@keyframes rogerStatusAura{0%,100%{box-shadow:0 0 0 3px rgba(33,208,255,.22),0 0 16px rgba(31,201,255,.42),0 0 30px rgba(116,75,255,.20)}50%{box-shadow:0 0 0 4px rgba(140,80,255,.28),0 0 23px rgba(36,221,255,.70),0 0 42px rgba(255,70,196,.26)}}\n@keyframes rogerStatusAuraNew{0%,100%{border-color:#28e7ff;box-shadow:0 0 0 3px rgba(40,231,255,.22),0 0 20px rgba(40,231,255,.72),0 0 36px rgba(149,72,255,.38)}50%{border-color:#b058ff;box-shadow:0 0 0 4px rgba(176,88,255,.26),0 0 25px rgba(255,68,195,.54),0 0 44px rgba(46,223,255,.50)}}\nbody.messenger-page .avatar-button.has-status,\nbody.messenger-page .contact-avatar.has-status,\nbody.messenger-page .chat-avatar.has-status,\n.profile-viewer-avatar.has-status{border-color:#43dcff!important;animation:rogerStatusAura 2.2s ease-in-out infinite!important}\nbody.messenger-page .contact-avatar.has-unseen-status,\nbody.messenger-page .chat-avatar.has-unseen-status{animation:rogerStatusAuraNew 1.45s ease-in-out infinite!important}\nbody.messenger-page .contact-avatar.profile-avatar-target{cursor:pointer;position:relative;z-index:2}\nbody.messenger-page .contact-avatar.profile-avatar-target:hover{transform:translateY(-1px) scale(1.025)}\n.profile-about-preview{display:block!important;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8db9d2!important;opacity:.95!important;font-size:10px!important;margin-top:4px!important}\n.profile-inline-actions{display:flex!important;align-items:center!important;gap:8px!important;margin-top:3px!important}\n.profile-about-link{border:0;background:transparent;color:#5ecbff;padding:0;font-size:11px;cursor:pointer;text-align:left}\n.profile-about-link:hover{color:#b2eeff}\n.profile-viewer-about{max-width:360px;margin:10px auto 0;padding:11px 14px;border-radius:15px;background:rgba(255,255,255,.045);border:1px solid rgba(76,185,231,.13);color:#c6e8f7;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}\n.profile-viewer-status-btn{margin:12px auto 0;min-height:42px;padding:0 18px;border-radius:14px;border:1px solid rgba(65,223,255,.40);background:linear-gradient(135deg,rgba(13,120,182,.46),rgba(93,53,174,.40));color:#eaffff;font-weight:900;cursor:pointer;box-shadow:0 0 20px rgba(43,206,255,.14)}\n.profile-viewer-own-tools{max-width:360px;margin:14px auto 0;text-align:left;padding:12px;border-radius:16px;background:rgba(5,31,49,.72);border:1px solid rgba(60,177,226,.18)}\n.profile-viewer-own-tools label{display:block;font-size:11px;font-weight:900;color:#83dfff;margin-bottom:7px}\n.profile-viewer-own-tools textarea{width:100%;resize:none;border:1px solid rgba(61,171,219,.34);background:#071b2b;color:#eefaff;border-radius:13px;padding:11px 12px;font:inherit;outline:none;min-height:78px}\n.profile-viewer-own-tools textarea:focus{border-color:#35ccff;box-shadow:0 0 0 3px rgba(53,204,255,.10)}\n.profile-viewer-own-tools small{display:block;text-align:right;margin-top:4px;color:#6f9fb7;font-size:9px}\n.profile-viewer-own-tools button{width:100%;min-height:42px;margin-top:8px;border:0;border-radius:13px;background:linear-gradient(135deg,#16bce8,#337bf1);color:#fff;font-weight:900;cursor:pointer}\n@media (prefers-reduced-motion:reduce){body.messenger-page .avatar-button.has-status,body.messenger-page .contact-avatar.has-status,body.messenger-page .chat-avatar.has-status,.profile-viewer-avatar.has-status{animation:none!important}}\n

/* ==========================================================
   ROGER CONNECT MSN V3.4 — enquadramento de rosto no perfil
   ========================================================== */
.profile-viewer-avatar{background:#082033}
.profile-viewer-avatar img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 72%!important;
  transform:scale(1.04);
  transform-origin:center 72%;
  image-rendering:auto;
}
/* Avatares menores mantêm o rosto mais centralizado, sem esticar a foto. */
body.messenger-page .profile-photo,
body.messenger-page .contact-avatar img,
body.messenger-page .chat-avatar img{
  object-fit:cover!important;
  object-position:50% 62%!important;
}
@media(max-width:760px){
  .profile-viewer-avatar img{object-position:50% 70%!important;transform:scale(1.03);transform-origin:center 70%}
}

/* ============================================================
   ROGER CONNECT MSN V3.5 — CRIAÇÃO DE STATUS RESPONSIVA / PWA
   Corrige layout fora de forma e mantém fechar/publicar visíveis.
   ============================================================ */
html.status-create-open, body.status-create-open{overflow:hidden!important;overscroll-behavior:none!important}
.status-create-modal{overflow:hidden!important}
.status-create-card{
  display:flex!important;
  flex-direction:column!important;
  width:min(620px,calc(100vw - 28px))!important;
  max-width:620px!important;
  height:auto!important;
  max-height:min(860px,calc(100dvh - 28px))!important;
  padding:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.status-create-header{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin:0!important;
  padding:17px 18px!important;
  border-bottom:1px solid rgba(66,183,232,.18)!important;
  background:linear-gradient(180deg,rgba(9,39,61,.99),rgba(7,29,48,.98))!important;
  position:relative!important;
  z-index:5!important;
}
.status-create-header>div{min-width:0!important;flex:1!important}
.status-create-header strong{font-size:20px!important;line-height:1.15!important}
.status-create-header span{display:block!important;margin-top:3px!important;line-height:1.35!important}
.status-create-header #closeStatusCreateBtn{
  flex:0 0 42px!important;
  width:42px!important;height:42px!important;margin:0!important;
  display:grid!important;place-items:center!important;
  cursor:pointer!important;touch-action:manipulation!important;
}
.status-create-scroll{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  padding:16px 18px 10px!important;
  scrollbar-gutter:stable both-edges;
}
.status-create-footer{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,.42fr) minmax(0,1fr)!important;
  gap:10px!important;
  padding:12px 18px 14px!important;
  border-top:1px solid rgba(66,183,232,.18)!important;
  background:linear-gradient(0deg,rgba(5,22,38,.995),rgba(7,29,48,.98))!important;
  position:relative!important;
  z-index:5!important;
}
.status-create-footer .status-publish-btn{width:100%!important;height:48px!important;margin:0!important}
.status-cancel-btn{
  width:100%!important;height:48px!important;border-radius:14px!important;
  border:1px solid rgba(102,179,222,.24)!important;background:#0a2940!important;
  color:#d7effa!important;font-weight:800!important;cursor:pointer!important;
}
.status-source-grid{width:100%!important;min-width:0!important}
.status-picker-card{min-width:0!important;width:100%!important;box-sizing:border-box!important}
.status-photo-preview{
  width:100%!important;max-width:100%!important;overflow:visible!important;
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(82px,1fr))!important;
  gap:10px!important;margin:8px 0 14px!important;padding:0!important;
}
.status-photo-thumb-wrap{
  width:100%!important;height:auto!important;min-width:0!important;aspect-ratio:4/5!important;
  flex:none!important;border-radius:15px!important;overflow:visible!important;
}
.status-photo-thumb-wrap .status-photo-thumb{width:100%!important;height:100%!important;border-radius:15px!important}
.status-photo-count{
  min-width:0!important;width:100%!important;height:auto!important;aspect-ratio:4/5!important;
  border:1px dashed rgba(63,192,240,.28)!important;border-radius:15px!important;
  background:rgba(7,44,68,.45)!important;
}
.status-photo-remove{right:5px!important;top:5px!important;border-width:1px!important;z-index:4!important}
.status-online-music,.status-music-search-row,.status-selected-music,.status-duration-row{min-width:0!important;max-width:100%!important}
.status-music-results{max-width:100%!important;overflow-x:hidden!important}
.status-caption-input,.status-duration-row select{max-width:100%!important}

@media(max-width:760px){
  .status-create-modal{
    padding:0!important;
    align-items:stretch!important;
    justify-items:stretch!important;
    background:#041321!important;
  }
  .status-create-card{
    width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;
    border:0!important;border-radius:0!important;
  }
  .status-create-header{
    padding:calc(env(safe-area-inset-top) + 10px) 13px 10px!important;
    min-height:calc(62px + env(safe-area-inset-top))!important;
  }
  .status-create-header strong{font-size:18px!important}
  .status-create-header span{font-size:10px!important;white-space:normal!important}
  .status-create-header #closeStatusCreateBtn{width:40px!important;height:40px!important;flex-basis:40px!important}
  .status-create-scroll{padding:12px 12px 9px!important}
  .status-create-footer{
    padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important;
    grid-template-columns:104px minmax(0,1fr)!important;
  }
  .status-create-footer .status-publish-btn,.status-cancel-btn{height:46px!important}
  .status-source-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .status-source-grid .status-picker-card{min-height:70px!important;padding:10px!important;border-radius:15px!important}
  .status-source-grid .status-picker-card>span{font-size:22px!important}
  .status-source-grid .status-picker-card strong{font-size:11px!important}
  .status-source-grid .status-picker-card small{font-size:8.5px!important;line-height:1.25!important}
  .status-photo-preview{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
  .status-photo-thumb-wrap{height:auto!important;min-width:0!important;width:100%!important}
  .status-photo-count{height:auto!important}
  .status-online-music{margin-top:6px!important;padding:10px!important;border-radius:15px!important}
  .status-music-results{max-height:190px!important}
  .status-duration-row{align-items:stretch!important;flex-direction:column!important;gap:6px!important}
  .status-duration-row select{width:100%!important;font-size:16px!important}
  .status-create-note{text-align:left!important;margin:8px 2px 4px!important}
}
@media(max-width:380px){
  .status-source-grid{grid-template-columns:1fr!important}
  .status-photo-preview{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .status-create-footer{grid-template-columns:92px minmax(0,1fr)!important;gap:8px!important;padding-left:9px!important;padding-right:9px!important}
}


/* ============================================================
   ROGER CONNECT MSN V3.6 — STATUS HUB MOBILE / PWA REFEITO
   - respeita Dynamic Island / barra de status do iPhone
   - botão fechar sempre abaixo da área do sistema
   - rodapé de adicionar status fixo na estrutura, sem sobreposição
   - layout mais compacto e profissional
   ============================================================ */
html.status-hub-open,body.status-hub-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}

@media(max-width:760px){
  .status-hub{
    padding:0!important;
    place-items:stretch!important;
    overflow:hidden!important;
    background:#03111f!important;
  }
  .status-hub-card{
    width:100%!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    background:
      radial-gradient(circle at 50% -10%,rgba(24,153,214,.15),transparent 34%),
      linear-gradient(180deg,#061b2e 0%,#03111f 42%,#020d18 100%)!important;
  }
  .status-hub-header{
    position:relative!important;
    flex:0 0 auto!important;
    min-height:calc(82px + env(safe-area-inset-top))!important;
    padding:calc(env(safe-area-inset-top) + 13px) 72px 14px 18px!important;
    margin:0!important;
    border-bottom:1px solid rgba(69,183,232,.16)!important;
    background:linear-gradient(180deg,rgba(8,35,57,.995),rgba(5,25,42,.98))!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
  }
  .status-hub-header>div:first-child{
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:4px!important;
  }
  .status-hub-header strong{
    display:block!important;
    margin:0!important;
    padding:0!important;
    font-size:24px!important;
    line-height:1.05!important;
    letter-spacing:.2px!important;
    color:#f5fbff!important;
    text-transform:none!important;
  }
  .status-hub-header span{
    display:block!important;
    margin:0!important;
    font-size:11px!important;
    line-height:1.35!important;
    color:#86b0cc!important;
    white-space:normal!important;
  }
  .status-hub-actions{
    position:absolute!important;
    right:14px!important;
    top:calc(env(safe-area-inset-top) + 12px)!important;
    z-index:30!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    gap:0!important;
    pointer-events:auto!important;
  }
  .status-hub-actions #newStatusBtn{display:none!important}
  #closeStatusHubBtn.status-close-btn{
    position:relative!important;
    inset:auto!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0!important;
    border-radius:15px!important;
    border:1px solid rgba(81,190,238,.28)!important;
    background:rgba(12,48,74,.96)!important;
    color:#eefaff!important;
    font-size:21px!important;
    line-height:1!important;
    display:grid!important;
    place-items:center!important;
    box-shadow:0 8px 24px rgba(0,0,0,.24)!important;
    cursor:pointer!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
    pointer-events:auto!important;
  }
  #closeStatusHubBtn.status-close-btn:active{
    transform:scale(.95)!important;
    background:rgba(22,77,111,.98)!important;
  }
  .status-feed-loading{
    flex:0 0 auto!important;
    padding:18px!important;
    font-size:12px!important;
  }
  .status-feed-list{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
    padding:14px 14px 10px!important;
  }
  .status-feed-user{
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    min-height:88px!important;
    padding:12px 13px!important;
    border-radius:20px!important;
    box-sizing:border-box!important;
    background:linear-gradient(145deg,rgba(10,49,76,.90),rgba(5,28,47,.94))!important;
    border:1px solid rgba(67,181,232,.18)!important;
    box-shadow:none!important;
  }
  .status-own-new{
    border:1px dashed rgba(53,207,255,.30)!important;
    background:linear-gradient(145deg,rgba(8,54,80,.88),rgba(5,32,51,.94))!important;
  }
  .status-feed-cover{
    width:64px!important;
    height:64px!important;
    min-width:64px!important;
    border-radius:18px!important;
    padding:3px!important;
  }
  .status-feed-cover img,.status-feed-cover .fallback{
    border-radius:15px!important;
  }
  .status-feed-copy strong{
    font-size:16px!important;
    line-height:1.15!important;
  }
  .status-feed-copy small{
    font-size:10.5px!important;
    line-height:1.35!important;
    margin-top:4px!important;
  }
  .status-unseen-pill{
    margin-top:7px!important;
    padding:4px 9px!important;
    font-size:9px!important;
  }
  .status-empty{
    flex:1 1 auto!important;
    min-height:210px!important;
    display:grid!important;
    place-items:center!important;
    align-content:center!important;
    padding:36px 24px!important;
    color:#8eafc4!important;
    font-size:17px!important;
    line-height:1.45!important;
    text-align:center!important;
  }
  .status-pwa-quick-add{
    display:block!important;
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    flex:0 0 auto!important;
    width:calc(100% - 28px)!important;
    height:54px!important;
    margin:10px 14px calc(12px + env(safe-area-inset-bottom))!important;
    padding:0 18px!important;
    border:0!important;
    border-radius:17px!important;
    background:linear-gradient(135deg,#19d5ef 0%,#1886ff 100%)!important;
    color:#fff!important;
    font-size:15px!important;
    font-weight:900!important;
    box-shadow:0 10px 28px rgba(0,137,255,.24)!important;
    z-index:10!important;
    cursor:pointer!important;
    touch-action:manipulation!important;
  }
  .status-pwa-quick-add:active{transform:scale(.985)!important}
}

@media(max-width:380px){
  .status-hub-header{
    min-height:calc(78px + env(safe-area-inset-top))!important;
    padding-left:14px!important;
    padding-right:66px!important;
  }
  .status-hub-header strong{font-size:22px!important}
  .status-hub-header span{font-size:10px!important}
  .status-feed-list{padding-left:10px!important;padding-right:10px!important}
  .status-pwa-quick-add{width:calc(100% - 20px)!important;margin-left:10px!important;margin-right:10px!important}
}

/* ============================================================
   ROGER CONNECT MSN V3.7 — SWIPE PARA EXCLUIR CONVERSA
   Arraste o cartão da conversa para a esquerda.
   A exclusão é somente da sua visão; o contato permanece salvo.
   ============================================================ */
.contact-swipe-row{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:20px;
  isolation:isolate;
}
.contact-swipe-row>.contact{
  position:relative;
  z-index:2;
  width:100%;
  will-change:transform;
  transform:translate3d(0,0,0);
  transition:transform .22s cubic-bezier(.2,.8,.2,1),background .18s ease;
}
.contact-swipe-row.swiping>.contact{
  transition:none!important;
  background:#071a2c!important;
}
.contact-swipe-row.swipe-open>.contact{
  background:#071a2c!important;
  transform:translate3d(-94px,0,0);
}
.contact-swipe-row.swipe-enabled>.contact{
  touch-action:pan-y;
}
.contact-swipe-delete{
  position:absolute;
  z-index:1;
  top:0;
  right:0;
  bottom:0;
  width:94px;
  border:0;
  margin:0;
  padding:0 10px;
  border-radius:0 20px 20px 0;
  background:linear-gradient(145deg,#ff315b,#d71039);
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  font:inherit;
  font-weight:900;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transition:opacity .15s ease,filter .15s ease;
}
.contact-swipe-row.swiping .contact-swipe-delete,
.contact-swipe-row.swipe-open .contact-swipe-delete{
  opacity:1;
  pointer-events:auto;
}
.contact-swipe-delete>span{font-size:22px;line-height:1}
.contact-swipe-delete>small{font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.5px;color:#fff}
.contact-swipe-delete:active{filter:brightness(.86)}
.contact-swipe-row.swipe-removing{
  opacity:0;
  transform:translateX(-16px);
  max-height:0;
  transition:opacity .18s ease,transform .18s ease,max-height .22s ease;
}
@media(max-width:760px){
  .contact-swipe-row{border-radius:20px}
  .contact-swipe-delete{width:92px;border-radius:0 20px 20px 0}
  .contact-swipe-row.swipe-open>.contact{transform:translate3d(-92px,0,0)}
}
@media(prefers-reduced-motion:reduce){
  .contact-swipe-row>.contact,.contact-swipe-delete,.contact-swipe-row.swipe-removing{transition:none!important}
}


/* =========================================================
   V3.8 — CHAMADAS COM EFEITO + ATENÇÃO REFORÇADA
   ========================================================= */
.call-effect-picker-modal{position:fixed;inset:0;z-index:21050;background:#010912e8;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));backdrop-filter:blur(18px)}
.call-effect-picker-card{position:relative;width:min(520px,96vw);max-height:min(780px,90vh);overflow:auto;background:linear-gradient(180deg,#0d2c47,#061724);border:1px solid #28bfff70;border-radius:28px;padding:28px;color:#fff;box-shadow:0 30px 110px #000b,0 0 60px #18c9ff1f}
.call-effect-picker-close{position:absolute;right:16px;top:16px;width:44px;height:44px;border:1px solid #5fcfff55;border-radius:15px;background:#143852;color:#fff;font-size:20px;cursor:pointer}
.call-effect-picker-kicker{font-size:11px;letter-spacing:2px;color:#67d9ff;font-weight:900;margin-right:52px}
.call-effect-picker-card h2{margin:8px 52px 4px 0;font-size:26px}.call-effect-picker-card>p{margin:0 0 18px;color:#a9c4d7}
.call-effect-preview{height:112px;border-radius:22px;border:1px solid #37c9ff52;background:radial-gradient(circle at 50% 45%,#0f4f78,#071a29 68%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;overflow:hidden;position:relative;margin-bottom:16px}
.call-effect-preview>span{font-size:42px;position:relative;z-index:2}.call-effect-preview>strong{position:relative;z-index:2;font-size:15px}
.call-effect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.call-effect-grid button{min-height:90px;border-radius:18px;border:1px solid #2b668b;background:#0a2135;color:#dff7ff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}.call-effect-grid button b{font-size:30px}.call-effect-grid button span{font-size:12px;font-weight:800}.call-effect-grid button.selected{border-color:#37d6ff;background:linear-gradient(180deg,#0e5679,#0b3049);box-shadow:0 0 0 2px #23caff22,0 0 25px #21caff26}
.call-effect-picker-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:10px;margin-top:18px}.call-effect-picker-actions button{height:52px;border-radius:17px;border:0;font-weight:900;font-size:15px;cursor:pointer}.call-effect-cancel{background:#173044;color:#c9dfed}.call-effect-confirm{background:linear-gradient(135deg,#23d8ff,#1588ff);color:#fff;box-shadow:0 10px 30px #129eff42}
.incoming-call-effect-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.incoming-call-effect-badge{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 12px;border-radius:999px;background:#102d44dd;border:1px solid #58d8ff4f;color:#aeeeff;font-size:11px;font-weight:900;letter-spacing:.5px;margin-bottom:14px}
.call-effect-particle{position:absolute;left:var(--x);bottom:-12%;font-size:var(--size);animation:rogerCallParticle var(--dur) linear var(--delay) infinite;filter:drop-shadow(0 0 8px #fff5)}
@keyframes rogerCallParticle{0%{transform:translate(-50%,0) scale(.55) rotate(0);opacity:0}12%{opacity:1}100%{transform:translate(-50%,-145vh) scale(1.25) rotate(35deg);opacity:0}}
@keyframes rogerCallShake{0%,88%,100%{transform:translate(0)}90%{transform:translate(-9px,2px) rotate(-.7deg)}92%{transform:translate(9px,-1px) rotate(.7deg)}94%{transform:translate(-7px,1px) rotate(-.5deg)}96%{transform:translate(7px,0) rotate(.5deg)}98%{transform:translate(-3px,0)}}
@keyframes rogerCallSiren{0%,100%{box-shadow:inset 0 0 80px #ff1a1a15}50%{box-shadow:inset 0 0 130px #168cff35}}
@keyframes rogerCallBurst{0%,72%,100%{filter:none}76%{filter:brightness(1.5) saturate(1.5)}80%{filter:none}}
@keyframes rogerCallPulseStrong{0%,100%{box-shadow:inset 0 0 0 0 #20cbff00}50%{box-shadow:inset 0 0 90px 5px #20cbff28}}
.incoming-call-modal.call-effect-shake .incoming-call-card{animation:rogerCallShake 2.25s ease-in-out infinite}
.incoming-call-modal.call-effect-siren{animation:rogerCallSiren 1s ease-in-out infinite}.incoming-call-modal.call-effect-siren .incoming-call-type{color:#ffcf5c}.incoming-call-modal.call-effect-siren .incoming-call-avatar{border-color:#ff5c5c;box-shadow:0 0 0 10px #ff25251c,0 0 55px #ff353557}
.incoming-call-modal.call-effect-burst{animation:rogerCallBurst 2s ease-in-out infinite}.incoming-call-modal.call-effect-burst .incoming-call-avatar{animation:rogerIncomingAvatar 1.2s ease-in-out infinite,rogerCallBurst 1.6s infinite}
.incoming-call-modal.call-effect-pulse{animation:rogerCallPulseStrong 1.35s ease-in-out infinite}.incoming-call-modal.call-effect-hearts .incoming-call-card::before{background:radial-gradient(circle,#ff2e8d25 0 18%,transparent 50%)}.incoming-call-modal.call-effect-party .incoming-call-card::before{background:radial-gradient(circle,#ffd84d24 0 18%,transparent 50%)}
.video-call-modal.call-effect-shake .remote-video-placeholder{animation:rogerCallShake 2.25s infinite}.video-call-modal.call-effect-siren .video-call-stage{animation:rogerCallSiren 1s infinite}.video-call-modal.call-effect-burst .video-call-stage{animation:rogerCallBurst 2s infinite}.video-call-modal.call-effect-pulse .video-call-stage{animation:rogerCallPulseStrong 1.35s infinite}
.call-effect-preview.call-effect-shake{animation:rogerCallShake 1.8s infinite}.call-effect-preview.call-effect-siren{animation:rogerCallSiren .8s infinite}.call-effect-preview.call-effect-burst{animation:rogerCallBurst 1.4s infinite}.call-effect-preview.call-effect-pulse{animation:rogerCallPulseStrong 1.2s infinite}.call-effect-preview.call-effect-hearts{background:radial-gradient(circle,#76234c,#1a1020 70%)}.call-effect-preview.call-effect-party{background:radial-gradient(circle,#6f5317,#17213d 70%)}
@media(max-width:700px){.call-effect-picker-modal{padding:calc(env(safe-area-inset-top) + 12px) 10px calc(env(safe-area-inset-bottom) + 10px);align-items:end}.call-effect-picker-card{width:100%;max-height:86vh;border-radius:26px 26px 18px 18px;padding:23px 16px 18px}.call-effect-picker-card h2{font-size:22px}.call-effect-grid{grid-template-columns:repeat(2,1fr)}.call-effect-grid button{min-height:76px}.call-effect-preview{height:96px}.incoming-call-effect-badge{margin-top:4px}.incoming-call-card{overflow:hidden}}


/* =========================================================
   V3.9 — CHAMADA: FOTO CENTRAL + ANIMAÇÃO FORTE + UM PUSH
   ========================================================= */
body.roger-incoming-call-active{overflow:hidden!important;overscroll-behavior:none!important}
.incoming-call-modal{background:
  radial-gradient(circle at 50% 38%,rgba(25,203,255,.20),transparent 31%),
  radial-gradient(circle at 50% 115%,rgba(10,105,255,.20),transparent 42%),
  rgba(0,7,15,.965)!important}
.incoming-call-card{position:relative;isolation:isolate;overflow:hidden!important}
.incoming-call-photo-stage{position:relative;z-index:3;width:230px;height:230px;margin:2px auto 20px;display:grid;place-items:center}
.incoming-call-photo-stage::before{content:"";position:absolute;inset:8px;border-radius:42px;background:radial-gradient(circle,rgba(42,218,255,.23),rgba(20,112,255,.06) 56%,transparent 70%);filter:blur(5px);animation:rogerCallHaloBeat 1.05s ease-in-out infinite}
.incoming-call-avatar{width:178px!important;height:178px!important;margin:0!important;border-radius:38px!important;border:3px solid #6ee9ff!important;box-shadow:0 0 0 7px rgba(26,198,255,.12),0 0 54px rgba(30,193,255,.48),0 20px 65px rgba(0,0,0,.70)!important;animation:rogerIncomingPhotoBeat 1.05s cubic-bezier(.2,.8,.2,1) infinite!important;z-index:4}
.incoming-call-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 58%;border-radius:34px;transform:scale(1.02)}
.incoming-call-ring{position:absolute;z-index:1;border:2px solid rgba(78,220,255,.58);border-radius:48px;inset:25px;opacity:0;animation:rogerIncomingRing 2.1s cubic-bezier(.2,.65,.3,1) infinite}
.incoming-call-ring.ring-two{animation-delay:.7s}.incoming-call-ring.ring-three{animation-delay:1.4s}
.incoming-call-phone-badge{position:absolute;z-index:6;right:19px;bottom:25px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:25px;background:linear-gradient(145deg,#20d47d,#139c58);border:4px solid #05131f;box-shadow:0 10px 28px rgba(0,0,0,.55),0 0 25px rgba(30,255,143,.36);animation:rogerPhoneBadgeShake 1.35s ease-in-out infinite}
.incoming-call-type{font-size:12px!important;font-weight:1000!important;letter-spacing:1.8px;color:#79e8ff;margin-top:2px}
.incoming-call-card h2{font-size:29px!important;line-height:1.08;max-width:390px;margin:8px auto 0!important;text-wrap:balance}
.incoming-call-card p{font-size:13px!important;font-weight:750;color:#9ecbe0!important;margin:8px 0 32px!important}
.incoming-call-actions{position:relative;z-index:8}
.incoming-call-modal.call-audio .incoming-call-avatar{border-color:#83ffc0!important;box-shadow:0 0 0 7px rgba(48,255,152,.10),0 0 58px rgba(36,244,143,.39),0 20px 65px rgba(0,0,0,.72)!important}
.incoming-call-modal.call-audio .incoming-call-ring{border-color:rgba(78,255,164,.56)}
.incoming-call-modal.call-video .incoming-call-phone-badge{background:linear-gradient(145deg,#25cfff,#197eff)}
.incoming-call-modal.call-effect-shake .incoming-call-photo-stage{animation:rogerCallAttentionShake 1.55s ease-in-out infinite!important}
.incoming-call-modal.call-effect-siren::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,25,49,.17),transparent 43%,rgba(20,112,255,.19));animation:rogerFullSiren .72s steps(2,end) infinite}
.incoming-call-modal.call-effect-burst .incoming-call-photo-stage{animation:rogerBurstStage 1.12s ease-in-out infinite}
.incoming-call-modal.call-effect-pulse .incoming-call-photo-stage{animation:rogerStagePulse 1.05s ease-in-out infinite}
@keyframes rogerIncomingRing{0%{transform:scale(.72);opacity:.85}72%,100%{transform:scale(1.42);opacity:0}}
@keyframes rogerIncomingPhotoBeat{0%,100%{transform:scale(1)}45%{transform:scale(1.055)}60%{transform:scale(.995)}}
@keyframes rogerCallHaloBeat{0%,100%{transform:scale(.92);opacity:.6}50%{transform:scale(1.12);opacity:1}}
@keyframes rogerPhoneBadgeShake{0%,68%,100%{transform:rotate(0) scale(1)}72%{transform:rotate(-16deg) scale(1.10)}77%{transform:rotate(16deg) scale(1.10)}82%{transform:rotate(-12deg) scale(1.08)}87%{transform:rotate(12deg) scale(1.06)}92%{transform:rotate(0) scale(1)}}
@keyframes rogerCallAttentionShake{0%,58%,100%{transform:translate3d(0,0,0) rotate(0)}62%{transform:translate3d(-12px,1px,0) rotate(-1.4deg)}67%{transform:translate3d(13px,-1px,0) rotate(1.4deg)}72%{transform:translate3d(-10px,0,0) rotate(-1deg)}77%{transform:translate3d(9px,0,0) rotate(.9deg)}82%{transform:translate3d(-4px,0,0)}}
@keyframes rogerFullSiren{0%{filter:hue-rotate(0deg) brightness(1)}50%{filter:hue-rotate(175deg) brightness(1.24)}100%{filter:hue-rotate(0deg) brightness(1)}}
@keyframes rogerBurstStage{0%,72%,100%{transform:scale(1)}77%{transform:scale(1.11)}82%{transform:scale(.98)}}
@keyframes rogerStagePulse{0%,100%{transform:scale(.98)}50%{transform:scale(1.055)}}
@media(max-width:700px){
  .incoming-call-modal{padding:0!important;place-items:stretch!important}
  .incoming-call-card{width:100%!important;height:100%!important;min-height:100%!important;border:0!important;border-radius:0!important;padding:calc(env(safe-area-inset-top) + 28px) 22px calc(env(safe-area-inset-bottom) + 42px)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;background:radial-gradient(circle at 50% 38%,#0d3855 0,#061a2a 38%,#020b14 72%)!important}
  .incoming-call-effect-badge{position:absolute!important;top:calc(env(safe-area-inset-top) + 18px);left:50%;transform:translateX(-50%);margin:0!important;white-space:nowrap}
  .incoming-call-photo-stage{width:min(72vw,280px);height:min(72vw,280px);margin:0 auto 26px}
  .incoming-call-avatar{width:min(54vw,214px)!important;height:min(54vw,214px)!important;border-radius:44px!important}
  .incoming-call-avatar img{border-radius:40px;object-position:50% 56%}
  .incoming-call-ring{inset:16%}
  .incoming-call-phone-badge{right:11%;bottom:13%;width:60px;height:60px;font-size:28px}
  .incoming-call-type{font-size:12px!important}
  .incoming-call-card h2{font-size:30px!important;max-width:92vw!important;padding:0 4px}
  .incoming-call-card p{font-size:14px!important;margin-bottom:42px!important}
  .incoming-call-actions{gap:min(22vw,90px)!important;margin-top:4px!important}
  .call-round-btn{width:82px!important;height:82px!important;font-size:31px!important}
  .call-round-btn span{top:92px!important;font-size:13px!important}
}
@media(max-width:380px){
  .incoming-call-photo-stage{width:230px;height:230px;margin-bottom:20px}
  .incoming-call-avatar{width:176px!important;height:176px!important;border-radius:36px!important}
  .incoming-call-avatar img{border-radius:32px}
  .incoming-call-card h2{font-size:25px!important}.incoming-call-card p{margin-bottom:34px!important}
}
@media(prefers-reduced-motion:reduce){.incoming-call-ring,.incoming-call-avatar,.incoming-call-photo-stage,.incoming-call-phone-badge{animation-duration:2.8s!important}}
