/* Speaker Booking — module chrome, the Events overview and the Event
   pipeline (design handoffs handoff-speaker-events 2026-09-09 and
   handoff-speaker-release-1 2026-09-10; rulings in SPEAKER-EVENTS-RULINGS.md
   and SPEAKER-RELEASE-1-RULINGS.md). The index chrome (strip, chips, table,
   landmark) is the canon cpv1-* from campaigns.css and the change flash is
   Team Assignments' (.ta-board in team_assignments.css). This file holds
   only the module's own bits: the subnav placement, the table geometry, the
   role lineup cell and its key, the tracker's status vocabulary
   (avo_custom.css lines 131–231 transcribed so the same word looks the same
   on the Speaker Dashboard and here — avo_custom.css is not loaded outside
   Avo), the pipeline row and its stage headline, the event's campaigns
   page (Compact Detail, compact_detail.css) and the outbound queue's
   columns. */

/* ===== subnav — no toplinks row above it, so no rule to sit under ===== */
.sb-page .campaign-subnav { margin-top: 0; padding-top: 0; border-top: 0; }

/* ===== table geometry (handoff §5, §7): 1238px at the design width ===== */
.sb-events .cpv1-tbl { min-width: 1080px; }
.sb-events .cpv1-tbl th, .sb-events .cpv1-tbl td { padding-left: 10px; padding-right: 10px; }
.sb-events .cpv1-tbl td { padding-top: 9px; padding-bottom: 9px; line-height: 20px; vertical-align: middle; }
.sb-events .cpv1-tbl th.sb-col-event,  .sb-events .cpv1-tbl td.sb-col-event  { width: 234px; }
.sb-events .cpv1-tbl th.sb-col-date,   .sb-events .cpv1-tbl td.sb-col-date   { width: 150px; }
.sb-events .cpv1-tbl th.sb-col-days,   .sb-events .cpv1-tbl td.sb-col-days   { width: 80px; text-align: right; }
/* The three role columns share whatever the viewport leaves after the four
   fixed ones (596px) — 214px each at the design width (1238px), as Team
   Assignments' table fills its viewport; the bars stretch with them. */
.sb-events .cpv1-tbl th.sb-col-role,   .sb-events .cpv1-tbl td.sb-col-role   { width: auto; }
.sb-events .cpv1-tbl th.sb-col-status, .sb-events .cpv1-tbl td.sb-col-status { width: 132px; }
/* The today's-goal tick overhangs the 8px track by 3px each way. */
.sb-events .cpv1-tbl td.sb-col-role { overflow: visible; }

.sb-page .ev-name, .sb-page .who { display: block; font-size: 13px; font-weight: 500; color: var(--fg); overflow: hidden; text-overflow: ellipsis; }
.sb-page .ev-name a, .sb-page .who a, .sb-page a.sb-plain-link { color: inherit; text-decoration: none; }
.sb-page .ev-name a:hover, .sb-page .who a:hover, .sb-page a.sb-plain-link:hover { text-decoration: underline; }
.sb-page .ev-sub { display: block; font-size: 12px; line-height: 16px; color: var(--fg-muted); overflow: hidden; text-overflow: ellipsis; }
.sb-page .mono { font-family: var(--font-mono); font-size: 12px; font-variant-numeric: tabular-nums; }
.sb-page .dow { color: var(--fg-muted); }
.sb-page .faint { color: var(--fg-faint); }

/* ===== the role cell: fixed-width number, then the lineup bar ===== */
.sb-events .rl { display: grid; grid-template-columns: 52px 1fr; gap: 10px; align-items: center; }
.sb-events .rl-n { font-family: var(--font-mono); font-size: 13px; font-variant-numeric: tabular-nums; text-align: right; line-height: 16px; }
.sb-events a.rl-n { color: inherit; text-decoration: none; }
.sb-events a.rl-n:hover b { text-decoration: underline; }
.sb-events .rl-n b { font-weight: 700; color: var(--fg); }
.sb-events .rl-n .tg { color: var(--fg-muted); font-size: 11px; }
.sb-events .bar { position: relative; display: flex; height: 8px; background: var(--color-slate-100); border-radius: 2px; }
.sb-events .bar .bk { height: 100%; background: var(--color-slate-800); }
.sb-events .bar .ip { height: 100%; background: repeating-linear-gradient(135deg, var(--color-slate-300) 0 2px, transparent 2px 4px); }
.sb-events .bar .tick { position: absolute; top: -3px; bottom: -3px; width: 0; border-left: 2px dashed var(--fg-muted); z-index: 2; }

/* ===== the key above the viewport ===== */
.sb-key { display: flex; gap: 18px; margin: 8px 0 0; font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fg-muted); align-items: center; }
.sb-key-sw { display: inline-block; width: 12px; height: 8px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
.sb-key-sw--confirmed { background: var(--color-slate-800); }
.sb-key-sw--in-motion { background: repeating-linear-gradient(135deg, var(--color-slate-300) 0 2px, transparent 2px 4px); }
.sb-key-sw--goal { background: var(--color-slate-100); }
.sb-key-sw--tick { width: 0; height: 12px; border-left: 2px dashed var(--fg-muted); border-radius: 0; }

/* ===== status vocabulary — the tracker's classes at the row size (§6) =====
   Filled: High Risk, Goal Met, Ahead. Outlined white: the rest. */
.sb-events .status-pill,
.sb-events [class^="status-text-"] {
  display: inline-block; padding: 1px 6px; border-radius: 4px;
  font-size: 11px; font-weight: 500; white-space: nowrap;
}
.sb-events [class^="status-text-"] { background-color: white; border: 1px solid var(--color-gray-300); }
.sb-events .status-pill-critical { background-color: var(--status-high-risk-bg); color: var(--status-high-risk-text); }
.sb-events .status-pill-complete { background-color: var(--status-goal-met-bg); color: var(--status-goal-met-text); }
.sb-events .status-text-ahead { background-color: var(--status-ahead-bg); color: var(--status-ahead-text); border-color: transparent; }
.sb-events .status-text-medium-risk { color: var(--status-medium-risk-text); }
.sb-events .status-text-some-risk { color: var(--status-some-risk-text); }
.sb-events .status-text-on-track { color: var(--status-on-track-text); }
.sb-events .status-text-early { color: var(--status-early-text); }
.sb-events .status-text-no-goal { color: var(--status-no-goal-text); }
.sb-events .status-text-no-data { color: var(--status-no-data-text); }

/* ===== Event pipeline — the pipeline row (Release 1 handoff §3, reduced
   2026-09-14 to Person · Stage · Role) ===== */
.sb-pipeline .cpv1-tbl { min-width: 720px; }
.sb-pipeline .cpv1-tbl th, .sb-pipeline .cpv1-tbl td { padding-left: 10px; padding-right: 10px; }
.sb-pipeline .cpv1-tbl td { padding-top: 9px; padding-bottom: 9px; line-height: 20px; vertical-align: middle; }
/* Person takes what the two fixed columns leave. */
.sb-pipeline .cpv1-tbl th.sb-col-person, .sb-pipeline .cpv1-tbl td.sb-col-person { width: auto; }
.sb-pipeline .cpv1-tbl th.sb-col-stage,  .sb-pipeline .cpv1-tbl td.sb-col-stage  { width: 150px; }
.sb-pipeline .cpv1-tbl th.sb-col-srole,  .sb-pipeline .cpv1-tbl td.sb-col-srole  { width: 190px; }
/* Approval (2026-09-25): the state word over who · when · the note. */
.sb-pipeline .cpv1-tbl th.sb-col-appr,   .sb-pipeline .cpv1-tbl td.sb-col-appr   { width: 380px; }
.sb-pipeline .cpv1-tbl td.sb-col-person { overflow: hidden; text-overflow: ellipsis; }
/* Menus escape their cell (handoff §3.1). */
.sb-page .cpv1-tbl td.sb-col-stage, .sb-page .cpv1-tbl td.sb-col-srole, .sb-page .cpv1-tbl td.sb-col-appr { overflow: visible; }
.sb-page .sb-col-appr .ev-sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sb-page .sb-col-appr .ev-sub a { color: inherit; text-decoration: none; }
.sb-page .sb-col-appr .ev-sub a:hover { text-decoration: underline; }
.sb-page .sb-col-appr .ev-sub .by { font-family: var(--font-mono); font-size: 11px; color: var(--fg-faint); }

/* The ask's note box: the Audience Evaluation modal at the width one
   note needs; the person and the event named under the title. */
.modal-backdrop.sb-ask-modal .modal { max-width: 640px; }
.sb-ask-context { font-size: 13px; color: var(--fg); margin: -8px 0 18px; }
.sb-ask-context .ev-sub { display: block; margin-top: 2px; }

/* The stage word: plain text, dotted underline, mono caret. */
.sb-page .sb-stage {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 0; border: 0; background: none; cursor: pointer; font: inherit; font-size: 13px; color: var(--fg);
  border-bottom: 1px dotted var(--color-slate-400);
}
.sb-page .car { font-family: var(--font-mono); font-size: 8px; color: var(--fg-faint); }

/* Editable values: dotted underline + caret; the prompt when empty (Send Readiness' treatment). */
.sb-page .fk {
  display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
  padding: 0; border: 0; background: none; font: inherit; font-size: 13px; color: var(--fg);
  text-decoration: none; cursor: pointer;
}
.sb-page .fk .v { color: var(--fg); border-bottom: 1px dotted var(--color-slate-400); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sb-page .fk--empty {
  display: inline-block; color: var(--fg-faint); font-style: italic; border-bottom: 1px dotted var(--color-slate-400);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%;
}

/* The stage headline (handoff §4): boxes in a grid, Declined set apart.
   Seven boxes since JC-4 (Researched · Sent · … · Registered, Declined);
   the boxes shrink to 100px before the strip scrolls sideways. */
.sb-st { display: grid; padding: 14px 20px; border-bottom: 1px solid var(--border); overflow-x: auto; }
.sb-st-box { padding-left: 14px; border-left: 1px solid var(--border); min-width: 0; }
.sb-st-box:first-child { padding-left: 0; border-left: 0; }
.sb-st-box--off { justify-self: end; width: 120px; border-left: 1px dashed var(--border-strong); }
.sb-st-l { font-family: var(--font-mono); font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--fg-muted); }
.sb-st-v { font-size: 20px; font-weight: 600; line-height: 24px; font-variant-numeric: tabular-nums; color: var(--fg); }
.sb-st-v.zero { color: var(--color-slate-300); }
/* The week's movement under the number (the API calls page's signed-delta
   line under a count): mono, muted, one line. */
.sb-st-d { margin-top: 3px; font-family: var(--font-mono); font-size: 11px; color: var(--fg-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sb-page .sb-event-date { font-variant-numeric: tabular-nums; }
/* The control line's link to the event's campaigns page: the system's
   text-link treatment (compact_detail.css .compact-eyebrow-action). */
.sb-page .cpv1-sentence-text a.sb-sentence-link { color: var(--color-blue-600); text-decoration: none; }
.sb-page .cpv1-sentence-text a.sb-sentence-link:hover { text-decoration: underline; }

/* ===== the event's tracking campaigns page (JC-3): the Compact Detail
   column holds the head and one row collection; a suppressed campaign
   reads faint with ↶ where the tracked ones carry × ===== */
.sb-campaigns .compact-detail-page .cpv1-breadcrumb { margin-bottom: 4px; }
.sb-campaigns .compact-coll-row--off .compact-coll-name,
.sb-campaigns .compact-coll-row--off .compact-coll-meta,
.sb-campaigns .compact-coll-row--off .compact-coll-when { color: var(--fg-faint); }
.sb-campaigns .compact-coll-row--off .compact-coll-name a { color: inherit; }
.sb-campaigns .compact-coll-when { font-variant-numeric: tabular-nums; text-align: right; }
.sb-campaigns .compact-coll-head span:nth-child(4) { text-align: right; }
.sb-campaigns .cpv1-detach-x.sb-restore:hover { color: var(--fg); background: var(--surface-2); }
/* The add row lives in the collection as its first row (the frame is
   transparent to the grid); the wrapper shows only while it holds a row,
   and the absence line yields to it. */
.sb-campaigns turbo-frame#sb_campaign_add { display: contents; }
.sb-campaigns .compact-coll-wrapper:not(:has(.compact-coll-row)) { display: none; }
.sb-campaigns .compact-coll-wrapper:has(.compact-coll-row) + .compact-empty { display: none; }
/* One required value: the input spans every column but the ×. */
.sb-campaigns .sb-campaign-add-cell { grid-column: 1 / -2; display: flex; flex-direction: column; gap: 4px; white-space: normal; overflow: visible; }
.sb-campaigns .sb-campaign-add-row .cpv1-inline-input { font-size: 13px; padding: 3px 6px; }
.sb-campaigns .sb-campaign-add-row .cpv1-inline-error { font-size: 12px; }

/* The outbound queue (Admin): one line per field in the Change cell, which wraps. */
/* Seven fixed columns (each + 24px cell padding); Change takes the rest; a
   narrow window scrolls the table sideways rather than crushing Change. */
.sb-outbound .cpv1-tbl { min-width: 1180px; }
.sb-outbound .cpv1-tbl td { vertical-align: top; }
.sb-outbound .cpv1-tbl th.soc-col-when,   .sb-outbound .cpv1-tbl td.soc-col-when   { width: 140px; }
.sb-outbound .cpv1-tbl th.soc-col-by,     .sb-outbound .cpv1-tbl td.soc-col-by     { width: 80px; }
.sb-outbound .cpv1-tbl th.soc-col-event,  .sb-outbound .cpv1-tbl td.soc-col-event  { width: 150px; }
.sb-outbound .cpv1-tbl th.soc-col-person, .sb-outbound .cpv1-tbl td.soc-col-person { width: 130px; }
.sb-outbound .cpv1-tbl th.soc-col-object, .sb-outbound .cpv1-tbl td.soc-col-object { width: 120px; }
.sb-outbound .cpv1-tbl th.soc-col-op,     .sb-outbound .cpv1-tbl td.soc-col-op     { width: 70px; }
.sb-outbound .cpv1-tbl th.soc-col-change, .sb-outbound .cpv1-tbl td.soc-col-change { width: auto; white-space: normal; }
.sb-outbound .cpv1-tbl th.soc-col-status, .sb-outbound .cpv1-tbl td.soc-col-status { width: 70px; }
.sb-outbound .soc-line { display: block; font-size: 12.5px; line-height: 18px; white-space: normal; overflow-wrap: anywhere; }
.sb-outbound .soc-field { font-family: var(--font-mono); font-size: 11px; color: var(--fg-muted); }

/* ===== Speaker page (2026-09-25, decisions 13 · 16): one person on one
   event. The Audience Evaluation decide page's layout classes (ae-decide,
   ae-ondeck, ae-decide-head, ae-work, ae-facts, ae-sec, disc-*) come from
   audience_evaluation.css, linked on the page; these are the page's own. */
.sb-speaker .ae-decide-head { justify-content: flex-start; }
.sb-speaker .ae-decide-head .ae-head-right { margin-left: auto; }
.sb-speaker .ae-head-name a { color: inherit; text-decoration: none; }
.sb-speaker .ae-head-name a:hover { text-decoration: underline; }
.sb-head-who { min-width: 0; }
.sb-head-title { font-size: 17px; font-weight: 500; color: var(--fg); margin-top: 8px; line-height: 1.3; }
.sb-head-title .co { color: var(--fg-muted); }
.sb-head-event { margin-left: 56px; padding-left: 24px; border-left: 1px solid var(--border); min-width: 0; }
.sb-head-event-name { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; margin-top: 6px; line-height: 1.2; }
.sb-head-event-name a { color: inherit; text-decoration: none; }
.sb-head-event-name a:hover { text-decoration: underline; }
.sb-head-event-line { font-size: 13.5px; color: var(--fg-muted); margin-top: 6px; }
.sb-head-event-edit { display: flex; align-items: center; gap: 8px; }
.sb-head-event-edit .ta-state { position: relative; display: inline-block; }
.sb-head-event-edit .sep { color: var(--fg-faint); }
/* The state: the stage badge made clickable — dotted border, caret. */
.sb-appr-badge-wrap { position: relative; display: inline-block; }
.sb-appr-badge {
  display: inline-flex; align-items: center; gap: 6px; font: inherit; cursor: pointer;
  font-family: var(--font-mono); font-size: 11px; font-weight: 600; text-transform: lowercase; letter-spacing: 0.01em;
  padding: 3px 9px; border-radius: var(--r-pill); line-height: 1.45; white-space: nowrap;
  background: var(--color-blue-50); color: var(--color-blue-700); border: 1px dotted var(--color-blue-700);
}
.sb-appr-badge .car { font-size: 8px; color: inherit; }
.sb-appr-badge--empty { background: var(--surface); color: var(--fg-faint); border-color: var(--color-slate-400); font-style: italic; text-transform: none; }
.sb-appr-badge--not-needed, .sb-appr-badge--withdrawn { background: var(--surface-2); color: var(--fg-muted); border-color: var(--color-slate-400); }
.sb-appr-badge--on-hold { background: var(--color-warning-bg); color: var(--color-warning-text); border-color: var(--color-warning-text); }
.sb-appr-badge--approved { background: var(--color-success-bg); color: var(--color-success-text); border-color: var(--color-success-text); }
.sb-appr-badge--not-approved { background: var(--color-danger-bg); color: var(--color-danger-text); border-color: var(--color-danger-text); }
/* The lineup: the goals line, then the booked people under role headings. */
.sb-ev-goals { display: flex; gap: 18px; font-size: 13px; color: var(--fg-muted); }
.sb-ev-goals b { color: var(--fg); font-weight: 600; }
.sb-lineup-group { margin-top: 18px; }
.sb-lineup-h { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.07em; color: var(--fg-faint); font-weight: 700; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.sb-lineup-h .n { color: var(--fg-faint); font-weight: 400; margin-left: 4px; }
.sb-lineup { list-style: none; margin: 0; padding: 0; }
.sb-lineup li { padding: 8px 0; border-bottom: 1px solid var(--border-faint); }
.sb-lineup li:last-child { border-bottom: 0; }
/* The right column: records, look-ups, history. */
.sb-speaker .ae-f-links { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; }
.sb-speaker .ae-f-links a { color: var(--color-blue-700); text-decoration: none; }
.sb-speaker .ae-f-links a:hover { text-decoration: underline; }
.sb-hist { list-style: none; margin: 0; padding: 0; }
.sb-hist li { padding: 6px 0; border-bottom: 1px solid var(--border-faint); font-size: 12.5px; line-height: 1.4; }
.sb-hist li:last-child { border-bottom: 0; }
.sb-hist a { color: inherit; text-decoration: none; }
.sb-hist a:hover { text-decoration: underline; }
.sb-hist .what { font-weight: 600; }
.sb-hist .when { display: block; font-family: var(--font-mono); font-size: 10.5px; color: var(--fg-faint); margin-top: 1px; }
.sb-speaker .disc-composer { margin-top: 12px; }
.sb-speaker .ae-ondeck { max-height: none; }

/* ===== Approvals queue (2026-09-25, decision 14): the open asks only. */
.sb-approvals .cpv1-tbl { min-width: 720px; }
.sb-approvals .cpv1-tbl th, .sb-approvals .cpv1-tbl td { padding-left: 10px; padding-right: 10px; }
.sb-approvals .cpv1-tbl td { padding-top: 9px; padding-bottom: 9px; line-height: 20px; vertical-align: middle; }
.sb-approvals .cpv1-tbl th.sb-col-person, .sb-approvals .cpv1-tbl td.sb-col-person { width: auto; overflow: hidden; text-overflow: ellipsis; }
.sb-approvals .cpv1-tbl th.sb-col-event,  .sb-approvals .cpv1-tbl td.sb-col-event  { width: 250px; }
.sb-approvals .cpv1-tbl th.sb-col-state,  .sb-approvals .cpv1-tbl td.sb-col-state  { width: 140px; overflow: visible; }
.sb-approvals .cpv1-tbl th.sb-col-asked,  .sb-approvals .cpv1-tbl td.sb-col-asked  { width: 150px; }
.sb-approvals .cpv1-tbl th.sb-col-note,   .sb-approvals .cpv1-tbl td.sb-col-note   { width: 330px; }
.sb-approvals .cpv1-tbl td.sb-col-note { font-size: 12.5px; color: var(--fg-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sb-approvals .cpv1-tbl td.sb-col-note a { color: inherit; text-decoration: none; }
.sb-approvals .cpv1-tbl td.sb-col-note a:hover { text-decoration: underline; }
.sb-approvals .cpv1-tbl td.sb-col-asked { font-size: 13px; }
.sb-approvals .cpv1-tbl td.sb-col-asked .ev-sub { font-family: var(--font-mono); font-size: 11px; }
.sb-approvals .cpv1-group-band-btn { display: inline-flex; align-items: center; cursor: default; }

/* ===== Event page (2026-09-25, decision 17 — a placeholder): the head,
   then the speakers in process by stage. */
/* The event's shared head and tab row (the information architecture,
   2026-09-25): the head's rule moves under the tabs, the views-row
   geometry carries the underline. */
.sb-event-head { margin-bottom: 0; padding-bottom: 10px; border-bottom: 0; }
.sb-event-goals { margin-top: 10px; }
.sb-event-tabs { padding: 0; border-bottom: 1px solid var(--border); margin-bottom: 16px; overflow: visible; }
.sb-event-tabs .cpv1-tab { padding: 8px 12px 10px; }
.sb-event-tabs .cpv1-tab:first-child { padding-left: 0; }
/* The Campaigns tab's collection spans the event head's width (the page
   is a tab under the head, not a Compact Detail page of its own). */
.sb-campaigns-body { max-width: none; padding: 0; }
.sb-campaigns-body .compact-section { margin-top: 0; }
.sb-event-links { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; font-size: 13px; }
.sb-event-links a { color: var(--color-blue-700); text-decoration: none; }
.sb-event-links a:hover { text-decoration: underline; }
/* The Lineup: the roster, one section per role, each a Compact Detail
   row collection — Name · Title · Company · Stage. Read at a glance, so
   the section heads use the type scale's section size and the cells
   its reading sizes. Everything on the page, nothing in a viewport. */
.sb-roster { padding-bottom: 32px; }
.sb-roster-section { margin-top: 28px; }
.sb-roster-section:first-child { margin-top: 8px; }
.sb-roster .sb-lineup-h {
  font-family: inherit; font-size: var(--text-lg); font-weight: var(--weight-semibold);
  text-transform: none; letter-spacing: 0; color: var(--fg);
  margin: 0 0 10px; padding: 0; border: 0;
}
.sb-roster .sb-lineup-h .n { font-size: var(--text-md); font-weight: var(--weight-normal); color: var(--fg-muted); margin-left: 8px; }
.sb-roster .compact-coll-row { padding-top: 10px; padding-bottom: 10px; }
.sb-roster .compact-coll-name { font-size: 14px; font-weight: var(--weight-semibold); white-space: nowrap; }
.sb-roster .compact-coll-meta { font-size: var(--text-base); color: var(--fg-muted); white-space: nowrap; }
.sb-roster .sb-roster-stage { color: var(--fg); }
/* The tentative trail each role's confirmed, faded a little; the
   cancellations follow the lineup as an appendix. */
.sb-roster .sb-roster-row--tentative { opacity: .55; }
.sb-roster .sb-roster-row--tentative:hover { opacity: 1; }
.sb-roster-appendix { margin-top: 44px; }

/* The pipeline's search bar (2026-10-06): the control panel find-bar's
   row (campaigns.css .cp-findbar-row / -icon / -input) across the whole
   of the strip's sentence row. */
.sb-search .cp-findbar-row { flex: 1; }

/* The queue's request modal: one column (a person, then the note). */
.modal-backdrop.sb-request-modal .modal { max-width: 640px; }
.sb-request-modal .ae-flag-body { display: block; }
.sb-request-modal .ae-flag-col { margin-bottom: 4px; }
