/* =======================================================
   INMOPLUS SECRETARY PRO - UI ENGINE v1.7.6 (PRO)
   Estable: Desktop / Tablet / Mobile (Android+iOS)

   Objetivos:
   ✅ Aislamiento contra estilos globales del theme
   ✅ Modal estable y predecible
   ✅ Sólo scrollea el chat-log y/o panel opciones
   ✅ Input siempre visible (sticky + safe-area)
   ✅ Mobile: usa 100dvh + fallback seguro
   ✅ Evita duplicidad de reglas y conflictos
   ======================================================= */

/* =========================
   0) Aislamiento básico
   ========================= */
#imsp-launcher,
#imsp-launcher *,
#imsp-dock,
#imsp-modal,
#imsp-modal *{
  box-sizing: border-box;
}

/* Evitar herencias raras del theme */
#imsp-launcher button,
#imsp-modal button,
#imsp-modal input{
  font-family: inherit;
}

/* =========================
   1) Launcher y Botón Flotante
   ========================= */
.imsp-launcher{
  position: fixed;
  bottom: 20px;
  z-index: 99999;
}

.imsp-float{
  position: fixed;
  bottom: calc(20px + env(safe-area-inset-bottom));
  z-index: 99999;
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: auto;
}

.imsp-float.imsp-right{
  right: calc(20px + env(safe-area-inset-right));
  left: auto;
}

.imsp-float.imsp-left{
  left: calc(20px + env(safe-area-inset-left));
  right: auto;
}

.imsp-btn{
  border: 0;
  outline: 0;
  cursor: pointer;
  padding: 12px 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.15);
  font-weight: 600;
  transition: transform 0.2s ease;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}

.imsp-btn:hover{ transform: scale(1.05); }

.imsp-ico{
  display: inline-flex;
  width: 18px;
  height: 18px;
}

.imsp-ico svg{
  width: 18px;
  height: 18px;
  display: block;
}

.imsp-label{
  display: inline-flex;
  font-size: 14px;
}

.imsp-hide{
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15,23,42,.10);
  color: rgba(15,23,42,.70);
  box-shadow: 0 8px 24px rgba(0,0,0,.10);
  font-size: 18px;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}

.imsp-hide:hover{ background: rgba(15,23,42,.14); }

/* =========================
   1.1) Dock (blindado)
   ========================= */
.imsp-dock{
  position: fixed;
  right: calc(20px + env(safe-area-inset-right));
  bottom: calc(20px + env(safe-area-inset-bottom));
  z-index: 99999;

  width: 52px;
  height: 52px;
  border-radius: 999px;

  border: 0;
  cursor: pointer;

  display: none; /* se activa con .open */
  align-items: center;
  justify-content: center;

  background: #005C67;
  color: #fff;

  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  -webkit-tap-highlight-color: transparent;
  line-height: 1;
}

.imsp-dock.open{ display: inline-flex; }

.imsp-dock svg{
  width: 22px;
  height: 22px;
  display: block;
}

/* =========================
   2) Modal Principal
   ========================= */
.imsp-modal{
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.4);
  backdrop-filter: blur(4px);
  display: none;
  z-index: 999999;
  align-items: center;
  justify-content: center;
  padding: 10px;
}

.imsp-modal.open{ display: flex; }

/* Dialog: flex column + min-height 0 para scroll correcto */
.imsp-modal-dialog{
  max-width: 420px;
  width: 100%;
  height: 600px;
  max-height: 85vh;

  display: flex;
  flex-direction: column;

  background: #fff;
  border-radius: 20px;
  overflow: hidden;

  box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25);

  min-height: 0; /* CRÍTICO */
}

/* =========================
   3) Cabecera / Body / Footer
   ========================= */
.imsp-modal-header{
  padding: 16px 20px;
  border-bottom: 1px solid #f1f5f9;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}

#imsp-modal-title{
  margin: 0;
  font-size: 16px;
  line-height: 1.2;
}

.imsp-close{
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 26px;
  line-height: 1;
  padding: 0 4px;
  color: rgba(15,23,42,.70);
}

.imsp-modal-body{
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 15px 20px;
  min-height: 0; /* CRÍTICO */
}

.imsp-modal-footer{
  padding: 12px 20px;
  border-top: 1px solid #f1f5f9;
  text-align: right;
  flex-shrink: 0;
  background: #fff;
}

.imsp-send{
  border: 0;
  cursor: pointer;
  background: #005C67;
  color: #fff;
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 700;
}

.imsp-send:hover{ filter: brightness(0.95); }

/* =========================
   4) Tabs y Paneles
   ========================= */
.imsp-tabs{
  display: flex;
  gap: 8px;
  margin-bottom: 15px;
  flex-shrink: 0;
}

.imsp-tab{
  flex: 1;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  border-radius: 10px;
  padding: 8px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s;
}

.imsp-tab.active{
  background: #005C67;
  color: #fff;
  border-color: #005C67;
}

/* REGLA ÚNICA: panes */
.imsp-pane{
  display: none;
  flex: 1;
  flex-direction: column;
  overflow: hidden;
  min-height: 0; /* CRÍTICO */
}
.imsp-pane.active{ display: flex; }

/* Opciones scrolleables */
.imsp-pane.imsp-pane-options{
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-right: 4px;
  min-height: 0;
}

/* Opción (radio + label) */
.imsp-option{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  margin-bottom: 10px;
}

.imsp-option input{ margin: 0; }
.imsp-option span{ font-size: 14px; }

/* =========================
   5) Chat Engine
   ========================= */
.imsp-chat{
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0; /* CRÍTICO */
}

/* Chat log = ÚNICO scroller del chat */
.imsp-chat-log{
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;

  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 15px;
  padding: 12px;

  display: flex;
  flex-direction: column;
  gap: 10px;

  margin-bottom: 10px;
  min-height: 0; /* CRÍTICO */
}

/* Burbujas */
.imsp-chat-bubble{ display: flex; width: 100%; }
.imsp-chat-bubble.user{ justify-content: flex-end; }
.imsp-chat-bubble.ai{ justify-content: flex-start; }

.imsp-chat-text{
  max-width: 85%;
  padding: 10px 14px;
  border-radius: 15px;
  font-size: 14px;
  line-height: 1.5;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.imsp-chat-bubble.user .imsp-chat-text{
  background: #005C67;
  color: #fff;
  border-color: #005C67;
}

/* Links */
.imsp-link{
  color: #005C67;
  text-decoration: underline;
  font-weight: 600;
}
.imsp-link-wa{ margin-left: 6px; }

/* Typing */
.imsp-chat-typing{
  font-size: 13px;
  color: rgba(15,23,42,.65);
  padding: 6px 4px;
}

/* Barra de entrada: sticky dentro del pane */
.imsp-chat-bar{
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  background: #fff;
  padding-top: 5px;

  position: sticky;
  bottom: 0;
  z-index: 5;
  padding-bottom: max(8px, env(safe-area-inset-bottom));
}

/* Input */
.imsp-chat-input{
  flex: 1;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid #cbd5e1;
  outline: none;
  font-size: 14px;
}

.imsp-chat-input:focus{
  border-color: #005C67;
  box-shadow: 0 0 0 2px rgba(0,92,103,0.1);
}

.imsp-chat-send{
  width: 45px;
  height: 45px;
  border-radius: 12px;
  border: 0;
  background: #80C342;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.imsp-chat-send svg{
  width: 18px;
  height: 18px;
  display: block;
}

/* =========================
   6) Mobile Pro
   ========================= */
@media (max-width: 480px){
  .imsp-modal{
    padding: 0;
    align-items: stretch;
    justify-content: stretch;
  }

  .imsp-modal-dialog{
    max-width: 100%;
    border-radius: 0;

    /* estrategia estable */
    height: 100dvh;
    max-height: 100dvh;

    /* fallback iOS viejo */
    height: -webkit-fill-available;
  }

  .imsp-modal-header{ padding: 12px 15px; }

  .imsp-chat-log{
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }
}

/* =========================
   7) Accesibilidad
   ========================= */
.screen-reader-text{
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* =========================
   8) Estados globales
   ========================= */
body.imsp-modal-open #imsp-float,
body.imsp-modal-open #imsp-dock{
  display: none !important;
}

body.imsp-open{ overflow: hidden; }

/* =========================
   9) Blindaje tab AI (ocultar opciones SIEMPRE)
   ========================= */
#imsp-modal.imsp-ai-active .imsp-pane-options{ display: none !important; }
#imsp-modal.imsp-ai-active .imsp-pane-ai{ display: flex !important; }
#imsp-modal.imsp-ai-active .imsp-modal-footer{ display: none !important; }


/* Ultra-safe (flex min-height) */
.imsp-modal-body,
.imsp-pane,
.imsp-chat,
.imsp-chat-log{
  min-height: 0 !important;
}

/* ==========================================================
   ERIN 3 ENTERPRISE - Blindaje m髒il y visibilidad permanente
   Evita que temas, constructores o cach閟 oculten el launcher.
========================================================== */
#imsp-launcher,
#imsp-float,
#imsp-dock,
#imsp-modal{
  z-index: 2147483000 !important;
}
#imsp-launcher{
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.imsp-float{
  position: fixed !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
@media (max-width: 768px){
  .imsp-float.imsp-right{ right: 14px !important; bottom: 84px !important; }
  .imsp-float.imsp-left{ left: 14px !important; bottom: 84px !important; }
  .imsp-btn{ min-width: 58px !important; min-height: 58px !important; border-radius: 999px !important; }
  .imsp-label{ display: none !important; }
  #imsp-modal.open{ display: flex !important; }
  .imsp-modal-dialog{
    width: 100vw !important;
    max-width: 100vw !important;
    height: calc(var(--imsp-vh, 1vh) * 100) !important;
    max-height: calc(var(--imsp-vh, 1vh) * 100) !important;
  }
  .imsp-chat-bar{ padding-bottom: max(12px, env(safe-area-inset-bottom)) !important; }
}

/* ==========================================================
   ERIN 4.1 鈥 Voz y feedback compacto
========================================================== */
.imsp-chat-speaker{
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid rgba(0,92,103,.18);border-radius:12px;background:#fff;cursor:pointer;
  flex:0 0 auto;font-size:17px;line-height:1;
}
.imsp-chat-speaker.is-active{background:rgba(128,195,66,.12);border-color:#80c342;}
.imsp-chat-rating{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:7px 10px 3px;color:#64748b;font-size:11px;}
.imsp-rating-stars{display:inline-flex;gap:2px;}
.imsp-rating-stars button{border:0;background:transparent;padding:1px 2px;cursor:pointer;font-size:18px;color:#94a3b8;line-height:1;}
.imsp-rating-stars button.is-active{color:#80c342;}
.imsp-rating-status{width:100%;text-align:center;min-height:14px;color:#64748b;}

/* =========================================================
   RC48 鈥 Erin Public Workspace
   Visual shell for the PUBLIC launcher/modal only.
   Operational selectors/endpoints remain unchanged.
   ========================================================= */
#imsp-modal{
  --erin-deep:#075f66;
  --erin-deeper:#064f56;
  --erin-green:#80c342;
  --erin-soft:#f5f8f7;
  --erin-line:#e1e9e6;
  --erin-text:#18343b;
  --erin-muted:#718087;
}
#imsp-modal .imsp-modal-dialog{
  width:min(1120px,94vw);
  max-width:1120px;
  height:min(760px,90vh);
  max-height:90vh;
  border-radius:24px;
  border:1px solid rgba(7,95,102,.12);
  box-shadow:0 28px 80px rgba(13,43,49,.25);
  background:#fff;
}
#imsp-modal .imsp-modal-header{
  min-height:72px;
  padding:15px 22px;
  background:#fff;
  border-bottom:1px solid var(--erin-line);
}
#imsp-modal #imsp-modal-title{
  font-size:20px;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--erin-text);
}
#imsp-modal .imsp-close{
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  font-size:22px;font-weight:700;
  color:#fff;background:var(--erin-green);
}
#imsp-modal .imsp-modal-body{padding:14px 18px 18px;background:#fbfcfc;}
#imsp-modal .imsp-tabs{margin:0 0 12px;gap:10px;}
#imsp-modal .imsp-tab{
  min-height:42px;border-radius:12px;border:1px solid var(--erin-line);
  font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--erin-deep);background:#fff;
}
#imsp-modal .imsp-tab.active{background:var(--erin-deep);border-color:var(--erin-deep);color:#fff;box-shadow:0 7px 18px rgba(7,95,102,.16);}
#imsp-modal .imsp-tabs .imsp-tab[data-tab="options"]{background:linear-gradient(135deg,#8bd244,#76bf39);color:#fff;border-color:#80c342;}
#imsp-modal .imsp-tabs .imsp-tab[data-tab="options"].active{background:linear-gradient(135deg,#8bd244,#76bf39);}

#imsp-modal .imsp-ai-layout{
  display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;
  flex:1;min-height:0;height:100%;
}
#imsp-modal .imsp-chat-main{
  background:#fff;border:1px solid var(--erin-line);border-radius:18px;overflow:hidden;
  box-shadow:0 8px 24px rgba(18,56,62,.055);padding:0;
}
#imsp-modal .imsp-ai-contextbar{
  display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--erin-line);background:#fff;flex:0 0 auto;
}
#imsp-modal .imsp-ai-avatar-dot{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  color:#fff;background:linear-gradient(145deg,var(--erin-deep),var(--erin-green));font-weight:900;
}
#imsp-modal .imsp-ai-contextbar>div{display:flex;flex-direction:column;min-width:0;}
#imsp-modal .imsp-ai-contextbar strong{font-size:14px;color:var(--erin-text);}
#imsp-modal .imsp-ai-contextbar small{font-size:11px;color:var(--erin-muted);}
#imsp-modal .imsp-ai-contextbar small i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#73c43a;margin-right:4px;}
#imsp-modal .imsp-ai-security{margin-left:auto;padding:6px 9px;border-radius:999px;background:#eff9e9;color:#4f8d2d;font-size:10px;font-weight:800;white-space:nowrap;}

#imsp-modal .imsp-chat-log{
  margin:0;border:0;border-radius:0;background:#f8faf9;padding:16px 18px;gap:12px;
}
#imsp-modal .imsp-chat-text{
  max-width:78%;padding:12px 15px;border-radius:17px;font-size:14px;line-height:1.55;color:var(--erin-text);
  border:1px solid #e4ebe8;box-shadow:0 4px 12px rgba(18,56,62,.05);background:#fff;
}
#imsp-modal .imsp-chat-bubble.ai .imsp-chat-text{border-bottom-left-radius:6px;}
#imsp-modal .imsp-chat-bubble.user .imsp-chat-text{
  color:#fff;background:linear-gradient(145deg,#08727a,#056269);border-color:transparent;border-bottom-right-radius:6px;
  box-shadow:0 7px 18px rgba(7,95,102,.14);
}

#imsp-modal .imsp-public-upload-tray{display:none;padding:7px 12px 0;background:#fff;max-height:92px;overflow:auto;}
#imsp-modal .imsp-public-upload-tray.has-items{display:flex;gap:7px;flex-wrap:wrap;}
#imsp-modal .imsp-public-upload-item{
  display:flex;align-items:center;gap:7px;min-width:170px;max-width:255px;padding:7px 9px;border:1px solid var(--erin-line);border-radius:11px;background:#f8fbf8;
}
#imsp-modal .imsp-public-upload-item img{width:34px;height:34px;object-fit:cover;border-radius:8px;}
#imsp-modal .imsp-public-upload-item .imsp-upload-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#edf8e7;color:#559a31;font-weight:900;}
#imsp-modal .imsp-public-upload-item div{min-width:0;display:flex;flex-direction:column;}
#imsp-modal .imsp-public-upload-item strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--erin-text);}
#imsp-modal .imsp-public-upload-item small{font-size:9px;color:var(--erin-muted);}
#imsp-modal .imsp-public-upload-item.is-done{border-color:#bfe1ad;background:#f5fbf1;}
#imsp-modal .imsp-public-upload-item.is-error{border-color:#f3b6b6;background:#fff6f6;}

#imsp-modal .imsp-quick-tools{
  display:flex;gap:7px;padding:9px 12px 7px;background:#fff;border-top:1px solid #eef2f0;flex:0 0 auto;
}
#imsp-modal .imsp-tool{
  min-width:68px;height:58px;padding:6px 8px;border-radius:12px;border:1px solid var(--erin-line);background:#fff;color:var(--erin-text);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:.15s ease;
}
#imsp-modal .imsp-tool:hover{transform:translateY(-1px);border-color:#b8d8a7;background:#f8fcf5;}
#imsp-modal .imsp-tool span{font-size:19px;line-height:1;color:#61ad35;}
#imsp-modal .imsp-tool b{font-size:10px;font-weight:800;}
#imsp-modal .imsp-tool.imsp-chat-voice{width:auto!important;border:1px solid var(--erin-line)!important;background:#fff!important;color:var(--erin-text)!important;}
#imsp-modal .imsp-tool.imsp-chat-speaker{width:auto;height:58px;border-radius:12px;padding:6px 8px;}
#imsp-modal .imsp-tool.imsp-chat-speaker.is-active{background:#eff9e9;border-color:#b8d8a7;}
#imsp-modal .imsp-tool.is-loading{opacity:.65;pointer-events:none;}

#imsp-modal .imsp-chat-bar{
  margin:0;padding:7px 12px 9px;gap:8px;border-top:0;background:#fff;align-items:center;
}
#imsp-modal .imsp-attach-hint{width:34px;height:34px;border:1px solid var(--erin-line);border-radius:50%;display:grid;place-items:center;color:var(--erin-deep);font-size:20px;font-weight:400;}
#imsp-modal .imsp-chat-input{height:44px;border-radius:22px;border:1px solid #dce7e3;background:#f8faf9;padding:0 16px;color:var(--erin-text);}
#imsp-modal .imsp-chat-input:focus{border-color:#9dce84;box-shadow:0 0 0 3px rgba(128,195,66,.12);background:#fff;}
#imsp-modal .imsp-chat-send{width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,#8bd244,#70b937);box-shadow:0 6px 16px rgba(112,185,55,.24);}
#imsp-modal .imsp-chat-rating{padding:2px 12px 8px;background:#fff;}

#imsp-modal .imsp-case-panel{
  background:#fff;border:1px solid var(--erin-line);border-radius:18px;padding:16px;overflow:auto;min-height:0;
  box-shadow:0 8px 24px rgba(18,56,62,.055);
}
#imsp-modal .imsp-case-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
#imsp-modal .imsp-case-head small{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;color:#7d8c91;}
#imsp-modal .imsp-case-head h4{margin:2px 0 0;font-size:16px;color:var(--erin-text);}
#imsp-modal .imsp-case-head>strong{font-size:20px;color:#67b536;}
#imsp-modal .imsp-case-progress{height:6px;border-radius:999px;background:#edf1ef;overflow:hidden;margin:12px 0 14px;}
#imsp-modal .imsp-case-progress>span{display:block;width:0;height:100%;background:linear-gradient(90deg,#78bf3d,#8cd64a);transition:width .25s ease;}
#imsp-modal .imsp-case-title{font-size:12px;font-weight:900;color:var(--erin-deep);margin-bottom:9px;}
#imsp-modal .imsp-case-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,1fr);gap:8px;padding:7px 0;border-bottom:1px solid #f0f3f2;font-size:11px;}
#imsp-modal .imsp-case-row span{color:#75848a;}
#imsp-modal .imsp-case-row strong{color:var(--erin-text);text-align:right;overflow-wrap:anywhere;}
#imsp-modal .imsp-case-row strong.is-pending{color:#a2acb0;font-weight:600;}
#imsp-modal .imsp-case-empty{font-size:11px;line-height:1.5;color:#7d8c91;padding:12px 0;}
#imsp-modal .imsp-case-files{margin-top:14px;padding:12px;border-radius:12px;background:#f6faf4;border:1px dashed #cfe4c3;display:flex;flex-direction:column;gap:4px;}
#imsp-modal .imsp-case-files strong{font-size:11px;color:var(--erin-text);}
#imsp-modal .imsp-case-files small{font-size:10px;color:#718087;}

@media (max-width:780px){
  #imsp-modal{padding:0;background:#fff;backdrop-filter:none;}
  #imsp-modal .imsp-modal-dialog{width:100%;max-width:none;height:calc(var(--imsp-vh,1vh)*100);max-height:none;border:0;border-radius:0;box-shadow:none;}
  #imsp-modal .imsp-modal-header{min-height:62px;padding:10px 14px;}
  #imsp-modal #imsp-modal-title{font-size:17px;}
  #imsp-modal .imsp-modal-body{padding:8px;background:#f7f9f8;}
  #imsp-modal .imsp-tabs{margin-bottom:7px;}
  #imsp-modal .imsp-tab{min-height:38px;font-size:11px;}
  #imsp-modal .imsp-ai-layout{display:flex;flex-direction:column;gap:0;}
  #imsp-modal .imsp-chat-main{border-radius:15px;height:100%;}
  #imsp-modal .imsp-case-panel{display:none;}
  #imsp-modal .imsp-ai-security{display:none;}
  #imsp-modal .imsp-ai-contextbar{padding:8px 10px;}
  #imsp-modal .imsp-chat-log{padding:11px 10px;}
  #imsp-modal .imsp-chat-text{max-width:88%;font-size:13px;padding:10px 12px;}
  #imsp-modal .imsp-quick-tools{gap:5px;padding:7px 7px 5px;justify-content:space-between;}
  #imsp-modal .imsp-tool{min-width:56px;height:51px;padding:4px 5px;border-radius:11px;}
  #imsp-modal .imsp-tool span{font-size:17px;}
  #imsp-modal .imsp-tool b{font-size:9px;}
  #imsp-modal .imsp-chat-bar{padding:5px 7px max(7px,env(safe-area-inset-bottom));}
  #imsp-modal .imsp-chat-rating{display:none;}
  #imsp-modal .imsp-public-upload-tray{padding:5px 7px 0;max-height:78px;}
  #imsp-modal .imsp-public-upload-item{min-width:145px;max-width:210px;padding:5px 7px;}
}

/* RC2 鈥 Erin AI Core 3 attachment composer. Visual layer only. */
#imsp-modal .imsp-quick-tools{display:none!important}
#imsp-modal .imsp-chat-main{position:relative}
#imsp-modal .imsp-chat-bar{display:grid!important;grid-template-columns:42px minmax(0,1fr) 38px 44px!important;gap:7px!important;align-items:center!important;padding:8px 12px 10px!important}
#imsp-modal .imsp-attach-toggle,#imsp-modal .imsp-inline-mic{display:grid;place-items:center;border:0;border-radius:50%;cursor:pointer;transition:.16s ease}
#imsp-modal .imsp-attach-toggle{width:42px;height:42px;background:var(--erin-deep);color:#fff;font-size:25px;font-weight:300;line-height:1}
#imsp-modal .imsp-attach-toggle:hover{background:#044f55}#imsp-modal .imsp-attach-toggle.is-open{transform:rotate(45deg)}
#imsp-modal .imsp-inline-mic{width:38px;height:38px;background:transparent;color:#31515a;font-size:19px}
#imsp-modal .imsp-inline-mic:hover{background:#eef4f3}
#imsp-modal .imsp-chat-input{min-width:0;width:100%}
#imsp-modal .imsp-attachment-menu[hidden],#imsp-modal .imsp-attachment-backdrop[hidden]{display:none!important}
#imsp-modal .imsp-attachment-backdrop{position:absolute;inset:0;z-index:59;background:transparent}
#imsp-modal .imsp-attachment-menu{position:absolute;left:14px;bottom:74px;z-index:60;width:292px;padding:8px;border:1px solid #e0e7e9;border-radius:18px;background:#fff;box-shadow:0 20px 55px rgba(15,45,55,.18);animation:imspAttachIn .16s ease-out}
#imsp-modal .imsp-sheet-handle{display:none}
#imsp-modal .imsp-attachment-action{display:flex;width:100%;align-items:center;gap:12px;padding:9px 10px;border:0;border-radius:12px;background:transparent;color:var(--erin-text);text-align:left;cursor:pointer;transition:background .15s ease}
#imsp-modal .imsp-attachment-action:hover{background:#f3f7f7}
#imsp-modal .imsp-action-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#eef6f5;color:var(--erin-deep);font-size:20px;font-weight:800}
#imsp-modal .imsp-attachment-action:nth-of-type(3) .imsp-action-icon,#imsp-modal .imsp-attachment-action:nth-of-type(4) .imsp-action-icon{background:#eff9e9;color:#65ae38}
#imsp-modal .imsp-attachment-action>span:last-child{display:flex;min-width:0;flex-direction:column}
#imsp-modal .imsp-attachment-action b{font-size:13px}#imsp-modal .imsp-attachment-action small{margin-top:2px;color:#7b898e;font-size:10px;line-height:1.25}
@keyframes imspAttachIn{from{opacity:0;transform:translateY(7px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:780px){
 #imsp-modal .imsp-chat-bar{position:sticky!important;bottom:0!important;z-index:62!important;grid-template-columns:42px minmax(0,1fr) 36px 44px!important;padding:8px 9px calc(8px + env(safe-area-inset-bottom))!important;background:#fff!important;box-shadow:0 -5px 22px rgba(24,48,58,.07)!important}
 #imsp-modal .imsp-attachment-backdrop{position:fixed;inset:0;z-index:99997;background:rgba(15,32,38,.24);backdrop-filter:blur(1px)}
 #imsp-modal .imsp-attachment-menu{position:fixed;left:0;right:0;bottom:0;z-index:99998;width:auto;padding:9px 12px calc(14px + env(safe-area-inset-bottom));border:0;border-radius:24px 24px 0 0;box-shadow:0 -18px 55px rgba(15,45,55,.20);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;animation:imspSheetIn .2s ease-out}
 #imsp-modal .imsp-sheet-handle{display:block;grid-column:1/-1;width:42px;height:4px;margin:0 auto 9px;border-radius:9px;background:#d5dcde}
 #imsp-modal .imsp-attachment-action{min-height:92px;flex-direction:column;justify-content:center;gap:6px;padding:10px 5px;text-align:center}
 #imsp-modal .imsp-attachment-action small{display:none}#imsp-modal .imsp-attachment-action b{font-size:11px}#imsp-modal .imsp-action-icon{width:44px;height:44px;flex-basis:44px;border-radius:50%;font-size:20px}
 @keyframes imspSheetIn{from{transform:translateY(100%)}to{transform:none}}
}
