*{box-sizing:border-box}body{margin:0;background:#07120b;color:#eaffef;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.hidden{display:none!important}.chat-shell{width:min(520px,100%);min-height:100dvh;margin:0 auto;background:#07120b;box-shadow:0 0 0 1px rgba(35,255,97,.12)}.login-screen{min-height:100dvh;padding:22px 16px;display:flex;flex-direction:column;gap:14px;justify-content:center}.brand-card,.login-card{border:1px solid #1c5129;background:#0b1b10;border-radius:24px;padding:18px;box-shadow:0 18px 60px rgba(0,0,0,.32)}.app-icon,.avatar{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#23ff61,#0a8f35);color:#021407;font-weight:1000;display:flex;align-items:center;justify-content:center}.brand-card h1{margin:14px 0 4px}.brand-card p{margin:0;color:#bdd1c2}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tab,.install-btn,.primary{border:1px solid #245d32;background:#0d2114;color:#eaffef;border-radius:16px;padding:13px;font-weight:900}.tab.active,.primary{background:#20f55c;color:#031407;border:0}.install-btn{background:#12321c}.login-card{display:grid;gap:11px}.login-card label{font-weight:800;color:#dffbe4}.login-card input{width:100%;border:1px solid #255b33;background:#061009;color:#eaffef;border-radius:14px;padding:14px;font-size:16px}.msg{min-height:22px;color:#ffd36b;margin:0}.chat-screen,.admin-screen{height:100dvh;display:flex;flex-direction:column}.chat-head{height:68px;display:flex;align-items:center;gap:12px;padding:10px 12px;background:#0b1b10;border-bottom:1px solid #183820;position:sticky;top:0;z-index:4}.chat-head .avatar{width:46px;height:46px;border-radius:15px}.chat-head .head-title{flex:1;min-width:0}.chat-head strong,.chat-head span{display:block}.chat-head span{font-size:12px;color:#b2c9b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-head button{border:1px solid #315c3c;background:#102017;color:#fff;border-radius:12px;padding:8px 10px}.counter{display:inline-flex;min-width:22px;height:22px;padding:0 7px;align-items:center;justify-content:center;border-radius:999px;background:#20f55c;color:#031407;font-size:12px;margin-left:6px}.status-strip{padding:9px 10px;background:#102017;border-bottom:1px solid #22492c;display:flex;gap:8px;overflow:auto}.status-card{min-width:230px;border:1px solid #2b6e3a;background:#0a130d;border-radius:16px;padding:10px}.status-card b{display:block;color:#23ff61;margin-bottom:4px}.messages{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}.empty{margin:auto;text-align:center;color:#aac0b0}.bubble{max-width:82%;padding:9px 11px;border-radius:17px;white-space:pre-wrap;word-break:break-word;line-height:1.28}.bubble .time{display:flex;gap:4px;align-items:center;justify-content:flex-end;margin-top:3px;opacity:.75;font-size:11px}.bubble.client{align-self:flex-end;background:#1c7d38;color:#fff;border-bottom-right-radius:5px}.bubble.admin{align-self:flex-start;background:#132018;border:1px solid #24482d;border-bottom-left-radius:5px}.bubble img{display:block;max-width:100%;border-radius:12px;margin-bottom:5px}.bubble a{color:#d8ffde;font-weight:900}.checks{font-size:13px;letter-spacing:-2px}.composer{display:flex;gap:6px;padding:9px;background:#0b1b10;border-top:1px solid #183820;align-items:flex-end}.composer textarea{flex:1;border:1px solid #24552f;background:#071009;color:#eaffef;border-radius:16px;padding:11px 12px;min-height:44px;max-height:110px;resize:none;font-size:15px}.composer button{border:0;border-radius:13px;padding:10px 11px;font-weight:900;background:#15341e;color:#fff}.composer .send{background:#20f55c;color:#001408}.emoji-bar{display:flex;gap:6px;padding:8px 10px;background:#0b1b10;overflow:auto;flex-wrap:wrap}.emoji-bar button{font-size:20px;border:1px solid #23472c;background:#0e1a12;color:#fff;border-radius:10px;padding:7px 10px}.admin-screen{width:min(900px,100vw);margin:0 auto}.admin-tabs{display:grid;grid-template-columns:1fr 1fr;background:#07120b;border-bottom:1px solid #183820}.admin-tabs button{padding:12px;border:0;background:#102017;color:#eaffef;font-weight:900}.admin-tabs button.active{background:#20f55c;color:#031407}.admin-view{flex:1;min-height:0;display:flex;flex-direction:column}.conv-list{max-height:36dvh;overflow:auto;padding:9px;display:grid;gap:7px;background:#07120b;border-bottom:1px solid #183820}.conv-item{border:1px solid #214d2d;background:#0a130d;border-radius:14px;padding:10px;cursor:pointer}.conv-item.active{border-color:#20f55c}.conv-item strong{display:block}.conv-item small{display:block;color:#a9c2af}.unread-pill{float:right;background:#20f55c;color:#031407;border-radius:999px;padding:2px 7px;font-size:12px;font-weight:1000}.admin-thread-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.thread-title{padding:9px 12px;background:#09160d;color:#dffbe4;border-bottom:1px solid #183820;font-weight:900}.location-btn{display:inline-block;margin-top:4px;padding:7px 9px;border-radius:10px;background:#0f341b;text-decoration:none}@media(max-width:620px){.chat-shell,.admin-screen{width:100%}.bubble{max-width:88%}.conv-list{max-height:32dvh}}

.status-img{display:block;max-width:100%;border-radius:14px;margin:6px 0 8px 0}

.status-card{cursor:pointer}.status-card span{display:block;font-size:15px;line-height:1.25}.status-modal{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:99;display:flex;align-items:center;justify-content:center;padding:16px}.status-modal-card{width:min(94vw,560px);max-height:86dvh;overflow:auto;background:#07120b;border:1px solid #23ff61;border-radius:22px;padding:14px;box-shadow:0 20px 80px rgba(0,0,0,.6)}.status-modal-close{float:right;border:1px solid #315c3c;background:#102017;color:#fff;border-radius:12px;padding:8px 10px;margin-bottom:8px}.status-modal-img{display:block;max-width:100%;border-radius:18px;margin:8px auto 12px}.status-modal-text{font-size:22px;line-height:1.35;white-space:pre-wrap;color:#eaffef;clear:both}#locationSetupBtn{font-size:12px;padding:10px 8px}

.group-list{display:flex;gap:8px;overflow:auto;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08)}
.group-chip{border:1px solid rgba(255,255,255,.18);background:#13251a;color:#eaffee;border-radius:999px;padding:8px 12px;font-weight:800;white-space:nowrap}
.group-chip.active{background:#13c64f;color:#021408;border-color:#13c64f}

.group-chip{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.group-chip small{display:block;font-size:11px;opacity:.75;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-chip .unread-pill{position:absolute;right:6px;top:6px}

/* V5.8.2: estados multimedia y avisos */
.chat-head .notify-btn{min-width:42px;padding:8px 9px;font-size:17px;line-height:1}
.chat-head .notify-btn.active{border-color:#20f55c;background:#123d20;color:#caffd4}
.chat-head .notify-btn.blocked{border-color:#7b5521;background:#2a1c0c;color:#ffd36b}
.status-media-wrap{position:relative;margin:6px 0 8px;border-radius:14px;overflow:hidden;background:#020704}
.status-video-preview{display:block;width:100%;max-height:210px;object-fit:cover;background:#000;pointer-events:none}
.status-video-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:42px;text-shadow:0 2px 12px #000;background:linear-gradient(transparent,rgba(0,0,0,.2))}
.status-modal-video{display:block;width:100%;max-height:70dvh;border-radius:18px;margin:8px auto 12px;background:#000}
.status-modal-card video:focus{outline:2px solid #20f55c;outline-offset:2px}

/* V5.8.4: panel visible de notificaciones, ubicación y chat directo móvil */
.notify-panel{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:7px;align-items:center;padding:8px 10px;background:#0a1710;border-bottom:1px solid #183820}
.notify-action{border:1px solid #315c3c;background:#102017;color:#fff;border-radius:12px;padding:9px 10px;font-weight:900;white-space:nowrap}
.notify-action.active{border-color:#20f55c;background:#123d20;color:#d8ffe0}
.notify-action.blocked{border-color:#7b5521;background:#2a1c0c;color:#ffd36b}
.notify-status{min-width:0;font-size:12px;line-height:1.25;color:#b8ccbd;overflow-wrap:anywhere}
.notify-status[data-kind="ok"]{color:#7dff9d}.notify-status[data-kind="warn"]{color:#ffd36b}.notify-status[data-kind="error"]{color:#ff9b9b}
.location-status{padding:8px 10px;background:#0d1c12;border-bottom:1px solid #24482d;color:#c9dbce;font-size:12px;line-height:1.35}
.location-status[data-kind="ok"]{color:#7dff9d}.location-status[data-kind="error"]{color:#ffb1a8}.location-status[data-kind="info"]{color:#c7d9cc}

.admin-chat-layout{min-height:0}.conv-pane{display:flex;flex-direction:column;min-height:0}.direct-thread-title{display:flex;align-items:center;gap:8px}.direct-thread-title span{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.back-chat-btn{border:1px solid #315c3c;background:#102017;color:#fff;border-radius:10px;padding:6px 10px;font-size:18px;line-height:1}

@media(min-width:621px){
  .admin-chat-layout{display:grid;grid-template-columns:310px minmax(0,1fr)}
  .conv-pane{border-right:1px solid #183820}
  .conv-list{max-height:none;flex:1;border-bottom:0}
  .back-chat-btn{display:none}
  .admin-thread-wrap{display:flex}
}
@media(max-width:620px){
  .notify-panel{grid-template-columns:1fr 1fr}.notify-status{grid-column:1/-1}
  .notify-action{padding:9px 7px;font-size:13px}
  .admin-chat-layout .conv-pane{display:flex;flex:1}
  .admin-chat-layout .admin-thread-wrap{display:none;flex:1}
  .admin-chat-layout.thread-open .conv-pane{display:none}
  .admin-chat-layout.thread-open .admin-thread-wrap{display:flex}
  .admin-chat-layout .conv-list{max-height:none;flex:1;border-bottom:0}
  body.admin-direct-open .admin-tabs{display:none}
  body.admin-direct-open .notify-panel{display:none}
  body.admin-direct-open .admin-thread-wrap{min-height:0}
}

/* V5.8.5: chat directo con formato visual de grupos y adjuntos compactos */
.bubble-sender{display:block;margin-bottom:3px;color:#7dff9d;font-size:12px;font-weight:900;line-height:1.15}
.bubble.client .bubble-sender{color:#d9ffe2}
.media-caption{display:block;margin-top:4px}
.chat-message-image{cursor:zoom-in}
.whatsapp-composer{gap:8px;padding:9px 10px;background:#0b1b10}
.whatsapp-composer textarea{border:1px solid #8fb49a;border-radius:22px;padding:11px 14px;min-height:46px;background:#071009}
.whatsapp-composer .send{border-radius:18px;padding:12px 15px;min-height:46px}
.whatsapp-composer .tools-toggle{width:46px;height:46px;min-width:46px;padding:0;border-radius:50%;font-size:27px;line-height:1;background:#15341e;color:#eaffef}
.whatsapp-composer .tools-toggle.active{background:#20f55c;color:#001408}
.chat-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:9px 10px;background:#0b1b10;border-top:1px solid #183820}
.chat-tools button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;border:1px solid #285c36;background:#102017;color:#eaffef;border-radius:15px;font-weight:900}
.chat-tools button span{font-size:13px}
@media(max-width:380px){.chat-tools button span{display:none}.chat-tools button{font-size:21px}.whatsapp-composer .send{padding-inline:12px}}

.location-help-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 12px 8px}.location-help-actions button{flex:1;min-width:145px;border:1px solid #1f6d43;background:#0b2115;color:#dfffea;border-radius:12px;padding:10px 12px;font-weight:700}.location-help-actions button:active{transform:scale(.98)}
.chat-tools button:disabled,.notify-action:disabled{opacity:.55;cursor:wait}

/* V5.8.9: selector libre de ubicación y adjuntos de grupos */
.location-picker-modal{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;padding:12px}
.location-picker-card{width:min(96vw,560px);background:#07120b;border:1px solid #23ff61;border-radius:20px;padding:12px;box-shadow:0 22px 80px rgba(0,0,0,.68)}
.location-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.location-picker-head strong{font-size:18px}.location-picker-head button{border:1px solid #315c3c;background:#102017;color:#fff;border-radius:11px;padding:7px 10px}
.location-picker-note{font-size:12px;color:#b8ccbd;margin-bottom:8px;line-height:1.35}
.location-map{position:relative;height:min(56dvh,430px);min-height:290px;overflow:hidden;border-radius:16px;background:#17251c;touch-action:none;user-select:none;border:1px solid #245d32}
.location-map-tiles{position:absolute;inset:0;will-change:transform}.location-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;pointer-events:none}
.location-map-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);font-size:39px;line-height:1;color:#16ed57;text-shadow:0 2px 4px #001b08,0 0 10px #000;z-index:4}
.location-map-pin:after{content:'';display:block;width:10px;height:5px;border-radius:50%;background:rgba(0,0,0,.45);margin:-5px auto 0}
.location-map-zoom{position:absolute;right:9px;top:9px;z-index:5;display:grid;gap:5px}.location-map-zoom button{width:38px;height:38px;border:1px solid #2f6b3e;background:#0c1b11;color:#fff;border-radius:10px;font-size:23px;font-weight:900}
.location-map-attribution{position:absolute;right:5px;bottom:4px;z-index:5;background:rgba(255,255,255,.82);color:#1c2b21;font-size:10px;padding:2px 4px;border-radius:4px}
.location-coords{font-size:12px;color:#b8ccbd;text-align:center;padding:8px 4px 4px;font-variant-numeric:tabular-nums}
.location-picker-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:7px}.location-picker-actions button{border:1px solid #2c673a;background:#102017;color:#eaffef;border-radius:13px;padding:11px 9px;font-weight:900}.location-picker-actions .primary-location{background:#20f55c;color:#031407;border-color:#20f55c}
#groupActionStatus{border-top:1px solid #24482d;border-bottom:0}
@media(max-width:390px){.location-picker-actions{grid-template-columns:1fr}.location-map{min-height:270px}.location-picker-card{padding:9px}}


/* V5.8.20.1: activación manual de ubicación/GPS en PWA */
.location-gps-manual{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;margin:0 0 9px;padding:9px;border:1px solid #28653a;border-radius:14px;background:#0b1b10}
.location-gps-activate{grid-column:1/-1;width:100%;border:1px solid #20f55c;background:#20f55c;color:#031407;border-radius:13px;padding:12px 10px;font-size:14px;font-weight:1000;letter-spacing:.15px}
.location-gps-activate:disabled{opacity:.65;cursor:wait}
#locationGpsHint{font-size:12px;line-height:1.35;color:#c6d8ca}
#locationGpsHint[data-kind="ok"]{color:#8cffaa}
#locationGpsHint[data-kind="error"]{color:#ffb7ae}
.location-gps-help{border:1px solid #3b7048;background:#102017;color:#eaffef;border-radius:11px;padding:8px 9px;font-size:12px;font-weight:800}
@media(max-width:430px){.location-gps-manual{grid-template-columns:1fr}.location-gps-help{width:100%}}

/* V5.8.19.0: descarga del APK oficial únicamente en acceso directo Android */
.android-install-gate{display:none;min-height:100dvh;padding:22px 16px;align-items:center;justify-content:center}
html.raulchat-install-required body{overflow:hidden}
html.raulchat-install-required .android-install-gate{display:flex}
html.raulchat-install-required #loginScreen,
html.raulchat-install-required #clientScreen,
html.raulchat-install-required #adminScreen,
html.raulchat-install-required #notificationRequiredGate{display:none!important}
.install-gate-card{width:min(440px,100%);border:1px solid #1c5129;background:#0b1b10;border-radius:24px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.42);text-align:center}
.install-gate-card .app-icon{margin:0 auto 14px}.install-gate-card h1,.install-gate-card h2{margin:7px 0 8px}.install-gate-card p{color:#bdd1c2;line-height:1.45}
.install-primary{display:block;width:100%;margin-top:16px;background:#20f55c;color:#031407;border:1px solid #20f55c;border-radius:12px;padding:12px 14px;font-size:16px;font-weight:900;text-decoration:none;text-align:center}
.install-primary:disabled{opacity:.58;cursor:wait}.secondary-install{display:block;width:100%;margin-top:9px;background:#102017}
.install-help{font-size:13px;margin:10px 0 0}.install-details{margin-top:14px;text-align:left;color:#b8ccbd;font-size:13px}.install-details summary{cursor:pointer;font-weight:800;color:#dffbe4}.install-details p{margin-bottom:0}
.notification-required-gate{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:18px;background:#07120b}
.notify-indicator-panel{display:block;padding:7px 12px;text-align:center}
.notify-indicator-panel .notify-status{display:block;font-weight:800}
@media(min-width:621px){.android-install-gate,.notification-required-gate{background:#07120b}}

/* V5.8.10.1: diagnóstico del mapa y precisión GPS */
.location-picker-status{margin:8px 0 0;padding:9px 11px;border:1px solid #285d35;border-radius:12px;background:#0b1b10;color:#dffbe4;font-size:13px;line-height:1.35}
.location-picker-status[data-kind="ok"]{border-color:#20f55c;color:#8cffaa}
.location-picker-status[data-kind="error"]{border-color:#8f453f;color:#ffb7ae}
.location-map-tiles img.tile-error{visibility:hidden}
.location-map-attribution a{color:#1c2b21;text-decoration:none}

/* Reforma 24 · página pública con instalación Android, PWA y acceso directo */
.install-hub{display:none;min-height:100dvh;padding:18px 12px;align-items:flex-start;justify-content:center;background:radial-gradient(circle at top,#0c3d20 0,#07120b 44%,#040907 100%);overflow:auto}
html.raulchat-install-hub-visible body{overflow:auto}
html.raulchat-install-hub-visible .install-hub{display:flex}
html.raulchat-install-hub-visible #loginScreen,
html.raulchat-install-hub-visible #clientScreen,
html.raulchat-install-hub-visible #adminScreen,
html.raulchat-install-hub-visible #notificationRequiredGate{display:none!important}
.install-hub-card{width:min(760px,100%);border:1px solid #1c5129;background:rgba(7,18,11,.96);border-radius:26px;padding:20px;box-shadow:0 22px 80px rgba(0,0,0,.52)}
.install-logo{margin:0 auto 12px;width:68px;height:68px;border-radius:21px;font-size:22px}
.install-hub h1{text-align:center;margin:6px 0;font-size:29px}.install-intro{text-align:center;color:#c5d8c9;margin:0 auto 10px;max-width:520px;line-height:1.45}
.device-hint{width:max-content;max-width:100%;margin:10px auto 16px;padding:7px 12px;border-radius:999px;background:#10291a;border:1px solid #286239;color:#dffbe4;font-size:13px;font-weight:800;text-align:center}
.install-options{display:grid;gap:12px}.install-option{display:flex;gap:13px;align-items:flex-start;border:1px solid #245d32;background:linear-gradient(145deg,#0c1e12,#08110b);border-radius:19px;padding:15px;order:3}.install-option.android-option{order:1;border-color:#20a94c}.install-option.web-option{order:2}.install-option.browser-option{order:3}.install-options.non-android .web-option{order:1}.install-options.non-android .browser-option{order:2}.install-options.non-android .android-option{display:none}
.option-icon{flex:0 0 46px;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:15px;background:#12351e;font-size:25px}.option-copy{flex:1;min-width:0}.option-copy h2{font-size:18px;margin:1px 0 5px;color:#f0fff3}.option-copy h2 span{display:inline-block;margin-left:5px;padding:3px 7px;border-radius:999px;background:#1fe45a;color:#021407;font-size:11px;vertical-align:2px}.option-copy p{margin:0 0 10px;color:#bdd1c2;line-height:1.4}.option-copy small{display:block;color:#abc1b0;line-height:1.35;margin-top:8px}
.big-action{display:block;width:100%;min-height:51px;border-radius:14px;padding:13px 14px;border:1px solid #2b6c3a;font-size:15px;font-weight:950;text-align:center;text-decoration:none;cursor:pointer}.primary-action{background:#20f55c;color:#021407;border-color:#20f55c}.web-action{background:#12652f;color:#fff;border-color:#21b456}.secondary-action{background:#102017;color:#eaffef}.big-action:active{transform:scale(.99)}
.version-info{margin-top:9px;padding:8px 10px;border-radius:11px;background:#071009;color:#9fc4a8;font-size:12px;line-height:1.4}.pwa-help{margin-top:9px;padding:10px;border-radius:11px;border:1px solid #7a5d21;background:#2b210d;color:#ffe7a1;font-size:13px;line-height:1.4}.privacy-note{text-align:center;margin:15px 4px 0;color:#8eb19a;font-size:12px;line-height:1.45}
.header-icon-btn{min-width:45px!important;width:45px;padding:8px 6px!important;font-size:18px!important}
.devices-modal{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;padding:13px}.devices-card{width:min(96vw,560px);max-height:88dvh;overflow:auto;background:#07120b;border:1px solid #23ff61;border-radius:20px;padding:14px;box-shadow:0 22px 80px rgba(0,0,0,.68)}.devices-head{display:flex;align-items:center;gap:10px}.devices-head strong{flex:1;font-size:20px}.devices-head button{border:1px solid #315c3c;background:#102017;color:#fff;border-radius:11px;padding:8px 11px}.devices-card>p{color:#bdd1c2;line-height:1.4}.devices-list{display:grid;gap:9px}.device-card{border:1px solid #275d35;background:#0b1b10;border-radius:15px;padding:12px}.device-card.inactive{opacity:.67}.device-top{display:flex;gap:8px;align-items:center}.device-top strong{flex:1}.device-kind{font-size:11px;padding:3px 7px;border-radius:999px;background:#13361e;color:#c9ffd5}.device-meta{font-size:12px;color:#9eb8a4;margin:6px 0 9px}.device-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.device-actions button{border:1px solid #2c673a;background:#102017;color:#eaffef;border-radius:11px;padding:9px;font-weight:800}.device-actions button.danger{border-color:#7d3434;background:#2a1212;color:#ffd2d2}.devices-msg{min-height:20px;color:#ffd36b;text-align:center;margin-top:9px}
@media(max-width:520px){.install-hub-card{padding:15px}.install-option{padding:13px;gap:10px}.option-icon{flex-basis:40px;width:40px;height:40px}.option-copy h2{font-size:17px}.device-actions{grid-template-columns:1fr}}

/* V5.9.2.5: buscador de conversaciones y estados de lectura */
.admin-conv-search{padding:8px 9px 6px;background:#0b1d17;border-bottom:1px solid rgba(255,255,255,.07)}
.admin-conv-search-row{display:flex;gap:7px;align-items:center}
.admin-conv-search input{min-width:0;flex:1;height:42px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#142c23;color:#f2fff8;padding:0 12px;font-size:15px;outline:none}
.admin-conv-search input:focus{border-color:#29c978;box-shadow:0 0 0 2px rgba(41,201,120,.14)}
.admin-conv-search button{width:42px;height:42px;border:0;border-radius:12px;background:#1d3b30;color:#e9fff3;font-size:24px;line-height:1}
.admin-conv-search small{display:block;padding:5px 3px 0;color:#9eb9ab;font-size:12px}
.conv-item.has-unread{border-left:4px solid #2bd37b;background:#153426}
.checks{display:inline-block;min-width:14px;margin-left:2px;color:#b8c9c0;font-weight:700;letter-spacing:-2px}
.checks.read{color:#38d987}

/* V5.9.2.7: entrada enriquecida compatible con GIF del teclado */
.composer .rich-composer-input{
  flex:1;border:1px solid #8fb49a;background:#071009;color:#eaffef;border-radius:22px;
  padding:11px 14px;min-height:46px;max-height:110px;overflow-y:auto;font-size:15px;
  line-height:1.35;white-space:pre-wrap;word-break:break-word;outline:none
}
.composer .rich-composer-input:focus{border-color:#20f55c;box-shadow:0 0 0 2px rgba(32,245,92,.10)}
.rich-composer-input:empty::before{content:attr(data-placeholder);color:#8ca595;pointer-events:none}
.rich-composer-input img{max-width:42px;max-height:42px;vertical-align:middle}

/* Portada en el orden solicitado: recomendada, chat directo, Android */
.install-option.web-option{order:1;border-color:#20a94c}
.install-option.browser-option{order:2}
.install-option.android-option{order:3;border-color:#245d32}
.install-options.non-android .web-option{order:1}
.install-options.non-android .browser-option{order:2}
.option-copy h2 .option-number{display:inline-flex;width:25px;height:25px;margin:0 7px 0 0;padding:0;align-items:center;justify-content:center;border-radius:50%;background:#1fe45a;color:#021407;font-size:13px;vertical-align:1px}

/* V5.9.3.0 · archivos, reenvíos, avisos separados y enlaces seguros */
.message-link{color:#d8ffde;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.bubble.client .message-link{color:#fff}
.message-labels{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}
.message-label{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.1);font-size:11px;font-weight:900;line-height:1.2}
.message-label.global{background:#194d29;color:#baffca}.message-label.internal{background:#4a3710;color:#ffe59a}
.chat-message-video{display:block;width:100%;max-height:55dvh;border-radius:12px;margin-bottom:5px;background:#000}
.chat-message-audio{display:block;width:min(310px,100%);margin:3px 0 6px}
.chat-file-card{display:flex!important;align-items:center;gap:10px;width:100%;padding:10px;border-radius:12px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.15);text-decoration:none!important;color:inherit!important;white-space:normal}
.chat-file-icon{font-size:28px;line-height:1}.chat-file-info{display:flex;flex-direction:column;min-width:0}.chat-file-info strong{overflow-wrap:anywhere}.chat-file-info small{margin-top:2px;opacity:.78;font-size:11px}


/* V5.9.3.1 · reenvío visible en PWA y selector seguro de destinos */
.message-forward-btn{display:block;margin:7px 0 1px auto;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.16);color:inherit;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}
.message-forward-btn:hover,.message-forward-btn:focus{outline:none;border-color:#7dff9d;background:rgba(32,245,92,.14)}
.forward-modal{position:fixed;inset:0;z-index:160;background:rgba(0,0,0,.84);display:flex;align-items:center;justify-content:center;padding:12px}
.forward-card{width:min(96vw,620px);max-height:90dvh;display:flex;flex-direction:column;background:#07120b;border:1px solid #23ff61;border-radius:20px;padding:14px;box-shadow:0 24px 90px rgba(0,0,0,.72)}
.forward-head{display:flex;align-items:center;gap:10px}.forward-head strong{flex:1;font-size:20px}.forward-head button{border:1px solid #315c3c;background:#102017;color:#fff;border-radius:10px;padding:8px 11px}
.forward-help{margin:8px 0;color:#bdd1c2;font-size:13px;line-height:1.35}.forward-search{width:100%;border:1px solid #2b6137;background:#071009;color:#eaffef;border-radius:13px;padding:11px 12px;font-size:15px}
.forward-destinations{min-height:120px;max-height:55dvh;overflow:auto;display:grid;gap:7px;margin-top:10px;padding-right:2px}.forward-section-title{position:sticky;top:0;z-index:1;padding:8px 4px 5px;background:#07120b;color:#7dff9d;font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.04em}
.forward-target{display:flex;align-items:center;gap:10px;border:1px solid #214d2d;background:#0b1b10;border-radius:14px;padding:10px;cursor:pointer}.forward-target:has(input:checked){border-color:#20f55c;background:#102b18}.forward-target input{width:20px;height:20px;accent-color:#20f55c}.forward-target span{min-width:0}.forward-target strong,.forward-target small{display:block}.forward-target small{margin-top:2px;color:#9fb7a5;overflow-wrap:anywhere}
.forward-status{min-height:20px;margin-top:8px;color:#baffca;font-size:13px}.forward-status[data-kind="error"]{color:#ffaaa0}.forward-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.forward-actions button{border:1px solid #315c3c;background:#102017;color:#fff;border-radius:12px;padding:11px;font-weight:900}.forward-actions .forward-confirm{border:0;background:#20f55c;color:#031407}.forward-actions .forward-confirm:disabled{opacity:.45}


/* V5.9.3.2 · responder y reenviar visible para todos los usuarios */
.message-actions{display:flex;gap:8px;margin-top:8px;padding-top:7px;border-top:1px solid rgba(255,255,255,.10)}
.message-actions button{display:inline-flex;align-items:center;gap:4px;border:0;border-radius:16px;padding:6px 10px;background:rgba(0,0,0,.18);color:inherit;font-size:12px;font-weight:700;cursor:pointer}
.message-actions button:active{transform:scale(.97)}
.message-actions .message-forward-btn{background:rgba(38,166,91,.20)}
.message-actions .message-reply-btn{background:rgba(255,255,255,.10)}
.quoted-reply{display:flex;flex-direction:column;gap:2px;margin:0 0 7px;padding:7px 9px;border-left:4px solid #35c978;border-radius:7px;background:rgba(0,0,0,.18);max-width:100%;overflow:hidden}
.quoted-reply strong{font-size:12px;color:#71e6a4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quoted-reply span{font-size:12px;opacity:.88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.composer-reply-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 8px 0;padding:8px 10px;border-left:4px solid #35c978;border-radius:9px;background:#1d3027;color:#eaf6ef}
.composer-reply-bar>div{display:flex;flex-direction:column;min-width:0}
.composer-reply-bar strong{font-size:12px;color:#71e6a4}
.composer-reply-bar span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72vw}
.composer-reply-bar button{border:0;background:transparent;color:#eaf6ef;font-size:18px;padding:4px 8px;cursor:pointer}
@media (max-width:520px){.message-actions button{padding:6px 9px}.message-actions button span{display:inline}.composer-reply-bar{margin-left:4px;margin-right:4px}}


/* V5.9.3.5 · reacciones y acciones por pulsación prolongada */
.message-actions{display:none!important}
.message-reactions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:6px 0 1px}
.message-reaction{display:inline-flex;align-items:center;gap:3px;min-height:27px;padding:3px 8px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#10271a;color:#effff3;box-shadow:0 2px 7px rgba(0,0,0,.22)}
.message-reaction.mine{border-color:#62ee91;background:#174d2a;box-shadow:0 0 0 1px rgba(98,238,145,.2)}
.message-reaction b{font-size:17px;line-height:1}.message-reaction small{font-size:11px;font-weight:950;color:#d9ffe4}
.reaction-picker{position:fixed;inset:0;z-index:230;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:rgba(0,0,0,.48)}
.reaction-picker-card{width:min(96vw,430px);padding:15px;border:1px solid #3a7250;border-radius:20px;background:#0b1b10;box-shadow:0 22px 80px rgba(0,0,0,.72);text-align:center}
.reaction-picker-card>strong{display:block;margin-bottom:11px;color:#eaffef;font-size:15px}
.reaction-picker-emojis{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.reaction-picker-emojis button{height:52px;border:1px solid #2b5b39;border-radius:15px;background:#13271b;color:#fff;font-size:27px;cursor:pointer}
.reaction-picker-emojis button:active{transform:scale(.94);background:#1a4428}
.reaction-picker-cancel{width:100%;margin-top:10px;padding:10px;border:1px solid #315c3c;border-radius:12px;background:#102017;color:#fff;font-weight:900}
@media(max-width:520px){.reaction-picker{padding-bottom:max(14px,env(safe-area-inset-bottom))}.reaction-picker-emojis button{font-size:25px;padding:0}}

/* V5.9.3.5 · mantener presionado y soltar */
.bubble[data-message-id]{touch-action:pan-y;transition:transform .12s,filter .12s,outline-color .12s}
.bubble.longpress-arming{filter:brightness(1.06)}
.bubble.longpress-ready,.bubble.longpress-active{outline:2px solid #7dff9d;transform:scale(.985);filter:brightness(1.08)}
.message-action-menu{position:fixed;inset:0;z-index:220;display:flex;align-items:flex-end;justify-content:center;padding:14px max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:rgba(0,0,0,.5)}
.message-action-card{width:min(96vw,430px);padding:12px;border:1px solid #3a7250;border-radius:22px;background:#0b1b10;box-shadow:0 22px 80px rgba(0,0,0,.72)}
.message-action-title{padding:5px 8px 10px;color:#baffca;font-size:13px;font-weight:950;text-align:center}
.message-action-card button{display:flex;width:100%;align-items:center;gap:13px;margin:5px 0;padding:13px 15px;border:1px solid #2b5b39;border-radius:15px;background:#13271b;color:#f2fff5;font-size:15px;font-weight:950;text-align:left;cursor:pointer}
.message-action-card button span{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:#1d3a27;font-size:20px}
.message-action-card button:active{transform:scale(.985);background:#1a4428}
.message-action-card .message-action-cancel{justify-content:center;margin-top:9px;background:#101b14;color:#d9e6dc;text-align:center}
.message-action-card .message-action-cancel span{display:none}
.message-action-card .message-action-delete{border-color:#8c3636;background:#3a1616;color:#fff1f1}.message-action-card .message-action-delete span{background:#6b2525}.message-action-card .message-action-delete:active{background:#581e1e}


/* V5.9.3.7 · Estados como botón compacto con aviso de novedades */
.status-entry-bar{padding:7px 10px;background:#0a1710;border-bottom:1px solid #183820}
.status-entry-btn{width:100%;min-height:42px;display:flex;align-items:center;gap:9px;border:1px solid #285c35;background:#0d2114;color:#eaffef;border-radius:14px;padding:8px 11px;text-align:left;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.14)}
.status-entry-btn:disabled{opacity:.62;cursor:default}
.status-entry-btn:not(:disabled):active{transform:scale(.99)}
.status-entry-btn.has-new{border-color:#20f55c;background:#10341c;box-shadow:0 0 0 1px rgba(32,245,92,.18),0 4px 14px rgba(0,0,0,.2)}
.status-entry-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#173d22;color:#20f55c;font-size:17px;flex:0 0 auto}
.status-entry-label{font-weight:900;font-size:14px;line-height:1;flex:1;color:#eaffef!important;overflow:visible!important}
.status-new-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:28px;height:23px;padding:0 8px;border-radius:999px;background:#20f55c;color:#031407!important;font-size:11px!important;font-weight:1000;letter-spacing:.25px;animation:statusBadgePulse 1.7s ease-in-out infinite}
.status-new-badge.hidden{display:none!important}
.status-entry-arrow{font-size:25px!important;line-height:1;color:#9fc9aa!important;flex:0 0 auto}
@keyframes statusBadgePulse{0%,100%{box-shadow:0 0 0 0 rgba(32,245,92,.12)}50%{box-shadow:0 0 0 5px rgba(32,245,92,.08)}}
.status-tray-modal{position:fixed;inset:0;background:rgba(0,0,0,.68);z-index:96;display:flex;align-items:flex-end;justify-content:center;padding:12px}
.status-tray-card{width:min(100%,560px);max-height:min(78dvh,720px);display:flex;flex-direction:column;background:#07120b;border:1px solid #2b6e3a;border-radius:24px 24px 18px 18px;box-shadow:0 -16px 60px rgba(0,0,0,.55);overflow:hidden}
.status-tray-head{display:flex;align-items:center;gap:12px;padding:14px 15px;background:#0b1b10;border-bottom:1px solid #1d4528}
.status-tray-head>div{flex:1;min-width:0}
.status-tray-head strong{display:block;color:#eaffef;font-size:17px}
.status-tray-head span{display:block;color:#a9c2af;font-size:12px;margin-top:2px}
.status-tray-head button{width:38px;height:38px;border:1px solid #315c3c;background:#102017;color:#fff;border-radius:12px;font-size:17px;cursor:pointer}
.status-tray-list{min-height:110px;overflow:auto;padding:10px;display:grid;gap:9px;background:#07120b}
.status-tray-list .status-card{width:100%;min-width:0;margin:0;border-color:#2b6e3a}
.status-tray-list .status-card b{display:flex;align-items:center;justify-content:space-between;gap:8px}
.status-tray-list .status-card-time{font-size:11px;color:#9fc2a7;font-weight:700}
.status-tray-empty{padding:30px 18px;text-align:center;color:#aac0b0}
@media(min-width:700px){.status-tray-modal{align-items:center}.status-tray-card{border-radius:24px}}


/* PWA V2 - Reproductor secuencial de estados */
.status-story-modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;padding:10px;touch-action:manipulation}
.status-story-shell{position:relative;width:min(100%,560px);height:min(92dvh,820px);display:flex;flex-direction:column;overflow:hidden;background:#020805;border:1px solid #245b32;border-radius:22px;box-shadow:0 24px 90px rgba(0,0,0,.72)}
.status-story-progress{display:flex;gap:4px;padding:10px 10px 5px;z-index:3}
.status-story-progress-track{height:3px;flex:1;overflow:hidden;background:rgba(255,255,255,.28);border-radius:99px}
.status-story-progress-fill{display:block;width:100%;height:100%;background:#fff;transform:scaleX(0);transform-origin:left center;will-change:transform}
.status-story-head{display:flex;align-items:center;gap:10px;padding:5px 10px 9px;color:#fff;z-index:3}
.status-story-heading{flex:1;min-width:0}.status-story-heading strong{display:block;font-size:15px}.status-story-heading span{display:flex;align-items:center;gap:8px;color:#b7c7bb;font-size:11px;margin-top:2px}.status-story-heading b{color:#dfffe7}.status-story-heading i{font-style:normal}
.status-story-actions{display:flex;gap:7px}.status-story-actions button{border:1px solid rgba(255,255,255,.28);background:rgba(8,24,13,.8);color:#fff;border-radius:11px;padding:7px 9px;font-weight:800;cursor:pointer}
.status-story-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden}
.status-story-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.status-story-image,.status-story-video{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#000}
.status-story-video-wrap{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000}
.status-story-sound{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:5;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.72);color:#fff;border-radius:999px;padding:9px 13px;font-weight:800}
.status-story-text-only{max-width:90%;max-height:90%;overflow:auto;padding:26px 22px;color:#effff2;font-size:30px;line-height:1.32;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere}
.status-story-nav{position:absolute;top:0;bottom:0;width:22%;z-index:4;border:0;background:transparent;color:rgba(255,255,255,.38);font-size:54px;opacity:.28;cursor:pointer}.status-story-nav:active{background:rgba(255,255,255,.06);opacity:.8}.status-story-prev{left:0;text-align:left;padding-left:7px}.status-story-next{right:0;text-align:right;padding-right:7px}
.status-story-caption{max-height:28%;overflow:auto;padding:12px 16px 15px;background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.88));color:#fff;font-size:18px;line-height:1.38;white-space:pre-wrap;overflow-wrap:anywhere}
.status-card-new{border-color:#20f55c!important;box-shadow:0 0 0 1px rgba(32,245,92,.14)}.status-new-dot{display:inline-block!important;width:9px;height:9px;margin-right:7px;border-radius:50%;background:#20f55c;box-shadow:0 0 0 3px rgba(32,245,92,.15)}
@media(max-width:600px){.status-story-modal{padding:0}.status-story-shell{width:100%;height:100dvh;border:0;border-radius:0}.status-story-actions button{padding:7px 8px}.status-story-text-only{font-size:27px}.status-story-caption{font-size:17px}}


/* V5: selector de ubicación compacto y seguro para pantallas pequeñas */
.location-picker-modal{
  align-items:center;
  padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));
}
.location-picker-card{
  width:min(98vw,560px);
  max-height:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:8px;
  border-radius:15px;
}
.location-picker-head{flex:0 0 auto;margin-bottom:3px}
.location-picker-head strong{font-size:16px}
.location-picker-head button{padding:5px 9px;min-height:32px}
.location-picker-note{flex:0 0 auto;margin:0 0 4px;font-size:11px;line-height:1.2}
.location-gps-manual{
  flex:0 0 auto;
  grid-template-columns:minmax(0,1fr) auto;
  gap:5px;
  margin:0 0 5px;
  padding:5px;
  border-radius:10px;
}
.location-gps-activate{
  grid-column:1/2;
  padding:8px 7px;
  min-height:38px;
  border-radius:10px;
  font-size:12px;
  white-space:nowrap;
}
#locationGpsHint{
  grid-column:1/-1;
  font-size:10.5px;
  line-height:1.2;
  max-height:2.5em;
  overflow:auto;
}
.location-gps-help{
  grid-column:2/3;
  grid-row:1/2;
  padding:7px 8px;
  min-height:38px;
  border-radius:10px;
  font-size:11px;
  white-space:nowrap;
}
.location-map{
  flex:1 1 260px;
  height:auto;
  min-height:160px;
  max-height:none;
  border-radius:12px;
}
.location-map-zoom{right:6px;top:6px;gap:4px}
.location-map-zoom button{width:34px;height:34px;font-size:20px}
.location-map-pin{font-size:34px}
.location-coords{
  flex:0 0 auto;
  padding:4px 2px 2px;
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.location-picker-status{
  flex:0 0 auto;
  margin:3px 0 0;
  padding:5px 7px;
  border-radius:9px;
  font-size:10.5px;
  line-height:1.2;
  max-height:3.8em;
  overflow:auto;
}
.location-picker-actions{
  flex:0 0 auto;
  grid-template-columns:1fr 1fr;
  gap:5px;
  margin-top:4px;
}
.location-picker-actions button{
  min-height:40px;
  padding:8px 6px;
  border-radius:10px;
  font-size:12px;
}
@media(max-width:430px){
  .location-gps-manual{grid-template-columns:minmax(0,1fr) auto}
  .location-gps-help{width:auto}
}
@media(max-height:680px){
  .location-picker-modal{align-items:stretch}
  .location-picker-card{height:100%;max-height:100%;border-radius:12px}
  .location-picker-note{display:none}
  #locationGpsHint{max-height:1.3em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
  .location-map{min-height:135px}
  .location-picker-status{max-height:2.7em}
}
@media(max-height:560px){
  .location-picker-head strong{font-size:14px}
  .location-gps-manual{padding:3px;margin-bottom:3px}
  .location-gps-activate,.location-gps-help{min-height:34px;padding:6px;font-size:10.5px}
  #locationGpsHint{display:none}
  .location-map{min-height:115px}
  .location-coords{display:none}
  .location-picker-actions button{min-height:36px;padding:6px;font-size:11px}
}
