/* ════════════════════════════════════════════════════════════════════════
   glossario.css — Glossário flutuante dos materiais (launcher ESQUERDO + painel)
   Espelha o Assistente de IA (chat-widget.css): mesma linguagem visual, lado
   oposto. Usa os tokens da página (--color-*, --font-base) com fallback.
   Namespace próprio (.qz-gloss / --qzg-*) para não colidir com o chat.
   ════════════════════════════════════════════════════════════════════════ */
.qz-gloss{
  --qzg-blue-50:#eef3fb; --qzg-blue-100:#dde6f5;
  --qzg-shadow-xl:0 32px 70px rgba(20,38,76,.20);
  --qzg-spring:cubic-bezier(.34,1.56,.64,1);
  --qzg-ease:cubic-bezier(.4,0,.2,1);
  --qzg-safe-b:env(safe-area-inset-bottom,0px);
  --qzg-safe-l:env(safe-area-inset-left,0px);

  position:fixed; inset:0; pointer-events:none; z-index:2147482000;
  font-family:var(--font-base,"Raleway",system-ui,sans-serif);
  -webkit-font-smoothing:antialiased;
}
.qz-gloss *{box-sizing:border-box}
.qz-gloss button{font-family:inherit}

/* ════════ LAUNCHER — botão "?" no canto inferior ESQUERDO ════════════════ */
.qzg-launcher{
  position:fixed;
  left:calc(24px + var(--qzg-safe-l));
  bottom:calc(24px + var(--qzg-safe-b));
  pointer-events:auto;
  display:inline-flex; align-items:center; gap:10px;
  height:56px; padding:0 20px 0 13px;
  border:none; cursor:pointer; border-radius:999px;
  background:#fff; color:var(--color-primary,#284A92);
  font-size:15px; font-weight:700; letter-spacing:.01em;
  box-shadow:var(--qzg-shadow-xl), 0 0 0 1.5px rgba(40,74,146,.14) inset;
  transition:transform .22s var(--qzg-ease), box-shadow .22s var(--qzg-ease);
  animation:qzg-in .6s var(--qzg-spring) both;
}
.qzg-launcher:hover{transform:translateY(-2px)}
.qzg-launcher:active{transform:translateY(0) scale(.98)}
.qzg-launcher:focus-visible{outline:3px solid var(--color-accent,#F8AE1E);outline-offset:3px}
.qzg-launcher__icon{
  display:grid;place-items:center;width:34px;height:34px;border-radius:50%;flex:none;
  background:var(--color-primary,#284A92);color:#fff;font-weight:800;font-size:19px;line-height:1;
}
.qzg-launcher__label{white-space:nowrap;padding-right:4px}
.qz-gloss.qzg--open .qzg-launcher{opacity:0;transform:scale(.6) translateY(10px);pointer-events:none;animation:none}

/* ════════ OVERLAY ═══════════════════════════════════════════════════════ */
.qzg-overlay{
  position:fixed;inset:0;pointer-events:none;
  background:rgba(20,38,76,.32);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;
  transition:opacity .26s var(--qzg-ease), visibility 0s linear .26s;
}
.qz-gloss.qzg--open .qzg-overlay{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .26s var(--qzg-ease), visibility 0s linear 0s}

/* ════════ PAINEL ════════════════════════════════════════════════════════ */
.qzg-panel{
  position:fixed;
  left:calc(24px + var(--qzg-safe-l));
  bottom:calc(24px + var(--qzg-safe-b));
  width:min(420px, calc(100vw - 40px));
  max-height:min(620px, calc(100dvh - 48px));
  display:flex; flex-direction:column;
  background:#fff; border-radius:22px; overflow:hidden;
  box-shadow:var(--qzg-shadow-xl);
  pointer-events:auto;
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.98);transform-origin:left bottom;
  transition:opacity .26s var(--qzg-ease), transform .3s var(--qzg-spring), visibility 0s linear .3s;
}
.qz-gloss.qzg--open .qzg-panel{opacity:1;visibility:visible;transform:none;transition:opacity .26s var(--qzg-ease), transform .34s var(--qzg-spring)}

.qzg-head{
  padding:17px 17px 15px;color:#fff;flex:none;
  display:flex;align-items:flex-start;gap:12px;
  background:linear-gradient(135deg,var(--color-primary,#284A92),var(--color-primary-dark,#14264C));
}
.qzg-head__txt{flex:1;min-width:0}
.qzg-head__title{font-size:17px;font-weight:800;letter-spacing:.01em;margin:0}
.qzg-head__sub{font-size:12.5px;opacity:.85;margin:3px 0 0;line-height:1.4}
.qzg-close{
  flex:none;width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(255,255,255,.16);color:#fff;font-size:22px;line-height:1;
  display:grid;place-items:center;transition:background .2s}
.qzg-close:hover{background:rgba(255,255,255,.28)}
.qzg-close:focus-visible{outline:3px solid var(--color-accent,#F8AE1E);outline-offset:2px}

.qzg-search{padding:12px 16px 10px;border-bottom:1px solid var(--qzg-blue-100);flex:none}
.qzg-search input{
  width:100%;height:42px;border-radius:12px;border:1.5px solid var(--qzg-blue-100);
  padding:0 14px;font-size:14.5px;color:var(--color-primary-dark,#14264C);
  background:var(--qzg-blue-50);transition:border-color .2s, background .2s}
.qzg-search input::placeholder{color:#9aa6ba}
.qzg-search input:focus{outline:none;border-color:var(--color-primary,#284A92);background:#fff}

.qzg-list{list-style:none;margin:0;padding:8px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.qzg-term{padding:11px 12px;border-radius:14px;transition:background .18s}
.qzg-term:hover{background:var(--qzg-blue-50)}
.qzg-term + .qzg-term{margin-top:2px}
.qzg-term__head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.qzg-badge{
  display:inline-block;padding:2px 9px;border-radius:999px;flex:none;
  background:var(--color-primary,#284A92);color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em}
.qzg-term__name{font-size:14px;font-weight:700;color:var(--color-primary-dark,#14264C)}
.qzg-term__def{margin:5px 0 0;font-size:13.5px;line-height:1.5;color:#3f4a5e}
.qzg-term__def mark{background:var(--color-accent,#F8AE1E);color:var(--color-primary-dark,#14264C);border-radius:3px;padding:0 2px}
.qzg-empty{padding:26px 16px;text-align:center;color:#7a8598;font-size:14px}

.qzg-foot{flex:none;padding:11px 14px;border-top:1px solid var(--qzg-blue-100)}
.qzg-ask{
  width:100%;border:none;cursor:pointer;background:none;
  color:var(--color-primary,#284A92);font-size:13px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;gap:6px}
.qzg-ask:hover{text-decoration:underline}
.qzg-ask:focus-visible{outline:3px solid var(--color-accent,#F8AE1E);outline-offset:2px;border-radius:6px}

@keyframes qzg-in{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}

/* Mobile: launcher vira só o "?"; painel vira bottom-sheet ═════════════════ */
@media (max-width:560px){
  .qzg-launcher__label{display:none}
  .qzg-launcher{padding:0;width:56px;justify-content:center;gap:0}
  .qzg-panel{
    left:0;right:0;bottom:0;width:100%;
    max-height:min(82dvh,660px);
    border-radius:22px 22px 0 0;transform-origin:bottom;transform:translateY(100%);
  }
  .qz-gloss.qzg--open .qzg-panel{transform:none}
}
@media (prefers-reduced-motion:reduce){
  .qz-gloss *{animation:none!important;transition-duration:.01ms!important}
}
