/* Chat da equipa na barra superior e aviso de mensagens novas (2026-10-21).
   Computador/tablet: botão junto aos atalhos do topo, com o aviso por baixo do ícone.
   Telemóvel: sem barra superior, o aviso aparece fixo no topo do ecrã. */
.chat-entry{position:relative;display:inline-flex;flex:none}
.top .chat-top-button{position:relative}
.top .chat-entry .count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--acc-text);color:var(--panel);font-size:10.5px;font-weight:800;line-height:18px;text-align:center}

.chat-notice{position:absolute;z-index:70;top:calc(100% + 14px);left:50%;display:flex;align-items:stretch;width:min(340px,calc(100vw - 32px));border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--ink);box-shadow:0 22px 48px -22px rgba(24,28,44,.55);transform:translateX(-50%)}
.chat-notice.is-new{animation:chat-notice-in .22s ease-out}
.chat-notice::before{content:"";position:absolute;top:-7px;left:calc(50% - 7px);width:12px;height:12px;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:3px 0 0 0;background:var(--panel);transform:rotate(45deg)}
.chat-notice-open{display:flex;flex:1;align-items:center;gap:12px;min-width:0;padding:12px 4px 12px 14px;border:0;border-radius:18px 0 0 18px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.chat-notice-avatar{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;background:var(--acc-soft);color:var(--acc-text);font-size:14px;font-weight:800;letter-spacing:.02em}
.chat-notice-copy{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.chat-notice-head{display:flex;align-items:baseline;gap:8px;min-width:0}
.chat-notice-copy b{overflow:hidden;min-width:0;font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}
/* Hora de envio (e posição na sequência de recuperação), discreta no canto superior */
.chat-notice-meta{display:inline-flex;align-items:baseline;gap:6px;flex:none;margin-left:auto;color:var(--ink3);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.chat-notice-step{padding:0 5px;border-radius:6px;background:var(--panel2);color:var(--ink2);font-weight:700}
.chat-notice-progress{position:absolute;left:18px;right:18px;bottom:0;height:2px;border-radius:2px;background:var(--acc-text);opacity:.55;transform-origin:left;animation:chat-notice-countdown var(--notice-ms,4000ms) linear forwards}
@keyframes chat-notice-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.chat-notice-copy small{display:flex;align-items:center;gap:4px;overflow:hidden;color:var(--ink3);font-size:11.5px;font-weight:650;white-space:nowrap}
.chat-notice-copy small .ic{font-size:14px}
.chat-notice-text{display:-webkit-box;overflow:hidden;color:var(--ink2);font-size:13px;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.chat-notice-close{display:grid;place-items:center;width:40px;flex:none;padding:0;border:0;border-radius:0 18px 18px 0;background:transparent;color:var(--ink3);cursor:pointer}
.chat-notice-close .ic{font-size:19px}
.chat-notice-open:hover{background:var(--panel2)}
.chat-notice-close:hover{background:var(--panel2);color:var(--ink)}
.chat-notice-open:focus-visible,.chat-notice-close:focus-visible{outline:2px solid var(--acc-text);outline-offset:-2px}
.chat-notice.is-floating{display:none}

/* Conversas com mensagens por ler */
.chat-conversation.is-unread .chat-conversation-copy b{font-weight:850}
.chat-conversation.is-unread .chat-conversation-copy small{color:var(--ink2);font-weight:650}
.chat-unread-dot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--acc-text)}
.chat-state.chat-error .btn{margin-top:8px}

@media (max-width:760px), (max-height:500px) and (orientation:landscape) and (max-width:1000px){
  .chat-notice.is-floating{position:fixed;top:calc(10px + env(safe-area-inset-top));left:12px;right:12px;display:flex;width:auto;transform:none}
  .chat-notice.is-floating.is-new{animation-name:chat-notice-drop}
  .chat-notice.is-floating::before{display:none}
}
@keyframes chat-notice-in{from{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes chat-notice-drop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.chat-notice.is-new,.chat-notice.is-floating.is-new{animation:none}.chat-notice-progress{display:none}}

/* Estado online/offline no chat (aproximado: sinal nos últimos 2 minutos) */
.chat-avatar{position:relative}
.chat-presence-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:2px solid var(--panel);border-radius:50%;background:var(--ink3)}
.chat-presence-dot.is-online{background:var(--ok)}
.chat-presence-label{display:inline-flex;align-items:center;gap:4px;font-weight:700}
.chat-presence-label i{width:7px;height:7px;border-radius:50%;background:currentColor}
.chat-presence-label.is-online{color:var(--ok)}
.chat-presence-label.is-offline{color:var(--ink3)}

/* Editar mensagens próprias */
.chat-message{position:relative}
.chat-message.is-own{align-items:center;gap:4px}
.chat-message-edit{display:grid;place-items:center;width:30px;height:30px;flex:none;order:-1;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink3);opacity:0;cursor:pointer;transition:opacity .15s}
.chat-message-edit .ic{font-size:16px}
.chat-message:hover .chat-message-edit,.chat-message-edit:focus-visible,.chat-message.is-editing .chat-message-edit{opacity:1}
.chat-message-edit:hover{background:var(--panel2);color:var(--ink)}
.chat-message-edit:focus-visible{outline:2px solid var(--acc-text);outline-offset:1px}
@media (hover:none){.chat-message-edit{opacity:.75}}
.chat-message.is-editing .chat-bubble{box-shadow:0 0 0 2px var(--acc-text)}
.chat-bubble-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.chat-edited{color:var(--ink3);font-size:10.5px;font-style:italic}
.chat-editing-bar{display:flex;align-items:center;gap:10px;margin:0 10px;padding:8px 10px;border-left:3px solid var(--acc-text);border-radius:8px;background:var(--acc-soft);color:var(--ink)}
.chat-editing-bar>.ic{flex:none;color:var(--acc-text);font-size:18px}
.chat-editing-bar>.chat-editing-copy{display:flex;flex:1;flex-direction:column;align-items:flex-start;min-width:0}
.chat-editing-bar b{font-size:12px}
.chat-editing-bar small{overflow:hidden;color:var(--ink2);font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}

/* Emojis no computador/tablet */
.chat-emoji-toggle{flex:none;align-self:flex-end}
.chat-emoji-toggle[aria-expanded="true"]{background:var(--acc-soft);color:var(--acc-text)}
.chat-emoji-panel{margin:0 10px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 14px 32px -20px rgba(24,28,44,.5)}
.chat-emoji-tabs{display:flex;align-items:center;gap:2px;padding:6px 6px 4px;border-bottom:1px solid var(--line)}
.chat-emoji-tab{display:grid;place-items:center;width:38px;height:34px;padding:0;border:0;border-radius:9px;background:transparent;font-size:19px;cursor:pointer}
.chat-emoji-tab[aria-selected="true"]{background:var(--acc-soft)}
.chat-emoji-close{width:32px;height:32px;margin-left:auto;border:0}
.chat-emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:2px;max-height:190px;padding:6px;overflow-y:auto;overscroll-behavior:contain}
.chat-emoji{display:grid;place-items:center;height:38px;padding:0;border:0;border-radius:9px;background:transparent;font-size:23px;line-height:1;cursor:pointer}
.chat-emoji:hover,.chat-emoji:focus-visible{background:var(--panel2)}
.chat-emoji-tab:focus-visible,.chat-emoji:focus-visible{outline:2px solid var(--acc-text);outline-offset:-2px}

/* Eliminar grupo (apenas quem o criou) */
.chat-group-danger{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;border:1px solid color-mix(in oklab,var(--err) 35%,var(--line));border-radius:10px}
.chat-group-danger>span{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.chat-group-danger b{font-size:12.5px;color:var(--err)}
.chat-group-danger small{color:var(--ink3);font-size:11.5px}
.chat-delete-group{flex:none;border-color:color-mix(in oklab,var(--err) 45%,var(--line));color:var(--err)}
.chat-delete-group:not(:disabled):hover{background:var(--err-soft)}
.chat-bubble-meta{margin-top:4px}
.chat-bubble-meta time{margin-top:0}

/* Linhas de pessoas (Nova conversa e Gerir grupo): avatar fixo e texto com o estado */
.chat-member-row>.chat-avatar.chat-avatar{flex:0 0 38px;width:38px}
.chat-member-row>.chat-member-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}
.chat-editing-bar{text-align:left}
