.chat-widget{position:fixed;right:22px;bottom:20px;z-index:40;display:grid;justify-items:end;gap:10px}.chat-launcher{position:relative;border:0;border-radius:50%;background:var(--navy);color:#fff;width:42px;height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:0;font:inherit;font-size:16px;font-weight:700;box-shadow:0 6px 18px rgba(12,26,35,.22);cursor:pointer}.chat-launcher b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#d74a4a;font-size:11px;position:absolute;top:-3px;right:-3px}.chat-launcher .widget-label{display:none}.chat-launcher .chat-presence-dot{display:none}.chat-presence-dot{width:10px;height:10px;border-radius:50%;background:#51d391;box-shadow:0 0 0 3px rgba(81,211,145,.18)}.chat-window{width:min(390px,calc(100vw - 28px));height:min(610px,calc(100vh - 105px));background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 65px rgba(18,50,74,.28);overflow:hidden}.chat-window>header{height:68px;background:var(--navy);color:#fff;padding:13px 16px;display:flex;align-items:center;justify-content:space-between}.chat-window>header div{display:grid}.chat-window>header small{color:#c8dce6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.chat-window>header button{border:0;background:none;color:#fff;font-size:26px;cursor:pointer}.chat-setup{padding:22px}.chat-setup p{color:var(--muted);margin-top:0}.chat-setup form{display:grid;gap:14px}.chat-conversation{height:calc(100% - 68px);display:grid;grid-template-rows:minmax(0,1fr) auto auto}.chat-messages{overflow:auto;padding:16px;background:#eef3f4;display:flex;flex-direction:column;gap:10px}.chat-message{align-self:flex-start;max-width:86%;background:#fff;border:1px solid var(--line);border-radius:4px 13px 13px 13px;padding:9px 11px;box-shadow:0 3px 10px rgba(18,50,74,.06)}.chat-message.mine{align-self:flex-end;background:#dff3e8;border-color:#b7dcc8;border-radius:13px 4px 13px 13px}.chat-message>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.chat-message strong{font-size:12px;color:var(--blue)}.chat-message time{font-size:10px;color:var(--muted);white-space:nowrap}.chat-message p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-compose{padding:10px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;border-top:1px solid var(--line)}.chat-compose textarea{min-height:45px;max-height:110px}.chat-retention{padding:0 12px 9px;color:var(--muted);text-align:center}.chat-error{margin:0;padding:9px 14px;background:#fde6e6;color:#8e2929;position:absolute;left:0;right:0;bottom:0}.chat-device-list{display:grid;gap:12px}.chat-device-row{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(180px,1fr) 160px 130px auto;gap:12px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:10px}.chat-device-row>div{display:grid}.chat-device-row small{color:var(--muted)}.chat-log-body{min-width:320px;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-widget [hidden]{display:none!important}
.chat-launcher.has-unread{animation:chat-pulse 1.1s infinite}.chat-window>header{gap:8px}.chat-window>header>div{flex:1}.chat-window>header .chat-back,.chat-window>header .chat-settings{font-size:18px}.chat-home{height:calc(100% - 68px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f7f9fa}.chat-new{padding:10px;border-bottom:1px solid var(--line);background:#fff}.chat-conversation-list{overflow:auto}.chat-conversation-item{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;text-align:left;cursor:pointer;font:inherit}.chat-conversation-item:hover{background:#f0f7f5}.chat-conversation-item>span:nth-child(2){display:grid;min-width:0}.chat-conversation-item small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.chat-conversation-item time{font-size:10px;color:var(--muted)}.chat-conversation-item>b{background:var(--green);color:#fff;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;font-size:11px}.chat-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#d9ebe6;color:var(--green);font-weight:800}.chat-enter-setting{display:flex;align-items:center;gap:6px;padding:10px 12px;background:#fff;border-top:1px solid var(--line);font-size:12px}.chat-enter-setting input{width:auto}.chat-group-options{display:grid;gap:5px;max-height:110px;overflow:auto}.chat-group-options label{display:flex;align-items:center;gap:6px}.chat-group-options input{width:auto}.chat-setup{height:calc(100% - 68px);overflow:auto}.chat-admin-form,.supply-form{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:12px;align-items:end;margin-bottom:18px}.admin-card-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:6px}.checkbox-grid.compact{grid-template-columns:1fr;max-height:150px;overflow:auto}.checkbox-grid input{width:auto}.chat-log-thread{padding:16px;background:#eef3f4;display:flex;flex-direction:column;gap:10px}.chat-log-thread .chat-message:nth-child(even){align-self:flex-end;background:#dff3e8}.chat-log-thread .chat-message small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.person-result{padding:12px;border:1px solid #82b99f;background:#ecf8f2;border-radius:8px;display:grid}.person-result span{color:var(--muted)}
@keyframes chat-pulse{50%{box-shadow:0 0 0 9px rgba(215,74,74,.22),0 12px 34px rgba(18,50,74,.28)}}
@media(max-width:1000px){.chat-device-row{grid-template-columns:1fr 1fr}.chat-device-row>div{grid-column:1/-1}}
@media(max-width:850px){.admin-card-grid{grid-template-columns:1fr}.chat-admin-form,.supply-form,.checkbox-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.chat-widget{right:10px;bottom:10px}.chat-window{height:calc(100vh - 84px)}.chat-device-row,.chat-admin-form,.supply-form,.checkbox-grid{grid-template-columns:1fr}.chat-device-row>div{grid-column:auto}}

.chat-message time{margin-left:auto}.chat-status{margin-left:6px;font-size:12px;letter-spacing:-1px;line-height:1;color:#8aa0ab}.chat-status.is-delivered{color:#8aa0ab}.chat-status.is-read{color:#1f8bd0}.chat-message.mine>div{display:flex;align-items:center;gap:4px}

.chat-message.is-sending{opacity:.72}
.chat-status.is-sending{color:#8aa0ab;display:inline-block;animation:hsl-girando 1.1s linear infinite}
@keyframes hsl-girando{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.chat-status.is-sending{animation:none}}

.chat-new{display:grid;gap:10px}

/* Listas pesquisáveis do chat: com dezenas de setores e de máquinas, a lista
   suspensa obrigava a rolar até achar. O campo filtra enquanto se digita e a
   lista fica sobre a conversa, sem empurrar o resto da janela. */
.chat-picker{position:relative}
.chat-picker input{width:100%}
.chat-picker-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;max-height:230px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 28px rgba(18,50,74,.18);padding:4px}
.chat-picker-list[hidden]{display:none}
.chat-picker-group{display:block;padding:9px 9px 4px;margin-top:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--blue);border-top:1px solid var(--line)}
.chat-picker-group:first-child{margin-top:0;border-top:0}
.chat-picker-item{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 9px;border-radius:7px;font:inherit;cursor:pointer}
.chat-picker-item:hover,.chat-picker-item:focus-visible{background:#eaf3f0}
.chat-picker-list .empty{padding:10px;margin:0;color:var(--muted);font-size:13px}
.chat-new{display:grid;gap:8px}

/* Conversa com mensagem não lida: nome e prévia em negrito, até abrir. Mesma
   linguagem visual do sino de notificações (borda + fundo). */
.chat-conversation-item.is-unread{border-left:4px solid #176b87;background:#f4fbfd}
.chat-conversation-item.is-unread strong,.chat-conversation-item.is-unread small{font-weight:700;color:var(--text,#18313f)}
