/* Live PDF sharing (public/pdfshare.js). The viewer fills its host: #pdf-slot on the student page,
   #lc-pdf in the teacher's Live Class window. */
.pdfshare { position: absolute; inset: 0; display: flex; flex-direction: column; background: var(--soft, #eef0f5); }

/* Top bar: file name and page for students; the full control strip for the teacher. */
.ps-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 8px 12px; background: var(--card); border-bottom: 1px solid var(--border, rgb(128 128 128 / .25)); }
.ps-name { flex: 1 1 140px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; }
.ps-pages { min-width: 3.5em; text-align: center; color: var(--muted); font-weight: 800; font-variant-numeric: tabular-nums; }
.ps-follow { color: var(--accent); font-weight: 800; }
.ps-group { display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 12px; background: var(--soft, #eef0f5); }
.ps-bar button { padding: 6px 11px; border: 0; border-radius: 9px; background: none; color: var(--text); font: inherit; font-size: 0.85rem; font-weight: 800; cursor: pointer; white-space: nowrap; }
.ps-bar button:hover { background: var(--card); }
.ps-bar button.on { background: var(--accent); color: #fff; }
.ps-bar [data-act="hold"].on { background: #e0a800; }
.ps-bar .ps-stop { background: #e5384a; color: #fff; }
.ps-bar .ps-stop:hover { background: #c9283a; }

.ps-stage { flex: 1; min-height: 0; overflow: auto; padding: 12px; }
.ps-page { position: relative; width: fit-content; margin: 0 auto; background: #fff; box-shadow: 0 2px 14px rgb(0 0 0 / .16); }
.ps-page canvas { display: block; }
.ps-layer { position: absolute; inset: 0; }

/* Teacher cursor: crosshair for the laser, text cursor for typing. */
.ps-bar:has(.ps-group) ~ .ps-stage .ps-layer { cursor: crosshair; }
.ps-texting .ps-layer { cursor: text !important; }

/* Laser dot. Students' copy glides between updates so it doesn't jump. Held: a ring around it. */
.ps-dot { position: absolute; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, #ff3b3b 35%, rgb(255 40 40 / .35) 70%, transparent 72%); box-shadow: 0 0 14px 5px rgb(255 30 30 / .45);
  transition: left .45s linear, top .45s linear; }
.ps-bar:has(.ps-group) ~ .ps-stage .ps-dot { transition: none; }
.ps-dot.held { outline: 2px dashed #e0a800; outline-offset: 5px; }

/* Blue typed notes. */
.ps-note { position: absolute; transform: translateY(-50%); max-width: 45%; color: #1a56db; font: 700 18px/1.3 system-ui, sans-serif;
  white-space: pre-wrap; text-shadow: 0 0 3px #fff, 0 0 3px #fff; }
.ps-texting .ps-note:not(.editing):hover { outline: 1px dashed #1a56db; cursor: pointer; }
.ps-note textarea { width: 260px; max-width: 60vw; resize: none; overflow: hidden; border: 2px solid #1a56db; border-radius: 6px; padding: 2px 6px;
  color: #1a56db; font: inherit; background: rgb(255 255 255 / .94); }

/* Student page slot: tall enough to read, below any live question, timer or message. */
.pdf-slot { position: relative; height: calc(100vh - 190px); min-height: 380px; border-radius: 18px; overflow: hidden; box-shadow: 0 6px 24px rgb(18 26 44 / .12); }
.pdf-slot[hidden] { display: none; }
body:has(#pdf-slot:not([hidden])) :is(.hero, #goal, #team) { display: none !important; }
