/* LIACC Companion — "Lúmen". Launcher bubble + panel. Uses the site tokens
   (loaded after liacc.css) so it matches the brand / PPT: navy + accent green. */

.lumen-launcher {
  position: fixed; right: 20px; bottom: 20px; z-index: 1000;
  width: 74px; height: 74px; padding: 0; border-radius: 50%;
  border: 2px solid var(--accent-400, #3fc49a);
  background: radial-gradient(120% 120% at 30% 25%, #112440, #0a172a);
  box-shadow: 0 12px 32px -8px rgba(0,0,0,.55), 0 0 0 0 rgba(63,196,154,.5);
  cursor: pointer; display: grid; place-items: center;
  transition: transform .18s ease, box-shadow .25s ease;
  animation: lumen-float 4.5s ease-in-out infinite;
}
.lumen-launcher svg { width: 54px; height: 54px; display: block; }
.lumen-launcher:hover { transform: translateY(-3px) scale(1.06); }
.lumen-launcher:focus-visible { outline: 3px solid var(--accent-300, #6ddbb8); outline-offset: 3px; }
.lumen-launcher[aria-expanded="true"] { transform: scale(.92); }

/* idle: the bulb's rays gently pulse — "not static" */
.lumen-rays { transform-origin: 60px 50px; animation: lumen-pulse 2.4s ease-in-out infinite; }
@keyframes lumen-pulse { 0%,100% { opacity:.35; } 50% { opacity:1; } }
@keyframes lumen-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
/* attention ring when Lúmen has something to suggest */
.lumen-launcher.has-news { animation: lumen-float 4.5s ease-in-out infinite, lumen-attn 2s ease-out infinite; }
@keyframes lumen-attn { 0% { box-shadow: 0 10px 28px -8px rgba(0,0,0,.5), 0 0 0 0 rgba(63,196,154,.55);} 70%{ box-shadow:0 10px 28px -8px rgba(0,0,0,.5),0 0 0 12px rgba(63,196,154,0);} 100%{box-shadow:0 10px 28px -8px rgba(0,0,0,.5),0 0 0 0 rgba(63,196,154,0);} }
@media (prefers-reduced-motion: reduce) {
  .lumen-launcher, .lumen-rays, .lumen-launcher.has-news { animation: none; }
}

.lumen-badge { position:absolute; top:-3px; right:-3px; min-width:18px; height:18px; padding:0 5px;
  border-radius:9px; background: var(--accent-400,#3fc49a); color:#0a172a; font:700 11px/18px var(--font-sans, system-ui);
  text-align:center; }

/* Panel */
.lumen-panel {
  position: fixed; right: 20px; bottom: 106px; z-index: 1000;
  width: min(380px, calc(100vw - 32px)); max-height: min(620px, calc(100vh - 120px));
  display: flex; flex-direction: column; overflow: hidden;
  background: #0a172a; color: #eef4fb;
  border: 1px solid rgba(255,255,255,.08); border-radius: 18px;
  box-shadow: 0 24px 70px -18px rgba(0,0,0,.7);
  transform: translateY(12px) scale(.98); opacity: 0; pointer-events: none;
  transition: transform .2s ease, opacity .2s ease;
}
.lumen-panel.open { transform: none; opacity: 1; pointer-events: auto; }
.lumen-head { display:flex; align-items:center; gap:12px; padding:16px 16px 12px; border-bottom:1px solid rgba(255,255,255,.07);
  background: linear-gradient(180deg, #112440, #0a172a); }
.lumen-head svg { width:34px; height:34px; flex:none; }
.lumen-head .t { font-family: var(--font-serif, Georgia, serif); font-size:17px; font-weight:600; }
.lumen-head .s { font-size:12px; color: var(--accent-300,#6ddbb8); margin-top:1px; }
.lumen-close { margin-left:auto; background:none; border:0; color:#9fb0c8; cursor:pointer; font-size:20px; line-height:1; padding:6px; border-radius:8px; }
.lumen-close:hover { background: rgba(255,255,255,.08); color:#fff; }

.lumen-tabs { display:flex; gap:4px; padding:10px 12px 0; }
.lumen-tab { flex:1; background:none; border:0; color:#9fb0c8; font:600 12.5px/1 var(--font-sans,system-ui);
  padding:9px 6px; border-radius:9px; cursor:pointer; }
.lumen-tab[aria-selected="true"] { background: rgba(63,196,154,.14); color: var(--accent-300,#6ddbb8); }
.lumen-tab[disabled] { opacity:.45; cursor:default; }

.lumen-body { padding:14px 16px 18px; overflow-y:auto; }
.lumen-body h4 { font-size:12px; text-transform:uppercase; letter-spacing:.12em; color:#9fb0c8; margin:0 0 8px; }
.lumen-rec { display:block; padding:10px 12px; margin-bottom:8px; background:#0d1a32; border:1px solid rgba(255,255,255,.06);
  border-radius:12px; text-decoration:none; color:#eef4fb; transition:border-color .15s ease, background .15s ease; }
.lumen-rec:hover { border-color: var(--accent-400,#3fc49a); background:#102243; }
.lumen-rec .k { font-size:10.5px; text-transform:uppercase; letter-spacing:.1em; color: var(--accent-300,#6ddbb8); }
.lumen-rec .ti { font-weight:600; font-size:14px; margin-top:2px; }
.lumen-rec .de { font-size:12.5px; color:#b4c2d6; margin-top:3px; line-height:1.45; }

.lumen-persona { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:14px; }
.lumen-persona button { background:#0d1a32; border:1px solid rgba(255,255,255,.08); color:#eef4fb;
  padding:11px 10px; border-radius:12px; cursor:pointer; font:600 13px/1.2 var(--font-sans,system-ui); text-align:left; }
.lumen-persona button:hover { border-color: var(--accent-400,#3fc49a); }
.lumen-persona button span { display:block; font-weight:400; font-size:11.5px; color:#9fb0c8; margin-top:3px; }

.lumen-chips { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 12px; }
.lumen-chips button { background:#0d1a32; border:1px solid rgba(255,255,255,.1); color:#cfe; font-size:12px;
  padding:6px 10px; border-radius:999px; cursor:pointer; }
.lumen-chips button[aria-pressed="true"] { background: var(--accent-500,#22a67f); color:#0a172a; border-color:transparent; }
.lumen-soon { font-size:13px; color:#9fb0c8; text-align:center; padding:24px 8px; }
.lumen-foot { font-size:11.5px; color:#7e8ea8; padding:10px 16px 14px; border-top:1px solid rgba(255,255,255,.06); }
.lumen-foot a { color: var(--accent-300,#6ddbb8); }

/* Conversar (chat) */
.lumen-chat { display:flex; flex-direction:column; gap:9px; min-height:60px; }
.lumen-msg { padding:9px 12px; border-radius:12px; font-size:13.5px; line-height:1.5; max-width:92%; }
.lumen-msg.me { align-self:flex-end; background: var(--accent-500,#22a67f); color:#0a172a; }
.lumen-msg.ai { align-self:flex-start; background:#0d1a32; border:1px solid rgba(255,255,255,.06); color:#eef4fb; }
.lumen-msg.thinking { opacity:.6; }
.lumen-msg .k { font-size:10.5px; text-transform:uppercase; letter-spacing:.1em; color:#9fb0c8; }
.lumen-msg a { display:block; color: var(--accent-300,#6ddbb8); font-size:12.5px; margin-top:2px; text-decoration:none; }
.lumen-msg a:hover { text-decoration:underline; }
.lumen-ask { display:flex; gap:6px; margin-top:10px; }
.lumen-ask input { flex:1; background:#0d1a32; border:1px solid rgba(255,255,255,.12); color:#eef4fb;
  border-radius:10px; padding:9px 11px; font-size:13px; }
.lumen-ask input:focus { outline:2px solid var(--accent-300,#6ddbb8); outline-offset:1px; border-color:transparent; }
.lumen-send { background: var(--accent-500,#22a67f); color:#0a172a; border:0; border-radius:10px;
  padding:0 14px; font-weight:600; cursor:pointer; font-size:13px; }
.lumen-send:hover { background: var(--accent-400,#3fc49a); }

/* Starter / follow-up suggestion chips */
.lumen-suggests { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.lumen-suggest-h { flex-basis:100%; font-size:10.5px; text-transform:uppercase; letter-spacing:.12em; color:#7e8ea8; margin-bottom:2px; }
button.lumen-suggest { background:#0d1a32; border:1px solid rgba(63,196,154,.35); color:#cfe; font-size:12px;
  padding:6px 11px; border-radius:999px; cursor:pointer; text-align:left; line-height:1.3; transition:background .15s ease, border-color .15s ease; }
button.lumen-suggest:hover { background:#102243; border-color: var(--accent-400,#3fc49a); }

/* markdown inside answers */
.lumen-msg.ai strong { font-weight:700; color:#fff; }
.lumen-msg.ai code { background: rgba(255,255,255,.1); padding:1px 5px; border-radius:5px; font-size:12px; font-family:ui-monospace,Menlo,Consolas,monospace; }
.lumen-msg.ai ul, .lumen-msg.ai ol { margin:6px 0 6px 18px; padding:0; }
.lumen-msg.ai li { margin:2px 0; }
.lumen-msg.ai a[target="_blank"] { display:inline; color: var(--accent-300,#6ddbb8); text-decoration:underline; }

/* answer actions: copy + 👍/👎 */
.lumen-fb { display:flex; align-items:center; gap:8px; margin-top:8px; padding-top:7px; border-top:1px solid rgba(255,255,255,.06); }
.lumen-fbq { display:flex; align-items:center; gap:6px; margin-left:auto; }
.lumen-fb span { font-size:11px; color:#7e8ea8; }
.lumen-fb button { background:none; border:0; cursor:pointer; font-size:14px; line-height:1; padding:2px 4px; border-radius:6px; opacity:.8; }
.lumen-fb button:hover { opacity:1; background: rgba(255,255,255,.08); }
