/* Who is in chambers (owner, 12 and 13 October 2026): a notice in the
   lower-left corner of every public page, there only while a counsel is
   sitting in the digital chambers (views/public/site/partials/chamber_live.php,
   assets/js/chamber-live.js). Plain CSS, loaded by the partial itself: the
   policy pages do not load site.css, so each of the site's colours has a
   fallback (its light scheme). The chamber page's own colours: green while
   sitting, amber while in session. Rises in once, swaps in place, still under
   reduced motion. */
.ll-live {
  --lv: #3fae7c;
  --lv-glass: var(--ll-glass, rgb(255 255 255 / .92));
  --lv-line: var(--ll-line-2, rgb(10 10 11 / .16));
  --lv-ink: var(--ll-ink, #0a0a0b);
  --lv-ink-2: var(--ll-ink-2, #3f3f46);
  --lv-ink-3: var(--ll-ink-3, #71717a);
  --lv-bg: var(--ll-bg, #ffffff);
  --lv-bg-2: var(--ll-bg-2, #f4f4f5);
  --lv-accent: var(--ll-gold, #0a0a0b);
  --lv-accent-ink: var(--ll-gold-ink, #0a0a0b);
  --lv-wash: var(--ll-wash, rgb(10 10 11 / .05));
  position: fixed; z-index: 38; left: 20px; bottom: 20px; width: min(23rem, calc(100vw - 24px));
  font-family: inherit; line-height: 1.4; text-align: left;
  opacity: 0; transform: translateY(18px); pointer-events: none;
  transition: opacity .45s, transform .55s cubic-bezier(.2, .7, .2, 1);
}
.ll-live[hidden] { display: none; }
.ll-live[data-status="in_session"] { --lv: #e0a339; }
.ll-live.is-on { opacity: 1; transform: none; pointer-events: auto; }
.ll-live *, .ll-live *::before, .ll-live *::after { box-sizing: border-box; }
.ll-live-card {
  position: relative; display: flex; align-items: center; gap: .9rem; padding: .85rem 2.75rem .85rem .85rem; border-radius: 1rem; text-decoration: none;
  color: var(--lv-ink); background: var(--lv-glass); border: 1px solid var(--lv-line); box-shadow: 0 22px 44px -26px rgb(0 0 0 / .55);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: border-color .2s;
}
.ll-live-card:hover { border-color: var(--lv-accent); text-decoration: none; color: var(--lv-ink); }
.ll-live-card:focus-visible, .ll-live-x:focus-visible { outline: 2px solid var(--lv-accent); outline-offset: 3px; }
.ll-live-faces { position: relative; display: flex; flex: none; }
.ll-live-face { position: relative; width: 2.9rem; height: 2.9rem; border-radius: 9999px; background: var(--lv-bg-2); box-shadow: 0 0 0 2px var(--lv-bg); }
.ll-live-face + .ll-live-face { margin-left: -.9rem; }
.ll-live-face img { display: block; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.ll-live-face b { display: grid; place-items: center; width: 100%; height: 100%; font-size: .85rem; font-weight: 600; color: var(--lv-ink-2); }
.ll-live-face:first-child::after { content: ""; position: absolute; right: -1px; bottom: -1px; width: .8rem; height: .8rem; border-radius: 9999px; background: var(--lv); box-shadow: 0 0 0 2px var(--lv-bg); }
.ll-live-more { display: grid; place-items: center; width: 2.9rem; height: 2.9rem; margin-left: -.9rem; border-radius: 9999px; font-size: .75rem; font-weight: 600;
  color: var(--lv-ink); background: var(--lv-bg-2); box-shadow: 0 0 0 2px var(--lv-bg); }
.ll-live-body { display: flex; flex: 1; flex-direction: column; min-width: 0; gap: .1rem; }
.ll-live-state { display: inline-flex; align-items: center; gap: .45rem; font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--lv-ink-3); }
.ll-live-pip { position: relative; display: inline-block; width: .45rem; height: .45rem; border-radius: 9999px; background: var(--lv); }
.ll-live-pip::after { content: ""; position: absolute; inset: -3px; border-radius: 9999px; border: 1px solid var(--lv); animation: ll-live-pulse 2s ease-out infinite; }
@keyframes ll-live-pulse { from { opacity: .9; transform: scale(.6); } to { opacity: 0; transform: scale(1.8); } }
.ll-live-name { font-size: .98rem; font-weight: 600; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ll-live-sub { font-size: .8rem; color: var(--lv-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ll-live-sub:empty { display: none; }
.ll-live-go { display: inline-flex; align-items: center; gap: .35rem; margin-top: .3rem; font-size: .8rem; font-weight: 600; color: var(--lv-accent-ink); }
.ll-live-go svg { width: .8rem; height: .8rem; transition: transform .2s; }
.ll-live-card:hover .ll-live-go svg { transform: translateX(3px); }
/* Google Meet, where the consultation is held: its mark in the card's lower corner. */
.ll-live-meet { position: absolute; right: .8rem; bottom: .8rem; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: .55rem;
  background: #fff; box-shadow: 0 0 0 1px rgb(10 10 11 / .08), 0 4px 10px -6px rgb(0 0 0 / .35); }
.ll-live-meet svg { width: 1.2rem; height: auto; }
.ll-live-x { position: absolute; top: .45rem; right: .45rem; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; padding: 0; border-radius: 9999px;
  color: var(--lv-ink-3); background: transparent; border: 0; cursor: pointer; transition: color .2s, background-color .2s; }
.ll-live-x:hover { color: var(--lv-ink); background: var(--lv-wash); }
.ll-live-x svg { width: .85rem; height: .85rem; }
.ll-live.is-swap .ll-live-body { animation: ll-live-swap .5s ease-out; }
@keyframes ll-live-swap { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.ll-live-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* Phones: one compact line, so it covers as little of the page as it can. */
@media (max-width: 639px) {
  .ll-live { left: 12px; bottom: 12px; width: auto; max-width: calc(100vw - 24px); }
  .ll-live-card { gap: .65rem; padding: .45rem 4.6rem .45rem .45rem; border-radius: 9999px; }
  .ll-live-face, .ll-live-more { width: 2.25rem; height: 2.25rem; }
  .ll-live-face + .ll-live-face, .ll-live-more { margin-left: -.7rem; }
  .ll-live-face:first-child::after { width: .65rem; height: .65rem; }
  .ll-live-state { font-size: .62rem; }
  .ll-live-name { font-size: .88rem; }
  .ll-live-sub, .ll-live-go { display: none; }
  .ll-live-meet { right: 2.5rem; bottom: auto; top: 50%; transform: translateY(-50%); width: 1.75rem; height: 1.75rem; }
  .ll-live-x { top: 50%; right: .3rem; transform: translateY(-50%); }
}
@media print { .ll-live { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .ll-live, .ll-live-card, .ll-live-go svg { transition: none; }
  .ll-live-pip::after, .ll-live.is-swap .ll-live-body { animation: none; }
}
