/* THE POSTED AGENDA ON THE PUBLIC PORTAL, and the meeting step's note that an agenda lives in the
 * Agenda Builder (frontend/app/agenda/public.js, glue.js). Tokens only, like components.css.
 *
 * The builder itself is the React app in apps/agenda, with its own styles; these are the rules
 * the clerk app and the portal still draw, kept from the plain build's agenda-builder.css when
 * that build was retired (docs/implementation/agenda-builder/ALIGNMENT.md section 7). */

.agb-notice {
    display: flex; gap: var(--gv-space-3); align-items: flex-start; max-width: 816px; margin: 0 auto var(--gv-space-4);
    padding: var(--gv-space-3) var(--gv-space-4); border-radius: var(--gv-radius-md);
    background: var(--gv-info-bg); border: var(--gv-border-width) solid var(--gv-info-border); color: var(--gv-info-fg); font-size: var(--gv-text-sm);
}
.agb-notice--step { max-width: none; margin-bottom: var(--gv-space-3); }
/* ---- The public portal: a posted builder agenda (agenda/public.js) ---- */
.agb-pub { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gv-space-5); }
.agb-pub.is-viewing { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
@media (max-width: 1023px) { .agb-pub.is-viewing { grid-template-columns: minmax(0, 1fr); } }
.agb-pub__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--gv-space-3); flex-wrap: wrap; margin-bottom: var(--gv-space-4); }
.agb-pub__posted { font-size: var(--gv-text-sm); color: var(--gv-text-muted); margin: 0; }
.agb-pub__revised { color: var(--gv-warning-fg); font-weight: var(--gv-weight-semibold); margin-left: var(--gv-space-2); }
.agb-pub__docs { display: flex; gap: var(--gv-space-2); flex-wrap: wrap; }
.agb-pub__note { font-size: var(--gv-text-sm); color: var(--gv-text-muted); }
.agb-pub__lines { list-style: none; margin: 0; padding: 0; font-family: var(--gv-font-doc); color: var(--gv-text); }
.agb-pub__line { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--gv-space-2); padding: var(--gv-space-2) 0 var(--gv-space-2) calc(var(--agb-d, 0) * 28px); border-bottom: var(--gv-border-width) solid var(--gv-ink-100); }
.agb-pub__line--top .agb-pub__title, .agb-pub__line--top .agb-pub__num { font-weight: var(--gv-weight-bold); }
.agb-pub__line--text { display: block; color: var(--gv-text-muted); font-style: italic; }
.agb-pub__line--text p { margin: 0; }
.agb-pub__num { min-width: 1.8em; }
.agb-pub__title { margin: 0; }
.agb-pub__action { font-family: var(--gv-font-ui); font-size: var(--gv-text-2xs); font-weight: var(--gv-weight-bold); letter-spacing: var(--gv-tracking-wide); text-transform: uppercase; color: var(--gv-brand-900); background: var(--gv-brand-bg); border-radius: var(--gv-radius-full); padding: 1px var(--gv-space-2); margin-left: var(--gv-space-1); }
.agb-pub__presenter { margin: 2px 0 0; font-style: italic; color: var(--gv-text-muted); font-size: var(--gv-text-base); }
.agb-pub__details { margin: var(--gv-space-1) 0 0; white-space: pre-line; font-size: var(--gv-text-base); }
.agb-pub__files { display: flex; flex-wrap: wrap; gap: var(--gv-space-2); margin-top: var(--gv-space-2); font-family: var(--gv-font-ui); }
.agb-pub__viewer { position: sticky; top: calc(var(--gv-space-10) + var(--gv-space-9)); scroll-margin-top: calc(var(--gv-space-10) + var(--gv-space-10)); border: var(--gv-border-width) solid var(--gv-border); border-radius: var(--gv-radius-lg); background: var(--gv-surface); overflow: hidden; align-self: start; }
.agb-pub__viewhead { display: flex; justify-content: space-between; gap: var(--gv-space-3); padding: var(--gv-space-3); border-bottom: var(--gv-border-width) solid var(--gv-border); }
.agb-pub__viewitem { margin: 0; font-size: var(--gv-text-xs); color: var(--gv-text-muted); }
.agb-pub__viewname { margin: 0; font-weight: var(--gv-weight-semibold); color: var(--gv-text); overflow-wrap: anywhere; }
.agb-pub__viewacts { display: flex; gap: var(--gv-space-2); align-items: flex-start; }
.agb-pub__frame { width: 100%; height: 75vh; border: 0; display: block; }
.agb-pub__img { max-width: 100%; display: block; margin: 0 auto; }

/* The Agenda Builder in Minutes' Agenda step (agbEmbedHtml, agenda/glue.js): its own page in a frame
   the width of the step, as tall as the window below it (agbFitEmbed). Settings' Agenda templates and
   Distribution lists are its pages too, framed the same way (agbSettingsRender). */
.agb-embed__frame, .agb-settings__frame { display: block; width: 100%; min-height: 420px; border: 0; border-radius: var(--gv-radius-lg); background: var(--gv-paper); }
/* Settings' is see-through: the builder's page leaves its ground to Settings' own (html[data-embed]). */
.agb-settings__frame { background: transparent; }
