/* Confer product-specific styles only.
 *
 * The shared admin-layout / nav-user / product-switcher / dashboard chrome
 * primitives are served from https://narratory.com/static/narratory-spa.css
 * — never restate them here. See Narratory/SPA_dashboard_standards.md §6.
 *
 * Product-local additions go below as features land.
 */

/* Presentations list: whole row is the editor affordance; the trailing
   action cell (Preview / Present Live) opts out so its buttons keep
   their own behavior. No flat background — slug + button contrast
   needs to read clearly, and the row click area is communicated by the
   cursor. When a row is the active editor, a left accent marks it
   without fighting the row contents. */
.presentation-row { cursor: pointer; }
.presentation-row:focus-visible {
  outline: 2px solid var(--pico-primary);
  outline-offset: -2px;
}
/* Active editor row: a light neutral fill (NOT the heavy Pico primary
   that used to come through when the row carried role="button" — that
   blew out contrast on the slug + buttons). The left-border accent
   keeps the "open" affordance clear. */
.presentation-row.is-editing {
  background: var(--pico-secondary-background);
  box-shadow: inset 3px 0 0 var(--pico-primary);
}
.presentation-row .row-actions { cursor: auto; }

/* Editor expansion row: the editor article sits inside a single colspan
   cell beneath the active row. Strip the cell's table padding so the
   editor's own margins/legends control the visual rhythm. */
#editor-expansion-row > td { padding: 0; background: transparent; }

/* Pico caps dialog > article at `calc(100vh - 2*spacing)`. On mobile
   `100vh` includes auto-hiding browser chrome, so the cap is taller
   than the visible viewport and Pico's `overflow: auto` never engages.
   `100dvh` (dynamic viewport height) tracks the real visible area. */
dialog > article {
    max-height: calc(100dvh - 1rem);
}

