/* Jalpa launcher on every portal page (VKG 2026-10-18). Colours from portal.css tokens. */
.jl-button {
  position: fixed; right: 18px; bottom: 18px; z-index: 950;
  border: 0; border-radius: 999px; padding: 12px 18px; min-height: 48px;
  background: var(--gold-hi, #d4a017); color: #1a1510;
  font: 600 15px/1.2 Inter, system-ui, sans-serif; cursor: pointer;
  box-shadow: 0 6px 20px rgba(26, 21, 16, .3);
}
.jl-button span { font-family: 'Noto Sans Devanagari', serif; }
.jl-button:focus-visible, .jl-close:focus-visible, .jl-full:focus-visible {
  outline: 3px solid var(--accent, #b8860b); outline-offset: 2px;
}
.jl-panel {
  position: fixed; right: 18px; bottom: 80px; z-index: 960;
  width: min(440px, calc(100vw - 32px)); height: min(680px, calc(100vh - 110px));
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--surface, #fff); border: 1px solid var(--line, #e4d9c6); border-radius: 16px;
  box-shadow: 0 14px 44px rgba(26, 21, 16, .35);
}
.jl-panel[hidden] { display: none; }
.jl-bar {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 16px;
  background: #2d1f0e; color: #f5e6c8; font: 14px Inter, system-ui, sans-serif;
}
.jl-bar b { font: 700 18px 'Noto Sans Devanagari', serif; color: #d4a017; }
.jl-bar span { flex: 1; opacity: .85; }
.jl-full { color: #f5e6c8; font-size: 13px; }
.jl-close {
  background: none; border: 0; color: #f5e6c8; font-size: 26px; line-height: 1;
  min-width: 44px; min-height: 44px; cursor: pointer;
}
.jl-wait { margin: 16px; color: var(--muted, #6a6359); font: 14px Inter, system-ui, sans-serif; }
.jl-frame { flex: 1; width: 100%; border: 0; }
@media (max-width: 600px) {
  .jl-panel { right: 0; bottom: 0; width: 100vw; height: 100dvh; border-radius: 0; }
}
@media print { .jl-button, .jl-panel { display: none !important; } }
