/* _content/Nexstate.Web/Components/Pages/DataMigration/MigrationDashboard.razor.rz.scp.css */
/* Faint error tint for a Failed migration row (RowClassFunc => "migration-row-failed").
   Subtle by design: a low-alpha wash, not a loud fill — the Status chip stays the primary signal.
   ::deep reaches the row element rendered by the child MudDataGrid component. */
[b-4esjesrfvi] tr.migration-row-failed {
    background-color: rgba(var(--mud-palette-error-rgb), 0.06);
}

[b-4esjesrfvi] tr.migration-row-failed:hover {
    background-color: rgba(var(--mud-palette-error-rgb), 0.10);
}
/* _content/Nexstate.Web/Components/Pages/Governance/MeetingDetail.razor.rz.scp.css */
/* B-1024 (MeetingDetail redesign, Slice 1) — scoped layout for the meeting-detail header. */

/* Keep the header (title, status, primary action, Protokoll menu, stepper, meta strip) in view while
   the agenda/attendance body scrolls. The class sits on a plain wrapper <div> authored in this
   component, so the scoped attribute actually lands on it (a class splatted onto a MudBlazor component
   would end up on the child's root, which this component's scope attribute does not reach). */
.meeting-detail-header[b-dvmjupjp4t] {
    position: sticky;
    top: 0;
    z-index: 3;
}

/* Compact meta strip — icon+value cells laid out on one wrapping row (no "A · B · C" middle-dot
   strings). Each cell is a MudText / MudIconButton flex item. */
.meeting-detail-meta[b-dvmjupjp4t] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 1.5rem;
}

/* ::deep so the rule reaches the MudText root each cell renders (a child component's element does not
   carry this component's scope attribute). Aligns each cell's inline icon with its value and drops the
   default paragraph margin so the strip stays compact. */
.meeting-detail-meta[b-dvmjupjp4t]  .mud-typography {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

/* B-1024 (Slice 2) — the working-surface layout. */

/* The right rail keeps the quorum verdict + attendance in view while the (usually longer) agenda column
   scrolls. The class sits on a plain wrapper <div> authored in this component, so the scope attribute
   lands on it. `top` clears the sticky header (which is `top: 0`); a lower z-index than the header (3)
   lets the header paint over the rail on overlap. */
.meeting-detail-rail-sticky[b-dvmjupjp4t] {
    position: sticky;
    top: 1rem;
    z-index: 1;
}

/* Responsive: at the mobile breakpoint the grid stacks to one column. In source order the agenda column
   comes first, which would drop the quorum figure BELOW the whole TOP list. Flex `order` lifts the rail
   above the agenda on narrow viewports so the verdict is seen first; on md+ the columns sit side by side
   and natural order (agenda left, rail right) is restored.

   The `.meeting-detail-rail` / `.meeting-detail-agenda` classes sit on MudItem CHILD components, whose
   rendered <div>s do NOT carry this component's scoped-CSS attribute — so a plain scoped selector would
   NOT match them and the reorder would be inert (Copilot #1578 Finding 1). These rules therefore reach the
   MudItem divs via `::deep` from `.meeting-detail-body`, the plain wrapper <div> authored in the component
   (which DOES carry the scope attribute), mirroring the `.meeting-detail-meta ::deep …` pattern above.
   `.meeting-detail-rail-sticky` is a plain <div> I own (carries the scope attribute), so it stays a plain
   scoped selector; sticky is disabled on mobile (a single scrolling column has nothing to stick within). */
@media (max-width: 959.98px) {
    .meeting-detail-body[b-dvmjupjp4t]  .meeting-detail-rail {
        order: -1;
    }

    .meeting-detail-body[b-dvmjupjp4t]  .meeting-detail-agenda {
        order: 0;
    }

    .meeting-detail-rail-sticky[b-dvmjupjp4t] {
        position: static;
    }
}
/* _content/Nexstate.Web/Components/Pages/Governance/MeetingDetailV2.razor.rz.scp.css */
/* MeetingDetailV2 — scoped port of the approved "Versammlungsleitung" mockup. All rules are prefixed
   `.mdv2-*` and auto-scoped by Blazor to THIS component's bespoke HTML (no MudBlazor children inside, so
   no ::deep is needed). The mockup's CSS custom properties live on `.mdv2` (the component root): the LIGHT
   values are the base; the DARK values apply under the `.mdv2-dark` class, which MeetingDetail toggles from
   the app's actual dark state so the palette stays in step with the app chrome. IBM Plex Sans with a real
   fallback stack. */

.mdv2[b-fr3e4vn5jw] {
    --mdv2-ground: #eef1f4;
    --mdv2-surface: #ffffff;
    --mdv2-surface-2: #f6f8fa;
    --mdv2-ink: #16202a;
    --mdv2-muted: #5a6672;
    --mdv2-faint: #8a95a1;
    --mdv2-line: #dde3e9;
    --mdv2-line-strong: #c7d0d8;
    --mdv2-primary: #205a6b;
    --mdv2-primary-ink: #ffffff;
    --mdv2-primary-soft: #e3eef1;
    --mdv2-ok: #2f7d57;
    --mdv2-ok-soft: #e5f1ea;
    --mdv2-warn: #a9670b;
    --mdv2-warn-soft: #f6ecd9;
    --mdv2-bad: #b23a2e;
    --mdv2-bad-soft: #f6e4e1;
    --mdv2-shadow: 0 1px 2px rgba(22,32,42,.06), 0 6px 20px rgba(22,32,42,.06);
    --mdv2-shadow-sticky: 0 2px 10px rgba(22,32,42,.10);
    --mdv2-r: 10px;
    --mdv2-r-sm: 7px;

    background: var(--mdv2-ground);
    color: var(--mdv2-ink);
    font-family: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    border-radius: var(--mdv2-r);
    overflow: hidden;
}

/* Dark palette — mockup values, applied via the `.mdv2-dark` class that MeetingDetail sets from the
   app's ACTUAL dark state (the `Nexstate.DarkMode` cookie / MudBlazor `IsDarkMode`), NOT via
   prefers-color-scheme or a [data-theme] attribute — this app emits neither, so those would leave V2 a
   light/dark island out of step with the app chrome. V2 first renders only AFTER MeetingDetail's
   OnAfterRenderAsync has read the cookie, so the class is present on the very first paint (no flash). */
.mdv2.mdv2-dark[b-fr3e4vn5jw] {
    --mdv2-ground: #0f151b;
    --mdv2-surface: #171f27;
    --mdv2-surface-2: #1d262f;
    --mdv2-ink: #e7ecf0;
    --mdv2-muted: #9aa6b2;
    --mdv2-faint: #6f7c88;
    --mdv2-line: #273139;
    --mdv2-line-strong: #34424c;
    --mdv2-primary: #5aa7bd;
    --mdv2-primary-ink: #08131a;
    --mdv2-primary-soft: #193038;
    --mdv2-ok: #5cc38c;
    --mdv2-ok-soft: #163023;
    --mdv2-warn: #e0a24b;
    --mdv2-warn-soft: #33280f;
    --mdv2-bad: #e08074;
    --mdv2-bad-soft: #331d19;
    --mdv2-shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);
    --mdv2-shadow-sticky: 0 2px 14px rgba(0,0,0,.5);
}

.mdv2 *[b-fr3e4vn5jw],
.mdv2 *[b-fr3e4vn5jw]::before,
.mdv2 *[b-fr3e4vn5jw]::after { box-sizing: border-box; }

.mdv2 button[b-fr3e4vn5jw] { font: inherit; color: inherit; cursor: pointer; }
.mdv2 button:disabled[b-fr3e4vn5jw] { cursor: not-allowed; }
.mdv2 :focus-visible[b-fr3e4vn5jw] { outline: 2.5px solid var(--mdv2-primary); outline-offset: 2px; border-radius: 4px; }

.mdv2-num[b-fr3e4vn5jw] { font-variant-numeric: tabular-nums; }
.mdv2-grow[b-fr3e4vn5jw] { flex: 1; }

.mdv2-ic[b-fr3e4vn5jw] {
    width: 18px; height: 18px; display: block;
    stroke: currentColor; stroke-width: 1.7; fill: none;
    stroke-linecap: round; stroke-linejoin: round; flex: none;
}
.mdv2-ic-sm[b-fr3e4vn5jw] { width: 15px; height: 15px; }

/* ---- sticky top bar ---- */
.mdv2-topbar[b-fr3e4vn5jw] {
    position: sticky; top: 0; z-index: 30;
    background: var(--mdv2-surface);
    border-bottom: 1px solid var(--mdv2-line);
    box-shadow: var(--mdv2-shadow-sticky);
}
.mdv2-topbar-inner[b-fr3e4vn5jw] { padding: 12px 20px; display: flex; align-items: center; gap: 18px; }
.mdv2-back[b-fr3e4vn5jw] {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--mdv2-muted); background: transparent; border: 0;
    padding: 6px 8px; border-radius: var(--mdv2-r-sm); font-weight: 500;
}
.mdv2-back:hover[b-fr3e4vn5jw] { color: var(--mdv2-ink); background: var(--mdv2-surface-2); }
.mdv2-identity[b-fr3e4vn5jw] { min-width: 0; }
.mdv2-identity h1[b-fr3e4vn5jw] { margin: 0; font-size: 19px; font-weight: 600; letter-spacing: -.01em; line-height: 1.2; }
.mdv2-addr[b-fr3e4vn5jw] { color: var(--mdv2-muted); font-size: 13px; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* B-1036 — flex-wrap is a defensive belt so the header action row never scrambles/overflows even if a
   future control is added; today it holds only the primary status button + the one export dropdown. */
.mdv2-actions[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 10px; flex: none; flex-wrap: wrap; }

.mdv2-btn[b-fr3e4vn5jw] {
    display: inline-flex; align-items: center; gap: 8px;
    border: 1px solid var(--mdv2-line-strong); background: var(--mdv2-surface);
    color: var(--mdv2-ink); padding: 9px 15px; border-radius: var(--mdv2-r-sm);
    font-weight: 600; font-size: 14px; white-space: nowrap;
}
.mdv2-btn:hover[b-fr3e4vn5jw] { border-color: var(--mdv2-muted); }
.mdv2-btn:disabled[b-fr3e4vn5jw] { opacity: .55; }
.mdv2-btn-primary[b-fr3e4vn5jw] { background: var(--mdv2-primary); color: var(--mdv2-primary-ink); border-color: var(--mdv2-primary); }
.mdv2-btn-primary:hover[b-fr3e4vn5jw] { filter: brightness(1.06); }
.mdv2-btn .mdv2-ic[b-fr3e4vn5jw] { width: 17px; height: 17px; }

/* ---- lifecycle stepper ---- */
.mdv2-stepper[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 0; margin-top: 9px; flex-wrap: wrap; }
.mdv2-step[b-fr3e4vn5jw] { display: inline-flex; align-items: center; gap: 7px; color: var(--mdv2-faint); font-size: 12.5px; font-weight: 500; }
.mdv2-step .mdv2-dot[b-fr3e4vn5jw] {
    width: 19px; height: 19px; border-radius: 50%;
    border: 1.7px solid var(--mdv2-line-strong);
    display: grid; place-items: center; color: var(--mdv2-faint);
    background: var(--mdv2-surface); font-size: 11px;
}
.mdv2-step .mdv2-dot .mdv2-ic[b-fr3e4vn5jw] { width: 12px; height: 12px; }
.mdv2-step-done[b-fr3e4vn5jw] { color: var(--mdv2-muted); }
.mdv2-step-done .mdv2-dot[b-fr3e4vn5jw] { border-color: var(--mdv2-ok); color: var(--mdv2-ok); background: var(--mdv2-ok-soft); }
.mdv2-step-current[b-fr3e4vn5jw] { color: var(--mdv2-ink); font-weight: 600; }
.mdv2-step-current .mdv2-dot[b-fr3e4vn5jw] { border-color: var(--mdv2-primary); background: var(--mdv2-primary); color: var(--mdv2-primary-ink); box-shadow: 0 0 0 4px var(--mdv2-primary-soft); }
.mdv2-step-conn[b-fr3e4vn5jw] { width: 26px; height: 1.7px; background: var(--mdv2-line-strong); margin: 0 8px; }
.mdv2-step-conn.done[b-fr3e4vn5jw] { background: var(--mdv2-ok); }

.mdv2-wrap[b-fr3e4vn5jw] { padding: 0 20px 40px; }

/* ---- meta strip ---- */
.mdv2-meta[b-fr3e4vn5jw] {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px 0;
    background: var(--mdv2-surface); border: 1px solid var(--mdv2-line);
    border-radius: var(--mdv2-r); margin-top: 20px; overflow: hidden; box-shadow: var(--mdv2-shadow);
}
.mdv2-cell[b-fr3e4vn5jw] { display: flex; gap: 10px; align-items: flex-start; padding: 13px 16px; border-right: 1px solid var(--mdv2-line); border-top: 1px solid var(--mdv2-line); }
.mdv2-cell:nth-child(-n+4)[b-fr3e4vn5jw] { border-top: 0; }
.mdv2-cell:nth-child(4n)[b-fr3e4vn5jw] { border-right: 0; }
.mdv2-cell .mdv2-ic[b-fr3e4vn5jw] { color: var(--mdv2-primary); margin-top: 1px; }
.mdv2-k[b-fr3e4vn5jw] { font-size: 11.5px; color: var(--mdv2-muted); letter-spacing: .02em; }
.mdv2-v[b-fr3e4vn5jw] { font-size: 14px; font-weight: 500; line-height: 1.3; }
.mdv2-v.mdv2-edit[b-fr3e4vn5jw] { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mdv2-mini[b-fr3e4vn5jw] { color: var(--mdv2-faint); background: transparent; border: 0; padding: 2px; border-radius: 5px; display: inline-flex; }
.mdv2-mini:hover[b-fr3e4vn5jw] { color: var(--mdv2-primary); background: var(--mdv2-primary-soft); }

.mdv2-notice[b-fr3e4vn5jw] {
    margin-top: 10px; padding: 8px 12px; border-radius: var(--mdv2-r-sm);
    background: var(--mdv2-warn-soft); color: var(--mdv2-warn); font-size: 12.5px; font-weight: 500;
}

/* ---- main layout ---- */
.mdv2-grid[b-fr3e4vn5jw] { display: grid; grid-template-columns: 1fr 372px; gap: 20px; margin-top: 20px; align-items: start; }
.mdv2-section-head[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 12px; margin: 2px 2px 12px; }
.mdv2-section-head h2[b-fr3e4vn5jw] { margin: 0; font-size: 15px; font-weight: 600; letter-spacing: .01em; }
.mdv2-count[b-fr3e4vn5jw] { color: var(--mdv2-muted); font-size: 13px; font-weight: 500; }
.mdv2-btn-add[b-fr3e4vn5jw] {
    display: inline-flex; align-items: center; gap: 6px; color: var(--mdv2-primary);
    background: var(--mdv2-primary-soft); border: 1px solid transparent;
    padding: 6px 11px; border-radius: var(--mdv2-r-sm); font-weight: 600; font-size: 13px;
}
.mdv2-btn-add:hover[b-fr3e4vn5jw] { border-color: var(--mdv2-primary); }

.mdv2-empty[b-fr3e4vn5jw] { color: var(--mdv2-muted); font-size: 13.5px; padding: 18px 2px; }

/* agenda TOP cards */
.mdv2-tops[b-fr3e4vn5jw] { display: flex; flex-direction: column; gap: 12px; }
.mdv2-top[b-fr3e4vn5jw] { background: var(--mdv2-surface); border: 1px solid var(--mdv2-line); border-radius: var(--mdv2-r); box-shadow: var(--mdv2-shadow); overflow: hidden; }
.mdv2-top-h[b-fr3e4vn5jw] { display: flex; align-items: baseline; gap: 12px; padding: 14px 16px 10px; }
.mdv2-top-no[b-fr3e4vn5jw] { font-size: 12px; font-weight: 700; color: var(--mdv2-primary); background: var(--mdv2-primary-soft); padding: 3px 8px; border-radius: 6px; flex: none; letter-spacing: .02em; }
.mdv2-top-title[b-fr3e4vn5jw] { font-weight: 600; font-size: 15.5px; line-height: 1.3; flex: 1; min-width: 0; }
.mdv2-chip[b-fr3e4vn5jw] { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 4px 9px; border-radius: 999px; white-space: nowrap; flex: none; }
.mdv2-chip-ok[b-fr3e4vn5jw] { color: var(--mdv2-ok); background: var(--mdv2-ok-soft); }
.mdv2-chip-open[b-fr3e4vn5jw] { color: var(--mdv2-warn); background: var(--mdv2-warn-soft); }
.mdv2-chip-live[b-fr3e4vn5jw] { color: var(--mdv2-primary); background: var(--mdv2-primary-soft); }
.mdv2-chip-bad[b-fr3e4vn5jw] { color: var(--mdv2-bad); background: var(--mdv2-bad-soft); }
.mdv2-top-body[b-fr3e4vn5jw] { padding: 0 16px 12px; color: var(--mdv2-muted); font-size: 13.5px; line-height: 1.5; }
.mdv2-top-body > div[b-fr3e4vn5jw] { margin-top: 6px; }
.mdv2-aob[b-fr3e4vn5jw] { display: inline-flex; color: var(--mdv2-muted); background: var(--mdv2-surface-2); border: 1px solid var(--mdv2-line); padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.mdv2-resolution[b-fr3e4vn5jw] { background: var(--mdv2-surface-2); border: 1px solid var(--mdv2-line); border-radius: var(--mdv2-r-sm); padding: 8px 10px; }
.mdv2-resolution b[b-fr3e4vn5jw] { color: var(--mdv2-ink); font-weight: 600; font-size: 12px; }
.mdv2-pre[b-fr3e4vn5jw] { white-space: pre-wrap; color: var(--mdv2-ink); font-size: 13px; margin-top: 2px; }
.mdv2-amend[b-fr3e4vn5jw] { margin-top: 6px; }
.mdv2-amend summary[b-fr3e4vn5jw] { cursor: pointer; color: var(--mdv2-muted); font-size: 12.5px; font-weight: 600; }
.mdv2-amend ul[b-fr3e4vn5jw] { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.mdv2-amend-meta[b-fr3e4vn5jw] { color: var(--mdv2-muted); font-size: 12px; }
.mdv2-top-f[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 10px; padding: 11px 14px 12px; border-top: 1px solid var(--mdv2-line); background: var(--mdv2-surface-2); flex-wrap: wrap; }
.mdv2-tally[b-fr3e4vn5jw] { display: flex; gap: 14px; color: var(--mdv2-muted); font-size: 12.5px; align-items: center; }
.mdv2-btn-vote[b-fr3e4vn5jw] { display: inline-flex; align-items: center; gap: 7px; background: var(--mdv2-primary); color: var(--mdv2-primary-ink); border: 1px solid var(--mdv2-primary); padding: 7px 14px; border-radius: var(--mdv2-r-sm); font-weight: 600; font-size: 13.5px; }
.mdv2-btn-vote:hover[b-fr3e4vn5jw] { filter: brightness(1.06); }
.mdv2-btn-vote:disabled[b-fr3e4vn5jw] { opacity: .55; }
.mdv2-btn-vote.secondary[b-fr3e4vn5jw] { background: transparent; color: var(--mdv2-primary); }
.mdv2-kebab[b-fr3e4vn5jw] { width: 34px; height: 34px; border-radius: var(--mdv2-r-sm); border: 1px solid var(--mdv2-line-strong); background: var(--mdv2-surface); display: grid; place-items: center; color: var(--mdv2-muted); flex: none; }
.mdv2-kebab:hover[b-fr3e4vn5jw] { color: var(--mdv2-ink); border-color: var(--mdv2-muted); }

/* ---- right rail ---- */
.mdv2-rail-sticky[b-fr3e4vn5jw] { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 16px; }
.mdv2-card[b-fr3e4vn5jw] { background: var(--mdv2-surface); border: 1px solid var(--mdv2-line); border-radius: var(--mdv2-r); box-shadow: var(--mdv2-shadow); overflow: hidden; }
.mdv2-quorum[b-fr3e4vn5jw] { border-left: 4px solid var(--mdv2-ok); }
.mdv2-quorum.warn[b-fr3e4vn5jw] { border-left-color: var(--mdv2-warn); }
.mdv2-quorum-h[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 11px; padding: 15px 16px 6px; }
.mdv2-quorum-badge[b-fr3e4vn5jw] { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--mdv2-ok-soft); color: var(--mdv2-ok); }
.mdv2-quorum.warn .mdv2-quorum-badge[b-fr3e4vn5jw] { background: var(--mdv2-warn-soft); color: var(--mdv2-warn); }
.mdv2-verdict[b-fr3e4vn5jw] { font-size: 16px; font-weight: 700; letter-spacing: -.01em; }
.mdv2-sub[b-fr3e4vn5jw] { font-size: 12px; color: var(--mdv2-muted); }
.mdv2-quorum-figs[b-fr3e4vn5jw] { display: flex; gap: 0; padding: 6px 16px 14px; }
.mdv2-fig[b-fr3e4vn5jw] { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.mdv2-fig + .mdv2-fig[b-fr3e4vn5jw] { border-left: 1px solid var(--mdv2-line); padding-left: 14px; }
.mdv2-fig .mdv2-n[b-fr3e4vn5jw] { font-size: 21px; font-weight: 600; letter-spacing: -.02em; line-height: 1; }
.mdv2-fig .mdv2-l[b-fr3e4vn5jw] { font-size: 11.5px; color: var(--mdv2-muted); }
.mdv2-quorum-note[b-fr3e4vn5jw] { padding: 0 16px 8px; font-size: 12px; color: var(--mdv2-muted); }
.mdv2-quorum-warn[b-fr3e4vn5jw] { color: var(--mdv2-warn); }
.mdv2-quorum-rule[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-top: 1px solid var(--mdv2-line); background: var(--mdv2-surface-2); font-size: 12.5px; color: var(--mdv2-muted); }
.mdv2-link[b-fr3e4vn5jw] { color: var(--mdv2-primary); background: transparent; border: 0; font-weight: 600; font-size: 12.5px; display: inline-flex; align-items: center; gap: 5px; padding: 3px 6px; border-radius: 6px; }
.mdv2-link:hover[b-fr3e4vn5jw] { background: var(--mdv2-primary-soft); }

.mdv2-att-h[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 10px; padding: 14px 16px 10px; }
.mdv2-att-h h3[b-fr3e4vn5jw] { margin: 0; font-size: 14px; font-weight: 600; }
.mdv2-att-list[b-fr3e4vn5jw] { list-style: none; margin: 0; padding: 0 6px; }
.mdv2-att-row[b-fr3e4vn5jw] { display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 8px; }
.mdv2-att-row:hover[b-fr3e4vn5jw] { background: var(--mdv2-surface-2); }
.mdv2-pres[b-fr3e4vn5jw] { width: 9px; height: 9px; border-radius: 50%; flex: none; background: var(--mdv2-ok); }
.mdv2-pres.rep[b-fr3e4vn5jw] { background: transparent; border: 2px solid var(--mdv2-warn); width: 11px; height: 11px; }
.mdv2-pres.absent[b-fr3e4vn5jw] { background: transparent; border: 2px solid var(--mdv2-line-strong); width: 11px; height: 11px; }
.mdv2-att-name[b-fr3e4vn5jw] { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 500; }
.mdv2-att-name small[b-fr3e4vn5jw] { display: block; font-weight: 400; color: var(--mdv2-muted); font-size: 11.5px; }
.mdv2-att-mea[b-fr3e4vn5jw] { font-size: 13px; color: var(--mdv2-muted); font-weight: 500; }
.mdv2-att-revoke[b-fr3e4vn5jw] { color: var(--mdv2-faint); background: transparent; border: 0; padding: 3px; border-radius: 5px; display: inline-flex; flex: none; }
.mdv2-att-revoke:hover[b-fr3e4vn5jw] { color: var(--mdv2-bad); background: var(--mdv2-bad-soft); }
.mdv2-att-sum[b-fr3e4vn5jw] { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--mdv2-line); margin-top: 6px; }
.mdv2-att-sum .mdv2-s[b-fr3e4vn5jw] { padding: 11px 8px; text-align: center; border-right: 1px solid var(--mdv2-line); }
.mdv2-att-sum .mdv2-s:last-child[b-fr3e4vn5jw] { border-right: 0; }
.mdv2-att-sum .mdv2-n[b-fr3e4vn5jw] { font-size: 16px; font-weight: 600; }
.mdv2-att-sum .mdv2-l[b-fr3e4vn5jw] { font-size: 11px; color: var(--mdv2-muted); }

/* ---- menus ---- */
.mdv2-menu-anchor[b-fr3e4vn5jw] { position: relative; }
.mdv2-menu[b-fr3e4vn5jw] {
    position: absolute; right: 0; top: calc(100% + 6px); min-width: 230px;
    background: var(--mdv2-surface); border: 1px solid var(--mdv2-line-strong);
    border-radius: var(--mdv2-r); box-shadow: var(--mdv2-shadow); padding: 6px; z-index: 40; display: none;
}
.mdv2-menu.open[b-fr3e4vn5jw] { display: block; }
/* B-1036 — the consolidated export dropdown mixes action <button>s with "open in new tab" <a>s, so the
   item rules apply to both (anchors also get text-decoration:none + the same hover/icon treatment). */
.mdv2-menu button[b-fr3e4vn5jw],
.mdv2-menu a[b-fr3e4vn5jw] { display: flex; width: 100%; align-items: center; gap: 11px; padding: 9px 11px; border: 0; background: transparent; border-radius: 7px; font-size: 13.5px; color: var(--mdv2-ink); text-align: left; text-decoration: none; }
.mdv2-menu button:hover[b-fr3e4vn5jw],
.mdv2-menu a:hover[b-fr3e4vn5jw] { background: var(--mdv2-surface-2); }
.mdv2-menu button .mdv2-ic[b-fr3e4vn5jw],
.mdv2-menu a .mdv2-ic[b-fr3e4vn5jw] { color: var(--mdv2-muted); width: 16px; height: 16px; }
.mdv2-menu button:disabled[b-fr3e4vn5jw] { color: var(--mdv2-faint); }
.mdv2-menu button:disabled .mdv2-ic[b-fr3e4vn5jw] { color: var(--mdv2-faint); }
.mdv2-menu button.mdv2-danger .mdv2-ic[b-fr3e4vn5jw] { color: var(--mdv2-bad); }
.mdv2-sep[b-fr3e4vn5jw] { display: block; height: 1px; background: var(--mdv2-line); margin: 5px 2px; }
.mdv2-grouplabel[b-fr3e4vn5jw] { font-size: 11px; color: var(--mdv2-faint); padding: 6px 11px 3px; letter-spacing: .03em; }

/* Click-away backdrop for the bespoke menus (transparent, sits under the open menu). A borderless,
   full-viewport <button> — pointer-only (keyboard closes via Escape). */
.mdv2-backdrop[b-fr3e4vn5jw] { position: fixed; inset: 0; z-index: 35; background: transparent; border: 0; padding: 0; cursor: default; }

/* ---- completed-only protocol footer ---- */
.mdv2-protocol[b-fr3e4vn5jw] { margin-top: 20px; background: var(--mdv2-surface); border: 1px solid var(--mdv2-line); border-radius: var(--mdv2-r); box-shadow: var(--mdv2-shadow); padding: 18px 20px; }
.mdv2-protocol h2[b-fr3e4vn5jw] { margin: 0 0 4px; font-size: 15px; font-weight: 600; }
.mdv2-protocol p[b-fr3e4vn5jw] { margin: 0; color: var(--mdv2-muted); font-size: 13.5px; }

/* ---- responsive: stack, and lift the quorum rail ABOVE the agenda ---- */
@media (max-width: 860px) {
    .mdv2-meta[b-fr3e4vn5jw] { grid-template-columns: repeat(2, 1fr); }
    .mdv2-cell:nth-child(4n)[b-fr3e4vn5jw] { border-right: 1px solid var(--mdv2-line); }
    .mdv2-cell:nth-child(2n)[b-fr3e4vn5jw] { border-right: 0; }
    .mdv2-cell:nth-child(-n+2)[b-fr3e4vn5jw] { border-top: 0; }
    .mdv2-grid[b-fr3e4vn5jw] { grid-template-columns: 1fr; }
    .mdv2-rail[b-fr3e4vn5jw] { order: -1; }
    .mdv2-rail-sticky[b-fr3e4vn5jw] { position: static; }
    .mdv2-identity h1[b-fr3e4vn5jw] { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
    .mdv2 *[b-fr3e4vn5jw] { transition: none !important; }
}
/* _content/Nexstate.Web/Components/Pages/Governance/Shared/MeetingLifecycleStepper.razor.rz.scp.css */
/* B-1024 — scoped layout for the read-only meeting lifecycle stepper. Colour is only reinforcement:
   the current stage is also carried by aria-current="step" and the glyph shape (see the component). */
.meeting-lifecycle-stepper ol[b-gsem6l4f0t] {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
    margin: 0;
    padding: 0;
}

.mls-step[b-gsem6l4f0t] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--mud-palette-text-secondary);
}

/* Connector between steps (decorative). */
.mls-step:not(:last-child)[b-gsem6l4f0t]::after {
    content: "";
    display: inline-block;
    width: 1.5rem;
    height: 1px;
    margin-left: 0.5rem;
    background: var(--mud-palette-divider);
}

.mls-done[b-gsem6l4f0t] {
    color: var(--mud-palette-success);
}

.mls-current[b-gsem6l4f0t] {
    color: var(--mud-palette-primary);
    font-weight: 600;
}

.mls-upcoming[b-gsem6l4f0t] {
    color: var(--mud-palette-text-disabled);
}

.mls-label[b-gsem6l4f0t] {
    white-space: nowrap;
}
