/* Flow "An email or a meeting becomes a record update" (flows/emailToUpdate.html). Classes .fe-…; tokens only. */

/* ── Hero: actors, start, end ── */
.fe-hero__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin: 0; }
.fe-hero__list > div { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); border: 1px solid var(--color-default); border-radius: var(--radius-card); background: var(--color-surface); }
.fe-hero__list dd { margin: 0; color: var(--color-foreground); font-size: var(--text-sm); line-height: var(--leading-sm); }
@media (max-width: 960px) { .fe-hero__list { grid-template-columns: minmax(0, 1fr); } }

/* ── An incoming email as Outlook shows it ── */
.fe-mail { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-4) var(--space-5) var(--space-5); color: var(--color-foreground); font-size: var(--text-sm); line-height: var(--leading-sm); }
.fe-mail__bar { display: flex; align-items: center; gap: var(--space-2); color: var(--color-muted); }
.fe-mail__when { margin-left: auto; color: var(--color-subtle); font-size: var(--text-xs); }
.fe-mail__from { display: flex; align-items: center; gap: var(--space-3); }
.fe-mail__from > div { display: flex; flex-wrap: wrap; gap: 0 var(--space-1); }
.fe-mail__from .t-caption { flex: 0 0 100%; color: var(--color-muted); }
.fe-mail__body { display: flex; flex-direction: column; gap: var(--space-3); }
.fe-mail__body p { margin: 0; }
.fe-mail__files { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.fe-attach { display: inline-flex; align-items: center; gap: var(--space-2); max-width: 100%; padding: var(--space-2) var(--space-3); border: 1px solid var(--color-default); border-radius: var(--radius-control); background: var(--color-surface-muted); font-size: var(--text-label); line-height: var(--leading-label); }
.fe-attach .icon { color: var(--color-primary); }
.fe-attach__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fe-attach__kind { color: var(--color-subtle); font-size: var(--text-xs); }
.fe-av { flex: none; }

/* ── A letter, then the screen it leads to ── */
.fe-stack { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); }
.fe-then { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--color-muted); font-size: var(--text-label); }

/* ── Layers drawn over a screen: a popover, a toast, a drawer ── */
.fe-over { position: relative; }
.fe-pop { position: absolute; top: 56px; right: 200px; z-index: 2; display: flex; flex-direction: column; gap: var(--space-3); width: 380px; padding: var(--space-4); border: 1px solid var(--color-default); border-radius: var(--radius-card); background: var(--color-surface); box-shadow: var(--shadow-overlay); }
.fe-pop__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.fe-pop__item { display: flex; gap: var(--space-3); padding: var(--space-3); border-radius: var(--radius-control); background: var(--color-primary-soft); }
.fe-pop__item > .icon { flex: none; margin-top: 2px; color: var(--color-primary-strong); }
.fe-pop__item > div { display: flex; flex-direction: column; gap: var(--space-1); font-size: var(--text-sm); line-height: var(--leading-sm); }
.fe-pop__go { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--color-primary-strong); font-weight: var(--weight-medium); font-size: var(--text-label); }
.fe-pop__foot { margin: 0; }
.fe-toast { position: absolute; right: var(--space-6); bottom: var(--space-6); z-index: 2; width: var(--size-form); }
.fe-scrim { position: absolute; inset: 0; z-index: 2; display: flex; justify-content: flex-end; background: var(--color-overlay); }
.fe-drawer { width: 460px; height: 100%; border-radius: 0; }
.fe-switch { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-3); }
.fe-switch > span { display: flex; flex-direction: column; gap: 2px; }

/* ── The Site page: a drawn lower row ── */
.fe-row { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--space-4); align-items: start; }
.fe-row--one { grid-template-columns: minmax(0, 1fr); }
.fe-act { display: flex; flex-direction: column; gap: var(--space-3); }
.fe-act > header { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); }
.fe-tl { border: 0; box-shadow: none; }
.fe-tl .c-timeline__days { padding: 0; }
.fe-mailic { color: var(--color-primary); }
.fe-file { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: var(--space-2); padding: var(--space-2) var(--space-3); border: 1px dashed var(--color-primary); border-radius: var(--radius-control); background: var(--color-surface-muted); font-size: var(--text-label); line-height: var(--leading-label); }
.fe-file > .icon { color: var(--color-primary); }
.fe-file__name { font-weight: var(--weight-medium); }
.fe-file__what { color: var(--color-muted); }
.fe-link { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--color-primary-strong); font-weight: var(--weight-medium); text-decoration: none; }
.fe-foot { margin: 0; padding-top: var(--space-2); border-top: 1px solid var(--color-default); }
.fe-stageline { margin-left: auto; }
.fe-count { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; margin-left: var(--space-1); padding: 0 6px; border-radius: var(--radius-full); background: var(--color-surface-muted); color: var(--color-foreground); font-size: var(--text-xs); }
.btn--primary .fe-count { background: var(--color-primary-foreground); color: var(--color-primary-strong); }

/* ── The proposed update in this flow ── */
.fe-prop .c-proposal__facts dd { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.fe-prop .c-proposal__actions .is-pressed { background: var(--color-surface-muted); }
.fe-prop--superseded { opacity: 0.72; }
.fe-prop--superseded .c-proposal__change { background: var(--color-surface-muted); }
.fe-pmail__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.fe-pmail .c-proposal__quote { margin: 0; }
.fe-now { color: var(--color-warning-text); font-style: italic; }

/* ── The meeting review screen ── */
.fe-rv__head { margin-bottom: var(--space-1); }
.fe-rv__rule, .fe-q { margin: 0 0 var(--space-3); }
.fe-q { color: var(--color-muted); }
.fe-rv { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-4); align-items: start; }
.fe-rv:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }
.fe-rv__list { display: flex; flex-direction: column; gap: var(--space-4); }
.fe-rv__site + .fe-rv__site { padding-top: var(--space-4); border-top: 1px solid var(--color-default); }
.fe-rv__group { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.fe-rv__group > .icon { color: var(--color-primary); }
.fe-rv__group--none > .icon { color: var(--color-warning-text); }
.fe-rv__items { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.fe-rv__item { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); border: 1px dashed var(--color-primary); border-radius: var(--radius-control); background: var(--color-surface); }
.fe-rv__item.is-discarded { border-style: solid; border-color: var(--color-default); background: var(--color-surface-muted); }
.fe-rv__item.is-discarded .fe-rv__value { color: var(--color-muted); text-decoration: line-through; }
.fe-rv__item.is-quiet { opacity: 0.55; }
.fe-rv__top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.fe-rv__value { margin: 0; color: var(--color-foreground); font-size: var(--text-sm); line-height: var(--leading-sm); font-weight: var(--weight-medium); }
.fe-rv__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font-size: var(--text-label); line-height: var(--leading-label); }
.fe-rv__due { display: inline-flex; align-items: center; gap: var(--space-1); padding: 2px var(--space-2); border: 1px solid var(--color-emphasis); border-radius: var(--radius-control); background: var(--color-surface); }
.fe-rv__due.is-edited { border-color: var(--color-warning-text); background: var(--color-warning-soft); }
.fe-rv__orig { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; }
.fe-rv__quote { display: flex; flex-direction: column; gap: var(--space-1); margin: 0; }
.fe-rv__quote p { margin: 0; }
.fe-rv__btns { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.fe-rv__btns .is-pressed { background: var(--color-surface-muted); }
.fe-rv__side { display: flex; flex-direction: column; gap: var(--space-3); }
.fe-rv__side > header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); }
.fe-rv__minutes { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding-left: var(--space-4); font-size: var(--text-sm); line-height: var(--leading-sm); }
.fe-rv__none { padding: var(--space-6); }
.fe-rv__notes { padding: 0 var(--space-4) var(--space-4); }
.fe-rv__typed { display: flex; flex-direction: column; gap: var(--space-2); min-height: 120px; padding: var(--space-3); }
.fe-rv__typed p { margin: 0; }

/* ── Board after approval ── */
.fe-approved { margin-bottom: var(--space-3); }
.fe-new { font-weight: var(--weight-medium); }

/* ── The Contact page and the "Place on Sites" picker ── */
.fe-contact { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); margin-bottom: var(--space-4); }
.fe-contact__top { display: flex; align-items: center; gap: var(--space-3); }
.fe-contact__top h1 { margin: 0; }
.fe-contact__sites { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.fe-anchor { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); margin-top: var(--space-2); }
.fe-picker { display: flex; flex-direction: column; gap: var(--space-3); width: 360px; padding: var(--space-4); border: 1px solid var(--color-default); border-radius: var(--radius-card); background: var(--color-surface); box-shadow: var(--shadow-overlay); }
.fe-picker__head { display: flex; flex-direction: column; gap: 2px; }
.fe-picker__list { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.fe-picker__foot { display: flex; justify-content: flex-end; gap: var(--space-2); }

/* ── Filing by hand ── */
.fe-log { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.fe-log li { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-2) 0; border-bottom: 1px solid var(--color-default); font-size: var(--text-sm); line-height: var(--leading-sm); }
.fe-log li > .icon { flex: none; color: var(--color-primary); }
.fe-log li > div { flex: 1; min-width: 0; }
.fe-byhand { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: var(--space-3); align-items: end; }
.fe-sel { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.fe-sel--empty { color: var(--color-subtle); }
.fe-unread { margin: 0; }

/* The Site screens' cards have no padding of their own (screens-site.css); the drawn cards set theirs */
.fe-act.ss-card, .fe-rv__list.ss-card, .fe-rv__side.ss-card { padding: var(--space-3) var(--space-4) var(--space-4); }
.fe-act.ss-card > header, .fe-rv__side.ss-card > header { padding: 0; }

/* A drawn step shows the whole screen: the shell grows past its 800 px viewport instead of cutting it */
.fe-tall .ap { height: auto; min-height: 800px; }
.ss-clocks a.ss-x.fe-link { display: inline-flex; margin-left: var(--space-2); }
.fe-tl { overflow: visible; }
.fe-tl .c-timeline__dayhead { padding-left: var(--space-1); }

/* Step 9: the meeting's Review proposals button under the title, clear of the notification under the bell */
.fe-mt-review { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: var(--space-2); }
/* Step 7: room under the Legals page, so the toast covers no row */
.fe-over:has(> .fe-toast) .ap-page { padding-bottom: 112px; }
