:root{
  --navy:#0b1220; --navy-soft:#121b2e; --navy-raise:#182438;
  --gold:#c9a24b; --gold-soft:rgba(201,162,75,.14); --gold-line:rgba(201,162,75,.32);
  --ink:#e8e4d8; --ink-soft:rgba(232,228,216,.68); --ink-faint:rgba(232,228,216,.42);
  --surface:rgba(255,255,255,.04); --surface-strong:rgba(255,255,255,.07);
  --line:rgba(232,228,216,.10); --line-strong:rgba(232,228,216,.18);
  --good:#7fae95; --risk:#c46a75;
  --font-display:"Fraunces",Georgia,serif; --font-body:"Public Sans",-apple-system,sans-serif;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0; font-family:var(--font-body); color:var(--ink);
  background:radial-gradient(1100px 550px at 85% -10%,rgba(201,162,75,.08),transparent 60%),var(--navy);
  min-height:100vh; display:flex; flex-direction:column;
}
a{color:inherit;} button{font:inherit;color:inherit;}
.app{display:flex;flex:1;min-height:0;height:100vh;}
.shell{max-width:1320px;margin:0 auto;padding:18px 22px 34px;width:100%;flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;}

/* Topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:10px;}
.brand-mark{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,var(--gold),#a8852f);display:flex;align-items:center;justify-content:center;flex:none;}
.brand-mark svg{width:17px;height:17px;color:var(--navy);}
.brand-name{font-family:var(--font-display);font-size:18px;}
.brand-sub{font-size:10.5px;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;}
.topbar-right{display:flex;align-items:center;gap:10px;}
.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 9px;border-radius:20px;font-size:11.5px;font-weight:600;letter-spacing:.02em;border:1px solid var(--line-strong);}
.pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.pill.mock{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold);}
.pill.live{background:rgba(127,174,149,.12);border-color:rgba(127,174,149,.35);color:var(--good);}
.icon-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line-strong);background:var(--surface);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.icon-btn svg{width:15px;height:15px;}
.icon-btn:hover{border-color:var(--gold-line);}
.icon-btn.active{border-color:var(--gold);color:var(--gold);background:var(--gold-soft);}

/* Config panel */
.config{display:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:16px;}
.config.open{display:block;}
.config-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:600;margin-bottom:12px;}
.config-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end;}
@media (max-width:820px){.config-grid{grid-template-columns:1fr 1fr;}}
.field label{display:block;font-size:11.5px;color:var(--ink-soft);margin-bottom:6px;}
.field input[type=text],.field input[type=number],.field textarea,.field select{
  width:100%;padding:9px 11px;border-radius:8px;border:1px solid var(--line-strong);
  background:var(--navy-raise);color:var(--ink);font:inherit;font-size:13px;
}
.field textarea{resize:vertical;min-height:90px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;}
.mode-toggle{display:flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;}
.mode-toggle button{flex:1;padding:9px 10px;background:var(--navy-raise);border:none;cursor:pointer;font-size:12.5px;color:var(--ink-soft);}
.mode-toggle button.active{background:var(--gold);color:var(--navy);font-weight:600;}
.btn-test{padding:9px 16px;border-radius:8px;border:1px solid var(--line-strong);background:var(--navy-raise);cursor:pointer;font-size:12.5px;white-space:nowrap;}
.btn-test:hover{border-color:var(--gold-line);}
.config-adv{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-strong);}
.config-adv-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:12px;color:var(--ink-soft);}
.conn-status{font-size:11.5px;margin-top:8px;color:var(--ink-faint);}
.conn-status.ok{color:var(--good);} .conn-status.err{color:var(--risk);}

/* Layout */
.layout{display:flex;gap:16px;flex:1;min-height:0;}
.chat-head{display:flex;align-items:center;gap:10px;padding:11px 18px;border-bottom:1px solid var(--line);min-height:50px;}
.chat-title{font-family:var(--font-display);font-size:15px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text;}
.chat-title:hover{color:var(--gold);}
.exp-chip{font-size:11.5px;padding:3px 10px;border-radius:12px;border:1px solid var(--gold-line);color:var(--gold);background:var(--gold-soft);white-space:nowrap;cursor:pointer;}
.btn-sec{font-size:12px;padding:6px 12px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;white-space:nowrap;}
.btn-sec:hover{border-color:var(--gold-line);color:var(--gold);}
.btn-sec:disabled{opacity:.45;cursor:default;}
.chat-panel{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.inspector{width:380px;flex:none;background:var(--surface);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;}
@media (max-width:960px){.layout{flex-direction:column;} .chat-panel{min-height:72vh;} .inspector{width:100%;max-height:none;} .consola{height:70vh;}}
.inspector.hidden{display:none;}

.thread{flex:1;overflow-y:auto;padding:20px 22px;display:flex;flex-direction:column;gap:16px;}
.msg{display:flex;gap:10px;max-width:88%;}
.msg.user{align-self:flex-end;flex-direction:row-reverse;}
.avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;font-size:12px;font-weight:700;}
.avatar.user{background:var(--navy-raise);border:1px solid var(--line-strong);}
.avatar.bot{background:linear-gradient(145deg,var(--gold),#a8852f);color:var(--navy);}
.bubble{padding:12px 15px;border-radius:14px;font-size:14px;line-height:1.55;}
.msg.user .bubble{background:var(--gold);color:var(--navy);border-top-right-radius:3px;font-weight:500;}
.msg.bot .bubble{background:var(--surface-strong);border:1px solid var(--line);border-top-left-radius:3px;}
.bubble p{margin:0 0 8px;} .bubble p:last-child{margin-bottom:0;}
.bubble ul,.bubble ol{margin:0 0 8px;padding-left:20px;} .bubble li{margin-bottom:6px;}
.bubble ul:last-child,.bubble ol:last-child{margin-bottom:0;}
.bubble code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;background:var(--navy-raise);padding:1px 5px;border-radius:4px;}
.cites{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.cite-chip{font-size:11px;padding:4px 10px;border-radius:20px;border:1px solid var(--line-strong);background:var(--navy-raise);color:var(--ink-soft);}
a.cite-chip{text-decoration:none;} a.cite-chip:hover{border-color:var(--gold-line);color:var(--ink);}
.typing{display:flex;gap:4px;padding:12px 15px;}
.typing span{width:5px;height:5px;border-radius:50%;background:var(--ink-faint);animation:blink 1.1s infinite ease-in-out;}
.typing-wrap{display:flex;flex-direction:column;gap:2px;}
.typing-status{font-size:11.5px;color:var(--ink-faint);padding:0 15px 8px;}
.typing span:nth-child(2){animation-delay:.15s;} .typing span:nth-child(3){animation-delay:.3s;}
@keyframes blink{0%,80%,100%{opacity:.25;}40%{opacity:1;}}

.empty{margin:auto;text-align:center;padding:20px;max-width:420px;}
.empty h2{font-family:var(--font-display);font-size:20px;font-weight:460;margin:0 0 8px;}
.empty p{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0 0 18px;}
.examples{display:flex;flex-direction:column;gap:8px;}
.ex-btn{text-align:left;padding:10px 14px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface-strong);cursor:pointer;font-size:12.5px;color:var(--ink-soft);}
.ex-btn:hover{border-color:var(--gold-line);color:var(--ink);}

.composer-wrap{border-top:1px solid var(--line);padding:14px 18px;}
.composer{display:flex;align-items:flex-end;gap:10px;background:var(--navy-raise);border:1px solid var(--line-strong);border-radius:14px;padding:8px 10px 8px 14px;}
.composer textarea{flex:1;border:none;outline:none;background:transparent;resize:none;font:inherit;font-size:14px;color:var(--ink);max-height:120px;padding:6px 0;}
.composer textarea::placeholder{color:var(--ink-faint);}
.send-btn{width:34px;height:34px;border-radius:50%;border:none;background:var(--gold);color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;}
.send-btn:disabled{opacity:.4;cursor:default;}
.disclaimer{font-size:10.5px;color:var(--ink-faint);text-align:center;margin-top:8px;}

/* Inspector */
.tabs{display:flex;border-bottom:1px solid var(--line);}
.tab{flex:1;padding:12px 8px;text-align:center;font-size:11.5px;font-weight:600;color:var(--ink-faint);cursor:pointer;border-bottom:2px solid transparent;}
.tab.active{color:var(--gold);border-color:var(--gold);}
.tab-panel{display:none;flex:1;overflow-y:auto;padding:16px 18px;font-size:12px;}
.tab-panel.active{display:block;}
.frag{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--surface-strong);}
.frag-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.frag-title{font-weight:600;font-size:12px;}
.frag-score{font-family:ui-monospace,monospace;font-size:11px;color:var(--gold);}
.frag-meta{font-size:10.5px;color:var(--ink-faint);margin-bottom:6px;}
.frag-snippet{font-size:11.5px;color:var(--ink-soft);line-height:1.5;}
.frag details{margin-top:6px;}
.frag summary{cursor:pointer;font-size:11px;color:var(--gold);}
.frag-full{white-space:pre-wrap;font-size:11.5px;color:var(--ink-soft);line-height:1.5;margin-top:6px;}
.frag-link{display:inline-block;margin-top:6px;font-size:11px;color:var(--gold);text-decoration:none;}
.frag-link:hover{text-decoration:underline;}
pre.prompt-view{white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.3px;line-height:1.55;color:var(--ink-soft);margin:0;}
.inspector-empty{color:var(--ink-faint);font-size:12px;text-align:center;padding:30px 10px;}
.insp-query{font-size:11.5px;color:var(--ink-soft);line-height:1.45;padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid var(--line);}
.insp-query b{color:var(--gold);font-weight:600;}
.msg.bot .bubble{transition:border-color .15s;}
.msg.bot.active .bubble{border-color:var(--gold-line);}
.bubble-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:11px;color:var(--ink-faint);}
.src-btn{background:none;border:none;color:var(--gold);cursor:pointer;padding:0;font-size:11px;}
.src-btn:hover{text-decoration:underline;}
.msg.bot.active .src-btn{color:var(--ink-faint);cursor:default;text-decoration:none;}
/* Consulta reformulada bajo la burbuja del usuario */
.reform{margin-top:8px;padding-top:8px;border-top:1px solid rgba(11,18,32,.22);font-size:12px;font-weight:400;line-height:1.45;}
.reform b{font-weight:700;}
/* Referencias [n] dentro de la respuesta */
a.cite-ref{color:var(--gold);text-decoration:none;font-size:.82em;font-weight:600;vertical-align:super;margin-left:1px;}
a.cite-ref:hover{text-decoration:underline;}
/* Inspector: bloques */
.insp-block{border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-bottom:12px;background:var(--surface-strong);}
.insp-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;margin:0 0 5px;}
.insp-label + .insp-label{margin-top:10px;}
.legal-q{font-family:var(--font-display);font-size:13px;line-height:1.5;color:var(--ink);border-left:2px solid var(--gold);padding-left:9px;margin:0 0 8px;}
.insp-block ul{margin:0 0 8px;padding-left:17px;color:var(--ink-soft);font-size:11.5px;line-height:1.45;}
.pill-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px;}
.tag{font-size:10.5px;padding:2px 8px;border-radius:12px;border:1px solid var(--line-strong);color:var(--ink-soft);background:var(--navy-raise);}
.tag.hit{border-color:var(--gold-line);color:var(--gold);background:var(--gold-soft);}
.tag.materia{border-color:var(--gold-line);color:var(--gold);}
.missing{font-size:11px;color:var(--ink-soft);}
.missing b{color:var(--risk);font-weight:600;}
.traza{font-size:11.5px;color:var(--ink-soft);margin:0 0 10px;line-height:1.5;}
.sec-title{font-size:11px;font-weight:700;color:var(--ink);margin:14px 0 8px;display:flex;justify-content:space-between;align-items:baseline;}
.sec-title span{font-weight:400;color:var(--ink-faint);font-size:10.5px;}
.frag.used{border-color:var(--gold-line);}
.frag.flash{animation:flash 1.4s ease-out;}
@keyframes flash{0%{box-shadow:0 0 0 2px var(--gold);}100%{box-shadow:0 0 0 0 transparent;}}
.nbadge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:5px;background:var(--gold);color:var(--navy);font-size:10.5px;font-weight:700;margin-right:6px;}
.frag.unused .nbadge{background:var(--navy-raise);color:var(--ink-faint);border:1px solid var(--line-strong);}
.rel{font-size:10px;padding:1px 7px;border-radius:10px;border:1px solid var(--line-strong);margin-left:6px;font-family:var(--font-body);}
.rel.alta{color:var(--good);border-color:rgba(127,174,149,.4);}
.rel.media{color:var(--gold);border-color:var(--gold-line);}
.rel.baja{color:var(--ink-faint);}
.why{font-size:11.5px;color:var(--ink-soft);line-height:1.5;margin-bottom:6px;}
.aporta{font-size:12px;color:var(--ink);line-height:1.5;margin-bottom:6px;}
.pasaje{font-size:11.5px;color:var(--ink-soft);line-height:1.55;background:var(--navy-raise);border-radius:7px;padding:8px 9px;}
.pasaje mark,.frag-full mark{background:rgba(201,162,75,.28);color:var(--ink);padding:0 1px;border-radius:2px;}
.vbadge{display:inline-block;font-size:10.5px;font-weight:600;margin:6px 0 2px;}
.vbadge.ok{color:var(--good);} .vbadge.aprox{color:var(--gold);} .vbadge.ko{color:var(--risk);}
.claimed{font-style:italic;font-size:11px;color:var(--ink-faint);}
.frag.unused{opacity:.82;}
.aviso-base{font-size:12.5px;line-height:1.5;border-radius:8px;padding:8px 11px;margin-bottom:10px;border:1px solid;}
.aviso-base.general{border-color:rgba(196,106,117,.45);background:rgba(196,106,117,.10);color:#e6b9bf;}
.aviso-base.parcial{border-color:var(--gold-line);background:var(--gold-soft);color:var(--ink);}
.aviso-base strong{display:block;margin-bottom:2px;}
.traza .base{font-weight:600;}
.traza .base.conocimiento_general{color:var(--risk);} .traza .base.parcial,.traza .base.doctrina{color:var(--gold);} .traza .base.jurisprudencia{color:var(--good);}
/* Respuesta separada: conclusión / jurisprudencia / orientación */
.resp-conclusion{font-family:var(--font-display);font-size:15.5px;line-height:1.5;margin-bottom:12px;}
.resp-conclusion p{margin:0;}
.resp-sec{border-radius:10px;padding:11px 13px;margin-top:10px;}
.resp-sec.juris{border:1px solid var(--gold-line);background:rgba(201,162,75,.07);}
.resp-sec.orient{border:1px dashed var(--line-strong);background:transparent;color:var(--ink-soft);}
.resp-sec-head{display:flex;flex-direction:column;gap:1px;margin-bottom:8px;}
.resp-sec-title{font-size:13px;font-weight:700;color:var(--ink);}
.resp-sec.juris .resp-sec-title{color:var(--gold);}
.resp-sec-sub{font-size:11.5px;color:var(--ink-faint);}

/* Panel de fuentes (lo que ve el usuario) */
.panel-head{padding:16px 18px 12px;border-bottom:1px solid var(--line);}
.panel-title{font-family:var(--font-display);font-size:17px;margin:0;}
.panel-q{font-size:12px;color:var(--ink-faint);margin-top:4px;line-height:1.45;}
.panel-body{flex:1;overflow-y:auto;padding:14px 18px 18px;font-size:12.5px;}
.respaldo{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--surface-strong);margin-bottom:14px;}
.respaldo-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none;}
.respaldo b{display:block;font-size:13px;margin-bottom:1px;}
.respaldo span{font-size:11.5px;color:var(--ink-soft);}
.respaldo.jurisprudencia .respaldo-dot{background:var(--good);}
.respaldo.doctrina .respaldo-dot,.respaldo.parcial .respaldo-dot{background:var(--gold);}
.respaldo.conocimiento_general .respaldo-dot{background:var(--risk);}
.entendido{margin-bottom:16px;}
.entendido h3,.fuentes-h{font-size:12.5px;font-weight:700;margin:0 0 8px;color:var(--ink);}
.entendido .afinar{font-size:11.5px;color:var(--ink-soft);margin-top:8px;}
.entendido .afinar ul{margin:4px 0 0;padding-left:17px;}
.fuente{border:1px solid var(--line);border-radius:12px;padding:12px 13px;margin-bottom:10px;background:var(--surface-strong);}
.fuente.flash{animation:flash 1.4s ease-out;}
.fuente-top{display:flex;align-items:baseline;gap:8px;}
.fuente-title{font-weight:700;font-size:13px;}
.fuente-meta{font-size:11px;color:var(--ink-faint);margin:2px 0 8px;}
.fuente-coinc{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;margin-bottom:8px;}
.fuente-coinc.identica{background:rgba(127,174,149,.14);color:var(--good);}
.fuente-coinc.analoga{background:var(--gold-soft);color:var(--gold);}
.fuente-coinc.doctrina{background:var(--surface);color:var(--ink-soft);border:1px solid var(--line-strong);}
.fuente-aporta{font-size:12.5px;line-height:1.5;margin-bottom:8px;}
.fuente-cita{font-family:var(--font-display);font-size:12.5px;line-height:1.55;border-left:2px solid var(--gold);padding:2px 0 2px 10px;color:var(--ink);}
.fuente-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:11.5px;}
.fuente-links a,.fuente-links summary{color:var(--gold);text-decoration:none;cursor:pointer;}
.fuente-links a:hover{text-decoration:underline;}
.otras{margin-top:14px;}
.otras summary{cursor:pointer;font-size:12px;color:var(--ink-soft);}
.otras ul{margin:8px 0 0;padding-left:17px;font-size:11.5px;color:var(--ink-soft);line-height:1.6;}
.otras a{color:var(--ink-soft);}

/* Consola técnica (desplegable inferior) */
.consola{position:fixed;left:0;right:0;bottom:0;height:48vh;background:#0a101c;border-top:1px solid var(--gold-line);
  display:flex;flex-direction:column;transform:translateY(100%);transition:transform .22s ease;z-index:20;box-shadow:0 -12px 30px rgba(0,0,0,.35);}
.consola.open{transform:none;}
@media (prefers-reduced-motion:reduce){.consola{transition:none;}}
.consola-bar{display:flex;align-items:center;gap:4px;padding:0 12px;border-bottom:1px solid var(--line);}
.consola-name{font-size:12px;font-weight:700;color:var(--gold);margin-right:12px;}
.ctab{padding:10px 12px;font-size:12px;color:var(--ink-faint);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;}
.ctab.active{color:var(--ink);border-color:var(--gold);}
.consola-close{margin-left:auto;}
.cpanel{display:none;flex:1;overflow:auto;padding:14px 18px;font-size:12px;}
.cpanel.active{display:block;}
.cpanel .cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;}
.consola-handle{position:fixed;left:18px;bottom:0;z-index:19;font-size:11px;padding:5px 12px;border-radius:8px 8px 0 0;
  border:1px solid var(--line-strong);border-bottom:none;background:var(--navy-soft);color:var(--ink-faint);cursor:pointer;}
.consola-handle:hover{color:var(--gold);border-color:var(--gold-line);}
.tiempos td{padding:3px 14px 3px 0;color:var(--ink-soft);} .tiempos td:last-child{text-align:right;color:var(--ink);}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

/* Barra lateral: historial y expedientes */
.sidebar{width:272px;flex:none;background:var(--navy-soft);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;transition:margin-left .2s ease;}
.sidebar.cerrada{margin-left:-272px;}
@media (prefers-reduced-motion:reduce){.sidebar{transition:none;}}
.sb-head{padding:16px 14px 10px;display:flex;flex-direction:column;gap:10px;}
.sb-new{display:flex;align-items:center;gap:8px;justify-content:center;padding:9px 12px;border-radius:10px;border:1px solid var(--gold-line);background:var(--gold-soft);color:var(--gold);font-weight:600;font-size:13px;cursor:pointer;}
.sb-new:hover{background:rgba(201,162,75,.22);}
.sb-body{flex:1;overflow-y:auto;padding:4px 8px 16px;}
.sb-sec{font-size:11.5px;font-weight:700;color:var(--ink-faint);padding:12px 8px 6px;}
.sb-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--ink-soft);}
.sb-item:hover{background:var(--surface-strong);color:var(--ink);}
.sb-item.activo{background:var(--surface-strong);color:var(--ink);box-shadow:inset 2px 0 0 var(--gold);}
.sb-item .sb-txt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-item .sb-meta{font-size:10.5px;color:var(--ink-faint);}
.sb-acc{opacity:0;border:none;background:none;color:var(--ink-faint);cursor:pointer;padding:2px 4px;border-radius:4px;font-size:12px;}
.sb-item:hover .sb-acc,.sb-acc:focus-visible{opacity:1;} .sb-acc:hover{color:var(--risk);}
.sb-exp > .sb-item{color:var(--ink);font-weight:600;}
.sb-exp-chats{margin-left:14px;border-left:1px solid var(--line);padding-left:6px;}
.sb-exp-chats .sb-item{font-size:12px;}
.sb-add{font-size:11.5px;color:var(--gold);}
.sb-vacio{font-size:12px;color:var(--ink-faint);padding:6px 8px;line-height:1.5;}
.sb-ico{width:14px;height:14px;flex:none;opacity:.8;}
@media (max-width:960px){.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:30;box-shadow:12px 0 30px rgba(0,0,0,.4);} }
@media (max-width:600px){.chat-head{flex-wrap:wrap;row-gap:6px;} .chat-title{flex-basis:100%;} .exp-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;}}
.sb-fondo{position:fixed;inset:0;background:rgba(5,9,18,.55);z-index:29;}
.sb-fondo[hidden]{display:none;}

/* Adjuntos */
.attach-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;color:var(--ink-soft);}
.attach-btn:hover{color:var(--gold);border-color:var(--gold-line);}
.attach-btn:disabled{opacity:.4;cursor:default;}
.subidas{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;}
.subidas:empty{display:none;}
.subida{font-size:11.5px;padding:4px 10px;border-radius:14px;border:1px solid var(--line-strong);background:var(--navy-raise);color:var(--ink-soft);}
.subida.ok{border-color:rgba(127,174,149,.4);color:var(--good);} .subida.err{border-color:rgba(196,106,117,.45);color:#e6b9bf;}
.chat-panel{position:relative;}
.drop{position:absolute;inset:0;border:2px dashed var(--gold);border-radius:16px;background:rgba(11,18,32,.86);display:none;align-items:center;justify-content:center;z-index:5;font-size:15px;color:var(--gold);pointer-events:none;}
.chat-panel.arrastrando .drop{display:flex;}
.msg.nota{align-self:flex-end;max-width:88%;}
.nota-doc{font-size:12px;padding:7px 12px;border-radius:10px;border:1px dashed var(--line-strong);color:var(--ink-soft);}
.nota-doc b{color:var(--ink);font-weight:600;}

/* Avisos dentro de la respuesta */
.resp-alerta{margin-top:10px;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;}
.resp-alerta.incons{border:1px solid rgba(196,106,117,.45);background:rgba(196,106,117,.08);}
.resp-alerta.docs{border:1px solid var(--line-strong);background:var(--surface);}
.resp-alerta .resp-sec-title{display:block;margin-bottom:4px;}
.resp-alerta.incons .resp-sec-title{color:#e6b9bf;}
.resp-alerta ul{margin:0;padding-left:18px;} .resp-alerta li{margin-bottom:5px;}
.pedir{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line);}
.pedir:first-of-type{border-top:none;}
.pedir small{display:block;color:var(--ink-faint);font-size:11.5px;}

/* Panel derecho con pestañas: Fuentes / Expediente */
.ptabs{display:flex;gap:4px;padding:10px 12px 0;border-bottom:1px solid var(--line);}
.ptab{border:none;background:none;padding:8px 12px 10px;font-size:13px;font-weight:600;color:var(--ink-faint);cursor:pointer;border-bottom:2px solid transparent;}
.ptab.active{color:var(--ink);border-color:var(--gold);}
.ptab .cnt{font-size:11px;color:var(--gold);margin-left:4px;}
.pview{display:none;flex:1;min-height:0;flex-direction:column;}
.pview.active{display:flex;}
.exp-resumen{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin-bottom:12px;}
.bloque{border-radius:10px;padding:10px 12px;margin-bottom:12px;}
.bloque h3{font-size:12.5px;margin:0 0 6px;}
.bloque ul{margin:0;padding-left:17px;font-size:12px;line-height:1.5;color:var(--ink-soft);} .bloque li{margin-bottom:4px;}
.bloque.incons{border:1px solid rgba(196,106,117,.45);background:rgba(196,106,117,.07);} .bloque.incons h3{color:#e6b9bf;}
.bloque.falta{border:1px solid var(--line-strong);}
.bloque.recom{border:1px solid var(--gold-line);background:rgba(201,162,75,.05);} .bloque.recom h3{color:var(--gold);}
.grav{font-size:10.5px;font-weight:700;margin-right:4px;}
.grav.alta{color:var(--risk);} .grav.media{color:var(--gold);} .grav.baja{color:var(--ink-faint);}
.doc{border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:10px;background:var(--surface-strong);}
.doc-top{display:flex;align-items:flex-start;gap:8px;}
.doc-tipo{font-size:10.5px;font-weight:700;color:var(--gold);}
.doc-tit{font-size:13px;font-weight:600;line-height:1.35;}
.doc-meta{font-size:11px;color:var(--ink-faint);margin:3px 0 6px;}
.doc-res{font-size:12px;color:var(--ink-soft);line-height:1.5;}
.doc dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:8px 0 0;font-size:11.5px;}
.doc dt{color:var(--ink-faint);} .doc dd{margin:0;color:var(--ink);}
.doc-alerta{font-size:11.5px;color:var(--gold);margin-top:6px;}
.doc-acc{display:flex;gap:14px;margin-top:8px;font-size:11.5px;}
.doc-acc a,.doc-acc button{color:var(--gold);background:none;border:none;padding:0;cursor:pointer;text-decoration:none;font-size:11.5px;}
.doc-acc button.borrar{color:var(--ink-faint);} .doc-acc button.borrar:hover{color:var(--risk);}

/* Consola: tirador para redimensionar y líneas en vivo */
.consola-tirador{height:7px;cursor:ns-resize;flex:none;display:flex;align-items:center;justify-content:center;}
.consola-tirador::after{content:"";width:46px;height:3px;border-radius:2px;background:var(--line-strong);}
.consola-tirador:hover::after{background:var(--gold);}
.consola-acciones{margin-left:auto;display:flex;gap:6px;}
.consola-acciones .icon-btn{width:30px;height:30px;}
.vivo{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--ink-soft);margin:0;}
.vivo .l-cendoj{color:#9fc0d8;} .vivo .l-gemini{color:#c7b3e6;} .vivo .l-err{color:#e6b9bf;} .vivo .l-par{color:var(--gold);}
.placeholder{color:var(--ink-faint);font-size:12px;padding:18px 4px;line-height:1.6;}
.placeholder b{color:var(--ink-soft);}
.dots::after{content:"…";animation:blink 1.1s infinite;}

/* Consola: maximizar / arrastrar */
.consola.max{height:calc(100vh - 24px) !important;}
.consola.sin-anim{transition:none;}
.cpanel{position:relative;}
.link-ctab,.link-btn{background:none;border:none;padding:0;color:var(--gold);cursor:pointer;font:inherit;text-decoration:underline;}
/* Chips de cita: abren «Fuentes» */
button.cite-chip{cursor:pointer;font-family:inherit;}
button.cite-chip:hover{border-color:var(--gold-line);color:var(--ink);}
.cites-label{font-size:11px;color:var(--ink-faint);align-self:center;margin-right:2px;}
.ctx-usado{font-size:11.5px;color:var(--ink-soft);border:1px dashed var(--line-strong);border-radius:8px;padding:7px 10px;margin-bottom:12px;}
/* Notas en el hilo (documentos añadidos) */
.nota-doc.err{border-color:rgba(196,106,117,.5);color:#e6b9bf;}
.nota-res{margin-top:4px;color:var(--ink-soft);line-height:1.45;}
.nota-warn{margin-top:4px;color:var(--gold);}
.attach-btn.ocupado{border-color:var(--gold);color:var(--gold);animation:blink 1.2s infinite;}
.exp-cab{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.exp-cab h3{margin:2px 0 4px;font-family:var(--font-display);font-size:16px;font-weight:600;}
.sb-exp-chats[hidden]{display:none;}
/* Ventana modal */
.modal-fondo{position:fixed;inset:0;background:rgba(5,9,18,.66);z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;}
.modal{width:100%;max-width:440px;background:var(--navy-soft);border:1px solid var(--line-strong);border-radius:14px;padding:20px;box-shadow:0 20px 50px rgba(0,0,0,.5);}
.modal h2{margin:0 0 8px;font-family:var(--font-display);font-size:18px;font-weight:600;}
.modal p{margin:0 0 12px;font-size:13px;color:var(--ink-soft);line-height:1.5;}
.modal-campo{display:block;margin-bottom:12px;font-size:12px;color:var(--ink-soft);}
.modal-campo span{display:block;margin-bottom:5px;}
.modal-campo input,.modal-campo textarea{width:100%;box-sizing:border-box;background:var(--navy-raise);border:1px solid var(--line-strong);border-radius:8px;padding:9px 10px;color:var(--ink);font:inherit;font-size:13px;resize:vertical;}
.modal-acc{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;}
.btn-pri{font-size:12.5px;padding:7px 14px;border-radius:8px;border:none;background:var(--gold);color:var(--navy);font-weight:600;cursor:pointer;}
.btn-pri.peligro{background:var(--risk);color:#fff;}

/* ===== v3 · producción: layout, barra lateral, compositor ===== */
.shell{max-width:none;padding:14px 18px 18px;}
.thread{padding:22px max(22px, calc((100% - 940px) / 2));}
.composer-wrap{padding:12px max(18px, calc((100% - 960px) / 2)) 12px;}
.empty{max-width:560px;}
.empty-mark{width:46px;height:46px;border-radius:50%;margin:0 auto 14px;background:linear-gradient(145deg,var(--gold),#a8852f);box-shadow:0 0 0 6px rgba(201,162,75,.08);}
.empty h2{font-size:24px;}
.examples{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;}
.ex-btn{display:flex;flex-direction:column;gap:6px;min-height:78px;line-height:1.4;}
.ex-tag{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);}
.confianza{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin-top:18px;font-size:11.5px;color:var(--ink-faint);}
.confianza span::before{content:"✓ ";color:var(--good);}
.composer{flex-direction:column;align-items:stretch;gap:6px;padding:10px 10px 8px 14px;}
.composer:focus-within{border-color:var(--gold-line);}
.composer textarea{padding:4px 0;min-height:24px;}
.composer-tools{display:flex;align-items:center;gap:8px;}
.composer-tools .send-btn{margin-left:auto;}
.attach-btn{width:32px;height:32px;}
.tool-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:16px;border:1px solid var(--line-strong);background:transparent;color:var(--ink-soft);cursor:pointer;font-size:12.5px;font-weight:600;}
.tool-chip:hover{border-color:var(--gold-line);color:var(--ink);}
.tool-chip.on{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold);}
.tool-hint{font-size:11.5px;color:var(--ink-faint);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.icon-btn.sm{width:30px;height:30px;}
.icon-btn[aria-pressed="true"]{color:var(--gold);border-color:var(--gold-line);background:var(--gold-soft);}
.icon-btn[hidden]{display:none;}
.consola-handle{left:auto;right:18px;}
.disclaimer{margin-top:7px;}
/* Barra lateral */
.sidebar{width:288px;}
.sidebar.cerrada{margin-left:-288px;}
.sb-new{position:relative;}
.sb-new.activo{box-shadow:inset 0 0 0 1px var(--gold);}
.sb-buscar{display:flex;align-items:center;gap:8px;padding:0 10px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--navy-raise);color:var(--ink-faint);}
.sb-buscar:focus-within{border-color:var(--gold-line);}
.sb-buscar input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:12.5px;}
.sb-sec{display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0;}
.sb-sec .n{font-weight:500;color:var(--ink-faint);opacity:.7;}
.sb-grupo{font-size:10.5px;color:var(--ink-faint);padding:8px 8px 3px;opacity:.8;}
.sb-item{position:relative;min-height:34px;}
.sb-item .sb-txt small{display:block;font-size:11px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;}
.sb-pin{width:12px;height:12px;color:var(--gold);flex:none;}
.sb-estado{width:8px;height:8px;border-radius:50%;flex:none;}
.sb-estado.pendiente{border:2px solid var(--gold);border-right-color:transparent;width:10px;height:10px;animation:girar .9s linear infinite;}
.sb-estado.noleido{background:var(--gold);}
@keyframes girar{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.sb-estado.pendiente{animation:none;}}
.sb-acc{font-size:15px;line-height:1;padding:3px 6px;}
.sb-acc:hover{color:var(--ink);background:var(--surface);}
.sb-item:focus-within .sb-acc{opacity:1;}
.sb-user{display:flex;align-items:center;gap:10px;margin:0 8px 10px;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;color:var(--ink-faint);}
.sb-user:hover{border-color:var(--gold-line);}
.sb-avatar{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;background:var(--navy-raise);border:1px solid var(--gold-line);color:var(--gold);}
.sb-user-txt{flex:1;min-width:0;display:flex;flex-direction:column;}
.sb-user-txt b{font-size:13px;color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sb-user-txt small{font-size:10.5px;}
.sb-mark{background:rgba(201,162,75,.28);color:inherit;border-radius:2px;}
/* Menú contextual */
.menu-pop{position:fixed;z-index:70;min-width:210px;background:var(--navy-soft);border:1px solid var(--line-strong);border-radius:10px;padding:5px;box-shadow:0 14px 34px rgba(0,0,0,.45);}
.menu-pop button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;background:none;border-radius:7px;cursor:pointer;font-size:12.5px;color:var(--ink);text-align:left;}
.menu-pop button:hover,.menu-pop button:focus-visible{background:var(--surface-strong);outline:none;}
.menu-pop button.peligro{color:#e6b9bf;}
.menu-pop hr{border:none;border-top:1px solid var(--line);margin:4px 2px;}
.modal-campo select{width:100%;background:var(--navy-raise);border:1px solid var(--line-strong);border-radius:8px;padding:9px 10px;color:var(--ink);font:inherit;font-size:13px;}
/* Avisos flotantes */
.toasts{position:fixed;right:18px;bottom:40px;z-index:65;display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.toast{display:flex;align-items:center;gap:12px;max-width:380px;padding:10px 12px 10px 14px;border-radius:10px;background:var(--navy-soft);border:1px solid var(--gold-line);box-shadow:0 12px 30px rgba(0,0,0,.4);font-size:12.5px;}
.toast button{flex:none;}
/* Respuesta: modo de búsqueda y fuentes reutilizadas */
.busq-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid var(--line-strong);color:var(--ink-faint);margin-right:8px;}
.busq-badge.reuso{border-color:var(--gold-line);color:var(--gold);}
.fuente-previa{display:inline-block;font-size:10.5px;padding:2px 8px;border-radius:10px;border:1px dashed var(--gold-line);color:var(--gold);margin:4px 0 2px;}
/* Memoria del caso */
.bloque.memoria{border:1px solid var(--line-strong);background:var(--surface);}
.bloque.memoria h3{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.bloque.memoria p{font-size:12.5px;line-height:1.5;margin:0 0 8px;color:var(--ink);}
.bloque.memoria h4{font-size:11px;margin:8px 0 3px;color:var(--ink-faint);font-weight:600;}
.link-sutil{background:none;border:none;padding:0;color:var(--ink-faint);font-size:11px;cursor:pointer;text-decoration:underline;}
.link-sutil:hover{color:var(--risk);}
@media (max-width:600px){.tool-hint{display:none;} .examples{grid-template-columns:1fr;} .ex-btn{min-height:0;}}
.pill[hidden],.tool-chip[hidden]{display:none;}

/* ===== Claves de API y fuentes ===== */
.config{max-height:calc(100vh - 110px);overflow-y:auto;}
.cfg-sec{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line-strong);}
.cfg-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:10px;}
.cfg-head .config-title{margin:0;}
.cfg-nota{font-size:11.5px;color:var(--ink-faint);}
.cfg-nota code,.prov-desc code{font-size:11px;background:var(--navy-raise);padding:1px 4px;border-radius:4px;}
.cfg-aviso{font-size:12px;color:var(--gold);margin-bottom:10px;}
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;}
.prov{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface-strong);display:flex;flex-direction:column;gap:8px;}
.prov.activa{border-color:var(--gold-line);}
.prov-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13.5px;}
.prov-desc{margin:0;font-size:11.5px;color:var(--ink-faint);line-height:1.45;}
.prov .field span{display:block;font-size:11.5px;color:var(--ink-soft);margin-bottom:4px;}
.prov .field input,.prov .field select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--navy-raise);color:var(--ink);font:inherit;font-size:12.5px;}
.field-fila{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.prov-adv summary{font-size:11.5px;color:var(--ink-soft);cursor:pointer;margin:2px 0 6px;}
.prov-adv .field{margin-bottom:8px;display:block;}
.prov-acc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px;}
.prov-res{font-size:11.5px;line-height:1.45;color:var(--ink-soft);word-break:break-word;}
.prov-res:empty{display:none;}
.prov-res.ok{color:var(--good);} .prov-res.err{color:#e6b9bf;}
.prov-estado{font-size:11px;color:var(--ink-faint);}
.prov-estado.ok{color:var(--good);}
.switch{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-soft);cursor:pointer;}
.switch input{position:absolute;opacity:0;width:1px;height:1px;}
.switch span{width:32px;height:18px;border-radius:10px;background:var(--line-strong);position:relative;transition:background .15s;}
.switch span::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--ink);transition:transform .15s;}
.switch input:checked + span{background:var(--gold);}
.switch input:checked + span::after{transform:translateX(14px);background:var(--navy);}
.switch input:focus-visible + span{outline:2px solid var(--gold);outline-offset:2px;}
.fuente-via{font-size:10.5px;color:var(--ink-faint);margin-left:6px;}

/* ===================== v5 · Acceso y backoffice del despacho ===================== */
.app[hidden],.bo[hidden],.acceso[hidden]{display:none !important;}
body:not(.v-cliente) .consola-handle, body:not(.v-cliente) .consola{display:none !important;}
:root{--blue:#2d8cff;--cyan:#45c7e8;--green:#49d17d;--orange:#f0a64b;--purple:#9b7cff;--red:#ff5b68;}

/* --- Acceso --- */
.acceso{position:fixed;inset:0;z-index:80;background:#050b13;display:flex;align-items:center;justify-content:center;overflow:auto;}
.acceso-escena{position:relative;width:min(100vw,150vh);aspect-ratio:3/2;flex:none;}
.acceso-fondo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none;}
.acceso-card{position:absolute;left:50%;top:36.4%;transform:translateX(-50%);width:39%;min-width:330px;max-height:44%;overflow-y:auto;
  background:linear-gradient(180deg,rgba(14,32,56,.92),rgba(8,20,38,.94));border:1px solid rgba(212,168,79,.28);border-radius:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04);padding:clamp(12px,1.6vw,22px) clamp(14px,2vw,28px);
  display:flex;flex-direction:column;gap:clamp(6px,.8vw,10px);}
.acceso-card h1{margin:0;text-align:center;font-family:var(--font-body);font-weight:600;font-size:clamp(17px,1.5vw,22px);color:#fff;}
.acceso-sub{margin:0;text-align:center;font-size:12px;color:var(--ink-soft);}
.acceso-sub b{color:var(--gold);font-weight:600;}
.acceso-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line);}
.acceso-tabs button{border:none;background:none;border-radius:8px;padding:7px;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;}
.acceso-tabs button.on{background:rgba(212,168,79,.16);color:var(--gold);box-shadow:inset 0 0 0 1px rgba(212,168,79,.4);}
.acc-campo{display:flex;align-items:center;gap:9px;height:clamp(36px,3vw,42px);padding:0 12px;border-radius:9px;border:1px solid rgba(164,194,226,.22);background:rgba(6,17,31,.6);color:var(--gold);}
.acc-campo[hidden]{display:none;}
.acc-campo:focus-within{border-color:var(--gold-line);box-shadow:0 0 0 3px rgba(212,168,79,.12);}
.acc-campo svg{width:16px;height:16px;flex:none;}
.acc-campo input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:#fff;font:inherit;font-size:13px;}
.acc-campo input::placeholder{color:#8fa3ba;}
.acc-ojo{border:none;background:none;color:var(--ink-faint);cursor:pointer;padding:4px;display:flex;}
.acc-ojo:hover{color:var(--gold);}
.acc-error{font-size:12px;color:#ffb3ba;min-height:0;}
.acc-error:empty{display:none;}
.acc-btn{height:clamp(38px,3.2vw,44px);border:none;border-radius:9px;cursor:pointer;font-weight:700;font-size:14px;color:#1a1204;
  background:linear-gradient(90deg,#b98a33,#e7c56d 50%,#b98a33);box-shadow:0 8px 22px rgba(212,168,79,.22);}
.acc-btn:hover{filter:brightness(1.07);}
.acc-btn:disabled{opacity:.6;cursor:default;}
.acc-pie{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-faint);}
.acc-seguro{display:inline-flex;align-items:center;gap:6px;letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;}
.acc-link{border:none;background:none;padding:0;color:var(--gold);cursor:pointer;font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:2px;}
.acc-demo{position:fixed;right:16px;bottom:16px;z-index:81;max-width:330px;background:rgba(9,25,43,.95);border:1px solid var(--line-strong);border-radius:12px;padding:8px 12px;font-size:12px;color:var(--ink-soft);}
.acc-demo summary{cursor:pointer;color:var(--gold);font-weight:600;}
.acc-demo-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);}
.acc-demo-fila:last-of-type{border-bottom:none;}
.acc-demo-fila code{font-size:11px;color:var(--ink);}
.acc-demo .acc-link{display:block;margin-top:6px;}
@media (max-aspect-ratio:4/3),(max-width:760px){
  .acceso{align-items:flex-start;}
  .acceso-escena{width:100%;min-height:100%;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;padding:96px 16px 40px;}
  .acceso-fondo{position:fixed;object-position:18% center;opacity:.55;}
  .acceso-card{position:relative;left:auto;top:auto;transform:none;width:100%;max-width:440px;min-width:0;max-height:none;}
  .acc-demo{left:16px;right:16px;max-width:none;}
}

/* --- Mensajes del despacho en el chat del cliente --- */
.msg.despacho .bubble{background:rgba(45,140,255,.08);border:1px solid rgba(45,140,255,.32);}
.avatar.bot.desp{background:linear-gradient(135deg,#d8c29a,#744e16);color:#071525;font-size:10.5px;}
.desp-cab{font-size:11px;font-weight:700;color:#8ec3ff;margin-bottom:5px;letter-spacing:.02em;}
.desp-txt{white-space:pre-wrap;}
.sb-desp{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--blue);color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;}

/* --- Backoffice: estructura --- */
.bo{display:flex;min-height:100vh;width:100%;}
.bo-nav{width:262px;flex:none;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:14px;padding:18px 14px;
  background:linear-gradient(180deg,rgba(9,25,43,.98),rgba(6,17,31,.98));border-right:1px solid var(--line);overflow-y:auto;}
.bo-logo{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;}
.bo-logo img{width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 10px 28px rgba(212,168,79,.18));}
.bo-logo b{display:block;font-family:Georgia,serif;font-weight:500;letter-spacing:1.2px;font-size:19px;color:#fff;}
.bo-logo span{display:block;color:var(--gold);font-size:10px;text-transform:uppercase;letter-spacing:1.2px;margin-top:4px;}
.bo-menu{display:grid;gap:5px;}
.bo-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:11px;border:1px solid transparent;background:none;cursor:pointer;
  color:#dbe9fa;font-weight:600;font-size:13.5px;text-align:left;transition:background .15s,color .15s;}
.bo-item span{width:20px;text-align:center;color:var(--gold);flex:none;}
.bo-item em{margin-left:auto;font-style:normal;font-size:11px;font-weight:700;min-width:20px;padding:1px 6px;border-radius:9px;background:rgba(255,91,104,.18);color:#ffb3ba;}
.bo-item em:empty{display:none;}
.bo-item:hover{background:rgba(212,168,79,.1);}
.bo-item.on{background:linear-gradient(90deg,rgba(212,168,79,.95),rgba(141,94,26,.85));color:#fff;border-color:rgba(255,230,160,.3);box-shadow:0 10px 26px rgba(212,168,79,.15);}
.bo-item.on span{color:#fff;}
.bo-yo{margin-top:auto;display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:14px;}
.bo-cara{width:40px;height:40px;border-radius:50%;flex:none;background:linear-gradient(135deg,#d8c29a,#744e16);display:grid;place-items:center;font-weight:800;color:#071525;}
.bo-yo-txt{flex:1;min-width:0;} .bo-yo-txt b{display:block;font-size:13.5px;} .bo-yo-txt span{font-size:11.5px;color:var(--ink-faint);}
.bo-main{flex:1;min-width:0;padding:16px 20px 24px;}
.bo-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;margin-bottom:14px;border-radius:16px;border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(10,28,48,.9),rgba(7,19,33,.82));}
#boMenuMovil{display:none;}
.bo-saludo{flex:1;min-width:200px;} .bo-saludo h2{margin:0 0 3px;font-size:18px;} .bo-saludo p{margin:0;color:var(--ink-faint);font-size:12.5px;}
.bo-top-der{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.bo-buscar{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:19px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ink-faint);width:min(340px,36vw);}
.bo-buscar input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:13px;}
.bo-pill{padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.04);font-size:12.5px;color:#d8e6f7;cursor:default;}
button.bo-pill{cursor:pointer;} button.bo-pill:hover{border-color:var(--gold-line);}
.bo-sec{display:none;} .bo-sec.on{display:block;}
.bo-footer{text-align:center;color:#cab07a;margin-top:16px;font-family:Georgia,serif;letter-spacing:3px;font-size:12px;}
@media (max-width:1100px){
  .bo-nav{position:fixed;left:0;top:0;bottom:0;z-index:40;transform:translateX(-100%);transition:transform .2s;box-shadow:12px 0 30px rgba(0,0,0,.4);}
  .bo.menu-abierto .bo-nav{transform:none;}
  #boMenuMovil{display:flex;}
  .bo-buscar{width:100%;}
}

/* --- Backoffice: componentes --- */
.bo-card{background:linear-gradient(180deg,rgba(13,34,56,.94),rgba(8,24,42,.94));border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 44px rgba(0,0,0,.28);min-width:0;}
.bo-pad{padding:16px 18px;}
.bo-card h3{margin:0 0 12px;font-size:14.5px;color:#fff;display:flex;align-items:center;gap:8px;}
.bo-card h3 .bo-acc{margin-left:auto;}
.bo-grid{display:grid;gap:14px;margin-bottom:14px;}
.g-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.g-3{grid-template-columns:1.35fr .9fr .9fr;}
.g-2{grid-template-columns:1.6fr .75fr;}
.g-2b{grid-template-columns:1fr 1fr;}
.g-caso{grid-template-columns:300px .9fr 1.1fr;}
.g-cli{grid-template-columns:290px minmax(0,1.25fr) minmax(320px,.9fr);align-items:start;}
@media (max-width:1300px){.g-3,.g-2,.g-caso,.g-cli,.g-2b{grid-template-columns:1fr;}}
.bo-kpi{display:flex;gap:12px;align-items:center;padding:14px 16px;min-height:92px;}
.bo-kicon{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;border:1px solid rgba(212,168,79,.35);color:var(--gold);font-size:18px;background:rgba(212,168,79,.08);}
.bo-kpi label{display:block;font-size:11.5px;color:#d6e6f5;margin-bottom:5px;}
.bo-kpi strong{font-size:22px;display:block;line-height:1.05;color:#fff;font-variant-numeric:tabular-nums;}
.bo-kpi small{font-size:11px;color:var(--ink-faint);font-weight:600;}
.bo-kpi small.sube{color:var(--green);} .bo-kpi small.baja{color:#ff9aa2;}
.bo-exec{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin-bottom:14px;}
.bo-exec-ico{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(45,140,255,.15);border:1px solid rgba(45,140,255,.3);font-size:20px;color:#8ec3ff;}
.bo-exec h3{margin:0 0 4px;} .bo-exec p{margin:0;font-size:13.5px;line-height:1.55;color:#e3edf8;}
.bo-nota{color:var(--ink-faint);font-size:12px;line-height:1.5;margin:8px 0 0;}
.bo-chart svg{width:100%;height:220px;display:block;}
.bo-leyenda{display:flex;gap:16px;flex-wrap:wrap;color:var(--ink-faint);font-size:11.5px;margin-bottom:6px;}
.bo-leyenda i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px;}
.bo-donut-wrap{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.bo-donut{width:140px;height:140px;border-radius:50%;position:relative;flex:none;}
.bo-donut::after{content:attr(data-centro);white-space:pre;display:grid;place-items:center;position:absolute;inset:34px;border-radius:50%;background:#0a1d31;color:#fff;font-size:17px;font-weight:800;text-align:center;line-height:1.2;}
.bo-lista{display:grid;gap:8px;flex:1;min-width:140px;}
.bo-lista-fila{display:flex;justify-content:space-between;gap:10px;color:#d9e8f6;font-size:12.5px;}
.bo-lista-fila i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;}
.bo-embudo{display:grid;gap:4px;}
.bo-embudo-paso{height:42px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 14%;color:#fff;font-weight:700;font-size:12.5px;
  clip-path:polygon(4% 0,96% 0,90% 100%,10% 100%);}
.bo-embudo-paso b{font-size:15px;}
.bo-tabla{width:100%;border-collapse:collapse;font-size:12.5px;}
.bo-tabla th{text-align:left;color:#8fa7bf;padding:10px 12px;border-bottom:1px solid var(--line);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:600;white-space:nowrap;}
.bo-tabla td{padding:10px 12px;border-bottom:1px solid rgba(223,230,239,.07);vertical-align:middle;}
.bo-tabla tbody tr{cursor:pointer;}
.bo-tabla tbody tr:hover td{background:rgba(255,255,255,.03);}
.bo-tabla-wrap{overflow-x:auto;}
.bo-cli{display:flex;align-items:center;gap:9px;min-width:0;}
.bo-av{width:28px;height:28px;border-radius:50%;flex:none;background:linear-gradient(135deg,#f0d08b,#8b5a1c);display:grid;place-items:center;color:#06111f;font-weight:800;font-size:10.5px;}
.bo-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap;}
.t-green{background:rgba(73,209,125,.15);color:var(--green);} .t-red{background:rgba(255,91,104,.16);color:#ff9aa2;}
.t-orange{background:rgba(240,166,75,.15);color:#ffc277;} .t-blue{background:rgba(45,140,255,.16);color:#8ec3ff;}
.t-purple{background:rgba(155,124,255,.16);color:#c5b5ff;} .t-gray{background:rgba(170,186,204,.12);color:#c2cfdd;}
.t-gold{background:rgba(212,168,79,.15);color:var(--gold);}
.bo-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid rgba(223,230,239,.08);font-size:12.5px;}
.bo-fila:last-child{border-bottom:0;}
button.bo-fila{width:100%;background:none;border:none;border-bottom:1px solid rgba(223,230,239,.08);color:inherit;cursor:pointer;text-align:left;font:inherit;font-size:12.5px;}
button.bo-fila:hover{color:#fff;}
.n-red{color:var(--red);} .n-gold{color:var(--gold);} .n-orange{color:var(--orange);} .n-green{color:var(--green);} .n-blue{color:#8ec3ff;}
.bo-btn{padding:9px 14px;border:0;border-radius:10px;background:linear-gradient(90deg,#c69032,#f0cf7a);color:#071525;font-weight:800;cursor:pointer;font-size:12.5px;white-space:nowrap;}
.bo-btn:hover{filter:brightness(1.06);} .bo-btn:disabled{opacity:.55;cursor:default;}
.bo-btn.sec{background:rgba(255,255,255,.06);color:var(--ink);border:1px solid var(--line-strong);font-weight:700;}
.bo-btn.sec:hover{border-color:var(--gold-line);}
.bo-btn.peligro{background:rgba(255,91,104,.14);color:#ffb3ba;border:1px solid rgba(255,91,104,.35);}
.bo-acciones{display:grid;gap:8px;}
.bo-filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.bo-filtros select,.bo-sel{background:var(--navy-raise);border:1px solid var(--line-strong);border-radius:9px;padding:7px 10px;color:var(--ink);font:inherit;font-size:12.5px;}
.bo-chip{border:1px solid var(--line-strong);background:transparent;color:var(--ink-soft);border-radius:16px;padding:6px 12px;font-size:12px;cursor:pointer;}
.bo-chip.on{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold);}
.bo-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line);}
.bo-cab h3{margin:0;}
.bo-vacio{padding:26px 18px;text-align:center;color:var(--ink-faint);font-size:13px;line-height:1.6;}
.bo-info{display:grid;gap:7px;margin-top:12px;}
.bo-info div{display:flex;justify-content:space-between;gap:12px;background:rgba(255,255,255,.035);padding:9px 11px;border-radius:10px;color:#d8e7f8;font-size:12.5px;}
.bo-info b{color:#fff;text-align:right;}
.bo-perfil-av{width:62px;height:62px;border-radius:18px;background:linear-gradient(135deg,#f0d08b,#7b4f15);display:grid;place-items:center;color:#071525;font-size:21px;font-weight:900;margin-bottom:10px;}
.bo-perfil h3{margin:0 0 4px;} .bo-perfil p{margin:0;color:var(--ink-faint);font-size:12.5px;}
.bo-burbuja{padding:11px 13px;border-radius:13px;background:rgba(255,255,255,.055);line-height:1.5;font-size:12.5px;margin-bottom:10px;}
.bo-burbuja.ia{border:1px solid rgba(69,199,232,.25);background:rgba(69,199,232,.08);}
.bo-burbuja ul{margin:4px 0 0;padding-left:18px;}
.bo-meter{height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:5px;}
.bo-meter i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2d8cff,#45c7e8);}
.bo-meter.gold i{background:linear-gradient(90deg,#c69032,#f0cf7a);} .bo-meter.green i{background:linear-gradient(90deg,#1e9b5c,#49d17d);} .bo-meter.red i{background:linear-gradient(90deg,#e24a59,#ff8b94);}
.bo-score{margin:10px 0;font-size:12.5px;color:#dbe8f6;}
.bo-score div:first-child{display:flex;justify-content:space-between;}
.bo-emo{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(212,168,79,.12);border:1px solid rgba(212,168,79,.25);color:#f0cf7a;font-weight:700;font-size:11.5px;margin:2px 4px 4px 0;}
.bo-conclusion{font-size:12.5px;line-height:1.55;color:#dbe8f6;background:rgba(69,199,232,.07);border:1px solid rgba(69,199,232,.2);border-radius:12px;padding:12px;margin-top:10px;}
.bo-aviso{font-size:12px;color:var(--gold);background:rgba(212,168,79,.08);border:1px dashed var(--gold-line);border-radius:10px;padding:8px 10px;margin-bottom:10px;}
/* Lista de clientes y conversación */
.bo-clientes{max-height:calc(100vh - 170px);overflow-y:auto;}
.bo-cli-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid rgba(223,230,239,.07);padding:11px 14px;cursor:pointer;color:inherit;font:inherit;}
.bo-cli-item:hover{background:rgba(255,255,255,.03);}
.bo-cli-item.on{background:rgba(212,168,79,.09);box-shadow:inset 3px 0 0 var(--gold);}
.bo-cli-item .bo-cli b{font-size:13px;display:block;} .bo-cli-item small{display:block;color:var(--ink-faint);font-size:11px;margin-top:2px;}
.bo-cli-chats{padding:0 0 6px 14px;}
.bo-cli-chat{display:flex;gap:8px;align-items:center;width:100%;background:none;border:none;color:var(--ink-soft);font:inherit;font-size:12px;text-align:left;padding:7px 12px 7px 24px;cursor:pointer;border-radius:8px;}
.bo-cli-chat:hover{color:#fff;background:rgba(255,255,255,.03);}
.bo-cli-chat.on{color:#fff;background:rgba(212,168,79,.12);}
.bo-cli-chat span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bo-conv{display:flex;flex-direction:column;max-height:calc(100vh - 170px);}
.bo-conv-cuerpo{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px;min-height:240px;}
.bo-conv .msg{max-width:100%;}
.bo-conv .msg .bubble{font-size:13px;}
.bo-conv-pie{border-top:1px solid var(--line);padding:10px 12px;display:flex;gap:8px;align-items:flex-end;}
.bo-conv-pie textarea{flex:1;min-height:40px;max-height:140px;resize:vertical;border-radius:10px;border:1px solid var(--line-strong);background:rgba(255,255,255,.04);color:var(--ink);font:inherit;font-size:13px;padding:9px 11px;}
.bo-ts{font-size:10.5px;color:var(--ink-faint);text-align:center;margin:2px 0;}
/* Insight */
.bo-ring{width:150px;height:150px;border-radius:50%;position:relative;flex:none;}
.bo-ring::after{content:attr(data-v);white-space:pre;position:absolute;inset:16px;border-radius:50%;background:#0a1d31;display:grid;place-items:center;text-align:center;color:#fff;font-size:30px;font-weight:900;line-height:1.05;}
.bo-ring-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap;}
.bo-mini{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;}
.bo-mini div{padding:9px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:10px;}
.bo-mini label{display:block;font-size:10.5px;color:#9fb2c8;margin-bottom:3px;} .bo-mini b{font-size:14px;}
.bo-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px;}
.bo-meta div{padding:10px;border-radius:12px;background:rgba(255,255,255,.045);border:1px solid var(--line);}
.bo-meta label{display:block;font-size:10.5px;color:#9fb2c8;text-transform:uppercase;letter-spacing:.7px;margin-bottom:4px;}
.bo-meta b{font-size:13px;}
@media (max-width:900px){.bo-meta{grid-template-columns:repeat(2,1fr);}}
.bo-radar svg{width:100%;height:330px;display:block;}
.bo-timeline{position:relative;display:grid;gap:10px;}
.bo-timeline::before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--gold),rgba(69,199,232,.4));}
.bo-paso{position:relative;padding:10px 12px 10px 42px;background:rgba(255,255,255,.04);border:1px solid rgba(164,194,226,.12);border-radius:12px;}
.bo-paso::before{content:"";position:absolute;left:8px;top:13px;width:16px;height:16px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(212,168,79,.1);}
.bo-paso small{display:block;color:#f0cf7a;font-weight:700;margin-bottom:3px;} .bo-paso b{display:block;font-size:12.5px;} .bo-paso span{display:block;color:var(--ink-faint);font-size:12px;margin-top:2px;line-height:1.4;}
.bo-expl{display:grid;grid-template-columns:28px 1fr 50px;gap:10px;align-items:center;padding:10px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(164,194,226,.12);margin-bottom:8px;}
.bo-expl .tick{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:rgba(73,209,125,.14);color:var(--green);font-weight:900;}
.bo-expl b{font-size:12.5px;} .bo-expl small{display:block;color:var(--ink-faint);font-size:11.5px;margin-top:2px;}
.bo-sim{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px;}
.bo-sim label{font-size:11.5px;color:var(--ink-soft);display:block;}
.bo-sim input{width:100%;margin-top:4px;background:var(--navy-raise);border:1px solid var(--line-strong);border-radius:9px;padding:8px 10px;color:var(--ink);font:inherit;font-size:13px;}
.bo-barra{padding:10px 0;border-bottom:1px solid rgba(223,230,239,.08);}
.bo-barra:last-child{border-bottom:0;}
.bo-barra div:first-child{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;margin-bottom:6px;}
.bo-reco{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid rgba(223,230,239,.08);font-size:12.5px;}
.bo-reco:last-child{border-bottom:0;}
.bo-prio{display:inline-flex;justify-content:center;padding:5px 7px;border-radius:999px;font-size:10.5px;font-weight:800;}
.bo-cargando{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--ink-faint);font-size:13px;}
.bo-lista-casos{max-height:calc(100vh - 220px);overflow-y:auto;}
.bo-nota-int{font-size:12px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.04);margin-bottom:6px;}
.bo-nota-int small{display:block;color:var(--ink-faint);font-size:10.5px;margin-bottom:2px;}
#boCfgClaves .cfg-sec{margin-top:0;padding-top:0;border-top:none;}

/* ajustes v5 */
.bo-logo img{mix-blend-mode:screen;border-radius:50%;}
.g-kpis{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));}
.bo-kpi{gap:10px;padding:12px 13px;}
.bo-kicon{width:36px;height:36px;font-size:16px;}
.bo-kpi strong{font-size:20px;white-space:nowrap;}
.bo-kpi label{font-size:11px;line-height:1.3;}
.bo-embudo-paso{min-width:58%;padding:0 12%;font-size:11.5px;white-space:nowrap;}
.bo-embudo-paso span{overflow:hidden;text-overflow:ellipsis;}
@media (max-aspect-ratio:4/3),(max-width:760px){
  .acceso{flex-direction:column;align-items:stretch;}
  .acceso-escena{flex:1;}
  .acc-demo{position:relative;left:auto;right:auto;bottom:auto;margin:0 16px 24px;}
}
.g-kpis7{grid-template-columns:repeat(7,minmax(0,1fr));}
@media (max-width:1300px){.g-kpis7{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}}

/* ===================== v5.1 · revisión de maquetación del backoffice ===================== */
/* El documento crece con el contenido: el fondo y la barra lateral ya no se cortan al hacer scroll */
html:has(body.v-despacho), body.v-despacho{height:auto;}
body.v-despacho{min-height:100vh;background-attachment:fixed;}
.bo{min-height:100vh;align-items:flex-start;}
.bo-main{min-height:100vh;display:flex;flex-direction:column;padding:16px 22px 0;}
.bo-sec.on{flex:0 0 auto;}
/* Las tarjetas miden lo que su contenido (salvo las filas de indicadores, que se igualan) */
.bo-grid{align-items:start;}
.bo-grid.g-kpis{align-items:stretch;}
.bo-pila{display:grid;gap:14px;align-content:start;min-width:0;}
/* Indicadores */
.bo-kpi{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:14px 16px;min-height:0;}
.bo-kpi-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.bo-kpi-cab label{margin:0;font-size:11.5px;line-height:1.35;color:#c9d8e8;font-weight:600;}
.bo-kpi .bo-kicon{width:30px;height:30px;font-size:14px;margin-top:-2px;}
.bo-kpi strong{font-size:22px;line-height:1.1;white-space:nowrap;}
.bo-kpi small{display:block;line-height:1.35;}
/* Gráficos */
.bo-chart svg{width:100%;height:auto;aspect-ratio:620/220;}
/* Tablas */
.bo-tabla td{white-space:normal;}
.bo-tabla td:nth-last-child(-n+5){white-space:nowrap;}
.bo-cli span{white-space:nowrap;}
.bo-btn.sm{padding:6px 12px;font-size:12px;}
/* Ficha del caso */
.bo-sub{margin:18px 0 10px !important;font-size:13.5px !important;}
.bo-info div{align-items:center;min-height:40px;}
.bo-info b{display:flex;justify-content:flex-end;}
.bo-sel{appearance:none;-webkit-appearance:none;padding:5px 30px 5px 10px;font-size:12.5px;font-weight:600;min-width:120px;cursor:pointer;
  background:var(--navy-raise) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23d4a84f' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 10px center;}
.bo-sel:focus-visible{outline:2px solid var(--gold-line);outline-offset:1px;}
.bo-acciones{grid-template-columns:1fr 1fr;}
.bo-acciones .ancho{grid-column:1 / -1;}
.bo-acciones .bo-btn{padding:10px 12px;}
/* Conversación y listas: se quedan a la vista mientras se recorre el análisis */
.g-cli > .bo-card{position:sticky;top:16px;}
.bo-conv{max-height:calc(100vh - 32px);}
.bo-clientes{max-height:calc(100vh - 190px);}
.bo-txt{white-space:pre-wrap;}
.bo-hora{font-size:10.5px;opacity:.65;margin-top:6px;}
.msg.user .bo-hora{text-align:right;}
.g-caso > .bo-card:first-child{position:sticky;top:16px;}
.bo-lista-casos{max-height:calc(100vh - 110px);}
/* Monetización */
.bo-fila3{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(223,230,239,.08);font-size:12.5px;}
.bo-fila3:last-child{border-bottom:0;}
.bo-fila3 span:nth-child(2){color:var(--ink-soft);}
/* INSIGHT: cabecera en una sola tarjeta */
.bo-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;margin-bottom:14px;}
.bo-hero-tit{font-size:20px !important;margin-bottom:8px !important;flex-wrap:wrap;}
.bo-hero-tit span{color:var(--gold);font-family:Georgia,serif;font-weight:500;}
.bo-hero-resumen{margin:0;color:#dbe8f6;font-size:13.5px;line-height:1.6;}
.bo-hero .bo-ring-wrap{border-left:1px solid var(--line);padding-left:28px;flex-wrap:nowrap;}
.bo-ring-txt{width:300px;}
.bo-ring-txt h3{margin-bottom:6px;}
.bo-ring-txt .bo-nota{margin:0;}
@media (max-width:1300px){.bo-hero{grid-template-columns:1fr;}.bo-hero .bo-ring-wrap{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:18px;}}
@media (max-width:640px){.bo-hero .bo-ring-wrap{flex-wrap:wrap;}.bo-ring-txt{width:100%;}.bo-acciones{grid-template-columns:1fr;}}
.bo-radar svg{height:auto;aspect-ratio:420/360;max-height:340px;}
/* Pie */
.bo-footer{margin-top:auto;padding:30px 0 22px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-family:inherit;letter-spacing:0;}
.bo-footer::before{content:"";width:min(320px,60%);height:1px;margin-bottom:12px;background:linear-gradient(90deg,transparent,rgba(212,168,79,.45),transparent);}
.bo-footer-marca{font-family:Georgia,serif;letter-spacing:5px;font-size:13px;color:var(--gold2,#f0cf7a);}
.bo-footer-sub{font-size:11px;color:var(--ink-faint);letter-spacing:.4px;}
.bo-sec{padding-bottom:4px;}

.bo-kpi-cab label{min-height:2.7em;}
.bo-kicon,.bo-exec-ico{filter:grayscale(1) sepia(1) saturate(2.6) brightness(1.05);}
.bo-donut{width:168px;height:168px;}
.bo-donut::after{inset:40px;}
.bo-tabla td:nth-child(2) b{white-space:normal;}
.bo-tabla th:nth-child(2),.bo-tabla td:nth-child(2){min-width:230px;}
.bo-estado-cel{display:inline-flex;align-items:center;gap:6px;}
.bo-perfil-cab{display:flex;align-items:center;gap:14px;margin-bottom:4px;}
.bo-perfil-cab .bo-perfil-av{margin:0;width:54px;height:54px;font-size:18px;border-radius:15px;flex:none;}

@media (max-width:1300px){.g-kpis7{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));}}
@media (max-width:1300px) and (min-width:761px){
  .g-3{grid-template-columns:1fr 1fr;}
  .g-3 > :first-child{grid-column:1 / -1;}
  .g-3[style]{grid-template-columns:1fr 1fr !important;}
}
.bo-chart svg{max-height:280px;}
.bo-lista{max-width:280px;}

@media (max-width:1300px){
  .bo-ring-txt{width:auto;flex:1;}
  .bo-ring-txt .bo-mini{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (max-width:760px){.bo-ring-txt .bo-mini{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:1300px) and (min-width:761px){
  .g-3[style] > :first-child{grid-column:auto;}
  .g-3[style] > :last-child{grid-column:1 / -1;}
}
.bo-donut::after{font-size:15px;}

/* v8.5.2 · Supervisión con 6 indicadores */
.g-kpis6{grid-template-columns:repeat(6,minmax(0,1fr));}
@media (max-width:1300px){.g-kpis6{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}}

/* v8.6 · Acceso: fondo a pantalla completa, sin la franja inferior de la imagen; acceso de cliente y de despacho separados */
@media (min-aspect-ratio:4/3) and (min-width:761px){
  .acceso{display:block;--s:max(calc(100vw / 1536), calc(100vh / 836));}
  .acceso-escena{position:absolute;inset:0;width:auto;aspect-ratio:auto;min-height:100%;}
  .acceso-fondo{position:fixed;object-fit:cover;object-position:center top;}
  .acceso-card{top:calc(var(--s) * 362);width:calc(var(--s) * 600);min-width:340px;max-width:560px;max-height:none;overflow:visible;margin-bottom:32px;}
}
.acc-volver{position:fixed;top:18px;left:20px;z-index:82;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;
  font-size:13px;font-weight:600;color:var(--ink-soft);text-decoration:none;background:rgba(5,11,19,.55);border:1px solid var(--line);}
.acc-volver:hover{color:var(--gold);border-color:var(--gold-line);}
.acc-volver[hidden]{display:none;}
/* Aviso de que se habla con una IA */
.disclaimer{font-size:11px;color:var(--ink-faint);opacity:.85;max-width:760px;margin-left:auto;margin-right:auto;line-height:1.5;}
.disclaimer b{color:var(--ink);font-weight:600;}
.disclaimer .fa{color:var(--gold);margin-right:3px;}
.aviso-ia{display:block;width:fit-content;max-width:520px;margin:18px auto 0;padding:9px 4px 0;border-top:1px solid rgba(212,168,79,.28);
  text-align:center;font-size:11.5px;letter-spacing:.02em;line-height:1.5;color:var(--ink-faint);}
/* v8.6 · Acceso en tablet y móvil: el logo de la imagen arriba y la tarjeta debajo */
@media (max-aspect-ratio:4/3),(max-width:760px){
  .acceso{display:block;--w:max(100vw, min(220vw, 1400px));}
  .acceso-escena{position:relative;display:block;min-height:100%;padding:calc(var(--w) * 362 / 1536) 16px 32px;}
  .acceso-fondo{position:absolute;top:0;left:50%;width:var(--w);max-width:none;height:auto;transform:translateX(-50%);
    object-fit:fill;opacity:1;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent);}
  .acceso-card{position:relative;left:auto;top:auto;transform:none;margin:0 auto;width:100%;max-width:440px;min-width:0;max-height:none;}
  .acc-volver{position:relative;top:auto;left:auto;margin:12px 0 0 12px;padding:6px 11px;font-size:12px;}
}
/* v8.6 · Menú de Administración del abogado líder y cuentas del despacho */
.bo-menu li[hidden]{display:none !important;}
.bo-cta-fila{display:flex;flex-wrap:wrap;gap:6px;}
.bo-cta-fila .bo-btn{padding:6px 10px;font-size:12px;white-space:nowrap;}
.acc-olvido{align-self:flex-end;margin-top:-2px;font-size:11.5px;color:var(--ink-soft);text-decoration:none;}
.acc-olvido:hover{color:var(--gold);text-decoration:underline;}
.acc-olvido[hidden]{display:none;}

/* v8.7 · Voz: dictado y lectura de respuestas */
.foot-acc{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;}
.leer-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:transparent;color:var(--ink-soft);
  border-radius:14px;padding:4px 11px;font-size:12px;font-weight:600;cursor:pointer;}
.leer-btn:hover{color:var(--gold);border-color:var(--gold-line);}
.leer-btn.on{color:#1a1204;background:var(--gold);border-color:var(--gold);}
.leer-btn[hidden],.tool-chip[hidden]{display:none;}
.msg.bot.leyendo .bubble{box-shadow:0 0 0 1px var(--gold-line),0 0 18px rgba(212,168,79,.12);}
#vozBtn.on{color:#1a1204;background:var(--gold);border-color:var(--gold);animation:pct-escucha 1.2s ease-in-out infinite;}
@keyframes pct-escucha{0%,100%{box-shadow:0 0 0 0 rgba(212,168,79,.55);}50%{box-shadow:0 0 0 7px rgba(212,168,79,0);}}
@media (prefers-reduced-motion:reduce){#vozBtn.on{animation:none;}}

/* v8.8 · Panel «Te escucho»: nivel del micrófono y transcripción en vivo */
.escucha{display:flex;align-items:flex-start;gap:12px;margin:0 0 10px;padding:10px 12px;border-radius:12px;
  background:rgba(212,168,79,.08);border:1px solid rgba(212,168,79,.35);color:var(--ink);}
.escucha[hidden]{display:none;}
.escucha-nivel{flex:none;display:flex;align-items:center;gap:3px;height:28px;padding:0 4px;}
.escucha-nivel i{display:block;width:4px;height:24px;border-radius:2px;background:var(--gold);transform:scaleY(.15);transform-origin:center;transition:transform .08s linear;}
.escucha-cuerpo{flex:1;min-width:0;}
.escucha-cuerpo b{display:block;font-size:12.5px;font-weight:600;color:var(--gold);}
.escucha-cuerpo p{margin:3px 0 0;font-size:14px;line-height:1.45;color:var(--ink);word-wrap:break-word;}
.escucha-cuerpo p:empty{display:none;}
.escucha-cuerpo em{font-style:normal;color:var(--ink-faint);}
.escucha-cerrar{flex:none;border:none;background:none;color:var(--ink-faint);cursor:pointer;padding:4px;}
.escucha-cerrar:hover{color:var(--ink);}
.escucha.escuchando .escucha-cuerpo b::before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#ff5b68;vertical-align:1px;animation:pct-rec 1s ease-in-out infinite;}
@keyframes pct-rec{50%{opacity:.25;}}
.escucha.listo{background:rgba(73,209,125,.08);border-color:rgba(73,209,125,.35);}
.escucha.listo .escucha-cuerpo b{color:#7fd6a4;}
.escucha.listo .escucha-nivel,.escucha.error .escucha-nivel{display:none;}
.escucha.error{background:rgba(255,91,104,.08);border-color:rgba(255,91,104,.35);}
.escucha.error .escucha-cuerpo b{color:#ff9aa3;}
@media (prefers-reduced-motion:reduce){.escucha-nivel i{transition:none;}.escucha.escuchando .escucha-cuerpo b::before{animation:none;}}

/* v9.0 · Memoria de 10 días: recordatorio y consulta cerrada */
.plazo-aviso{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.5;
  color:var(--ink-soft);background:rgba(240,166,75,.08);border:1px solid rgba(240,166,75,.35);}
.plazo-aviso[hidden]{display:none;}
.plazo-aviso > .fa{color:#f0a64b;font-size:16px;flex:none;}
.plazo-aviso div{flex:1;min-width:0;}
.plazo-aviso b{color:var(--ink);}
.plazo-aviso.cerrada{background:rgba(255,255,255,.04);border-color:var(--line-strong);}
.plazo-aviso.cerrada > .fa{color:var(--gold);}
.plazo-aviso .btn-pri{flex:none;}
.composer textarea:disabled{opacity:.5;cursor:not-allowed;}

/* v9.0 · Contacto directo con el despacho */
.sb-contacto{margin-top:6px;}
.contacto-modal p{margin:0 0 12px;}
.contacto-fila{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:8px;border-radius:10px;text-decoration:none;
  color:var(--ink);background:rgba(255,255,255,.03);border:1px solid var(--line-strong);}
.contacto-fila:hover{border-color:var(--gold-line);}
.contacto-fila > .fa{color:var(--gold);font-size:18px;width:22px;text-align:center;}
.contacto-fila small{display:block;font-size:11px;color:var(--ink-faint);}
.contacto-fila b{font-size:15px;}
.contacto-nota{font-size:13px;color:var(--ink-soft);}

/* Mi cuenta y configuración (app) */
.cuenta-modal{max-width:640px;max-height:88vh;display:flex;flex-direction:column;padding:0;}
.cu-cab{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line-strong);}
.cu-cab h2{margin:0;}
.cu-x{background:none;border:0;color:var(--ink-soft);font-size:16px;cursor:pointer;padding:6px;border-radius:6px;}
.cu-x:hover{color:var(--ink);background:var(--navy-raise);}
.cu-cuerpo{overflow-y:auto;padding:6px 22px 22px;}
.cu-cuerpo section{padding:16px 0;border-bottom:1px solid var(--line);}
.cu-cuerpo section:last-child{border-bottom:0;}
.cu-cuerpo h3{margin:0 0 12px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);}
.cu-form{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;}
.cu-form .cu-ancho{grid-column:1/-1;}
.cu-form input:disabled{opacity:.6;}
.cu-plan{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.cu-plan b{font-family:var(--font-display);font-size:18px;}
.cu-plan em{font-style:normal;font-size:11px;padding:2px 8px;border-radius:20px;background:rgba(76,195,138,.12);color:#8fdcb5;}
.cu-dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 14px;}
.cu-dl dt{font-size:11px;color:var(--ink-faint);}
.cu-dl dd{margin:2px 0 0;font-size:13px;font-weight:600;}
.cu-uso{margin-bottom:10px;}
.cu-uso>div:first-child{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft);margin-bottom:5px;}
.cu-uso b{color:var(--ink);font-weight:600;}
.cu-barra{height:5px;border-radius:5px;background:var(--navy-raise);overflow:hidden;}
.cu-barra i{display:block;height:100%;background:var(--gold);border-radius:5px;}
.cu-enlace{display:inline-flex;gap:6px;align-items:center;margin-top:6px;font-size:13px;color:var(--gold);text-decoration:none;}
.cu-enlace:hover{text-decoration:underline;}
.cu-check{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--ink-soft);margin-bottom:10px;cursor:pointer;}
.cu-check input{width:16px;height:16px;accent-color:var(--gold);}
.cu-nota{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0 0 10px;}
.cu-nota a{color:var(--gold);}
.cu-peligro{background:none;border:1px solid rgba(255,107,118,.5);color:#ff9aa2;border-radius:8px;padding:8px 14px;font:inherit;font-size:13px;cursor:pointer;}
.cu-peligro:hover{background:rgba(255,107,118,.1);}
@media (max-width:600px){.cu-form,.cu-dl{grid-template-columns:1fr;}}
/* Rev03 · estructura de la respuesta: plazo, explicación, qué hacer y pregunta pendiente */
.resp-explicacion p:first-child{font-size:14.5px;}
.resp-sec.hacer{border:1px solid var(--gold-line);background:rgba(201,162,75,.06);}
.resp-sec.pregunta{border:1px solid var(--line-strong);background:rgba(255,255,255,.03);}
.resp-sec h4.resp-sec-title{margin:0 0 6px;display:block;}
.resp-sec.hacer .resp-sec-title{color:var(--gold);}
.resp-sec ul{margin:0;padding-left:18px;}
.resp-sec p{margin:0;}
.aviso-plazo{border:1px solid rgba(230,160,70,.6);background:rgba(230,160,70,.10);border-radius:10px;padding:11px 13px;margin-bottom:12px;font-size:13px;line-height:1.5;}
.aviso-plazo strong{display:block;color:#f0c27a;font-size:13.5px;margin-bottom:4px;}
.aviso-plazo p{margin:4px 0 0;}
.aviso-plazo .plazo-pregunta{font-weight:600;color:var(--ink);}
.aviso-plazo .plazo-contacto{display:flex;flex-direction:column;gap:2px;margin-top:8px;}
.aviso-plazo small{color:var(--ink-faint);font-size:11.5px;}
.link-contacto{background:none;border:0;padding:0;color:var(--gold);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer;align-self:flex-start;}
.invitacion{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;}
.invitacion h4{margin:0 0 4px;font-size:13.5px;color:var(--ink);}
.invitacion p{margin:0 0 8px;font-size:13px;color:var(--ink-soft);}
/* Rev03 · Contactar con Fidelitis Abogados (sustituye la mensajería) */
.contacto-cuerpo{flex:1;overflow-y:auto;padding:18px 20px 24px;}
.contacto-form{max-width:640px;}
.ct-motivos{border:0;padding:0;margin:0 0 14px;}
.ct-motivos legend{font-size:12px;color:var(--ink-soft);margin-bottom:6px;padding:0;}
.ct-motivo{display:flex;gap:10px;align-items:center;padding:10px 12px;margin-bottom:6px;border:1px solid var(--line-strong);border-radius:8px;cursor:pointer;font-size:13px;}
.ct-motivo input{accent-color:var(--gold);}
.ct-motivo:has(input:checked){border-color:var(--gold);background:var(--gold-soft);}
.ct-fila{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;}
.ct-fila[hidden]{display:none;}
.contacto-form textarea{min-height:96px;}
.contacto-form .cu-check{align-items:flex-start;line-height:1.45;}
.contacto-form .cu-check input{margin-top:2px;flex:none;}
.contacto-error{color:#e6b9bf;font-size:12.5px;min-height:0;margin-bottom:8px;}
.contacto-error:empty{display:none;}
.contacto-ok{max-width:640px;padding:14px 16px;border:1px solid rgba(76,195,138,.5);background:rgba(76,195,138,.1);color:#a5e6c8;border-radius:10px;font-size:13.5px;}
.areas-tit{margin:14px 0 8px;font-size:13px;color:var(--ink-soft);}
.subida.pendiente{display:inline-flex;align-items:center;gap:6px;}
.fuente-tipo{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);}
.fuente .fuente-title{display:block;margin-top:4px;}
@media (max-width:600px){.ct-fila{grid-template-columns:1fr;}}
.modal-html{font-size:13px;line-height:1.6;margin:0 0 10px;color:var(--ink);}
.modal-html a{color:var(--gold);}
.bo-cli-contacto{display:flex;flex-direction:column;gap:4px;padding:6px 12px 8px 24px;font-size:12px;}
.bo-cli-contacto a{color:var(--gold);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
