/* Laboratorio de voces (solo admin): estética de consola, en los dos modos. */
.lab { --l-bg: #0f1424; --l-card: #161d33; --l-line: #26304f; --l-txt: #e7ecff; --l-dim: #8d98bf; --l-acc: #5eead4; --l-acc2: #818cf8;
  display: flex; flex-direction: column; gap: 12px; padding-bottom: 24px; }
.lab .labtag { margin: 0; font-size: 12px; color: var(--l-dim); letter-spacing: .02em; }
.lab .labh { margin: 8px 0 0; font-size: 15px; }
.lvoice { display: grid; grid-template-columns: 48px 1fr; gap: 10px 12px; align-items: center; padding: 14px; border-radius: 16px;
  background: linear-gradient(135deg, var(--l-bg), var(--l-card)); color: var(--l-txt); border: 1px solid var(--l-line); }
.lvava { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 20px; color: #0b1020;
  background: conic-gradient(from 200deg, var(--l-acc), var(--l-acc2), var(--l-acc)); box-shadow: 0 0 18px #5eead455; }
.lvinfo b { font-size: 17px; } .lvinfo small { display: block; color: var(--l-dim); font-size: 12px; margin-top: 2px; }
.lvbtns { grid-column: 1 / -1; display: flex; gap: 8px; } .lvbtns .btn { flex: 1; text-align: center; }
.lmul { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.lmul i { font-style: normal; font-size: 11px; padding: 2px 8px; border-radius: 99px; background: #5eead41f; color: var(--l-acc); border: 1px solid #5eead440; }
.lmul.big i { font-size: 13px; padding: 4px 10px; color: #0f766e; background: #5eead422; }
.lmul.big small { opacity: .7; }
.lconv { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; border: 1px solid #8882; text-decoration: none; color: inherit; }
.lconv small { color: #8a90a8; font-size: 12px; } .lconv span { font-size: 13px; opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* conversación */
.lconvbox { min-height: calc(100dvh - 140px); }
.lcfg { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; }
.lcfg select, .lcfg input[type=range] { font: inherit; font-size: 13px; padding: 4px 6px; border-radius: 8px; border: 1px solid #8884; background: transparent; color: inherit; }
.lcfg select option { color: #111; }
.lhf { display: flex; gap: 4px; align-items: center; }
.lturns { display: flex; flex-direction: column; gap: 10px; flex: 1; padding-bottom: 150px; }
.lhint { margin-top: 30px; line-height: 1.5; }
.lturn { max-width: 88%; display: flex; flex-direction: column; gap: 4px; }
.lturn.me { align-self: flex-end; align-items: flex-end; }
.lturn .lb { padding: 10px 13px; border-radius: 18px; line-height: 1.4; font-size: 15px; white-space: pre-wrap; }
.lturn.me .lb { background: linear-gradient(135deg, #6366f1, #4f46e5); color: #fff; border-bottom-right-radius: 6px; }
.lturn.them .lb { background: var(--l-card); color: var(--l-txt); border: 1px solid var(--l-line); border-bottom-left-radius: 6px; }
.lturn small, .lmet { font-size: 11px; color: #8a90a8; }
.lturn.them .lmet { color: var(--l-dim); }
.lacts { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.lacts .chip { cursor: pointer; }
.lrate { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; color: #8a90a8; }
.lstars b { cursor: pointer; font-size: 17px; color: #8885; padding: 0 1px; user-select: none; }
.lstars b.on { color: #f59e0b; }
.lfix { display: grid; gap: 6px; width: 100%; }
.lfix.hide { display: none; }
.lfix textarea, .lfix input { width: 100%; box-sizing: border-box; font: inherit; font-size: 14px; padding: 8px 10px; border-radius: 10px; border: 1px solid #8884; background: transparent; color: inherit; }
.ldots { display: inline-flex; gap: 4px; } .ldots b { width: 7px; height: 7px; border-radius: 50%; background: var(--l-acc); animation: ldot 1s infinite; }
.ldots b:nth-child(2) { animation-delay: .15s; } .ldots b:nth-child(3) { animation-delay: .3s; }
@keyframes ldot { 0%, 100% { opacity: .25; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
.lfoot { position: fixed; left: 0; right: 0; bottom: calc(64px + env(safe-area-inset-bottom)); z-index: 5; display: flex; gap: 8px; align-items: flex-end;
  padding: 10px 16px; max-width: 760px; margin: 0 auto; background: linear-gradient(transparent, var(--bg, #fff) 30%); }
.lfoot textarea { flex: 1; resize: none; font: inherit; font-size: 15px; padding: 11px 14px; border-radius: 22px; border: 1px solid #8885; background: var(--card, #fff); color: inherit; max-height: 120px; }
.lfoot .btn { border-radius: 50%; width: 46px; height: 46px; padding: 0; }
.lmic { --lvl: 0; flex: none; width: 58px; height: 58px; border-radius: 50%; border: 0; cursor: pointer; font-size: 24px; color: #0b1020;
  background: conic-gradient(from 200deg, var(--l-acc), var(--l-acc2), var(--l-acc));
  box-shadow: 0 0 0 calc(var(--lvl) * 14px) #5eead455, 0 6px 18px #4f46e555; transition: box-shadow .08s; }
.lmic.rec { background: #ef4444; color: #fff; animation: lpulse 1.4s infinite; }
.lmic:disabled { opacity: .5; }
@keyframes lpulse { 50% { filter: brightness(1.2); } }
.lstatus { position: fixed; left: 0; right: 0; bottom: calc(136px + env(safe-area-inset-bottom)); text-align: center; font-size: 12px; color: #8a90a8; pointer-events: none; z-index: 5; }
.lab audio { width: 100%; height: 40px; }
.lprompt summary { cursor: pointer; margin-top: 12px; font-size: 13px; }
.lprompt pre { white-space: pre-wrap; font-size: 12px; background: var(--l-bg); color: var(--l-txt); padding: 10px; border-radius: 10px; max-height: 340px; overflow: auto; }
.lclip { display: grid; gap: 4px; padding: 10px 0; border-top: 1px solid #8883; }
.lctext { font-size: 14px; }
