/* /Layout/AdminLayout.razor.rz.scp.css */
/* FAI-P07-04..09 — Admin console layout (UI_UX_PLAN §7): rail + body grid inside the app shell. */
.adm[b-gp7u81h7ee] {
    display: grid;
    grid-template-columns: 216px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    margin-inline-end: auto;
    width: 100%;
    max-width: 1400px;
}

.adm-rail[b-gp7u81h7ee] {
    position: sticky;
    top: 76px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
}

.adm-rail-title[b-gp7u81h7ee] {
    margin: 4px 4px 8px;
    font-family: var(--fai-font-display);
    font-weight: 700;
    font-size: var(--fai-text-md);
    color: var(--fai-ink);
}

.adm-rail-nav[b-gp7u81h7ee] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.adm-rail-group[b-gp7u81h7ee] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.adm-rail-label[b-gp7u81h7ee] {
    margin: 0 4px 4px;
    font-size: var(--fai-text-xs);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--fai-ink-3);
}

.adm-rail-row[b-gp7u81h7ee] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 6px 8px;
    border-radius: var(--fai-radius-sm);
    color: var(--fai-ink-2);
    text-decoration: none;
    font-size: var(--fai-text-sm);
    transition: background var(--fai-motion-fast) var(--fai-ease),
        color var(--fai-motion-fast) var(--fai-ease);
}

.adm-rail-row:hover[b-gp7u81h7ee] {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

.adm-rail-row.active[b-gp7u81h7ee] {
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-weight: 600;
}

.adm-rail-foot[b-gp7u81h7ee] {
    margin: 8px 4px 0;
    padding-top: 8px;
    border-top: 1px solid var(--fai-border);
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.adm-body[b-gp7u81h7ee] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Phone / narrow tablet: the rail collapses to a horizontal scroller above the content. */
@media (max-width: 1023px) {
    .adm[b-gp7u81h7ee] {
        grid-template-columns: minmax(0, 1fr);
    }

    .adm-rail[b-gp7u81h7ee] {
        position: static;
        flex-direction: column;
    }

    .adm-rail-nav[b-gp7u81h7ee] {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px;
    }

    .adm-rail-group[b-gp7u81h7ee] {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
    }

    .adm-rail-label[b-gp7u81h7ee] {
        width: 100%;
        margin-inline-start: 4px;
    }

    .adm-rail-foot[b-gp7u81h7ee] {
        display: none;
    }
}
/* /Layout/BlankLayout.razor.rz.scp.css */
.blank-shell[b-c3xjdvescc] {
    position: relative;
    min-block-size: 100dvh;
    background: #ffffff;
    color: var(--fai-color-content-1);
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* FAI-P07-02 — App shell layout (isolated): sidebar (desktop) / top bar + bottom tabs (phone).
   Logical properties everywhere so RTL mirrors automatically (UI_UX_PLAN §3.8). */
.shell[b-23c4qzrik5] {
    min-height: 100dvh;
    display: flex;
    background: var(--fai-canvas);
}

/* -- Skip link ------------------------------------------------------------ */
.skip-link[b-23c4qzrik5] {
    position: absolute;
    inset-inline-start: var(--fai-space-4);
    inset-block-start: -100px;
    z-index: var(--fai-z-toast);
    padding: var(--fai-space-2) var(--fai-space-4);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    border-radius: var(--fai-radius-sm);
    font-weight: 600;
    transition: inset-block-start var(--fai-motion-fast) var(--fai-ease);
}

.skip-link:focus[b-23c4qzrik5] {
    inset-block-start: var(--fai-space-4);
    text-decoration: none;
}

/* -- Sidebar -------------------------------------------------------------- */
.shell-sidebar[b-23c4qzrik5] {
    position: sticky;
    top: 0;
    height: 100dvh;
    flex: 0 0 var(--fai-sidebar-w);
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
    padding: var(--fai-space-4) var(--fai-space-3);
    background: var(--fai-surface);
    border-inline-end: 1px solid var(--fai-border);
}

.shell-brand[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-2);
    color: var(--fai-ink);
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    text-decoration: none;
}

/* The wordmark is "Mada" / "مدى" in the brand yellow (Sana, 2026-09-22: "instead of AI foundry
   inside, name it Mada in yellow and in the arabic version مدى"). Same yellow as the tour
   spotlight ring, so the guided intro and the app it hands you to are one brand. A logotype, not
   body copy, which is why it carries a colour that would be too light for running text. */
.shell-brand-name[b-23c4qzrik5] {
    color: #ffc700;
}

.shell-brand-mark[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
}

/* SH redesign — sidebar brand: the FoundryAI title ABOVE Ahmed; Ahmed (large) + an "Assistant"
   label beside him; pressing either opens the chat. The wordmark keeps the link look off. */
.shell-brand a.shell-brand-name[b-23c4qzrik5] {
    color: #ffc700;
    text-decoration: none;
}

.shell-brand-stacked[b-23c4qzrik5] {
    flex-direction: column;
    align-items: stretch;
    gap: var(--fai-space-3);
}

/* Assistant entry: a card row aligned with the nav — face, title, one-line promise, chevron. */
.shell-assistant-card[b-23c4qzrik5] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    width: 100%;
    padding: var(--fai-space-2) var(--fai-space-3) var(--fai-space-2) var(--fai-space-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-ai-soft);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    text-align: start;
    cursor: pointer;
    transition: border-color var(--fai-motion-fast) var(--fai-ease), background-color var(--fai-motion-fast) var(--fai-ease);
}

.shell-assistant-card:hover[b-23c4qzrik5],
.shell-assistant-card:focus-visible[b-23c4qzrik5] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.shell-assistant-card img[b-23c4qzrik5] {
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    box-shadow: 0 0 0 2px var(--fai-surface);
}

.shell-assistant-text[b-23c4qzrik5] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.shell-assistant-title[b-23c4qzrik5] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.shell-assistant-sub[b-23c4qzrik5] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.shell-assistant-card[b-23c4qzrik5]  .fai-icon {
    flex: none;
    color: var(--fai-ink-3);
}

.shell-guide[b-23c4qzrik5] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
}

.shell-guide-label[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-1) var(--fai-space-3) var(--fai-space-1) var(--fai-space-1);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-primary-strong);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    cursor: pointer;
}

.shell-guide-label img[b-23c4qzrik5] {
    width: 22px;
    height: 22px;
    border-radius: 999px;
}

.shell-guide-label:hover[b-23c4qzrik5],
.shell-guide-label:focus-visible[b-23c4qzrik5] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.shell-brand-mobile[b-23c4qzrik5] {
    display: none;
}

.shell-sidebar-footer[b-23c4qzrik5] {
    margin-block-start: auto;
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-2) 0;
    border-block-start: 1px solid var(--fai-border);
    font-size: var(--fai-text-sm);
}

.shell-user[b-23c4qzrik5] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--fai-ink-3);
}

.shell-signout[b-23c4qzrik5],
.shell-signin-link[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    border: 0;
    background: transparent;
    padding: var(--fai-space-2);
    border-radius: var(--fai-radius-sm);
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
}

.shell-signout:hover[b-23c4qzrik5],
.shell-signin-link:hover[b-23c4qzrik5] {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

/* -- Main column ------------------------------------------------------------ */
.shell-main[b-23c4qzrik5] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.shell-topbar[b-23c4qzrik5] {
    position: sticky;
    top: 0;
    z-index: var(--fai-z-sticky);
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    min-height: var(--fai-topbar-h);
    padding-inline: var(--fai-space-5);
    background: color-mix(in srgb, var(--fai-canvas) 86%, transparent);
    backdrop-filter: blur(10px);
    border-block-end: 1px solid var(--fai-border);
}

.shell-topbar-spacer[b-23c4qzrik5] {
    flex: 1;
    /* It is the only gap between the controls and the exhibition chip, so it keeps a minimum
       even when the row is tight. Without this it collapses first and the two groups fuse. */
    min-inline-size: var(--fai-space-3);
}

/* -- Event context switcher (FAI-P07-03) -------------------------------------- */
/* SH (2026-09-23) — the chip is the one thing here that can give (Sana: "fix the spacing").
   At phone width the bar's contents came to exactly the viewport: four round controls, this chip
   and the wordmark, with the flex spacer collapsed to zero. Nothing was over-wide on its own, so
   nothing looked broken in isolation; the row simply had no slack, every control touched its
   neighbour, and the chip's own text spilled past its edge. Letting the chip shrink below its
   content (min-inline-size: 0 — a flex item will not shrink past its content without it) gives
   the spacer something to hand back, and the round controls keep their size because a squashed
   icon is worse than a shorter title. */
.shell-event[b-23c4qzrik5] {
    position: relative;
    flex: 0 1 auto;
    min-inline-size: 0;
    max-inline-size: min(22rem, 48vw);
}

.shell-brand-mobile[b-23c4qzrik5],
.shell-topbar > .shell-pill[b-23c4qzrik5],
.shell-topbar > .shell-team[b-23c4qzrik5],
.shell-topbar > .shell-rescue[b-23c4qzrik5],
.shell-topbar > .shell-menu[b-23c4qzrik5] {
    flex: none;
}

.shell-event-trigger[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    min-height: 36px;
    padding: var(--fai-space-1) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    max-inline-size: 100%;
}

.shell-event-trigger[b-23c4qzrik5]::-webkit-details-marker {
    display: none;
}

/* Chromium's UA "closed details" hiding (content-visibility on the ::details-content slot) does
   not clip absolutely-positioned descendants, so both shell dropdown panels rendered visibly over
   page content even while closed (caught by the E2E layout audit). Hide them explicitly. */
.shell-event:not([open]) .shell-event-panel[b-23c4qzrik5],
.shell-menu:not([open]) .shell-menu-panel[b-23c4qzrik5] {
    display: none;
}

.shell-event-name[b-23c4qzrik5] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    /* SH (2026-09-23) — the name is usually Latin ("Home & Building Expo") sitting in a
       right-to-left bar, so the line's direction came from the shell and the ellipsis was placed
       at what the SHELL calls the end, which is the left: the chip read "...uilding Expo", hiding
       the one word that identifies the exhibition. plaintext gives the line its own direction from
       its own first letter, so it truncates at its own end: "Home & Buildi...". */
    unicode-bidi: plaintext;
}

.shell-event-meta[b-23c4qzrik5] {
    color: var(--fai-ink-3);
    font-weight: 500;
    white-space: nowrap;
}

.shell-event-panel[b-23c4qzrik5] {
    position: absolute;
    inset-inline-start: 0;
    top: calc(100% + var(--fai-space-2));
    z-index: var(--fai-z-modal);
    min-inline-size: 16rem;
    max-inline-size: 22rem;
    padding: var(--fai-space-2);
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    box-shadow: var(--fai-shadow-md, var(--fai-elevation-md));
}

.shell-event-option[b-23c4qzrik5] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 0;
    border-radius: var(--fai-radius-sm);
    background: transparent;
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    text-align: start;
    cursor: pointer;
    min-block-size: 44px;
}

.shell-event-option:hover[b-23c4qzrik5],
.shell-event-option-active[b-23c4qzrik5] {
    background: var(--fai-primary-soft);
    color: var(--fai-ink);
}

.shell-event-option-name[b-23c4qzrik5] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.shell-event-option-meta[b-23c4qzrik5] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

/* -- Command palette opener -------------------------------------------------- */
.shell-search[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    min-height: 36px;
    padding: var(--fai-space-1) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-ink-3);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    cursor: pointer;
}

.shell-search:hover[b-23c4qzrik5] {
    border-color: var(--fai-border-strong);
    color: var(--fai-ink-2);
}

.shell-search-label[b-23c4qzrik5] {
    display: none;
}

.shell-search-kbd[b-23c4qzrik5] {
    display: none;
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    padding: 1px 5px;
    color: var(--fai-ink-3);
    background: var(--fai-surface-2);
}

@media (min-width: 1024px) {
    .shell-search-label[b-23c4qzrik5] {
        display: inline;
    }

    .shell-search-kbd[b-23c4qzrik5] {
        display: inline;
    }
}

/* FAI-P07-01 — top-bar assistant entry: pill button matching the search field, primary-tinted. */
.shell-assistant-btn[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    min-height: 36px;
    padding: var(--fai-space-1) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-primary-strong);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    font-weight: 500;
    cursor: pointer;
}

    .shell-assistant-btn:hover[b-23c4qzrik5],
    .shell-assistant-btn:focus-visible[b-23c4qzrik5] {
        border-color: var(--fai-primary-line);
        background: var(--fai-primary-soft);
    }

.shell-pill[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    padding: 3px var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-2);
    border: 1px solid var(--fai-border);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    white-space: nowrap;
}

/* SH (2026-09-19) — with no label text left inside it (battery-saver off, the common state), a
   short rectangle among a row of circular icon buttons read as a stray, unclickable smudge. When
   it's down to just the icon, give it the same 36px circle shape as its neighbors. */
.shell-pill:has(> svg:only-child)[b-23c4qzrik5] {
    inline-size: 36px;
    block-size: 36px;
    padding: 0;
    justify-content: center;
}

.shell-pill-warning[b-23c4qzrik5] {
    background: var(--fai-warning-soft);
    border-color: var(--fai-warning);
    color: var(--fai-warning);
}

/* -- Account menu (details/summary — zero-JS dropdown) ------------------------ */
.shell-menu[b-23c4qzrik5] {
    position: relative;
}

.shell-menu-trigger[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    border-radius: 50%;
    cursor: pointer;
    list-style: none;
}

.shell-menu-trigger[b-23c4qzrik5]::-webkit-details-marker {
    display: none;
}

.shell-menu-panel[b-23c4qzrik5] {
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + var(--fai-space-2));
    z-index: var(--fai-z-modal);
    min-width: 200px;
    padding: var(--fai-space-2);
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    box-shadow: var(--fai-shadow-md);
}

.shell-menu-user[b-23c4qzrik5] {
    margin: 0 0 var(--fai-space-2);
    padding: var(--fai-space-2);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface-2);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
    overflow-wrap: anywhere;
}

.shell-menu-panel button[b-23c4qzrik5],
.shell-menu-panel a[b-23c4qzrik5] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    width: 100%;
    padding: var(--fai-space-2);
    border: 0;
    border-radius: var(--fai-radius-sm);
    background: transparent;
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    text-align: start;
    cursor: pointer;
}

.shell-menu-panel a[b-23c4qzrik5] {
    box-sizing: border-box;
    text-decoration: none;
}

.shell-menu-panel button:hover[b-23c4qzrik5],
.shell-menu-panel a:hover[b-23c4qzrik5] {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

/* -- SH redesign: micro tool, rescue -------------------------------------------------- */
/* nav.shell-sections (Home/Canvas/Targets & pipeline/On-site, desktop-only: it never showed
   below 1024px) used to repeat here — removed 2026-09-19 at Sana's request; the left sidebar
   (NavMenu) is now the one place for these links. Phone's own bottom tab bar (.shell-tabs,
   further down) is untouched. */

/* Rescue is the one always-present action: filled, so it reads as "help, now" from any screen.
   A character/mascot replaces the bolt later (SH vision) — the hit area and route stay. */
/* SH (2026-09-19) — "always make this red, as an emergency button": Rescue is the "I have no
   plan, get me one in 3-5 minutes" panic action, universally red-and-white regardless of theme,
   not tied to whatever the current brand/primary color happens to be — a theme change should
   never accidentally make the emergency button blend in. */
.shell-rescue[b-23c4qzrik5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fai-space-2);
    min-width: 36px;
    min-height: 36px;
    padding: var(--fai-space-1) var(--fai-space-3);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-danger-fill); /* FAI-P08-03 — white-text-safe fill, dark red in every theme */
    color: #ffffff;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    text-decoration: none;
}

.shell-rescue:hover[b-23c4qzrik5],
.shell-rescue:focus-visible[b-23c4qzrik5] {
    background: var(--fai-danger-fill-strong); /* FAI-P08-03 — stays a dark red in every theme */
}

/* -- Content ------------------------------------------------------------------ */
.shell-content[b-23c4qzrik5] {
    flex: 1;
    width: 100%;
    max-width: 1160px;
    margin-inline: auto;
    padding: var(--fai-space-6) var(--fai-space-5) var(--fai-space-9);
}

/* -- Bottom tabs (phone) --------------------------------------------------------- */
.shell-tabs[b-23c4qzrik5] {
    display: none;
}

@media (max-width: 1023px) {
    .shell-sidebar[b-23c4qzrik5] {
        display: none;
    }

    .shell-brand-mobile[b-23c4qzrik5] {
        display: inline-flex;
    }

    .shell-tabs[b-23c4qzrik5] {
        display: flex;
        position: fixed;
        inset-inline: 0;
        bottom: 0;
        z-index: var(--fai-z-sticky);
        background: var(--fai-surface);
        border-block-start: 1px solid var(--fai-border);
        padding-block-start: 2px;
        padding-block-end: env(safe-area-inset-bottom, 0px);
    }

    .shell-tabs[b-23c4qzrik5]  a {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        min-height: var(--fai-target-min);
        padding: var(--fai-space-1);
        color: var(--fai-ink-3);
        font-size: var(--fai-text-xs);
        font-weight: 500;
        text-decoration: none;
        font-family: var(--fai-font-body);
    }

    .shell-tabs[b-23c4qzrik5]  a.active {
        color: var(--fai-primary-strong);
        font-weight: 600;
    }

    /* FAI-P07-01 — the Assistant tab is a button (opens the dock overlay), styled as its siblings. */
    .shell-tabs[b-23c4qzrik5]  .shell-tab-button {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        min-height: var(--fai-target-min);
        padding: var(--fai-space-1);
        border: none;
        background: none;
        color: var(--fai-ink-3);
        font-size: var(--fai-text-xs);
        font-weight: 500;
        font-family: var(--fai-font-body);
        cursor: pointer;
    }

    .shell-tabs[b-23c4qzrik5]  .shell-tab-guide img {
        width: 26px;
        height: 26px;
        border-radius: 999px;
        box-shadow: 0 0 0 1.5px var(--fai-primary-line);
    }

    .shell-content[b-23c4qzrik5] {
        /* Clear both floating phone layers: the bottom tab bar AND the chat FAB that sits
           above it (4.75rem + 3.25rem, see FaiChatDock) — the FAB used to overlap the last
           controls of every page (caught by the E2E layout audit). */
        padding-block-end: calc(4.75rem + 3.25rem + var(--fai-space-3));
    }

    /* Phone top bar: brand + event context + status must fit a 390px viewport. The ⌘K search
       field and the top-bar assistant button duplicate phone-first entry points (the Assistant
       bottom tab and the chat FAB), so they yield; the event switcher gets a tight cap so the
       anonymous bar (brand + switcher + battery pill + Sign in) also fits. Caught by the E2E
       layout audit: the top bar was up to 130px wider than the viewport, forcing horizontal
       scroll on every phone page. */
    .shell-topbar[b-23c4qzrik5] {
        gap: var(--fai-space-2);
        padding-inline: var(--fai-space-3);
    }

    .shell-search[b-23c4qzrik5],
    .shell-assistant-btn[b-23c4qzrik5] {
        display: none;
    }

    .shell-event[b-23c4qzrik5] {
        max-inline-size: 30vw;
    }

    /* SH redesign — phone top bar stays within 390px: the brand shows its mark only, the event
       switcher drops its booth count, and Rescue / Invite collapse to icons. */
    .shell-event-meta[b-23c4qzrik5] {
        display: none;
    }

    .shell-brand-mobile[b-23c4qzrik5] {
        padding-inline-start: 0;
    }

    /* SH (2026-09-23) — the chip used to take every spare pixel here (flex: 1 1 0, no maximum),
       which is why the bar looked jammed: with nothing else able to grow, the controls and the
       exhibition name ended up shoulder to shoulder with only the 8px gap between them, and the
       name still did not fit. Capped instead, so there is leftover space for the spacer below to
       hold. The exhibition is named in full on the page itself, so a shorter title here costs
       nothing, while the controls beside it exist nowhere else on this screen. */
    .shell-event[b-23c4qzrik5] {
        flex: 0 1 auto;
        max-inline-size: 34vw;
    }

    .shell-event-trigger[b-23c4qzrik5] {
        box-sizing: border-box;
        max-inline-size: 100%;
        overflow: hidden;
    }

    /* It is the only thing separating the controls from the exhibition chip, so hiding it was
       what fused the two groups. It stays, and takes whatever the capped chip gives back. */
    .shell-topbar-spacer[b-23c4qzrik5] {
        display: block;
        flex: 1 1 auto;
    }
    
    .shell-rescue[b-23c4qzrik5] {
        padding: var(--fai-space-1);
    }

    .shell-topbar[b-23c4qzrik5]  .shell-team-invite {
        min-width: 36px;
        justify-content: center;
        padding: var(--fai-space-1);
    }

    .shell-topbar[b-23c4qzrik5]  .shell-team-invite span,
    .shell-topbar[b-23c4qzrik5]  .shell-team-stack {
        display: none;
    }
}

/* SH redesign — mid-width desktops: the section links take the room, so the tool buttons go
   icon-only and the event switcher tightens (no horizontal scroll from 1024px up). */
@media (min-width: 1024px) and (max-width: 1439px) {
    .shell-event-meta[b-23c4qzrik5] {
        display: none;
    }

    .shell-topbar .shell-search-label[b-23c4qzrik5],
    .shell-topbar .shell-search-kbd[b-23c4qzrik5] {
        display: none;
    }

    .shell-topbar[b-23c4qzrik5]  .shell-team-invite span {
        display: none;
    }

    .shell-topbar[b-23c4qzrik5]  .shell-team-invite {
        min-width: 36px;
        justify-content: center;
        padding: var(--fai-space-1);
    }

    .shell-event[b-23c4qzrik5] {
        max-inline-size: 160px;
    }

    .shell-topbar[b-23c4qzrik5] {
        gap: var(--fai-space-2);
    }

}

/* Tool buttons never collapse below their icon: the event switcher is the flexible item. */
.shell-search[b-23c4qzrik5],
.shell-assistant-btn[b-23c4qzrik5],
.shell-rescue[b-23c4qzrik5],
.shell-pill[b-23c4qzrik5],
.shell-menu[b-23c4qzrik5] {
    flex-shrink: 0;
}

.shell-event[b-23c4qzrik5] {
    min-inline-size: 0;
}
/* /Layout/NavMenu.razor.rz.scp.css */
/* FAI-P07-02 — Sidebar navigation styles (isolated). */
.fai-nav[b-ef4pqi7x5p] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
    overflow-y: auto;
    /* Flex children default to min-height:auto, so a tall nav group used to overflow the
       sidebar and collide with the sign-out footer (caught by the E2E layout audit at
       900px viewports). Clamp the nav so it scrolls INSIDE the sidebar instead. */
    flex: 1 1 auto;
    min-height: 0;
    padding: var(--fai-space-2);
}

.nav-group[b-ef4pqi7x5p] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.nav-group-label[b-ef4pqi7x5p] {
    margin: 0 0 var(--fai-space-1);
    padding-inline: var(--fai-space-3);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--fai-ink-3);
}

/* The rows are rendered by <NavLink> (a child component), so they need ::deep — without it none of
   this applied and icons sat on the text baseline instead of being centred with the label. */
.fai-nav[b-ef4pqi7x5p]  .nav-row {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    min-height: 40px;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    font-weight: 500;
    text-decoration: none;
    transition:
        background-color var(--fai-motion-fast) var(--fai-ease),
        color var(--fai-motion-fast) var(--fai-ease);
}

.fai-nav[b-ef4pqi7x5p]  .nav-row .fai-icon {
    color: var(--fai-ink-3);
    flex: 0 0 auto;
    display: block;
    transition: color var(--fai-motion-fast) var(--fai-ease);
}

/* SH (2026-09-19) — a feature living INSIDE the page above it (e.g. "Market fit & hidden needs"
   is a section of Business canvas), not a sibling page of equal weight: indented and a size down
   so the sidebar's own shape shows the hierarchy, not just the group label. */
.fai-nav[b-ef4pqi7x5p]  .nav-row-sub {
    min-height: 34px;
    padding-inline-start: calc(var(--fai-space-3) + var(--fai-space-5));
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.fai-nav[b-ef4pqi7x5p]  .nav-row:hover {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

.fai-nav[b-ef4pqi7x5p]  .nav-row.active {
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-weight: 600;
}

.fai-nav[b-ef4pqi7x5p]  .nav-row.active .fai-icon {
    color: var(--fai-primary-strong);
}
/* /Layout/ShellTeam.razor.rz.scp.css */
/* SH redesign — top-bar team widget: avatar stack + Invite, with a popover for create/invite. */
.shell-team[b-3rhos4h1vf] {
    position: relative;
}

.shell-team-trigger[b-3rhos4h1vf] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    list-style: none;
    cursor: pointer;
}

.shell-team-trigger[b-3rhos4h1vf]::-webkit-details-marker {
    display: none;
}

.shell-team-stack[b-3rhos4h1vf] {
    display: inline-flex;
    align-items: center;
}

.shell-team-stack[b-3rhos4h1vf]  .fai-avatar + .fai-avatar,
.shell-team-more[b-3rhos4h1vf] {
    margin-inline-start: -8px;
}

.shell-team-stack[b-3rhos4h1vf]  .fai-avatar {
    box-shadow: 0 0 0 2px var(--fai-canvas);
}

.shell-team-more[b-3rhos4h1vf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding-inline: var(--fai-space-1);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    box-shadow: 0 0 0 2px var(--fai-canvas);
}

.shell-team-invite[b-3rhos4h1vf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fai-space-1);
    min-width: 36px;
    min-height: 36px;
    padding: var(--fai-space-1) var(--fai-space-3);
    /* SH (2026-09-19) — was a dashed border: a reasonable "empty, tap to add" cue next to its own
       "Invite" label, but once the label hides (narrow widths) it collapsed to a bare dashed
       circle that read as broken/placeholder next to the row's solid icon buttons. Solid, same
       family as its neighbors; the "+" glyph alone still says "add." */
    border: 1px solid var(--fai-primary-line);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-primary-strong);
    font-size: var(--fai-text-sm);
    font-weight: 500;
}

.shell-team-trigger:hover .shell-team-invite[b-3rhos4h1vf],
.shell-team-trigger:focus-visible .shell-team-invite[b-3rhos4h1vf] {
    background: var(--fai-primary-soft);
}

.shell-team:not([open]) .shell-team-panel[b-3rhos4h1vf] {
    display: none;
}

.shell-team-panel[b-3rhos4h1vf] {
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + var(--fai-space-2));
    z-index: var(--fai-z-dropdown, 40);
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    width: min(320px, 86vw);
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    box-shadow: var(--fai-shadow-md);
}

.shell-team-title[b-3rhos4h1vf] {
    margin: 0;
    font-weight: 600;
    color: var(--fai-ink);
}

.shell-team-hint[b-3rhos4h1vf] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.shell-team-members[b-3rhos4h1vf] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.shell-team-members li[b-3rhos4h1vf] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
}

.shell-team-form[b-3rhos4h1vf] {
    display: flex;
    gap: var(--fai-space-2);
}

.shell-team-input[b-3rhos4h1vf] {
    flex: 1;
    min-width: 0;
    min-height: 36px;
    padding-inline: var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font: inherit;
    font-size: var(--fai-text-sm);
}

.shell-team-action[b-3rhos4h1vf] {
    min-height: 36px;
    padding-inline: var(--fai-space-3);
    border: 0;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font: inherit;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    cursor: pointer;
}

.shell-team-action:disabled[b-3rhos4h1vf] {
    opacity: .55;
    cursor: not-allowed;
}

.shell-team-link[b-3rhos4h1vf] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: 0;
    border: 0;
    background: none;
    color: var(--fai-link);
    font: inherit;
    font-size: var(--fai-text-sm);
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
}

.shell-team-link:hover[b-3rhos4h1vf] {
}

.shell-team-msg[b-3rhos4h1vf] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-success);
}

.shell-team-msg-error[b-3rhos4h1vf] {
    color: var(--fai-danger);
}
/* /Onboarding/OnboardTourBar.razor.rz.scp.css */
/* A small control puck, not a speech bubble. With the narration spoken rather than printed
   (Sana, 2026-09-21), this only has to carry back, next, a position and a way out, so it shrinks
   to a pill that sits out of the way of the page it is pointing at. */
.tour-bar[b-m8f6f37h4f] {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 60; /* above shell-tabs (mobile bottom nav) and the chat dock/FAB */
    display: flex;
    justify-content: center;
    padding: var(--fai-space-4);
    padding-bottom: calc(var(--fai-space-4) + env(safe-area-inset-bottom));
    pointer-events: none;
}

/* Off-screen: the spoken line, kept for screen readers since there is no visible text. */
.tour-bar-sr[b-m8f6f37h4f] {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.tour-bar-card[b-m8f6f37h4f] {
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: 0.4375rem 0.5rem;
    background: var(--fai-color-surface);
    border: 1px solid var(--fai-color-border);
    border-radius: 999px;
    box-shadow: var(--fai-shadow-md);
    animation: tour-bar-in-b-m8f6f37h4f 0.35s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

/* Rises into place rather than appearing mid-screen, so the start of the tour reads as something
   arriving to help rather than a dialog interrupting. */
@keyframes tour-bar-in-b-m8f6f37h4f {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: none; }
}

.tour-bar-nav[b-m8f6f37h4f] {
    inline-size: 2.25rem;
    block-size: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: var(--fai-color-surface-2);
    color: var(--fai-color-content-1);
    cursor: pointer;
    transition: background-color 0.18s ease, transform 0.12s ease, opacity 0.18s ease;
}

.tour-bar-nav:hover:not(:disabled)[b-m8f6f37h4f] {
    background: var(--fai-color-surface-3);
}

.tour-bar-nav:active:not(:disabled)[b-m8f6f37h4f] {
    transform: scale(0.94);
}

.tour-bar-nav:disabled[b-m8f6f37h4f] {
    opacity: 0.35;
    cursor: default;
}

/* The forward move is the one with weight; back is a quiet escape hatch beside it. Yellow, not
   the brand blue, so the two things the tour owns on screen — this control and the ring around
   its target — read as one system instead of two competing accents. */
.tour-bar-nav-next[b-m8f6f37h4f] {
    background: #ffe066;
    color: #1a1a1a;
}

.tour-bar-nav-next:hover:not(:disabled)[b-m8f6f37h4f] {
    background: #ffd43b;
}

.tour-bar-progress[b-m8f6f37h4f] {
    min-inline-size: 3rem;
    text-align: center;
    font-size: var(--fai-text-xs);
    font-weight: 600;
    font-variant-numeric: tabular-nums; /* the pill must not resize as the number grows */
    letter-spacing: 0.04em;
    color: var(--fai-color-content-muted);
    direction: ltr; /* "3 / 19" reads the same in both languages */
}

.tour-bar-skip[b-m8f6f37h4f] {
    margin-inline-start: var(--fai-space-1, 4px);
    padding: 0.375rem 0.75rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    font-size: var(--fai-text-xs);
    color: var(--fai-color-content-muted);
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.tour-bar-skip:hover[b-m8f6f37h4f] {
    background: var(--fai-color-surface-2);
    color: var(--fai-color-content-1);
}

.tour-bar-nav:focus-visible[b-m8f6f37h4f],
.tour-bar-skip:focus-visible[b-m8f6f37h4f] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

@media (max-width: 640px) {
    .tour-bar[b-m8f6f37h4f] {
        padding-bottom: calc(4.5rem + env(safe-area-inset-bottom)); /* clears the phone tab bar */
    }
}

@media (prefers-reduced-motion: reduce) {
    .tour-bar-card[b-m8f6f37h4f] {
        animation: none;
    }

    .tour-bar-nav[b-m8f6f37h4f] {
        transition: none;
    }
}
/* /Onboarding/TourSpotlight.razor.rz.scp.css */
/* One box, positioned exactly over the target nav link. It RINGS the target rather than dimming
   everything else (Sana, 2026-09-20: "don't make the background darker so people can see the
   features") — the old oversized 9999px shadow blacked out the very screen the tour is meant to
   show off. A ring plus a soft halo is enough to say "look here" while the page stays readable,
   which also matters because she records these runs. */
/* Yellow and finer than it was (Sana, 2026-09-21: "make the line thickness a little less, and
   make it yellow not blue"). Now that the tour says nothing on screen, this ring is the only thing
   pointing, so it is the onboarding's accent rather than the app's brand blue: 2px instead of 3px,
   with a soft wash around it so it still reads against a busy page. */
.tour-spotlight[b-x2ncjjrixk] {
    position: fixed;
    z-index: 55; /* below OnboardTourBar (60), above the shell/page content */
    border-radius: var(--fai-radius-md);
    box-shadow:
        0 0 0 2px #ffc700,
        0 0 0 6px rgb(255 199 0 / 22%),
        0 0 20px 6px rgb(255 199 0 / 18%);
    pointer-events: none;
    transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease;
    animation: tour-spotlight-in-b-x2ncjjrixk 0.4s ease both;
}

/* Settles onto its first target instead of snapping, which otherwise reads as a rendering glitch
   at the moment the tour begins. Moves between stops stay on the transition above. */
@keyframes tour-spotlight-in-b-x2ncjjrixk {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .tour-spotlight[b-x2ncjjrixk] {
        transition: none;
        animation: none;
    }
}
/* /Pages/Admin/AdminAudit.razor.rz.scp.css */
/* FAI-P07-09 — Audit log page (§7.9). */
.adma[b-pgongsxj2b] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.adma-action[b-pgongsxj2b] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-primary-strong);
}

.adma-details[b-pgongsxj2b] {
    max-width: 380px;
}

.adma-empty[b-pgongsxj2b] {
    text-align: center;
    color: var(--fai-ink-3);
    padding: 24px 12px !important;
}
/* /Pages/Admin/AdminBooths.razor.rz.scp.css */
/* FAI-P07-05 — Booth directory + import wizard (§7.4, §9.3). */
.admb[b-u1e8nycyzl] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.admb-company[b-u1e8nycyzl] {
    font-weight: 600;
    color: var(--fai-ink);
}

.admb-actions[b-u1e8nycyzl] {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.admb-empty[b-u1e8nycyzl] {
    text-align: center;
    color: var(--fai-ink-3);
    padding: 24px 12px !important;
}

.admb-textarea[b-u1e8nycyzl] {
    min-height: 72px;
    font-family: var(--fai-font-body);
}

.admb-import-payload[b-u1e8nycyzl] {
    min-height: 160px;
}

.admb-import-summary[b-u1e8nycyzl] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.admb-import-note[b-u1e8nycyzl] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.admb-import-table[b-u1e8nycyzl] {
    max-height: 46vh;
    overflow-y: auto;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
}

.admb-import-invalid td[b-u1e8nycyzl] {
    background: var(--fai-danger-soft);
}

.admb-import-duplicate td[b-u1e8nycyzl] {
    background: var(--fai-warning-soft);
}
/* /Pages/Admin/AdminEnrichment.razor.rz.scp.css */
/* FAI-P07-05 — Enrichment queue page (§7.6). */
.admn[b-hgigg8atet] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.admn-event-label[b-hgigg8atet] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.admn-company[b-hgigg8atet] {
    font-weight: 600;
    color: var(--fai-ink);
}

.admn-url[b-hgigg8atet] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admn-actions[b-hgigg8atet] {
    display: flex;
    justify-content: flex-end;
}
/* /Pages/Admin/AdminEvents.razor.rz.scp.css */
/* FAI-P07-04 — Exhibitions page styles (§7.3): row density + lifecycle action cluster. */
.adme[b-app65gxo6p] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.adme-name[b-app65gxo6p] {
    font-weight: 600;
    color: var(--fai-primary-strong);
    text-decoration: none;
}

.adme-name:hover[b-app65gxo6p] {
}

.adme-actions[b-app65gxo6p] {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* FAI-P07-12 — crawl panel (§7.6 extension): source picker + start, live status line, warnings. */
.adme-crawl[b-app65gxo6p] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.adme-crawl-controls[b-app65gxo6p] {
    display: flex;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
}

.adme-crawl-controls .admx-field[b-app65gxo6p] {
    flex: 1 1 260px;
    max-width: 420px;
}

.adme-crawl-preset[b-app65gxo6p] {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.adme-crawl-status[b-app65gxo6p] {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.adme-crawl-warnings[b-app65gxo6p] {
    margin: 0;
    padding-left: 20px;
    color: var(--fai-ink-3); /* FAI-P08-03 — was undefined --fai-muted masked by a fallback */
    font-size: 13px;
}
/* /Pages/Admin/AdminFlags.razor.rz.scp.css */
/* FAI-P07-09 — Feature flags page (§7.9). */
.admf[b-zl8odg7f2b] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.admf-key[b-zl8odg7f2b] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink);
}

.admf-actions[b-zl8odg7f2b] {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
    flex-wrap: wrap;
}
/* /Pages/Admin/AdminHome.razor.rz.scp.css */
/* FAI-P07-04..09 — Console home (§7.2): KPI row + activity feed. */
.admh[b-ir4q5xmu4e] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.admh-stats[b-ir4q5xmu4e] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
}

.admh-error[b-ir4q5xmu4e] {
    margin: 0;
    padding: 12px 16px;
    border-radius: var(--fai-radius-sm);
    background: var(--fai-danger-soft);
    border: 1px solid var(--fai-border);
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.admh-feed[b-ir4q5xmu4e] {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.admh-feed-item[b-ir4q5xmu4e] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--fai-border);
}

.admh-feed-item:last-child[b-ir4q5xmu4e] {
    border-bottom: none;
}

.admh-feed-text[b-ir4q5xmu4e] {
    min-width: 0;
    flex: 1;
}

.admh-feed-action[b-ir4q5xmu4e] {
    margin: 0;
    font-weight: 600;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.admh-feed-details[b-ir4q5xmu4e] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admh-feed-time[b-ir4q5xmu4e] {
    flex-shrink: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.admh-feed-empty[b-ir4q5xmu4e] {
    padding: 8px 0;
}

.admh-links[b-ir4q5xmu4e] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admh-link[b-ir4q5xmu4e] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
    font-weight: 500;
    text-decoration: none;
    transition: border-color var(--fai-motion-fast) var(--fai-ease),
        color var(--fai-motion-fast) var(--fai-ease);
}

.admh-link:hover[b-ir4q5xmu4e] {
    border-color: var(--fai-primary-line);
    color: var(--fai-primary-strong);
}
/* /Pages/Admin/AdminIntelligence.razor.rz.scp.css */
/* FAI-P07-08 — Learning-layer oversight page (§7.8). */
.admi[b-kg1cdr3ywa] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.admi-stats[b-kg1cdr3ywa] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
}

.admi-pad[b-kg1cdr3ywa] {
    padding: 12px;
}

.admi-anomalies[b-kg1cdr3ywa] {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.admi-anomaly[b-kg1cdr3ywa] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--fai-border);
}

.admi-anomaly:last-child[b-kg1cdr3ywa] {
    border-bottom: none;
}

.admi-anomaly-text[b-kg1cdr3ywa] {
    min-width: 0;
}

.admi-anomaly-title[b-kg1cdr3ywa] {
    margin: 0;
    font-weight: 600;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.admi-anomaly-detail[b-kg1cdr3ywa] {
    margin: 2px 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.admi-bar[b-kg1cdr3ywa] {
    display: inline-block;
    vertical-align: middle;
    inline-size: 90px;
    block-size: 8px;
    margin-inline-end: 8px;
    background: var(--fai-surface-3);
    border-radius: var(--fai-radius-pill);
    overflow: hidden;
}

.admi-bar-fill[b-kg1cdr3ywa] {
    display: block;
    block-size: 100%;
    background: var(--fai-primary);
}
/* /Pages/Admin/AdminOrders.razor.rz.scp.css */
/* FAI-P07-09 — Orders page (§7.9). */
.admo[b-yg7juduyfl] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.admo-asset[b-yg7juduyfl] {
    font-weight: 600;
    color: var(--fai-ink);
}
/* /Pages/Admin/AdminPrompts.razor.rz.scp.css */
/* FAI-P07-09 — Prompt library page (§7.9): list + editor + history. */
.admp[b-idc6t2imbn] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.admp-grid[b-idc6t2imbn] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 16px;
    align-items: start;
}

@media (max-width: 1199px) {
    .admp-grid[b-idc6t2imbn] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.admp-key[b-idc6t2imbn] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    text-align: start;
    font: inherit;
    color: inherit;
}

.admp-key-name[b-idc6t2imbn] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-primary-strong);
}

.admp-selected td[b-idc6t2imbn] {
    background: var(--fai-primary-soft);
}

.admp-editor[b-idc6t2imbn] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.admp-body-field[b-idc6t2imbn] {
    margin-top: 10px;
}

.admp-body[b-idc6t2imbn] {
    min-height: 260px;
}

.admp-actions[b-idc6t2imbn] {
    display: flex;
    justify-content: flex-end;
    margin-top: 12px;
}

.admp-history-actions[b-idc6t2imbn] {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

.admp-history-empty[b-idc6t2imbn] {
    text-align: center;
    color: var(--fai-ink-3);
    padding: 16px 12px !important;
}
/* /Pages/Admin/AdminUsers.razor.rz.scp.css */
/* FAI-P07-07 — Users & roles page (§7.7). */
.admu[b-9wbcyb2xeq] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.admu-name[b-9wbcyb2xeq] {
    font-weight: 600;
    color: var(--fai-ink);
}

.admu-role[b-9wbcyb2xeq] {
    min-width: 150px;
}

.admu-actions[b-9wbcyb2xeq] {
    display: flex;
    justify-content: flex-end;
}

.admu-empty[b-9wbcyb2xeq] {
    text-align: center;
    color: var(--fai-ink-3);
    padding: 24px 12px !important;
}
/* /Pages/Assets.razor.rz.scp.css */
/* FAI-P01-06/07/08/10 (M4)  1�7 Assets · print · concierge layout (UI_UX_PLAN §6.7): studio forms +
   preview cards, bilingual WhatsApp bubbles (RTL), print pipeline tracker, concierge quote/job.
   Logical properties throughout (RTL-safe). */
.assets[b-kd9zvdukv0] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.assets-panel[b-kd9zvdukv0] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.assets-form[b-kd9zvdukv0] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.assets-fill-head[b-kd9zvdukv0] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: flex-start;
    color: var(--fai-primary-ink);
}

.assets-fill-head div[b-kd9zvdukv0] {
    color: initial;
}

.assets-section-title[b-kd9zvdukv0] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.assets-muted[b-kd9zvdukv0] {
    margin: var(--fai-space-1) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.assets-label[b-kd9zvdukv0] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 var(--fai-space-1);
}

.assets-input[b-kd9zvdukv0],
.assets-select[b-kd9zvdukv0] {
    inline-size: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    min-block-size: 40px;
}

.assets-input:focus[b-kd9zvdukv0],
.assets-select:focus[b-kd9zvdukv0] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.assets-textarea[b-kd9zvdukv0] {
    resize: vertical;
    min-block-size: 6rem;
}

.assets-error[b-kd9zvdukv0] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.assets-note[b-kd9zvdukv0] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    color: var(--fai-primary-strong);
    font-size: var(--fai-text-sm);
}

.assets-note-ok[b-kd9zvdukv0] {
    color: var(--fai-success);
}

.assets-actions[b-kd9zvdukv0] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    align-items: center;
}

.assets-gen-row[b-kd9zvdukv0] {
    display: flex;
    flex-wrap: wrap;
}

.assets-gen-picker[b-kd9zvdukv0] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

/* --- Print form grid --- */
.assets-print-grid[b-kd9zvdukv0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: var(--fai-space-3);
}

.assets-field[b-kd9zvdukv0] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.assets-field-check[b-kd9zvdukv0] {
    flex-direction: row;
    align-items: center;
    gap: var(--fai-space-2);
    min-block-size: 44px;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
}

.assets-field-check input[b-kd9zvdukv0] {
    inline-size: 1.1rem;
    block-size: 1.1rem;
    accent-color: var(--fai-primary);
}

.assets-qty[b-kd9zvdukv0] {
    display: flex;
    gap: var(--fai-space-1);
    align-items: center;
}

.assets-qty .assets-input[b-kd9zvdukv0] {
    max-inline-size: 7rem;
}

/* --- One-pager / job key-values --- */
.assets-kv[b-kd9zvdukv0] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.assets-headline[b-kd9zvdukv0] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

/* --- WhatsApp bilingual bubbles --- */
.assets-wa[b-kd9zvdukv0] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
    align-items: flex-start;
}

.assets-wa-msg[b-kd9zvdukv0] {
    position: relative;
    max-inline-size: 42rem;
    padding: var(--fai-space-3) var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    border-start-end-radius: var(--fai-radius-sm);
    background: var(--fai-surface-2);
}

.assets-wa-lang[b-kd9zvdukv0] {
    position: absolute;
    inset-block-start: calc(-1 * var(--fai-space-2));
    inset-inline-end: var(--fai-space-3);
    padding: 0 var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary);
    color: var(--fai-surface);
    font-size: var(--fai-text-xs);
    font-weight: 700;
}

.assets-wa-text[b-kd9zvdukv0] {
    margin: 0;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
    line-height: 1.6;
    white-space: pre-wrap;
}

/* --- Playbook blocks --- */
.assets-pb[b-kd9zvdukv0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: var(--fai-space-4);
}

.assets-list[b-kd9zvdukv0] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.assets-list li[b-kd9zvdukv0] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.assets-list svg[b-kd9zvdukv0] {
    flex-shrink: 0;
    margin-top: 3px;
    color: var(--fai-primary-ink);
}

/* --- Print pipeline tracker --- */
.assets-tracker[b-kd9zvdukv0] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-4);
}

.assets-tracker li[b-kd9zvdukv0] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
    flex: 1 1 8rem;
    min-inline-size: 8rem;
}

.assets-step-dot[b-kd9zvdukv0] {
    inline-size: 12px;
    block-size: 12px;
    border-radius: var(--fai-radius-pill);
    border: 2px solid var(--fai-border-strong);
    background: var(--fai-surface);
    margin-top: 4px;
    flex-shrink: 0;
}

.assets-step-done .assets-step-dot[b-kd9zvdukv0] {
    border-color: var(--fai-success);
    background: var(--fai-success);
}

.assets-step-next .assets-step-dot[b-kd9zvdukv0] {
    border-color: var(--fai-primary-line);
    box-shadow: 0 0 0 4px var(--fai-primary-soft);
}

.assets-step-name[b-kd9zvdukv0] {
    display: block;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.assets-step-done .assets-step-name[b-kd9zvdukv0] {
    color: var(--fai-ink);
}

.assets-step-next .assets-step-name[b-kd9zvdukv0] {
    color: var(--fai-primary-strong);
}

.assets-step-note[b-kd9zvdukv0] {
    display: block;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

/* FAI-P08-05 �1�7 brochure/deck photo source row (one-pager vision path). */
.assets-photo-row[b-kd9zvdukv0] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.assets-photo-thumb[b-kd9zvdukv0] {
    inline-size: 72px;
    block-size: 72px;
    object-fit: cover;
    border-radius: var(--fai-radius-md);
    border: 1px solid var(--fai-border-strong);
    background: var(--fai-surface);
}

.assets-photo-pick[b-kd9zvdukv0] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px dashed var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    color: var(--fai-primary-strong);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    cursor: pointer;
    min-block-size: 44px; /* FAI-P05-14 motor-friendly tap target */
}

.assets-photo-pick:hover[b-kd9zvdukv0],
.assets-photo-pick:focus-visible[b-kd9zvdukv0] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

/* FAI-P09-02 �� Design Studio (constrained editor + live preview). */
.dsn-gallery[b-kd9zvdukv0] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--fai-space-3);
}

.dsn-card[b-kd9zvdukv0] {
    display: grid;
    gap: 6px;
    align-content: start;
    padding: var(--fai-space-3);
    text-align: start;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    cursor: pointer;
    font: inherit;
    min-block-size: 44px;
}

.dsn-card:hover[b-kd9zvdukv0],
.dsn-card:focus-visible[b-kd9zvdukv0] {
    border-color: var(--fai-primary-line);
}

.dsn-card-active[b-kd9zvdukv0] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.dsn-card-name[b-kd9zvdukv0] {
    font-weight: 700;
}

.dsn-card-desc[b-kd9zvdukv0] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.dsn-card-size[b-kd9zvdukv0] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    font-variant-numeric: tabular-nums;
}

.dsn-block[b-kd9zvdukv0] {
    display: grid;
    gap: 6px;
}

.dsn-block-head[b-kd9zvdukv0] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.dsn-block-required[b-kd9zvdukv0] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    font-weight: 400;
}

.dsn-issues[b-kd9zvdukv0] {
    margin: 0;
    padding-inline-start: 20px;
}

.dsn-preview[b-kd9zvdukv0] {
    width: 100%;
    min-block-size: 640px;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: #fff;
}

.dsn-print-row[b-kd9zvdukv0] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-3);
    align-items: end;
}

.dsn-field[b-kd9zvdukv0] {
    display: grid;
    gap: 4px;
    font-size: var(--fai-text-sm);
    font-weight: 600;
}
/* /Pages/Assistant.razor.rz.scp.css */
/* FAI-P07-01 — /assistant page: history rail + conversation panel. Desktop side-by-side; phone
   stacks (history collapses above the thread). Logical properties for RTL. */
.assistant-layout[b-zrea96ygvj] {
    display: grid;
    grid-template-columns: minmax(15rem, 19rem) 1fr;
    gap: 1rem;
    align-items: start;
    margin-top: 1rem;
    min-block-size: 28rem;
}

/* History rail */
.assistant-history[b-zrea96ygvj] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    display: flex;
    flex-direction: column;
    max-block-size: 36rem;
    overflow: hidden;
}

.history-search[b-zrea96ygvj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 0.75rem;
    border-bottom: 1px solid var(--fai-border);
    color: var(--fai-ink-3);
}

    .history-search input[b-zrea96ygvj] {
        flex: 1;
        border: none;
        background: transparent;
        font: inherit;
        font-size: 0.875rem;
        color: var(--fai-ink);
        min-inline-size: 0;
    }

        .history-search input:focus-visible[b-zrea96ygvj] {
            outline: none;
        }

.history-empty[b-zrea96ygvj] {
    margin: 0;
    padding: 1rem 0.75rem;
    font-size: 0.8125rem;
    color: var(--fai-ink-3);
}

.history-list[b-zrea96ygvj] {
    list-style: none;
    margin: 0;
    padding: 0.375rem;
    overflow-y: auto;
    display: grid;
    gap: 0.25rem;
}

.history-row[b-zrea96ygvj] {
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
    border-radius: var(--fai-radius-md);
    border: 1px solid transparent;
}

    .history-row:hover[b-zrea96ygvj],
    .history-row:focus-within[b-zrea96ygvj] {
        background: var(--fai-surface-2);
        border-color: var(--fai-border);
    }

.history-row-active[b-zrea96ygvj] {
    background: var(--fai-primary-soft);
    border-color: var(--fai-primary-line);
}

.history-open[b-zrea96ygvj] {
    flex: 1;
    min-inline-size: 0;
    border: none;
    background: none;
    text-align: start;
    padding: 0.5rem 0.625rem;
    cursor: pointer;
    font: inherit;
    display: grid;
    gap: 0.125rem;
}

.history-title[b-zrea96ygvj] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--fai-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.history-meta[b-zrea96ygvj] {
    font-size: 0.6875rem;
    color: var(--fai-ink-3);
}

.history-actions[b-zrea96ygvj] {
    display: none;
    align-items: center;
    gap: 0.125rem;
    padding-inline-end: 0.375rem;
}

.history-row:hover .history-actions[b-zrea96ygvj],
.history-row:focus-within .history-actions[b-zrea96ygvj] {
    display: flex;
}

.history-action[b-zrea96ygvj] {
    inline-size: 1.75rem;
    block-size: 1.75rem;
    display: grid;
    place-items: center;
    border: none;
    border-radius: var(--fai-radius-sm);
    background: transparent;
    color: var(--fai-ink-3);
    cursor: pointer;
}

    .history-action:hover[b-zrea96ygvj],
    .history-action:focus-visible[b-zrea96ygvj] {
        background: var(--fai-surface-3);
        color: var(--fai-ink);
    }

.history-action-danger:hover[b-zrea96ygvj],
.history-action-danger:focus-visible[b-zrea96ygvj] {
    color: var(--fai-danger);
}

/* Conversation panel */
.assistant-panel[b-zrea96ygvj] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    display: flex;
    flex-direction: column;
    min-block-size: 28rem;
    max-block-size: 36rem;
    overflow: hidden;
}

.assistant-panel-head[b-zrea96ygvj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--fai-border);
}

    .assistant-panel-head h2[b-zrea96ygvj] {
        margin: 0;
        font-family: var(--fai-font-display);
        font-size: 1rem;
        font-weight: 600;
        color: var(--fai-ink);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.assistant-panel-context[b-zrea96ygvj] {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.75rem;
    color: var(--fai-primary-strong);
    background: var(--fai-primary-soft);
    border-radius: var(--fai-radius-pill);
    padding: 0.25rem 0.625rem;
}

/* Phone: history collapses under, thread first */
@media (max-width: 1023px) {
    .assistant-layout[b-zrea96ygvj] {
        grid-template-columns: 1fr;
        min-block-size: 0;
    }

    .assistant-panel[b-zrea96ygvj] {
        order: -1;
        min-block-size: 22rem;
        max-block-size: none;
    }

    .assistant-history[b-zrea96ygvj] {
        max-block-size: 18rem;
    }
}
/* /Pages/Auth.razor.rz.scp.css */
/* FAI-P00-05 + FAI-P07-02 — auth surface (/auth). Tokens only, logical properties for RTL. */
.aut-wrap[b-xq53epnxpe] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-block-size: calc(100dvh - 8rem);
    padding: clamp(1rem, 4vw, 3rem) 1rem;
}

.aut-card[b-xq53epnxpe] {
    box-sizing: border-box;
    inline-size: min(100%, 28rem);
    max-inline-size: 28rem;
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    box-shadow: var(--fai-shadow-md);
    padding: var(--fai-space-6);
}

.aut-brand[b-xq53epnxpe] {
    margin: 0 0 var(--fai-space-5);
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
    letter-spacing: -0.01em;
}

/* This line is English on a shell that may be right-to-left, where the bidi algorithm throws its
   full stop to the front (".Exhibition intelligence in your pocket"). Same isolation as the
   micro-feature and profile cards: each line takes its direction from its own first letter. */
.aut-brand[b-xq53epnxpe],
.aut-tagline[b-xq53epnxpe] {
    unicode-bidi: plaintext;
}

.aut-tagline[b-xq53epnxpe] {
    margin: 0 0 var(--fai-space-5);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.aut-mode[b-xq53epnxpe] {
    display: inline-flex;
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    overflow: hidden;
    margin-block-end: var(--fai-space-5);
}

.aut-mode-btn[b-xq53epnxpe] {
    appearance: none;
    border: none;
    padding: var(--fai-space-2) var(--fai-space-4);
    min-block-size: var(--fai-target-min);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease;
}

.aut-mode-btn + .aut-mode-btn[b-xq53epnxpe] {
    border-inline-start: 1px solid var(--fai-border-strong);
}

/* The selected segment wears the same yellow as the submit button (Sana, 2026-09-22: "make the
   whole sign in yellow, the buttons"), so every button on this page is one family rather than a
   blue toggle sitting above a yellow call to action. Dark ink, since the brand's primary-strong
   blue on yellow is both off-palette and hard to read. */
.aut-mode-on[b-xq53epnxpe] {
    background: #ffe066;
    color: #1a1a1a;
}

.aut-mode-btn:focus-visible[b-xq53epnxpe] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

.aut-field[b-xq53epnxpe] {
    margin-block-end: var(--fai-space-4);
}

.aut-label[b-xq53epnxpe] {
    display: block;
    margin-block-end: var(--fai-space-1);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.aut-input[b-xq53epnxpe] {
    box-sizing: border-box;
    display: block;
    inline-size: 100% !important;
    width: 100% !important;
    min-inline-size: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    min-block-size: 44px;
}

.aut-input:focus[b-xq53epnxpe] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.aut-error[b-xq53epnxpe] {
    margin: 0 0 var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

/* The way in wears the onboarding's yellow, not the brand blue (Sana, 2026-09-22: "make sign in
   yellow"), so the first screen of the product matches the guided intro it leads into. ::deep
   because the button is a child component (FaiButton) and scoped CSS stops at this page's markup.
   Dark text, since white on this yellow fails contrast badly. */
.aut-card[b-xq53epnxpe]  .fai-btn-primary {
    background: #ffe066;
    border-color: #ffe066;
    color: #1a1a1a;
}

.aut-card[b-xq53epnxpe]  .fai-btn-primary:hover:not(:disabled) {
    background: #ffd43b;
    border-color: #ffd43b;
}
/* /Pages/Canvas.razor.rz.scp.css */
/* FAI-P06-03 — living canvas surface (/canvas). Zone visuals (zone-card/zone-dot/zone-fill and
   .canvas-ring) live in app.css — shared with the Home ambient ring. */
.cnv-stack[b-b7y5wj0wcw] {
    display: grid;
    gap: var(--fai-space-4);
}

.cnv-cta[b-b7y5wj0wcw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.cnv-cta:hover[b-b7y5wj0wcw] {
    background: var(--fai-primary-fill-strong);
}

.cnv-ambient[b-b7y5wj0wcw] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-4);
}

.cnv-ambient-signal[b-b7y5wj0wcw] {
    margin: 0;
    font-size: var(--fai-text-body);
    font-weight: 600;
    color: var(--fai-ink);
}

.cnv-ambient-fill[b-b7y5wj0wcw] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    font-variant-numeric: tabular-nums;
}

/* Skeleton only — the real board is .cnv-board below. */
.cnv-zones[b-b7y5wj0wcw] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: var(--fai-space-3);
}

/* SH (2026-09-20) — the Business Model Canvas shape: a tall block down each side, a split column
   in the middle, and a full-width band underneath. Drawn as one ruled sheet, so the 1px gaps ARE
   the rules: the board paints the line colour and each block paints over it with its own surface.
   That avoids the doubled borders you get from bordering every cell, and it mirrors correctly in
   RTL without any special casing. */
.cnv-board[b-b7y5wj0wcw] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas:
        "partners investors customers"
        "partners channels  customers"
        "money    money     money";
    gap: 1px;
    background: var(--fai-border-strong);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-lg);
    overflow: hidden;
}

.cnv-area-partners[b-b7y5wj0wcw] { grid-area: partners; }
.cnv-area-investors[b-b7y5wj0wcw] { grid-area: investors; }
.cnv-area-channels[b-b7y5wj0wcw] { grid-area: channels; }
.cnv-area-customers[b-b7y5wj0wcw] { grid-area: customers; }
.cnv-area-money[b-b7y5wj0wcw] { grid-area: money; }

.zone-card[b-b7y5wj0wcw] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    padding: var(--fai-space-4);
    min-block-size: 9.5rem;
    /* The board owns the corners and the rules, so the card drops its own radius and the thick
       state stripe that would otherwise cut across a ruled line. State still reads from the dot. */
    border-radius: 0;
    border-inline-start: 0;
    background: var(--fai-surface);
}

.zone-empty[b-b7y5wj0wcw] {
    background: var(--fai-surface-2);
}

.cnv-zone-head[b-b7y5wj0wcw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
    margin-block-end: 0;
}

.cnv-zone-name[b-b7y5wj0wcw] {
    margin: 0;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

/* An empty block should read as deliberately blank space, not as a caption crammed under the
   label, so the line takes the whole rest of the block and sits centred in it. */
.cnv-zone-quiet[b-b7y5wj0wcw] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding-block: var(--fai-space-3);
    text-align: center;
    text-wrap: balance;
    font-size: var(--fai-text-sm);
    font-style: italic;
    color: var(--fai-ink-3);
}

.cnv-zone-card[b-b7y5wj0wcw] {
    margin: 0 0 var(--fai-space-1);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.cnv-zone-who[b-b7y5wj0wcw] {
    font-weight: 600;
}

.cnv-zone-stage[b-b7y5wj0wcw] {
    color: var(--fai-ink-3);
}

.cnv-zone-story[b-b7y5wj0wcw] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    font-style: italic;
    color: var(--fai-ink-3);
}

.cnv-recs[b-b7y5wj0wcw] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
}

.cnv-rec[b-b7y5wj0wcw] {
    display: grid;
    gap: 2px;
    padding-block: var(--fai-space-2);
}

.cnv-rec + .cnv-rec[b-b7y5wj0wcw] {
    border-block-start: 1px solid var(--fai-border);
}

.cnv-rec-name[b-b7y5wj0wcw] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.cnv-rec-where[b-b7y5wj0wcw] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.cnv-rec-why[b-b7y5wj0wcw] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.cnv-summary[b-b7y5wj0wcw] {
    margin: 0;
    font-size: var(--fai-text-body);
    color: var(--fai-ink-2);
}

/* SH redesign — strategy boxes at the top of Canvas. */
/* SH (2026-09-20) — one box now that the three analyses are one tool, so this is a single
   full-width row (icon beside the text) rather than a four-column grid that would leave a
   quarter-width card stranded at one edge. */
.cnv-strategy[b-b7y5wj0wcw] {
    display: grid;
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-6);
}

.cnv-strategy-box[b-b7y5wj0wcw] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-4);
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-ai-soft);
    color: var(--fai-ink);
    text-decoration: none;
}

.cnv-strategy-text[b-b7y5wj0wcw] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
    min-inline-size: 0;
}

.cnv-strategy-box:hover[b-b7y5wj0wcw],
.cnv-strategy-box:focus-visible[b-b7y5wj0wcw] {
    border-color: var(--fai-primary-line);
}

.cnv-strategy-icon[b-b7y5wj0wcw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-primary-ink);
}

.cnv-strategy-title[b-b7y5wj0wcw] {
    font-weight: 600;
}

.cnv-strategy-sub[b-b7y5wj0wcw] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.cnv-section-title[b-b7y5wj0wcw] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg, 1.25rem);
    font-weight: 600;
    color: var(--fai-ink);
}

.cnv-section-sub[b-b7y5wj0wcw] {
    margin: 0 0 var(--fai-space-4);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

@media (max-width: 600px) {
    /* Stack the icon above the text once the row gets tight. */
    .cnv-strategy-box[b-b7y5wj0wcw] {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--fai-space-2);
    }
}

@media (max-width: 820px) {
    /* The canvas shape needs width to mean anything. Below that it becomes one column, in the
       same reading order as the board. */
    .cnv-board[b-b7y5wj0wcw] {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "partners"
            "investors"
            "channels"
            "customers"
            "money";
    }

    .zone-card[b-b7y5wj0wcw] {
        min-block-size: 7rem;
    }
}
/* /Pages/Competitors.razor.rz.scp.css */
/* FAI-P01-11..16 (M3) — Competitor workspace layout (isolated). */
.comp[b-87ef1euays] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.comp-panel[b-87ef1euays] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.comp-error[b-87ef1euays] {
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-danger-soft);
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.comp-form[b-87ef1euays] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.comp-fill-head[b-87ef1euays] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: flex-start;
}

.comp-section-title[b-87ef1euays] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.comp-muted[b-87ef1euays] {
    margin: var(--fai-space-1) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.comp-hint[b-87ef1euays] {
    margin: 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.comp-label[b-87ef1euays] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.comp-input[b-87ef1euays] {
    width: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    min-block-size: 44px;
}

.comp-input:focus[b-87ef1euays] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.comp-textarea[b-87ef1euays] {
    resize: vertical;
    min-block-size: unset;
}

.comp-actions[b-87ef1euays] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    align-items: center;
}

.comp-grid-2[b-87ef1euays] {
    display: grid;
    gap: var(--fai-space-3);
    grid-template-columns: 1fr;
}

.comp-signal-chips[b-87ef1euays] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

/* Own-company analysis + key-value grids */
.own-grid[b-87ef1euays] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

/* Tracked-competitor list */
.comp-list[b-87ef1euays] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.comp-row[b-87ef1euays] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    align-items: center;
    justify-content: space-between;
    padding-block: var(--fai-space-3);
    border-block-end: 1px solid var(--fai-border);
}

.comp-row:last-child[b-87ef1euays] {
    padding-block-end: 0;
    border-block-end: none;
}

.comp-row-main[b-87ef1euays] {
    min-inline-size: 0;
    flex: 1;
}

.comp-row-name[b-87ef1euays] {
    margin: 0;
    font-weight: 600;
    color: var(--fai-ink);
}

.comp-row-meta[b-87ef1euays] {
    margin: var(--fai-space-1) 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.comp-row-actions[b-87ef1euays] {
    display: flex;
    gap: var(--fai-space-1);
    align-items: center;
    flex-shrink: 0;
}

/* Deep-analysis picker + CTA */
.comp-picker[b-87ef1euays] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

.comp-analyze-cta[b-87ef1euays] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-3);
    align-items: center;
    justify-content: space-between;
}

.comp-analysis-head[b-87ef1euays] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    align-items: center;
}

/* Archetype cards */
.arch-grid[b-87ef1euays] {
    display: grid;
    gap: var(--fai-space-4);
    grid-template-columns: 1fr;
}

.arch-card[b-87ef1euays] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
    align-items: flex-start;
}

.arch-reasoning[b-87ef1euays] {
    margin: 0;
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
    line-height: 1.5;
}

/* Matrix table */
.matrix-wrap[b-87ef1euays] {
    overflow-x: auto;
}

.matrix[b-87ef1euays] {
    inline-size: 100%;
    border-collapse: collapse;
    font-size: var(--fai-text-sm);
}

.matrix th[b-87ef1euays],
.matrix td[b-87ef1euays] {
    text-align: start;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-block-end: 1px solid var(--fai-border);
    vertical-align: top;
}

.matrix thead th[b-87ef1euays] {
    font-size: var(--fai-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fai-ink-3);
    white-space: nowrap;
}

.matrix tbody tr:hover[b-87ef1euays] {
    background: var(--fai-surface-2);
}

.matrix-name[b-87ef1euays] {
    font-weight: 600;
    color: var(--fai-ink);
    white-space: nowrap;
}

.matrix-truncate[b-87ef1euays] {
    max-inline-size: 22rem;
    overflow-wrap: anywhere;
    color: var(--fai-ink-2);
}

.matrix-check[b-87ef1euays] {
    inline-size: 18px;
    block-size: 18px;
    accent-color: var(--fai-primary);
}

/* Side-by-side comparison */
.compare-grid[b-87ef1euays] {
    display: grid;
    gap: var(--fai-space-4);
    grid-template-columns: 1fr;
}

.compare-col[b-87ef1euays] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
}

.compare-name[b-87ef1euays] {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    align-items: center;
    font-size: var(--fai-text-md, var(--fai-text-body));
    font-weight: 700;
    color: var(--fai-ink);
}

@media (min-width: 64rem) {
    .comp-grid-2[b-87ef1euays] {
        grid-template-columns: 1fr 1fr;
    }

    .arch-grid[b-87ef1euays] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .compare-grid[b-87ef1euays] {
        grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    }
}

/* SH (2026-09-23) — the citation row under a researched answer.
   Numbered, clickable, and visibly secondary to the finding itself: sources are there to be
   checked, not read. Each row is one tap target on a phone, and the number is what a reader
   scans, which is why it keeps its own column rather than sitting inline with the title. */
.comp-sources[b-87ef1euays] {
    margin-block-start: var(--fai-space-4);
    padding-block-start: var(--fai-space-3);
    border-block-start: 1px solid var(--fai-border);
}

.comp-sources-label[b-87ef1euays] {
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--fai-ink-3);
}

.comp-sources-list[b-87ef1euays] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--fai-space-1);
}

.comp-source[b-87ef1euays] {
    display: flex;
    align-items: flex-start;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2);
    border-radius: var(--fai-radius-sm);
    text-decoration: none;
    color: inherit;
    min-block-size: var(--fai-target-min);
    transition: background var(--fai-motion-fast) ease;
}

.comp-source:hover[b-87ef1euays],
.comp-source:focus-visible[b-87ef1euays] {
    background: var(--fai-surface-2);
}

.comp-source-n[b-87ef1euays] {
    flex: none;
    inline-size: 20px;
    block-size: 20px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-2);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-xs);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.comp-source-text[b-87ef1euays] {
    display: grid;
    gap: 2px;
    min-inline-size: 0;
}

/* A page title and a domain are whatever language the page is in, so each takes its direction
   from its own first character rather than from the Arabic shell around it. */
.comp-source-title[b-87ef1euays],
.comp-source-site[b-87ef1euays] {
    unicode-bidi: plaintext;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.comp-source-title[b-87ef1euays] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.comp-source-site[b-87ef1euays] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

/* "This was not researched" is a caveat, not decoration. */
.comp-hint-warn[b-87ef1euays] {
    color: var(--fai-warning);
}
/* /Pages/Home.razor.rz.scp.css */
/* FAI-P07-03 — Command Center layout (isolated). */
.cc[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-5);
}

/* SH (2026-09-20) — who's signed in, with their own branding once set (Settings → Company branding). */
.cc-identity[b-9phpv80h1o] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.cc-identity-logo[b-9phpv80h1o] {
    flex: none;
    inline-size: 24px;
    block-size: 24px;
    border-radius: var(--fai-radius-pill);
    border: 1px solid var(--fai-border);
    background: var(--fai-surface-2);
    color: var(--fai-ink-3);
    display: grid;
    place-items: center;
    overflow: hidden;
}

.cc-identity-logo img[b-9phpv80h1o] {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.cc-event[b-9phpv80h1o] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--fai-space-4);
    padding: var(--fai-space-5);
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
}

.cc-kicker[b-9phpv80h1o] {
    margin: 0 0 var(--fai-space-1);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cc-event-title[b-9phpv80h1o] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
    line-height: 1.2;
}

.cc-event-meta[b-9phpv80h1o] {
    margin: var(--fai-space-2) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.cc-countdown[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-inline-size: 5.5rem;
    padding: var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    text-align: center;
}

.cc-countdown-value[b-9phpv80h1o] {
    font-size: var(--fai-text-xl);
    font-weight: 700;
    line-height: 1.1;
}

.cc-countdown-label[b-9phpv80h1o] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
}

/* SH redesign — three distinct section boxes under the event header. */
/* SH (2026-09-21) — replaces the three section boxes, which repeated the sidebar. One full-width
   row, because it is one offer: you are at the show without a plan. Red like the Rescue button in
   the top bar, which is the same action and should look like it wherever it appears. */
.cc-rescue[b-9phpv80h1o] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-4);
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-danger);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-danger-soft);
    color: var(--fai-ink);
    text-decoration: none;
}

.cc-rescue:hover[b-9phpv80h1o],
.cc-rescue:focus-visible[b-9phpv80h1o] {
    border-color: var(--fai-danger-strong, var(--fai-danger));
}

.cc-rescue-icon[b-9phpv80h1o] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 48px;
    height: 48px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-danger);
    color: var(--fai-surface);
}

.cc-rescue-text[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-inline-size: 0;
}

.cc-rescue-title[b-9phpv80h1o] {
    font-weight: 700;
    font-size: var(--fai-text-lg);
    color: var(--fai-danger-strong, var(--fai-danger));
}

.cc-rescue-sub[b-9phpv80h1o] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

/* Not yet earned: no profile means rescue has nothing to reuse, so it reads as a neutral next
   step rather than an emergency. */
.cc-rescue-locked[b-9phpv80h1o] {
    border-color: var(--fai-border-strong);
    background: var(--fai-surface-2);
}

.cc-rescue-locked .cc-rescue-icon[b-9phpv80h1o] {
    background: var(--fai-surface-3);
    color: var(--fai-ink-3);
}

.cc-rescue-locked .cc-rescue-title[b-9phpv80h1o] {
    color: var(--fai-ink);
}

@media (max-width: 640px) {
    .cc-rescue[b-9phpv80h1o] {
        gap: var(--fai-space-3);
        padding: var(--fai-space-3);
    }
}

.cc-grid[b-9phpv80h1o] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--fai-space-4);
}

.cc-card-head[b-9phpv80h1o] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--fai-space-3);
    width: 100%;
}

.cc-card-title[b-9phpv80h1o] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.cc-card-sub[b-9phpv80h1o] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
    font-weight: 500;
}

.cc-ready[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

/* SH — replaces the score ring: the same at-a-glance sense of progress, no number to interpret. */
.cc-ready-bar[b-9phpv80h1o] {
    inline-size: 100%;
    block-size: 6px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-2);
    overflow: hidden;
}

.cc-ready-bar-fill[b-9phpv80h1o] {
    block-size: 100%;
    background: var(--fai-success, #15803D);
    border-radius: var(--fai-radius-pill);
    transition: inline-size var(--fai-motion-med, 200ms) var(--fai-ease, ease);
}

.cc-ready-list[b-9phpv80h1o] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    flex: 1;
}

.cc-ready-list li[b-9phpv80h1o] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
}

.cc-ready-done[b-9phpv80h1o] {
    color: var(--fai-success, #15803D);
}

.cc-ready-todo[b-9phpv80h1o] {
    color: var(--fai-ink-2);
}

.cc-ready-mark[b-9phpv80h1o] {
    display: inline-flex;
    margin-block-start: 2px;
}

.cc-ready-body[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cc-ready-label[b-9phpv80h1o] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.cc-ready-link[b-9phpv80h1o] {
    color: var(--fai-primary-ink);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    text-decoration: none;
}

.cc-ready-link:hover[b-9phpv80h1o] {
}

.cc-actions[b-9phpv80h1o] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.cc-action[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
    text-decoration: none;
    min-block-size: 44px;
}

.cc-action:hover[b-9phpv80h1o] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.cc-action-title[b-9phpv80h1o] {
    color: var(--fai-ink);
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.cc-action-sub[b-9phpv80h1o] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.cc-muted[b-9phpv80h1o] {
    margin: 0 0 var(--fai-space-3);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.cc-profile-offering[b-9phpv80h1o] {
    margin: 0 0 var(--fai-space-1);
    color: var(--fai-ink);
    font-size: var(--fai-text-body);
    font-weight: 600;
}

.cc-chips[b-9phpv80h1o] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    margin-block: var(--fai-space-3);
}

.cc-ambient[b-9phpv80h1o] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-4);
}

.cc-pins[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.cc-pin-grid[b-9phpv80h1o] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: var(--fai-space-3);
}

.cc-pin[b-9phpv80h1o] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    text-decoration: none;
    min-block-size: 44px;
}

.cc-pin:hover[b-9phpv80h1o] {
    border-color: var(--fai-primary-line);
}

.cc-pin-title[b-9phpv80h1o] {
    color: var(--fai-ink);
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.cc-pin-sub[b-9phpv80h1o] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.cc-offline[b-9phpv80h1o] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-warning-soft, #FFFAEB);
    color: var(--fai-warning, #B45309);
    font-size: var(--fai-text-sm);
    font-weight: 500;
}

@media (max-width: 640px) {
    .cc-event[b-9phpv80h1o] {
        flex-direction: column;
    }

    .cc-ready[b-9phpv80h1o] {
        flex-direction: column;
        align-items: center;
    }
}
/* /Pages/Intelligence.razor.rz.scp.css */
/* FAI-P01-01/03 (M3) — Intelligence screens layout (isolated). */
.intel[b-mm7y0qq17n] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.intel-panel[b-mm7y0qq17n] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

/* SH (2026-09-19) — the section switcher as a clickable grid of described cards (same visual
   family as Canvas's own strategy boxes), not a thin unlabeled pill strip: each card carries its
   own "what this does and when to use it" so the section explains itself before you click in. */
.intel-tab-grid[b-mm7y0qq17n] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--fai-space-3);
}

.intel-tab-box[b-mm7y0qq17n] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--fai-space-1);
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-ai-soft);
    color: var(--fai-ink);
    font-family: inherit;
    text-align: start;
    cursor: pointer;
}

.intel-tab-box:hover[b-mm7y0qq17n],
.intel-tab-box:focus-visible[b-mm7y0qq17n] {
    border-color: var(--fai-primary-line);
}

.intel-tab-box-active[b-mm7y0qq17n] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.intel-tab-icon[b-mm7y0qq17n] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-primary-ink);
}

.intel-tab-title[b-mm7y0qq17n] {
    font-weight: 600;
}

.intel-tab-sub[b-mm7y0qq17n] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

@media (max-width: 720px) {
    .intel-tab-grid[b-mm7y0qq17n] {
        grid-template-columns: 1fr;
    }
}

.intel-form[b-mm7y0qq17n] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.intel-fill-head[b-mm7y0qq17n] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: flex-start;
}

.intel-section-title[b-mm7y0qq17n] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.intel-muted[b-mm7y0qq17n] {
    margin: var(--fai-space-1) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.intel-label[b-mm7y0qq17n] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.intel-input[b-mm7y0qq17n] {
    width: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    min-block-size: 44px;
}

.intel-input:focus[b-mm7y0qq17n] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.intel-textarea[b-mm7y0qq17n] {
    resize: vertical;
    min-block-size: unset;
}

.intel-actions[b-mm7y0qq17n] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    align-items: center;
}

.intel-error[b-mm7y0qq17n] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.intel-signal-chips[b-mm7y0qq17n] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

/* Market-fit results */
.fit-grid[b-mm7y0qq17n] {
    display: grid;
    gap: var(--fai-space-4);
    grid-template-columns: 1fr;
}

.fit-kv[b-mm7y0qq17n] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.fit-class[b-mm7y0qq17n] {
    padding: var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary-soft);
    border: 1px solid var(--fai-border);
}

.fit-class-label[b-mm7y0qq17n] {
    margin: 0;
    font-size: var(--fai-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fai-ink-3);
}

.fit-class-value[b-mm7y0qq17n] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-xl);
    font-weight: 700;
    color: var(--fai-primary-strong);
}

.fit-class-hint[b-mm7y0qq17n] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.fit-list[b-mm7y0qq17n] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.fit-list li[b-mm7y0qq17n] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
    line-height: 1.5;
}

.fit-list svg[b-mm7y0qq17n] {
    flex-shrink: 0;
    margin-block-start: 2px;
    color: var(--fai-ink-3);
}

.fit-list li svg[b-mm7y0qq17n] {
    color: var(--fai-warning);
}

.fit-gap-title[b-mm7y0qq17n] {
    margin: var(--fai-space-3) 0 var(--fai-space-2);
    font-size: var(--fai-text-sm);
    font-weight: 700;
    color: var(--fai-ink);
}

.fit-gap-title:first-child[b-mm7y0qq17n] {
    margin-block-start: 0;
}

/* Hidden-needs results */
.need-list[b-mm7y0qq17n] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.need-row[b-mm7y0qq17n] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: flex-start;
    padding-block-end: var(--fai-space-3);
    border-block-end: 1px solid var(--fai-border);
}

.need-row:last-child[b-mm7y0qq17n] {
    padding-block-end: 0;
    border-block-end: none;
}

.need-main[b-mm7y0qq17n] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.need-text[b-mm7y0qq17n] {
    margin: 0;
    font-weight: 600;
    color: var(--fai-ink);
}

.need-bar[b-mm7y0qq17n] {
    block-size: 6px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    overflow: hidden;
}

.need-bar-fill[b-mm7y0qq17n] {
    display: block;
    block-size: 100%;
    border-radius: inherit;
    background: var(--fai-primary);
    transition: inline-size var(--fai-motion-base) var(--fai-ease);
}

.need-evidence[b-mm7y0qq17n] {
    margin: 0;
    display: flex;
    gap: var(--fai-space-1);
    align-items: flex-start;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.need-evidence svg[b-mm7y0qq17n] {
    flex-shrink: 0;
    margin-block-start: 2px;
}

.need-confidence[b-mm7y0qq17n] {
    flex-shrink: 0;
    font-weight: 600;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
}

@media (min-width: 64rem) {
    .fit-grid[b-mm7y0qq17n] {
        grid-template-columns: 16rem 1fr;
        align-items: start;
    }
}
/* /Pages/Lounge.razor.rz.scp.css */
/* FAI-P06-01/02 — partnership lounge surface (/lounge). Tokens + logical properties (RTL parity). */
.lng-stack[b-wedvy2md3t] {
    display: grid;
    gap: var(--fai-space-4);
}

.lng-cta[b-wedvy2md3t] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.lng-cta:hover[b-wedvy2md3t] {
    background: var(--fai-primary-fill-strong);
}

.lng-summary[b-wedvy2md3t] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--fai-space-3);
}

.lng-nudge[b-wedvy2md3t] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.lng-seats[b-wedvy2md3t] {
    display: grid;
    gap: var(--fai-space-3);
}

.lng-seat[b-wedvy2md3t] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
}

.lng-seat-main[b-wedvy2md3t] {
    display: grid;
    gap: var(--fai-space-1);
    min-inline-size: 0;
}

.lng-seat-head[b-wedvy2md3t] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.lng-seat-name[b-wedvy2md3t] {
    margin: 0;
    font-size: var(--fai-text-body);
    font-weight: 600;
    color: var(--fai-ink);
}

.lng-seat-role[b-wedvy2md3t] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.lng-seat-last[b-wedvy2md3t],
.lng-seat-meta[b-wedvy2md3t] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    font-variant-numeric: tabular-nums;
}

.lng-muted[b-wedvy2md3t] {
    color: var(--fai-ink-3);
}

.lng-portfolio-meta[b-wedvy2md3t] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    margin-block-end: var(--fai-space-2);
    font-variant-numeric: tabular-nums;
}

.lng-entries[b-wedvy2md3t] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
}

.lng-entry[b-wedvy2md3t] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    padding-block: var(--fai-space-2);
}

.lng-entry + .lng-entry[b-wedvy2md3t] {
    border-block-start: 1px solid var(--fai-border);
}

.lng-entry-name[b-wedvy2md3t] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.lng-entry-deal[b-wedvy2md3t] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    font-variant-numeric: tabular-nums;
}

.lng-day[b-wedvy2md3t] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
}

.lng-meeting[b-wedvy2md3t] {
    display: grid;
    gap: 2px;
    padding-block: var(--fai-space-2);
}

.lng-meeting + .lng-meeting[b-wedvy2md3t] {
    border-block-start: 1px solid var(--fai-border);
}

.lng-meeting-who[b-wedvy2md3t] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.lng-meeting-talk[b-wedvy2md3t] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}
/* /Pages/Micro.razor.rz.scp.css */
/* FAI-P05-12 + FAI-P07-02 — 1-minute overview surface (/micro). Majlis visuals live in app.css. */
.mic-stack[b-zy0flcw8ci] {
    display: grid;
    gap: var(--fai-space-4);
}

.mic-cta[b-zy0flcw8ci] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.mic-cta:hover[b-zy0flcw8ci] {
    background: var(--fai-primary-fill-strong);
}

.mic-label[b-zy0flcw8ci] {
    display: block;
    margin-block-end: var(--fai-space-1);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.mic-focus-row[b-zy0flcw8ci] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    align-items: center;
}

/* SH (2026-09-19) — the "Facing a booth?" search-as-you-type combobox: the input plus its
   dropdown of matching booths, positioned so results float over the page instead of pushing it. */
.mic-combobox[b-zy0flcw8ci] {
    position: relative;
}

.mic-booth-results[b-zy0flcw8ci] {
    position: absolute;
    inset-inline: 0;
    inset-block-start: calc(100% + var(--fai-space-1));
    z-index: var(--fai-z-popover, 30);
    margin: 0;
    padding: var(--fai-space-1);
    list-style: none;
    display: grid;
    gap: 2px;
    max-block-size: 16rem;
    overflow-y: auto;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    box-shadow: var(--fai-shadow-sm, var(--fai-elev-sm));
}

.mic-booth-option[b-zy0flcw8ci] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--fai-space-2);
    inline-size: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: none;
    border-radius: var(--fai-radius-sm);
    background: transparent;
    text-align: start;
    cursor: pointer;
}

.mic-booth-option:hover[b-zy0flcw8ci],
.mic-booth-option:focus-visible[b-zy0flcw8ci] {
    background: var(--fai-primary-soft);
}

.mic-booth-name[b-zy0flcw8ci] {
    font-weight: 600;
    color: var(--fai-ink);
}

.mic-booth-where[b-zy0flcw8ci] {
    flex: none;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.mic-booth-empty[b-zy0flcw8ci] {
    position: absolute;
    inset-inline: 0;
    inset-block-start: calc(100% + var(--fai-space-1));
    z-index: var(--fai-z-popover, 30);
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
    box-shadow: var(--fai-shadow-sm, var(--fai-elev-sm));
}

.mic-input[b-zy0flcw8ci] {
    flex: 1 1 12rem;
    inline-size: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
}

.mic-input:focus[b-zy0flcw8ci] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.mic-area[b-zy0flcw8ci] {
    resize: vertical;
    min-block-size: 0;
}

.mic-engaged[b-zy0flcw8ci] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    margin-block-start: var(--fai-space-2);
}

.mic-widget-head[b-zy0flcw8ci] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    margin-block-end: var(--fai-space-2);
}

/* The catalog serves these in English. Rendered inside the Arabic shell they were being reordered
   by the bidi algorithm ("20-second pitch for this booth" came out as "second pitch for this-20
   booth", and every full stop jumped to the front). `unicode-bidi: plaintext` is the CSS form of
   dir="auto": each line takes its direction from its own first strong character, so an English
   line reads left to right inside the right-to-left page and an Arabic one still reads correctly.
   Alignment stays logical so the block still hugs the right edge in Arabic. */
.mic-widget-title[b-zy0flcw8ci],
.mic-widget-desc[b-zy0flcw8ci] {
    unicode-bidi: plaintext;
    text-align: start;
}

.mic-widget-title[b-zy0flcw8ci] {
    margin: 0;
    font-size: var(--fai-text-body);
    font-weight: 600;
    color: var(--fai-ink);
}

.mic-widget-desc[b-zy0flcw8ci] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.mic-widget-body[b-zy0flcw8ci] {
    display: grid;
    gap: var(--fai-space-2);
    justify-items: start;
}

.mic-more[b-zy0flcw8ci] {
    appearance: none;
    border: none;
    padding: 0;
    background: none;
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    min-block-size: var(--fai-target-min);
    font-family: var(--fai-font-body);
    cursor: pointer;
}

.mic-more-label[b-zy0flcw8ci] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-ink);
}

.mic-more:focus-visible[b-zy0flcw8ci] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
    border-radius: var(--fai-radius-sm);
}

.mic-revealed[b-zy0flcw8ci] {
    display: grid;
    gap: var(--fai-space-3);
    border-block-start: 1px solid var(--fai-border);
    padding-block-start: var(--fai-space-3);
}

.mic-revealed-item[b-zy0flcw8ci] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-3);
}

.mic-majlis-name[b-zy0flcw8ci] {
    display: block;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.mic-majlis-where[b-zy0flcw8ci] {
    display: block;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.mic-majlis-detail[b-zy0flcw8ci] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-2) var(--fai-space-3);
    margin-block-start: var(--fai-space-2);
    display: grid;
    gap: var(--fai-space-1);
}

.mic-majlis-detail-head[b-zy0flcw8ci] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.mic-majlis-why[b-zy0flcw8ci] {
    margin: 0;
    padding-inline-start: var(--fai-space-4);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.mic-empty[b-zy0flcw8ci] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.mic-link[b-zy0flcw8ci] {
    color: var(--fai-primary-ink);
    font-weight: 600;
    text-decoration: none;
}

.mic-link:hover[b-zy0flcw8ci] {
}

.mic-queued[b-zy0flcw8ci] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-info);
    background: var(--fai-info-soft);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-2) var(--fai-space-3);
}

.mic-answer[b-zy0flcw8ci] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-2) var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    display: grid;
    gap: var(--fai-space-1);
    inline-size: 100%;
}

.mic-answer-main[b-zy0flcw8ci] {
    margin: 0;
    font-weight: 600;
    color: var(--fai-ink);
}

.mic-answer-points[b-zy0flcw8ci] {
    margin: 0;
    padding-inline-start: var(--fai-space-4);
}

.mic-answer-next[b-zy0flcw8ci] {
    margin: 0;
    color: var(--fai-ink-3);
}

.mic-answer-strong[b-zy0flcw8ci] {
    font-weight: 600;
    color: var(--fai-ink);
    font-variant-numeric: tabular-nums;
}

.mic-error[b-zy0flcw8ci] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

.mic-recs[b-zy0flcw8ci] {
    display: grid;
    gap: var(--fai-space-2);
    inline-size: 100%;
}

.mic-rec[b-zy0flcw8ci] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-2) var(--fai-space-3);
    display: grid;
    gap: 2px;
}

.mic-rec-name[b-zy0flcw8ci] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.mic-rec-where[b-zy0flcw8ci] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.mic-rec-why[b-zy0flcw8ci] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.mic-suggestions[b-zy0flcw8ci] {
    display: flex;
    gap: var(--fai-space-1);
    flex-wrap: wrap;
}
/* /Pages/Onboard.razor.rz.scp.css */
/* FAI-P07-03 — Onboarding wizard layout (isolated). */
.ob[b-t69kdygory] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
    max-inline-size: 36rem;
    margin-inline: auto;
}

.ob-banner[b-t69kdygory] {
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-info-soft, #EFF6FF);
    color: var(--fai-info, #175CD3);
    font-size: var(--fai-text-sm);
}

.ob-fill[b-t69kdygory],
.ob-form[b-t69kdygory] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.ob-fill-head[b-t69kdygory] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: flex-start;
}

.ob-section-title[b-t69kdygory] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.ob-muted[b-t69kdygory] {
    margin: var(--fai-space-1) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.ob-label[b-t69kdygory] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.ob-input[b-t69kdygory] {
    width: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    min-block-size: 44px;
}

.ob-input:focus[b-t69kdygory] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.ob-textarea[b-t69kdygory] {
    resize: vertical;
    min-block-size: 5.5rem;
}

.ob-error[b-t69kdygory] {
    margin: 0;
    color: var(--fai-danger, #B42318);
    font-size: var(--fai-text-sm);
}

.ob-row[b-t69kdygory],
.ob-actions[b-t69kdygory] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: stretch;
}

.ob-actions > :last-child[b-t69kdygory] {
    flex: 1;
}

.ob-linkish[b-t69kdygory] {
    border: 0;
    background: transparent;
    color: var(--fai-primary-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    text-align: start;
    cursor: pointer;
    padding: var(--fai-space-2) 0;
    min-block-size: 44px;
}

.ob-linkish:hover[b-t69kdygory] {
}

.ob-ai-note[b-t69kdygory] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-ai-soft, #FEF3C7);
    color: var(--fai-ai, #B45309);
    font-size: var(--fai-text-sm);
}

.ob-field[b-t69kdygory] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}
/* /Pages/OnboardGreeting.razor.rz.scp.css */
/* Screen 2 of the onboarding intro. Same treatment as OnboardWelcome.razor.css (screen 1) —
   kept as its own scoped file per this repo's page-per-stylesheet convention, not shared, since
   there are only two of these. Keep both in sync if the "hero moment" look changes. */
.og[b-kby2gzj1tl] {
    /* The Oasis theme's own pale yellow (Sana, 2026-09-20: "yellow not dark yellow, the yellow in
       the oasis theme"), not the ochre warning colour. Held locally rather than read from
       --fai-color-accent because that token is only yellow under the Oasis theme and blue under
       the default one, and onboarding should look the same whichever theme is active. The pale
       yellow is a FILL only, never text: labels on it stay near-black, and the small marks (tick,
       active dot) use the deep yellow so they stay visible at a few pixels. */
    --oq-yellow: #ffe066;
    --oq-yellow-strong: #ffd43b;
    --oq-yellow-soft: #fff9e0;
    --oq-yellow-mark: #ffc700;
    --oq-on-yellow: #1a1a1a;

    min-block-size: 100dvh;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background: #ffffff;
}

.og-character[b-kby2gzj1tl] {
    flex: 1 1 360px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2.5rem 1.5rem;
    block-size: min(70dvh, 34rem);
}

.og-text[b-kby2gzj1tl] {
    flex: 1 1 420px;
    max-inline-size: 34rem;
    padding-block: 2.5rem;
    padding-inline-start: 1.5rem;
    padding-inline-end: 3.5rem;
}

.og-heading[b-kby2gzj1tl] {
    margin: 0 0 var(--fai-space-4);
    font-family: var(--fai-font-display);
    font-weight: 800;
    letter-spacing: -0.02em;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.08;
    color: #000000;
    text-align: start;
}

.og-body[b-kby2gzj1tl] {
    margin: 0 0 var(--fai-space-6);
    font-size: var(--fai-text-lg, 1.125rem);
    line-height: 1.7;
    color: #000000;
    text-align: start;
}

.og-body-ar[b-kby2gzj1tl] {
    font-family: var(--fai-font-display);
    line-height: 1.9;
}

/* Apple-style form field (Sana, 2026-09-20: "use Apple design... when inputting the name") —
   filled rounded rectangle like an iOS grouped-list text field, not an underline. */
.og-input[b-kby2gzj1tl] {
    display: block;
    width: 100%;
    max-inline-size: 22rem;
    margin: 0 0 var(--fai-space-6);
    padding: 1rem 1.125rem;
    font-family: inherit;
    font-size: var(--fai-text-lg, 1.125rem);
    color: #000000;
    background: #f2f2f2;
    border: 1px solid transparent;
    border-radius: 14px;
    text-align: start;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.og-input[b-kby2gzj1tl]::placeholder {
    color: var(--fai-color-content-muted);
}

.og-input:focus[b-kby2gzj1tl] {
    outline: none;
    border-color: #000000;
    box-shadow: 0 0 0 4px rgb(0 0 0 / 8%);
}

.og-input-ar[b-kby2gzj1tl] {
    font-family: var(--fai-font-display);
}

/* Apple-style pill button: soft shadow + a slight spring overshoot on hover, a quick tactile
   press-down on click, rather than a flat scale. */






@media (max-width: 640px) {
    .og-text[b-kby2gzj1tl] {
        padding-inline: 1.5rem;
    }
}

/* Same compact pill as the question screens, in the app's theme (Sana, 2026-09-20: "why the big
   black buttons again"). The headings on these two screens stay black on white as she asked, but
   the action is the brand pill, not a heavy black circle. */
.og-next[b-kby2gzj1tl] {
    min-inline-size: 11rem;
    block-size: 2.75rem;
    padding-inline: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: var(--oq-yellow);
    color: var(--oq-on-yellow);
    font-family: var(--fai-font-body);
    font-size: 1.0625rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.12s ease;
}

.og-next:hover:not(:disabled)[b-kby2gzj1tl] {
    background: var(--oq-yellow-strong);
}

.og-next:active:not(:disabled)[b-kby2gzj1tl] {
    transform: scale(0.97);
}

.og-next:disabled[b-kby2gzj1tl] {
    background: var(--fai-color-surface-3);
    color: var(--fai-color-content-disabled);
    cursor: default;
}

.og-next:focus-visible[b-kby2gzj1tl] {
    outline: 2px solid var(--fai-color-focus);
    outline-offset: 3px;
}
/* /Pages/OnboardQuestions.razor.rz.scp.css */
/* Pre-app question screens: the Apple shapes and motion Sana asked for (one calm question at a
   time, condensing out of a blur, grouped rows, a compact pill), drawn in the APP's own theme
   rather than Apple's palette and system type (Sana, 2026-09-20: "make the onboarding the normal
   theme, not apple theme, but keep the apple aesthetic as you made"). So: brand type, brand
   primary, theme surfaces and content colors, and the app's own radii and focus ring. */
.oq[b-9nsgb3cokm] {
    /* The app's neutral ramp is a cool blue-grey, which reads cold against this screen's warm
       canvas and clashes with the yellow selection. These are the same steps, warmed, scoped to
       this screen only so nothing else in the product shifts. */
    --oq-fill: #f2efe9;
    --oq-fill-hover: #e9e4db;
    --oq-line: #e2ddd3;

    /* The Oasis theme's own pale yellow (Sana, 2026-09-20: "yellow not dark yellow, the yellow in
       the oasis theme"), not the ochre warning colour. Held locally rather than read from
       --fai-color-accent because that token is only yellow under the Oasis theme and blue under
       the default one, and onboarding should look the same whichever theme is active. The pale
       yellow is a FILL only, never text: labels on it stay near-black, and the small marks (tick,
       active dot) use the deep yellow so they stay visible at a few pixels. */
    --oq-yellow: #ffe066;
    --oq-yellow-strong: #ffd43b;
    --oq-yellow-soft: #fff9e0;
    --oq-yellow-mark: #ffc700;
    --oq-on-yellow: #1a1a1a;

    position: relative;
    min-block-size: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fai-color-surface);
    padding: 5rem 1.5rem;
    font-family: var(--fai-font-body);
    -webkit-font-smoothing: antialiased;
}

/* IBM Plex Sans Arabic (already loaded by the app) covers the Arabic subset. */
.oq-ar[b-9nsgb3cokm] {
    font-family: var(--fai-font-display);
}

.oq-back[b-9nsgb3cokm] {
    position: absolute;
    top: 1.75rem;
    inset-inline-start: 1.75rem;
    inline-size: 2.5rem;
    block-size: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--fai-color-content-muted);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.oq-back:hover[b-9nsgb3cokm] {
    background: var(--oq-fill);
    color: var(--fai-color-content-1);
}

.oq-back:focus-visible[b-9nsgb3cokm] {
    outline: 2px solid var(--fai-color-focus);
    outline-offset: 2px;
}

.oq-stage[b-9nsgb3cokm] {
    inline-size: 100%;
    max-inline-size: 34rem;
}

/* The "cloud": each screen's content condenses out of a blur rather than sliding in. The @key on
   the stage element remounts this subtree per question, which is what re-runs the animation. */
.oq-panel[b-9nsgb3cokm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    animation: oq-cloud-b-9nsgb3cokm 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.oq-panel > *[b-9nsgb3cokm] {
    animation: oq-cloud-b-9nsgb3cokm 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.oq-panel > *:nth-child(2)[b-9nsgb3cokm] { animation-delay: 0.1s; }
.oq-panel > *:nth-child(3)[b-9nsgb3cokm] { animation-delay: 0.18s; }
.oq-panel > *:nth-child(4)[b-9nsgb3cokm] { animation-delay: 0.26s; }

@keyframes oq-cloud-b-9nsgb3cokm {
    from {
        opacity: 0;
        filter: blur(12px);
        transform: translateY(12px) scale(0.98);
    }
    to {
        opacity: 1;
        filter: blur(0);
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .oq-panel[b-9nsgb3cokm],
    .oq-panel > *[b-9nsgb3cokm] {
        animation: none;
    }
}

.oq-question[b-9nsgb3cokm] {
    margin: 0 0 0.75rem;
    font-family: var(--fai-font-display);
    font-size: clamp(1.5rem, 2.8vw, 2.125rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: var(--fai-color-content-1);
}

.oq-hint[b-9nsgb3cokm] {
    margin: 0 0 2rem;
    max-inline-size: 30rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--fai-color-content-muted);
}

/* Borderless input: on a blank screen a box outline is the only thing that would read as chrome,
   so the field is just a wide underline that lights up on focus. */
.oq-textarea[b-9nsgb3cokm] {
    inline-size: 100%;
    margin-block-end: 2.5rem;
    padding: 0.75rem 0.25rem;
    border: 0;
    border-block-end: 1px solid var(--oq-line);
    background: transparent;
    font: inherit;
    font-size: 1.25rem;
    line-height: 1.6;
    color: var(--fai-color-content-1);
    text-align: center;
    resize: none;
    transition: border-color 0.2s ease;
}

.oq-textarea[b-9nsgb3cokm]::placeholder {
    color: var(--fai-color-content-disabled);
}

.oq-textarea:focus[b-9nsgb3cokm],
.oq-textarea:focus-visible[b-9nsgb3cokm],
.oq-input:focus[b-9nsgb3cokm],
.oq-input:focus-visible[b-9nsgb3cokm] {
    outline: none;
    border-block-end: 2px solid var(--oq-yellow-strong);
    padding-block-end: calc(0.75rem - 1px);
}

/* The website field, revealed under "yes". Same borderless underline as the description box, one
   line instead of four, and it fades in so the screen does not jump when the answer changes. The
   address itself is always left-to-right even on the Arabic shell, which the markup sets. */
.oq-input[b-9nsgb3cokm] {
    inline-size: 100%;
    max-inline-size: 23rem;
    margin-inline: auto;
    margin-block-end: 2.5rem;
    display: block;
    padding: 0.75rem 0.25rem;
    border: 0;
    border-block-end: 1px solid var(--oq-line);
    background: transparent;
    font: inherit;
    font-size: 1.125rem;
    color: var(--fai-color-content-1);
    text-align: center;
    transition: border-color 0.2s ease;
    animation: oq-fade-in-b-9nsgb3cokm 0.28s ease both;
}

.oq-input[b-9nsgb3cokm]::placeholder {
    color: var(--fai-color-content-disabled);
}

@keyframes oq-fade-in-b-9nsgb3cokm {
    from { opacity: 0; transform: translateY(0.25rem); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .oq-input[b-9nsgb3cokm] { animation: none; }
}

.oq-options[b-9nsgb3cokm] {
    /* Narrower than the text column: these answers are two or three words, and a full-width row
       makes the label float alone in a wide band. */
    inline-size: 100%;
    max-inline-size: 23rem;
    margin-inline: auto;
    margin-block-end: 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.4375rem;
}

/* iOS grouped-list row: soft fill, no border. What you have chosen is YELLOW, not the brand blue
   (Sana, 2026-09-20: "instead of the blue onboarding theme, make the options to choose yellow"),
   so a choice reads as something you marked rather than as another piece of app chrome. Dark
   amber text on the pale tint keeps it readable; a solid yellow with white text would not. */
.oq-option[b-9nsgb3cokm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    inline-size: 100%;
    padding: 0.8125rem 1rem;
    border: 0;
    border-radius: 0.75rem;
    background: var(--fai-color-surface-2);
    font: inherit;
    font-size: 1rem;
    color: var(--fai-color-content-1);
    text-align: start;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.oq-option:hover[b-9nsgb3cokm] {
    background: var(--oq-fill-hover);
}

.oq-option:active[b-9nsgb3cokm] {
    transform: scale(0.985);
}

.oq-option-on[b-9nsgb3cokm] {
    background: var(--oq-yellow-soft);
    box-shadow: inset 0 0 0 1px var(--oq-yellow-strong);
    color: var(--oq-on-yellow);
    font-weight: 600;
}

.oq-option-on:hover[b-9nsgb3cokm] {
    background: var(--oq-yellow-soft);
}

.oq-option:focus-visible[b-9nsgb3cokm] {
    outline: 2px solid var(--fai-color-focus);
    outline-offset: 2px;
}

.oq-option-mark[b-9nsgb3cokm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 1.125rem;
    block-size: 1.125rem;
    flex: 0 0 auto;
    color: var(--oq-on-yellow);
}

/* The 1-minute tools, as a cloud of pressable chips rather than a list (Sana, 2026-09-20:
   "floating cloud apple designed options, to press and choose from"). Each chip condenses out of
   the blur on its own short delay, which is what gives the group its drifting-in feel. They then
   SETTLE and stay still: a continuous float made the row look unstable while you were trying to
   read and press it ("these buttons are moving every second, it's weird"). */
.oq-cloud[b-9nsgb3cokm] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-block-end: 2.75rem;
}

.oq-chip[b-9nsgb3cokm] {
    padding: 0.625rem 1.0625rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--oq-fill);
    font: inherit;
    font-size: 0.9375rem;
    color: var(--fai-color-content-1);
    cursor: pointer;
    animation: oq-cloud-b-9nsgb3cokm 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) var(--oq-chip-delay, 0ms) both;
    transition: background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.oq-chip:hover[b-9nsgb3cokm] {
    background: var(--oq-fill-hover);
}

.oq-chip-on[b-9nsgb3cokm] {
    background: var(--oq-yellow);
    border-color: var(--oq-yellow-strong);
    color: var(--oq-on-yellow);
    font-weight: 600;
}

.oq-chip-on:hover[b-9nsgb3cokm] {
    background: var(--oq-yellow-strong);
}

.oq-chip:focus-visible[b-9nsgb3cokm] {
    outline: 2px solid var(--fai-color-focus);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .oq-chip[b-9nsgb3cokm] {
        animation: none;
    }
}

.oq-foot[b-9nsgb3cokm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}

/* Compact pill, not a full-width slab (Sana: "apple design should be used for the buttons not a
   large black button"). Fixed comfortable width, 44px tall, in the brand primary. */
.oq-next[b-9nsgb3cokm] {
    min-inline-size: 11rem;
    block-size: 2.75rem;
    padding-inline: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: 0;
    border-radius: 999px;
    background: var(--oq-yellow);
    color: var(--oq-on-yellow);
    font: inherit;
    font-size: 1.0625rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.12s ease, opacity 0.2s ease;
}

.oq-next:hover:not(:disabled)[b-9nsgb3cokm] {
    background: var(--oq-yellow-strong);
}

.oq-next:active:not(:disabled)[b-9nsgb3cokm] {
    transform: scale(0.97);
}

.oq-next:disabled[b-9nsgb3cokm] {
    background: var(--fai-color-surface-3);
    color: var(--fai-color-content-disabled);
    cursor: default;
}

.oq-next:focus-visible[b-9nsgb3cokm] {
    outline: 2px solid var(--fai-color-focus);
    outline-offset: 3px;
}

.oq-dots[b-9nsgb3cokm] {
    display: flex;
    align-items: center;
    gap: 0.4375rem;
}

.oq-dot[b-9nsgb3cokm] {
    inline-size: 0.4375rem;
    block-size: 0.4375rem;
    border-radius: 999px;
    background: var(--fai-color-border);
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.oq-dot-on[b-9nsgb3cokm] {
    background: var(--oq-yellow-mark);
    transform: scale(1.15);
}

.oq-spinner[b-9nsgb3cokm] {
    inline-size: 1.125rem;
    block-size: 1.125rem;
    border: 2px solid rgb(26 26 26 / 25%);
    border-block-start-color: var(--oq-on-yellow);
    border-radius: 999px;
    animation: oq-spin-b-9nsgb3cokm 0.7s linear infinite;
}

@keyframes oq-spin-b-9nsgb3cokm {
    to { transform: rotate(360deg); }
}

.oq-busy[b-9nsgb3cokm] {
    margin: 1rem 0 0;
    font-size: 0.9375rem;
    color: var(--fai-color-content-muted);
}

.oq-error[b-9nsgb3cokm] {
    margin: 0 0 1rem;
    font-size: 0.9375rem;
    color: var(--fai-color-danger);
}

@media (max-width: 480px) {
    .oq[b-9nsgb3cokm] {
        padding-inline: 1.25rem;
    }

    .oq-next[b-9nsgb3cokm] {
        inline-size: 100%;
    }
}

/* The background read of the business description. Same slot as the submit status, but muted and
   without a spinner: it is telling you something is happening, not asking you to wait for it. */
.oq-busy-quiet[b-9nsgb3cokm] {
    opacity: 0.7;
    font-size: var(--fai-text-sm);
}
/* /Pages/OnboardWelcome.razor.rz.scp.css */
/* Screen 1 of the onboarding intro — character left, welcome text right. Physical left/right
   (not logical start/end): the character's position doesn't mirror in RTL, matching FaiGuide's
   own sprite, which never mirrors either. */
.ow[b-scn13yapqi] {
    /* The Oasis theme's own pale yellow (Sana, 2026-09-20: "yellow not dark yellow, the yellow in
       the oasis theme"), not the ochre warning colour. Held locally rather than read from
       --fai-color-accent because that token is only yellow under the Oasis theme and blue under
       the default one, and onboarding should look the same whichever theme is active. The pale
       yellow is a FILL only, never text: labels on it stay near-black, and the small marks (tick,
       active dot) use the deep yellow so they stay visible at a few pixels. */
    --oq-yellow: #ffe066;
    --oq-yellow-strong: #ffd43b;
    --oq-yellow-soft: #fff9e0;
    --oq-yellow-mark: #ffc700;
    --oq-on-yellow: #1a1a1a;

    position: relative;
    min-block-size: 100dvh;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background: #ffffff;
}

/* Physical top-right always (not logical/RTL-flipped) — a language switcher stays where you
   first found it, in either language, same convention as the guide sprite never mirroring.
   Lives only on this screen (Sana: "only allow them to toggle on the first page"). */
.ow-lang[b-scn13yapqi] {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 40;
    direction: ltr;
}

.ow-character[b-scn13yapqi] {
    flex: 1 1 360px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2.5rem 1.5rem;
    block-size: min(70dvh, 34rem);
}

.ow-text[b-scn13yapqi] {
    flex: 1 1 420px;
    max-inline-size: 34rem;
    /* Logical, not physical — the wide gutter stays on the OUTER edge (away from the character)
       in either direction, unlike the character slot above, which is deliberately physical. */
    padding-block: 2.5rem;
    padding-inline-start: 1.5rem;
    padding-inline-end: 3.5rem;
}

/* Monochrome, editorial treatment for this one hero screen — deliberately not the app's
   brown/oasis theme tokens. Sana's ask: "black and white text, modern." */
.ow-heading[b-scn13yapqi] {
    margin: 0 0 var(--fai-space-4);
    font-family: var(--fai-font-display);
    font-weight: 800;
    letter-spacing: -0.02em;
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    line-height: 1.08;
    color: #000000;
    text-align: start;
}

.ow-body[b-scn13yapqi] {
    margin: 0 0 var(--fai-space-6);
    font-size: var(--fai-text-lg, 1.125rem);
    line-height: 1.7;
    color: #000000;
    text-align: start;
}

.ow-body-ar[b-scn13yapqi] {
    font-family: var(--fai-font-display); /* IBM Plex Sans Arabic covers the Arabic subset */
    line-height: 1.9;
}

/* Apple-style pill button: soft shadow + a slight spring overshoot on hover, a quick tactile
   press-down on click (Sana, 2026-09-20: "use Apple design... the next buttons"). */




@media (max-width: 640px) {
    .ow-text[b-scn13yapqi] {
        padding-inline: 1.5rem;
    }
}

/* Same compact pill as the question screens, in the app's theme (Sana, 2026-09-20: "why the big
   black buttons again"). The headings on these two screens stay black on white as she asked, but
   the action is the brand pill, not a heavy black circle. */
.ow-next[b-scn13yapqi] {
    min-inline-size: 11rem;
    block-size: 2.75rem;
    padding-inline: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    background: var(--oq-yellow);
    color: var(--oq-on-yellow);
    font-family: var(--fai-font-body);
    font-size: 1.0625rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.12s ease;
}

.ow-next:hover:not(:disabled)[b-scn13yapqi] {
    background: var(--oq-yellow-strong);
}

.ow-next:active:not(:disabled)[b-scn13yapqi] {
    transform: scale(0.97);
}

.ow-next:disabled[b-scn13yapqi] {
    background: var(--fai-color-surface-3);
    color: var(--fai-color-content-disabled);
    cursor: default;
}

.ow-next:focus-visible[b-scn13yapqi] {
    outline: 2px solid var(--fai-color-focus);
    outline-offset: 3px;
}
/* /Pages/Onsite/OnsiteHub.razor.rz.scp.css */
/* FAI-P02/P03 (M5) — On-Site Hub styles (isolated): glanceable, one-handed, big targets. */
.osh[b-zzs1a5wrr9] {
    max-inline-size: 980px;
    margin-inline: auto;
    display: grid;
    gap: var(--fai-space-5);
}

.osh-head[b-zzs1a5wrr9] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--fai-space-4);
    padding: var(--fai-space-5);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    /* SH redesign — flat surface card, matching Command Center's event header instead of a
       bespoke gradient hero the rest of the app doesn't use. */
    background: var(--fai-surface);
    color: var(--fai-ink);
}

.osh-kicker[b-zzs1a5wrr9] {
    margin: 0 0 var(--fai-space-1);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.osh-title[b-zzs1a5wrr9] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
    line-height: var(--fai-leading-tight);
}

.osh-meta[b-zzs1a5wrr9] {
    margin: var(--fai-space-2) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.osh-plan-pill[b-zzs1a5wrr9] {
    flex: none;
    padding: var(--fai-space-1) var(--fai-space-3);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-success-soft);
    color: var(--fai-success);
    font-size: var(--fai-text-xs);
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.osh-grid[b-zzs1a5wrr9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: var(--fai-space-3);
}

.osh-tile[b-zzs1a5wrr9] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    min-block-size: 132px;
    padding: var(--fai-space-5);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    box-shadow: var(--fai-shadow-xs);
    text-decoration: none;
    cursor: pointer;
    transition:
        border-color var(--fai-motion-fast) var(--fai-ease),
        box-shadow var(--fai-motion-fast) var(--fai-ease),
        transform var(--fai-motion-fast) var(--fai-ease);
}

.osh-tile:hover[b-zzs1a5wrr9] {
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-shadow-sm);
    transform: translateY(-1px);
}

.osh-tile-rescue[b-zzs1a5wrr9] {
    /* SH redesign — Rescue is an emergency fallback, so it carries the same red used for the
       top-bar Rescue button everywhere else, not the AI-marker gold (that read as a "featured"
       tile, which is the opposite of what a break-glass action should signal). */
    border-color: var(--fai-danger);
    background: linear-gradient(180deg, var(--fai-danger-soft), var(--fai-surface) 70%);
}

.osh-tile-icon[b-zzs1a5wrr9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 44px;
    block-size: 44px;
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
}

.osh-tile-rescue .osh-tile-icon[b-zzs1a5wrr9] {
    background: var(--fai-danger-soft);
    color: var(--fai-danger);
}

.osh-tile-title[b-zzs1a5wrr9] {
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.osh-tile-sub[b-zzs1a5wrr9] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    line-height: var(--fai-leading-normal);
}

.osh-queued[b-zzs1a5wrr9] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    padding: var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-warning-soft);
    color: var(--fai-warning);
    font-size: var(--fai-text-sm);
}

.osh-footnote[b-zzs1a5wrr9] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    text-align: center;
}
/* /Pages/Onsite/RescueMode.razor.rz.scp.css */
/* FAI-P02-01..05 (M5) — Rescue mode styles (isolated): glanceable stepper + budget timer +
   briefing-grade target cards + explicit next actions. */
.rsc[b-cs74mdtrvn] {
    max-inline-size: 720px;
    margin-inline: auto;
    display: grid;
    gap: var(--fai-space-4);
}

.rsc-head[b-cs74mdtrvn] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--fai-space-4);
}

.rsc-kicker[b-cs74mdtrvn] {
    margin: 0 0 var(--fai-space-1);
    font-size: var(--fai-text-xs);
}

.rsc-back[b-cs74mdtrvn] {
    color: var(--fai-primary-strong);
    text-decoration: none;
    font-weight: 600;
}

.rsc-title[b-cs74mdtrvn] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
}

.rsc-sub[b-cs74mdtrvn] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.rsc-timer[b-cs74mdtrvn] {
    flex: none;
    display: grid;
    justify-items: center;
    gap: 2px;
    min-inline-size: 92px;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary-soft);
    text-align: center;
}

.rsc-timer-value[b-cs74mdtrvn] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xl);
    font-weight: 700;
    color: var(--fai-primary-strong);
    font-variant-numeric: tabular-nums;
}

.rsc-timer-label[b-cs74mdtrvn] {
    font-size: var(--fai-text-xs);
    color: var(--fai-primary-strong);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.rsc-timer-over[b-cs74mdtrvn] {
    background: var(--fai-warning-soft);
}

.rsc-timer-over .rsc-timer-value[b-cs74mdtrvn],
.rsc-timer-over .rsc-timer-label[b-cs74mdtrvn] {
    color: var(--fai-warning);
}

.rsc-stale[b-cs74mdtrvn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-warning-soft);
    color: var(--fai-warning);
    font-size: var(--fai-text-sm);
}

.rsc-form[b-cs74mdtrvn] {
    display: grid;
    gap: var(--fai-space-3);
}

.rsc-label[b-cs74mdtrvn] {
    margin: 0;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.rsc-input[b-cs74mdtrvn] {
    min-block-size: var(--fai-target-min);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    color: var(--fai-ink);
}

.rsc-area[b-cs74mdtrvn] {
    resize: vertical;
}

.rsc-row[b-cs74mdtrvn] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

.rsc-row .fai-btn[b-cs74mdtrvn] {
    flex: none;
}

.rsc-objectives[b-cs74mdtrvn] {
    display: grid;
    gap: var(--fai-space-2);
}

.rsc-objective[b-cs74mdtrvn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    min-block-size: var(--fai-target-min);
    padding: var(--fai-space-2) var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    font-weight: 500;
    color: var(--fai-ink-2);
    text-align: start;
    cursor: pointer;
    transition:
        border-color var(--fai-motion-fast) var(--fai-ease),
        background var(--fai-motion-fast) var(--fai-ease);
}

.rsc-objective:hover[b-cs74mdtrvn] {
    border-color: var(--fai-primary-line);
}

.rsc-objective-active[b-cs74mdtrvn],
.rsc-objective-active:hover[b-cs74mdtrvn] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-weight: 600;
}

.rsc-error[b-cs74mdtrvn] {
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-danger-soft);
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.rsc-build[b-cs74mdtrvn] {
    justify-self: stretch;
}

.rsc-firstmove[b-cs74mdtrvn] {
    display: grid;
    gap: var(--fai-space-3);
    margin: 0;
}

.rsc-firstmove div[b-cs74mdtrvn] {
    display: grid;
    gap: 2px;
}

.rsc-firstmove dt[b-cs74mdtrvn] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--fai-ink-3);
}

.rsc-firstmove dd[b-cs74mdtrvn] {
    margin: 0;
    font-size: var(--fai-text-body);
    color: var(--fai-ink);
}

.rsc-needs ul[b-cs74mdtrvn] {
    margin: var(--fai-space-2) 0 0;
    padding-inline-start: var(--fai-space-5);
    color: var(--fai-ink-2);
}

.rsc-avoid[b-cs74mdtrvn] {
    margin: var(--fai-space-3) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.rsc-section-head[b-cs74mdtrvn] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-2);
}

.rsc-section-title[b-cs74mdtrvn] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.rsc-link[b-cs74mdtrvn] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-strong);
    text-decoration: none;
}

.rsc-cards[b-cs74mdtrvn] {
    display: grid;
    gap: var(--fai-space-3);
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: target;
}

.rsc-card[b-cs74mdtrvn] {
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    box-shadow: var(--fai-shadow-xs);
}

.rsc-card-head[b-cs74mdtrvn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
}

.rsc-card-name[b-cs74mdtrvn] {
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-body);
    font-weight: 700;
    color: var(--fai-ink);
}

.rsc-card-meta[b-cs74mdtrvn] {
    margin: var(--fai-space-1) 0 var(--fai-space-2);
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.rsc-card-why[b-cs74mdtrvn] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    line-height: var(--fai-leading-normal);
}

.rsc-card-brief[b-cs74mdtrvn] {
    display: inline-block;
    margin-block-start: var(--fai-space-3);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-strong);
    text-decoration: none;
}

.rsc-note[b-cs74mdtrvn] {
    display: grid;
    gap: var(--fai-space-2);
}

.rsc-note-row[b-cs74mdtrvn] {
    display: flex;
    align-items: start;
    gap: var(--fai-space-2);
}

.rsc-note-row .rsc-area[b-cs74mdtrvn] {
    flex: 1;
}

.rsc-note-status[b-cs74mdtrvn] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-success);
}

.rsc-note-queued[b-cs74mdtrvn] {
    color: var(--fai-warning);
}

.rsc-note-result[b-cs74mdtrvn] {
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
}

.rsc-note-result ul[b-cs74mdtrvn] {
    margin: var(--fai-space-2) 0 0;
    padding-inline-start: var(--fai-space-5);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.rsc-next[b-cs74mdtrvn] {
    display: grid;
    gap: var(--fai-space-3);
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-ai);
    border-radius: var(--fai-radius-lg);
    background: linear-gradient(180deg, var(--fai-ai-soft), var(--fai-surface) 45%);
}

.rsc-next-grid[b-cs74mdtrvn] {
    display: grid;
    gap: var(--fai-space-2);
}
/* /Pages/Onsite/RouteView.razor.rz.scp.css */
/* FAI-P03-01/04/05 (M5) — Route & map view styles (isolated). */
.rtv[b-2faf4jgj05] {
    max-inline-size: 1180px;
    margin-inline: auto;
    display: grid;
    gap: var(--fai-space-4);
}

.rtv-head[b-2faf4jgj05] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--fai-space-4);
    flex-wrap: wrap;
}

.rtv-kicker[b-2faf4jgj05] {
    margin: 0 0 var(--fai-space-1);
    font-size: var(--fai-text-xs);
}

.rtv-back[b-2faf4jgj05] {
    color: var(--fai-primary-strong);
    text-decoration: none;
    font-weight: 600;
}

.rtv-title[b-2faf4jgj05] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
}

.rtv-sub[b-2faf4jgj05] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.rtv-totals[b-2faf4jgj05] {
    display: flex;
    gap: var(--fai-space-3);
    padding: var(--fai-space-2) var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
    font-variant-numeric: tabular-nums;
}

/* SH — "resume where left off": a small, dismissible-by-tapping-away pill, not a modal nag. */
.rtv-resume[b-2faf4jgj05] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    align-self: flex-start;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-primary-line);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-family: inherit;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    cursor: pointer;
}

.rtv-resume:hover[b-2faf4jgj05],
.rtv-resume:focus-visible[b-2faf4jgj05] {
    background: var(--fai-primary-soft-strong, var(--fai-primary-soft));
}

.rtv-stale[b-2faf4jgj05] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-warning-soft);
    color: var(--fai-warning);
    font-size: var(--fai-text-sm);
}

.rtv-controls[b-2faf4jgj05] {
    display: grid;
    gap: var(--fai-space-2);
}

.rtv-modes[b-2faf4jgj05] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--fai-space-2);
}

.rtv-mode[b-2faf4jgj05] {
    display: grid;
    gap: 2px;
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    text-align: start;
    cursor: pointer;
    transition:
        border-color var(--fai-motion-fast) var(--fai-ease),
        background var(--fai-motion-fast) var(--fai-ease);
}

.rtv-mode:hover[b-2faf4jgj05] {
    border-color: var(--fai-primary-line);
}

.rtv-mode-active[b-2faf4jgj05],
.rtv-mode-active:hover[b-2faf4jgj05] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.rtv-mode-name[b-2faf4jgj05] {
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    font-weight: 600;
    color: var(--fai-ink);
}

.rtv-mode-sub[b-2faf4jgj05] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.rtv-budget[b-2faf4jgj05] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.rtv-budget input[b-2faf4jgj05] {
    inline-size: 5.5em;
    min-block-size: var(--fai-target-min);
    padding: var(--fai-space-1) var(--fai-space-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    font-variant-numeric: tabular-nums;
}

.rtv-error[b-2faf4jgj05] {
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-danger-soft);
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.rtv-layout[b-2faf4jgj05] {
    display: grid;
    gap: var(--fai-space-4);
    align-items: start;
}

@media (min-width: 900px) {
    .rtv-layout[b-2faf4jgj05] {
        grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    }
}

.rtv-stops[b-2faf4jgj05] {
    display: grid;
    gap: var(--fai-space-4);
}

.rtv-stoplist[b-2faf4jgj05] {
    display: grid;
    gap: var(--fai-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.rtv-stop[b-2faf4jgj05] {
    position: relative;
    display: grid;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
}

/* SH (2026-09-19) — a connecting line down the order circles, so the stop list reads as a walked
   journey (place → place → place) instead of an unrelated stack of cards. */
.rtv-stop:not(:last-child)[b-2faf4jgj05]::after {
    content: "";
    position: absolute;
    inset-inline-start: calc(var(--fai-space-4) + 14px - 1px);
    inset-block-start: 100%;
    block-size: var(--fai-space-2);
    inline-size: 2px;
    background: var(--fai-border-strong);
}

.rtv-stop-next[b-2faf4jgj05] {
    border-color: var(--fai-ai);
    background: linear-gradient(180deg, var(--fai-ai-soft), var(--fai-surface) 55%);
}

.rtv-stop-done[b-2faf4jgj05] {
    opacity: .62;
}

.rtv-stop-main[b-2faf4jgj05] {
    display: flex;
    align-items: start;
    gap: var(--fai-space-3);
}

.rtv-stop-order[b-2faf4jgj05] {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 28px;
    block-size: 28px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-weight: 700;
}

.rtv-stop-body[b-2faf4jgj05] {
    flex: 1;
    display: grid;
    gap: 2px;
}

.rtv-stop-name[b-2faf4jgj05] {
    font-weight: 600;
    color: var(--fai-ink);
}

.rtv-stop-meta[b-2faf4jgj05] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    font-variant-numeric: tabular-nums;
}

.rtv-stop-why[b-2faf4jgj05] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    line-height: var(--fai-leading-normal);
}

.rtv-next-tag[b-2faf4jgj05] {
    flex: none;
    padding: 2px var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-ai);
    color: var(--fai-on-primary);
    font-size: var(--fai-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.rtv-stop-actions[b-2faf4jgj05] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    padding-inline-start: 40px;
}

.rtv-done-tag[b-2faf4jgj05] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-success);
}

.rtv-section-head[b-2faf4jgj05] {
    margin-block-end: var(--fai-space-2);
}

.rtv-section-title[b-2faf4jgj05] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.rtv-bestnext[b-2faf4jgj05] {
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
}

.rtv-bestnext-summary[b-2faf4jgj05] {
    margin: 0 0 var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.rtv-bestnext-list[b-2faf4jgj05] {
    display: grid;
    gap: var(--fai-space-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.rtv-bestnext-list li[b-2faf4jgj05] {
    display: grid;
    gap: 2px;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
}

/* FAI-P09-03 — AR guide toolbar: sits between the mode controls and the map; the note is a
   status line (battery warning, re-anchor confirmation, honest failures), never a modal. */
.rtv-ar[b-2faf4jgj05] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.rtv-ar-note[b-2faf4jgj05] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}
/* /Pages/Onsite/Venue3D.razor.rz.scp.css */
/* FAI-P09-04 — phone-first 3D venue viewer. */
.venue3d[b-jtk5j8h76q]{max-width:1200px;margin:0 auto;padding:clamp(1rem,3vw,2.5rem);color:var(--fai-ink,#17221e)}
.venue3d header[b-jtk5j8h76q]{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.venue3d h1[b-jtk5j8h76q]{margin:.2rem 0;font-size:clamp(1.8rem,4vw,3rem)}.venue3d .kicker[b-jtk5j8h76q]{font-size:.72rem;letter-spacing:.15em;color:var(--fai-accent,#0c8061);font-weight:700}
.venue3d-layout[b-jtk5j8h76q]{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.8fr);gap:1rem}.viewer[b-jtk5j8h76q],.venue3d-side[b-jtk5j8h76q]{border:1px solid var(--fai-line,#d9ded8);border-radius:1rem;background:var(--fai-surface,#fff);overflow:hidden}.viewer model-viewer[b-jtk5j8h76q]{display:block;width:100%;height:min(68vh,680px);min-height:350px;background:radial-gradient(ellipse at center,#f7faf7,#e7eee9)}
/* The header "Enter VR" button is the single immersive entry point — model-viewer's own
   built-in AR fab stays hidden (it would appear once ar="true" resolves a webxr session). */
.venue3d model-viewer[b-jtk5j8h76q]::part(default-ar-button){display:none}.viewer-toolbar[b-jtk5j8h76q]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.85rem}.venue3d-side[b-jtk5j8h76q]{padding:1rem;max-height:75vh;overflow:auto}.venue3d-side h2[b-jtk5j8h76q]{font-size:1rem}.booth-row[b-jtk5j8h76q]{display:flex;gap:.5rem;margin:.35rem 0}.booth-pick[b-jtk5j8h76q]{flex:1;text-align:left;padding:.7rem;border:1px solid var(--fai-line,#d9ded8);border-radius:.6rem;background:transparent;color:inherit}.booth-pick.selected[b-jtk5j8h76q]{border-color:var(--fai-accent,#0c8061);background:#e8f5ef}.target[b-jtk5j8h76q]{border:0;background:transparent;font-size:1.4rem;color:#b47a10}.briefing[b-jtk5j8h76q]{padding:.75rem;margin:.75rem 0;background:var(--fai-canvas,#f6f7f4);border-radius:.75rem;font-size:.9rem}.briefing p[b-jtk5j8h76q]{margin:.5rem 0}.venue3d-side ol[b-jtk5j8h76q]{padding-left:1.5rem}.progress[b-jtk5j8h76q]{position:absolute;left:0;right:0;height:4px;background:#ddd}.progress span[b-jtk5j8h76q]{display:block;height:100%;width:35%;background:#13876a;animation:load-b-jtk5j8h76q 1.2s infinite alternate}@keyframes load-b-jtk5j8h76q{to{width:85%}}
@media(max-width:760px){.venue3d-layout[b-jtk5j8h76q]{grid-template-columns:1fr}.viewer model-viewer[b-jtk5j8h76q]{height:52vh;min-height:300px}.venue3d-side[b-jtk5j8h76q]{max-height:none}.venue3d header[b-jtk5j8h76q]{align-items:flex-start}}
/* /Pages/Onsite/VoiceInbox.razor.rz.scp.css */
/* FAI-P03-03 (M5) — Voice inbox styles (isolated). */
.vix[b-5j59rzl6vn] {
    max-inline-size: 760px;
    margin-inline: auto;
    display: grid;
    gap: var(--fai-space-4);
}

.vix-head[b-5j59rzl6vn] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--fai-space-4);
    flex-wrap: wrap;
}

.vix-kicker[b-5j59rzl6vn] {
    margin: 0 0 var(--fai-space-1);
    font-size: var(--fai-text-xs);
}

.vix-back[b-5j59rzl6vn] {
    color: var(--fai-primary-strong);
    text-decoration: none;
    font-weight: 600;
}

.vix-title[b-5j59rzl6vn] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
}

.vix-sub[b-5j59rzl6vn] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.vix-pill[b-5j59rzl6vn] {
    padding: var(--fai-space-1) var(--fai-space-3);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-warning-soft);
    color: var(--fai-warning);
    font-size: var(--fai-text-xs);
    font-weight: 700;
}

.vix-capture[b-5j59rzl6vn] {
    display: grid;
    gap: var(--fai-space-2);
}

.vix-input[b-5j59rzl6vn] {
    min-block-size: var(--fai-target-min);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    color: var(--fai-ink);
}

.vix-area[b-5j59rzl6vn] {
    resize: vertical;
}

/* SH (2026-09-22) — the capture row, spaced properly (Sana: "fix the spacing of the record icon").
   Three controls of different shapes sit here: a pill button, a round record button, and a text
   field. Two things were wrong. The 8px gap left the record button crowded against both of its
   neighbours, with nothing to say it is a control of its own; and the three did not share a
   height, so the primary button's 40px sat short against two 44px controls and the row read as
   slightly broken. Now every control is one 44px tall row, the two buttons keep a tight gap
   because they belong together, and the field is pushed off by a little more so the eye reads
   "actions, then what you are typing about". Logical properties, so the row mirrors with the
   shell. */
.vix-capture-row[b-5j59rzl6vn] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.vix-capture-row > .fai-btn[b-5j59rzl6vn],
.vix-capture-row .vix-input[b-5j59rzl6vn] {
    block-size: var(--fai-target-min);
    min-block-size: var(--fai-target-min);
}

/* The field comes first in the markup and the two buttons follow it, so the extra separation goes
   on the field's end edge. ::deep on the record button because it is a child component, which
   scoped CSS does not reach on its own. */
.vix-capture-row .vix-input[b-5j59rzl6vn] {
    flex: 1;
    min-inline-size: 160px;
    margin-inline-end: var(--fai-space-1);
}

/* A round record button, not a rounded rectangle: it carries an icon alone, so its width should
   equal its height rather than being padded like a labelled button. */
.vix-capture-row[b-5j59rzl6vn]  .fai-voice {
    flex: none;
    inline-size: var(--fai-target-min);
    min-inline-size: var(--fai-target-min);
    block-size: var(--fai-target-min);
    padding: 0;
    justify-content: center;
}

.vix-status[b-5j59rzl6vn] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-success);
}

.vix-status-queued[b-5j59rzl6vn] {
    color: var(--fai-warning);
}

.vix-section[b-5j59rzl6vn] {
    display: grid;
    gap: var(--fai-space-2);
}

.vix-section-head[b-5j59rzl6vn] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--fai-space-3);
}

.vix-section-title[b-5j59rzl6vn] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.vix-link[b-5j59rzl6vn] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-strong);
    text-decoration: none;
}

.vix-list[b-5j59rzl6vn] {
    display: grid;
    gap: var(--fai-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.vix-item[b-5j59rzl6vn] {
    display: grid;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
}

.vix-item-pending[b-5j59rzl6vn] {
    border-color: var(--fai-warning);
    background: linear-gradient(180deg, var(--fai-warning-soft), var(--fai-surface) 45%);
}

.vix-item-text[b-5j59rzl6vn] {
    margin: 0;
    font-size: var(--fai-text-body);
    color: var(--fai-ink);
}

.vix-item-meta[b-5j59rzl6vn] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    font-variant-numeric: tabular-nums;
}

.vix-item-label[b-5j59rzl6vn] {
    margin: var(--fai-space-2) 0 2px;
    font-size: var(--fai-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--fai-ink-3);
}

.vix-todos[b-5j59rzl6vn] {
    margin: 0;
    padding-inline-start: var(--fai-space-5);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.vix-learnings[b-5j59rzl6vn] {
    list-style: circle;
}

.vix-item-actions[b-5j59rzl6vn] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}
/* /Pages/Pipeline/CardCapturePanel.razor.rz.scp.css */
/* FAI-P04-01 + FAI-P08-05 — On-site visitor-card capture panel (camera-first pick, preview,
   post-scan quick-tag overlay). Scoped to CardCapturePanel. */

.plc-scan[b-5kzcmtlicd] {
    display: grid;
    gap: 0.75rem;
}

.plc-scan-pick[b-5kzcmtlicd] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.75rem;
}

.plc-scan-btn[b-5kzcmtlicd] {
    display: grid;
    gap: 0.15rem;
    padding: 0.9rem 1rem;
    border: 1px dashed var(--fai-border, #c9ccd4);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.plc-scan-btn:hover[b-5kzcmtlicd] {
    border-color: var(--fai-accent, #2563eb);
}

.plc-scan-btn-camera[b-5kzcmtlicd] {
    border-style: solid;
    border-color: var(--fai-accent, #2563eb);
}

.plc-scan-btn-title[b-5kzcmtlicd] {
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.plc-scan-btn-sub[b-5kzcmtlicd] {
    font-size: 0.78rem;
    opacity: 0.7;
}

.plc-scan-preview[b-5kzcmtlicd] {
    max-width: min(420px, 100%);
    max-height: 220px;
    width: 100%;
    object-fit: contain;
    border-radius: 10px;
    border: 1px solid var(--fai-border, #c9ccd4);
    background: #fff;
    justify-self: start;
}

.plc-scan-overlay[b-5kzcmtlicd] {
    display: grid;
    gap: 0.6rem;
}

.plc-scan-result-head[b-5kzcmtlicd] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.plc-scan-thumb[b-5kzcmtlicd] {
    width: 72px;
    height: 48px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--fai-border, #c9ccd4);
    background: #fff;
}

.plc-scan-result-id[b-5kzcmtlicd] {
    display: grid;
    flex: 1;
}

.plc-scan-name[b-5kzcmtlicd] {
    font-weight: 600;
    margin: 0;
}

.plc-scan-meta[b-5kzcmtlicd] {
    margin: 0;
    font-size: 0.82rem;
    opacity: 0.75;
}

.plc-scan-hint[b-5kzcmtlicd] {
    margin: 0;
    font-size: 0.85rem;
    opacity: 0.8;
}

.plc-scan-tags[b-5kzcmtlicd] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.plc-scan-tag[b-5kzcmtlicd] {
    border: 1px solid var(--fai-border, #c9ccd4);
    border-radius: 999px;
    background: transparent;
    padding: 0.3rem 0.8rem;
    font-size: 0.82rem;
    cursor: pointer;
    transition: background-color 120ms ease, color 120ms ease;
}

.plc-scan-tag-on[b-5kzcmtlicd] {
    background: var(--fai-accent, #2563eb);
    border-color: var(--fai-accent, #2563eb);
    color: #fff;
}

.plc-scan-custom[b-5kzcmtlicd] {
    max-width: 240px;
}

.plc-scan-actions[b-5kzcmtlicd] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
}

.plc-scan-done[b-5kzcmtlicd] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.plc-scan-error[b-5kzcmtlicd] {
    margin: 0;
    color: var(--fai-danger, #b42318);
    font-size: 0.85rem;
}
/* /Pages/Pipeline/CardScan.razor.rz.scp.css */
/* SH (2026-09-20) — business card scan section. Logical properties throughout (RTL-safe). */
.cs[b-elkb0vkbhc] {
    display: grid;
    gap: var(--fai-space-4);
}

.cs-hint[b-elkb0vkbhc] {
    margin: 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.cs-hint a[b-elkb0vkbhc] {
    color: var(--fai-primary-ink);
    font-weight: 600;
}

.cs-list[b-elkb0vkbhc] {
    list-style: none;
    margin: 0 0 var(--fai-space-3);
    padding: 0;
    display: grid;
    gap: var(--fai-space-2);
}

.cs-row[b-elkb0vkbhc] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--fai-space-2);
    padding-block-end: var(--fai-space-2);
    border-block-end: 1px solid var(--fai-border);
}

.cs-row:last-child[b-elkb0vkbhc] {
    border-block-end: 0;
    padding-block-end: 0;
}

.cs-name[b-elkb0vkbhc] {
    font-weight: 600;
    color: var(--fai-ink);
}

.cs-meta[b-elkb0vkbhc] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.cs-merged[b-elkb0vkbhc] {
    padding: 2px var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-xs);
}
/* /Pages/Pipeline/PipelineContacts.razor.rz.scp.css */
/* FAI-P04-01 + FAI-P04-03 (M6) — Contacts page layout (UI_UX_PLAN §6.10): search/sort toolbar,
   list rows with avatar + merge badges, vCard import card, detail sheet content. Logical
   properties throughout (RTL-safe). */
.plc[b-byw67opo5x] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.plc-error[b-byw67opo5x] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.plc-tools[b-byw67opo5x] {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: var(--fai-space-3);
}

.plc-search[b-byw67opo5x] {
    flex: 1 1 16rem;
}

.plc-sort[b-byw67opo5x] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.plc-label[b-byw67opo5x] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.plc-input[b-byw67opo5x] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 40px;
}

.plc-input:focus[b-byw67opo5x] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.plc-textarea[b-byw67opo5x] {
    inline-size: 100%;
    resize: vertical;
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    margin-block-end: var(--fai-space-3);
}

.plc-import-actions[b-byw67opo5x] {
    display: flex;
    gap: var(--fai-space-2);
}

.plc-note[b-byw67opo5x] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: var(--fai-space-3) 0 0;
    color: var(--fai-success);
    font-size: var(--fai-text-sm);
}

/* --- Grid rows (list semantics; buttons for keyboard path) --- */
.plc-grid[b-byw67opo5x] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    overflow: hidden;
}

.plc-row[b-byw67opo5x] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    inline-size: 100%;
    padding: var(--fai-space-3);
    border: 0;
    border-block-end: 1px solid var(--fai-border);
    background: var(--fai-surface);
    color: inherit;
    font: inherit;
    text-align: start;
    cursor: pointer;
    min-block-size: 56px;
}

.plc-grid li:last-child .plc-row[b-byw67opo5x] {
    border-block-end: 0;
}

.plc-row:hover[b-byw67opo5x] {
    background: var(--fai-surface-2);
}

.plc-row:focus-visible[b-byw67opo5x] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

.plc-row-main[b-byw67opo5x] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-inline-size: 0;
}

.plc-row-name[b-byw67opo5x] {
    font-weight: 500;
    color: var(--fai-ink);
}

.plc-row-meta[b-byw67opo5x] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

/* --- Detail sheet --- */
.plc-detail[b-byw67opo5x] {
    margin: 0 0 var(--fai-space-4);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: var(--fai-space-3);
}

.plc-detail div[b-byw67opo5x] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.plc-detail dt[b-byw67opo5x] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.plc-detail dd[b-byw67opo5x] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    overflow-wrap: anywhere;
}

.plc-detail a[b-byw67opo5x] {
    color: var(--fai-primary-ink);
}

.plc-subhead[b-byw67opo5x] {
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
    margin: 0 0 var(--fai-space-2);
}

.plc-muted[b-byw67opo5x] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.plc-deals[b-byw67opo5x] {
    list-style: none;
    margin: 0 0 var(--fai-space-4);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.plc-deals li[b-byw67opo5x] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface-2);
}

.plc-deal-title[b-byw67opo5x] {
    flex: 1;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
    min-inline-size: 0;
    overflow-wrap: anywhere;
}

.plc-deal-value[b-byw67opo5x] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.plc-sheet-actions[b-byw67opo5x] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

/* FAI-P08-05 - stored card photo + quick tags in the detail sheet. */
.plc-tags[b-byw67opo5x] { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.75rem 0; }
.plc-card-photo[b-byw67opo5x] { max-width: 280px; width: 100%; border-radius: 10px; border: 1px solid var(--fai-border, #c9ccd4); margin-top: 0.75rem; }
/* /Pages/Pipeline/PipelineDeals.razor.rz.scp.css */
/* FAI-P04-07 (M6) — Deals page layout (UI_UX_PLAN §6.10): stalled strip, card content inside the
   kanban ItemTemplate (page-scoped), and the create-deal form. Logical properties (RTL-safe). */
.pld[b-7ts1ydalxj] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.pld-error[b-7ts1ydalxj] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.pld-stalled[b-7ts1ydalxj] {
    border: 1px solid var(--fai-warning);
    border-inline-start: 3px solid var(--fai-warning);
    border-radius: var(--fai-radius-md);
    background: var(--fai-warning-soft);
    padding: var(--fai-space-3);
}

.pld-stalled-label[b-7ts1ydalxj] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.pld-stalled ul[b-7ts1ydalxj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.pld-stalled li[b-7ts1ydalxj] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

/* --- Kanban card content --- */
.pld-card[b-7ts1ydalxj] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
    padding: var(--fai-space-3);
}

.pld-card-title[b-7ts1ydalxj] {
    font-size: var(--fai-text-sm);
    font-weight: 500;
    color: var(--fai-ink);
    overflow-wrap: anywhere;
}

.pld-card-value[b-7ts1ydalxj] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-strong);
}

.pld-card-contact[b-7ts1ydalxj] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-2);
}

.pld-card-age[b-7ts1ydalxj] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.pld-advance[b-7ts1ydalxj] {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
    margin-block-start: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-primary-strong);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    cursor: pointer;
    min-block-size: 44px;
}

.pld-advance:hover:not(:disabled)[b-7ts1ydalxj] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.pld-advance:focus-visible[b-7ts1ydalxj] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

.pld-advance:disabled[b-7ts1ydalxj] {
    opacity: 0.6;
    cursor: default;
}

.pld-card-outcome[b-7ts1ydalxj] {
    margin-block-start: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-sm);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    background: var(--fai-surface-3);
    color: var(--fai-ink-3);
    align-self: flex-start;
}

.pld-card-outcome-won[b-7ts1ydalxj] {
    background: var(--fai-success-soft);
    color: var(--fai-success);
}

.pld-foot[b-7ts1ydalxj] {
    display: flex;
    justify-content: flex-start;
}

/* --- Create form --- */
.pld-form[b-7ts1ydalxj] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.pld-field[b-7ts1ydalxj] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
    flex: 1;
}

.pld-field-row[b-7ts1ydalxj] {
    display: flex;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
}

.pld-field-narrow[b-7ts1ydalxj] {
    flex: 0 0 7rem;
}

.pld-label[b-7ts1ydalxj] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.pld-input[b-7ts1ydalxj] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 40px;
}

.pld-input:focus[b-7ts1ydalxj] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}
/* /Pages/Pipeline/PipelineFollowUps.razor.rz.scp.css */
/* FAI-P04-02 (M6) — Follow-ups page layout (UI_UX_PLAN §6.10): two-column meeting/drafts grid,
   tone chips, checklist next steps, draft cards with copy + mark-sent actions. Logical
   properties throughout (RTL-safe). */
.plf[b-jlkvt2ii45] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.plf-error[b-jlkvt2ii45] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.plf-grid[b-jlkvt2ii45] {
    display: grid;
    grid-template-columns: minmax(20rem, 2fr) minmax(22rem, 3fr);
    gap: var(--fai-space-4);
    align-items: start;
}

@media (max-width: 1023px) {
    .plf-grid[b-jlkvt2ii45] {
        grid-template-columns: 1fr;
    }
}

.plf-field[b-jlkvt2ii45] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
    margin-block-end: var(--fai-space-3);
    flex: 1;
}

.plf-field-row[b-jlkvt2ii45] {
    display: flex;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    margin-block-end: var(--fai-space-3);
}

.plf-label[b-jlkvt2ii45] {
    display: block;
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 var(--fai-space-1);
}

.plf-input[b-jlkvt2ii45] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 40px;
}

.plf-input:focus[b-jlkvt2ii45] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.plf-textarea[b-jlkvt2ii45] {
    resize: vertical;
    min-block-size: 8rem;
}

.plf-tone-row[b-jlkvt2ii45] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    margin-block-end: var(--fai-space-3);
}

.plf-run[b-jlkvt2ii45] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

.plf-output[b-jlkvt2ii45] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.plf-steps[b-jlkvt2ii45] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.plf-steps li[b-jlkvt2ii45] {
    display: flex;
    align-items: flex-start;
    gap: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.plf-steps input[type="checkbox"][b-jlkvt2ii45] {
    inline-size: 1.1rem;
    block-size: 1.1rem;
    margin-block-start: 2px;
    accent-color: var(--fai-primary);
}

.plf-steps label[b-jlkvt2ii45] {
    cursor: pointer;
}

.plf-step-done[b-jlkvt2ii45] {
    text-decoration: line-through;
    color: var(--fai-ink-3);
}

.plf-draft[b-jlkvt2ii45] {
    margin: 0 0 var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.plf-draft-actions[b-jlkvt2ii45] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

.plf-sent[b-jlkvt2ii45] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
    font-weight: 500;
    cursor: pointer;
    min-block-size: 40px;
}

.plf-sent:hover[b-jlkvt2ii45] {
    border-color: var(--fai-primary-line);
}

.plf-sent:focus-visible[b-jlkvt2ii45] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

.plf-sent-done[b-jlkvt2ii45] {
    border-color: var(--fai-success);
    background: var(--fai-success-soft);
    color: var(--fai-success);
}

.plf-muted[b-jlkvt2ii45] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.plf-track-note[b-jlkvt2ii45] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}
/* /Pages/Pipeline/PipelineHub.razor.rz.scp.css */
/* FAI-P04-01..07 (M6) — Conversion hub layout (UI_UX_PLAN §6.10): snapshot stat row, entry tiles,
   and the §9.4 learning-loop strip. Logical properties throughout (RTL-safe). */
.plh[b-9swdun9v6o] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-5);
}

.plh-stats[b-9swdun9v6o] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: var(--fai-space-3);
}

.plh-error[b-9swdun9v6o] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.plh-grid[b-9swdun9v6o] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: var(--fai-space-3);
}

.plh-tile[b-9swdun9v6o] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    padding: var(--fai-space-5);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    box-shadow: var(--fai-elev-xs);
    text-decoration: none;
    color: inherit;
    min-block-size: 9rem;
    transition: border-color var(--fai-motion-fast) var(--fai-ease), box-shadow var(--fai-motion-fast) var(--fai-ease);
}

.plh-tile:hover[b-9swdun9v6o] {
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-elev-sm);
}

.plh-tile:focus-visible[b-9swdun9v6o] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.plh-tile-icon[b-9swdun9v6o] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 40px;
    block-size: 40px;
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
}

.plh-tile-title[b-9swdun9v6o] {
    font-family: var(--fai-font-display);
    font-weight: 600;
    font-size: var(--fai-text-md);
    color: var(--fai-ink);
}

.plh-tile-sub[b-9swdun9v6o] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.plh-loop[b-9swdun9v6o] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--fai-space-2) var(--fai-space-3);
    counter-reset: loop;
}

.plh-loop li[b-9swdun9v6o] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    counter-increment: loop;
}

.plh-loop li[b-9swdun9v6o]::before {
    content: counter(loop);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--fai-primary-strong);
}

.plh-loop-link[b-9swdun9v6o] {
    display: inline-flex;
    margin-block-start: var(--fai-space-3);
    color: var(--fai-primary-ink);
    font-size: var(--fai-text-sm);
    font-weight: 500;
}

/* SH redesign — row titles + the four key pipeline boxes (always four across on desktop, 2×2 on phone). */
.plh-row-title[b-9swdun9v6o] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--fai-ink-3);
}

.plh-grid-4[b-9swdun9v6o] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.plh-tile-key[b-9swdun9v6o] {
    background: var(--fai-ai-soft);
}

.plh-tile-key .plh-tile-icon[b-9swdun9v6o] {
    background: var(--fai-surface);
    border-radius: var(--fai-radius-pill);
}

.plh-tile-count[b-9swdun9v6o] {
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-xl, 1.5rem);
    font-weight: 600;
    line-height: 1.1;
    color: var(--fai-ink);
}

@media (max-width: 900px) {
    .plh-grid-4[b-9swdun9v6o] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .plh-tile-key[b-9swdun9v6o] {
        padding: var(--fai-space-4);
    }
}
/* /Pages/Plan.razor.rz.scp.css */
/* FAI-P01-09 + FAI-P04-03 (M4) — Day planner layout (UI_UX_PLAN §6.8): meeting list with reorder,
   constraint editors + preset chips, timeline with duration bars, unscheduled list. Logical
   properties throughout (RTL-safe). */
.plan[b-6cbt48v6wq] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.plan-grid[b-6cbt48v6wq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
    gap: var(--fai-space-4);
    align-items: start;
}

.plan-label[b-6cbt48v6wq] {
    display: block;
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 var(--fai-space-1);
}

.plan-input[b-6cbt48v6wq] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 40px;
}

.plan-input:focus[b-6cbt48v6wq] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.plan-textarea[b-6cbt48v6wq] {
    inline-size: 100%;
    resize: vertical;
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
}

.plan-error[b-6cbt48v6wq] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.plan-note[b-6cbt48v6wq] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    color: var(--fai-success);
    font-size: var(--fai-text-sm);
}

/* --- Meetings --- */
.plan-meetings[b-6cbt48v6wq] {
    list-style: none;
    margin: 0 0 var(--fai-space-3);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.plan-meeting[b-6cbt48v6wq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
}

.plan-meeting-name[b-6cbt48v6wq] {
    display: block;
    font-weight: 600;
    color: var(--fai-ink);
    font-size: var(--fai-text-sm);
}

.plan-meeting-meta[b-6cbt48v6wq] {
    display: block;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.plan-meeting-tools[b-6cbt48v6wq] {
    display: flex;
    gap: 4px;
}

.plan-icon-btn[b-6cbt48v6wq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 32px;
    block-size: 32px;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    cursor: pointer;
}

.plan-icon-btn:hover:not(:disabled)[b-6cbt48v6wq] {
    border-color: var(--fai-primary-line);
    color: var(--fai-primary-ink);
}

.plan-icon-btn:disabled[b-6cbt48v6wq] {
    opacity: 0.4;
    cursor: default;
}

.plan-add[b-6cbt48v6wq] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: center;
    flex-wrap: wrap;
}

.plan-add .plan-input[b-6cbt48v6wq] {
    flex: 1 1 10rem;
}

.plan-input-narrow[b-6cbt48v6wq] {
    max-inline-size: 5.5rem;
}

.plan-unit[b-6cbt48v6wq] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.plan-actions[b-6cbt48v6wq] {
    display: flex;
    gap: var(--fai-space-2);
    margin-block-start: var(--fai-space-3);
    flex-wrap: wrap;
}

.plan-empty[b-6cbt48v6wq] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
    font-style: italic;
    list-style: none;
}

/* --- Constraints --- */
.plan-window-edit[b-6cbt48v6wq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-3);
}

.plan-field[b-6cbt48v6wq] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.plan-field-narrow .plan-input[b-6cbt48v6wq] {
    max-inline-size: 6rem;
}

.plan-presets[b-6cbt48v6wq] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    margin-block-end: var(--fai-space-2);
}

.plan-windows[b-6cbt48v6wq] {
    list-style: none;
    margin: 0 0 var(--fai-space-3);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.plan-windows li[b-6cbt48v6wq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
    padding: var(--fai-space-1) var(--fai-space-2);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

/* --- Run bar --- */
.plan-run[b-6cbt48v6wq] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: center;
    flex-wrap: wrap;
}

/* --- Timeline --- */
.plan-timeline[b-6cbt48v6wq] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.plan-timeline li[b-6cbt48v6wq] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
}

.plan-slot-meeting[b-6cbt48v6wq] {
    border-inline-start: 3px solid var(--fai-primary-line);
}

.plan-slot-free[b-6cbt48v6wq] {
    border-inline-start: 3px solid var(--fai-border-strong);
    background: var(--fai-surface-2);
}

.plan-slot-time[b-6cbt48v6wq] {
    min-inline-size: 7.5rem;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.plan-slot-body[b-6cbt48v6wq] {
    flex: 1;
}

.plan-slot-name[b-6cbt48v6wq] {
    display: block;
    font-weight: 600;
    color: var(--fai-ink);
    font-size: var(--fai-text-sm);
}

.plan-slot-free .plan-slot-name[b-6cbt48v6wq] {
    color: var(--fai-ink-3);
}

.plan-slot-meta[b-6cbt48v6wq] {
    display: block;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.plan-slot-bar[b-6cbt48v6wq] {
    block-size: 8px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary);
}

.plan-slot-free .plan-slot-bar[b-6cbt48v6wq] {
    background: var(--fai-border-strong);
}

/* --- Unscheduled --- */
.plan-unscheduled[b-6cbt48v6wq] {
    margin-block-start: var(--fai-space-4);
    padding-block-start: var(--fai-space-3);
    border-block-start: 1px dashed var(--fai-border-strong);
}

.plan-unscheduled ul[b-6cbt48v6wq] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.plan-unscheduled li[b-6cbt48v6wq] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.plan-unscheduled svg[b-6cbt48v6wq] {
    flex-shrink: 0;
    margin-top: 3px;
}

.plan-unscheduled .plan-empty[b-6cbt48v6wq] {
    margin-block-start: var(--fai-space-2);
}
/* /Pages/Profile.razor.rz.scp.css */
.pf[b-ftj8ef6h52] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.pf-head[b-ftj8ef6h52] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-3);
}

.pf-title[b-ftj8ef6h52] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-color-content-1);
}

.pf-hint[b-ftj8ef6h52] {
    margin: var(--fai-space-2) 0 var(--fai-space-4);
    font-size: var(--fai-text-sm);
    line-height: 1.6;
    color: var(--fai-color-content-muted);
}

.pf-answers[b-ftj8ef6h52] {
    display: grid;
    grid-template-columns: minmax(8rem, 12rem) 1fr;
    gap: var(--fai-space-2) var(--fai-space-4);
    margin: 0;
}

.pf-answers dt[b-ftj8ef6h52] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-color-content-muted);
}

.pf-answers dd[b-ftj8ef6h52] {
    margin: 0;
    color: var(--fai-color-content-1);
}

/* Inline editing (SH, 2026-09-22). The boxes sit in the same grid cells the read-only answers use,
   so pressing Edit does not reflow the card: the text simply becomes editable where it already is.
   Each box saves when focus leaves it, which is why there is no save button. */
.pf-head-actions[b-ftj8ef6h52] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
}

.pf-save[b-ftj8ef6h52] {
    font-size: var(--fai-text-sm);
}

.pf-save-busy[b-ftj8ef6h52] {
    color: var(--fai-color-content-muted);
}

.pf-save-ok[b-ftj8ef6h52] {
    color: var(--fai-success);
}

.pf-save-bad[b-ftj8ef6h52] {
    color: var(--fai-danger);
}

.pf-edit[b-ftj8ef6h52] {
    box-sizing: border-box;
    inline-size: 100%;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    /* Answers can be Arabic or English whatever the shell's direction, so each box takes its
       direction from its own first letter rather than from the page. */
    unicode-bidi: plaintext;
}

.pf-edit:focus[b-ftj8ef6h52] {
    outline: none;
    border-color: #ffc700;
    box-shadow: 0 0 0 3px rgb(255 199 0 / 0.28);
}

.pf-edit-area[b-ftj8ef6h52] {
    resize: vertical;
    line-height: 1.5;
}

.pf-edit-select[b-ftj8ef6h52] {
    min-block-size: 44px;
}

.pf-widgets[b-ftj8ef6h52] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: var(--fai-space-2);
}

.pf-widget[b-ftj8ef6h52] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-color-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-color-surface);
    text-align: start;
    cursor: pointer;
    transition: border-color 0.18s ease, background-color 0.18s ease;
}

.pf-widget:hover:not(:disabled)[b-ftj8ef6h52] {
    border-color: var(--fai-color-primary);
}

.pf-widget:disabled[b-ftj8ef6h52] {
    opacity: 0.6;
    cursor: default;
}

.pf-widget-on[b-ftj8ef6h52] {
    border-color: var(--fai-color-primary);
    background: var(--fai-color-primary-soft, var(--fai-color-surface-2));
}

/* Same bidi isolation as the Micro page: these titles come from the catalog in English, and
   without it the Arabic shell reorders them and throws the full stops to the front. */
.pf-widget-title[b-ftj8ef6h52],
.pf-widget-sub[b-ftj8ef6h52] {
    unicode-bidi: plaintext;
    text-align: start;
}

.pf-widget-title[b-ftj8ef6h52] {
    font-weight: 600;
    color: var(--fai-color-content-1);
}

.pf-widget-sub[b-ftj8ef6h52] {
    font-size: var(--fai-text-sm);
    color: var(--fai-color-content-muted);
}

.pf-widget:focus-visible[b-ftj8ef6h52] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

@media (max-width: 560px) {
    .pf-answers[b-ftj8ef6h52] {
        grid-template-columns: 1fr;
        gap: 0.125rem var(--fai-space-4);
    }

    .pf-answers dd[b-ftj8ef6h52] {
        margin-block-end: var(--fai-space-2);
    }
}
/* /Pages/Roi.razor.rz.scp.css */
/* FAI-P04-07 (M6) — ROI dashboard layout (UI_UX_PLAN §6.10): KPI stat row, funnel-mix labeled
   bars (hand-rolled, §3.6), reconciliation banner. Logical properties throughout (RTL-safe). */
.roi[b-2sfqnbf34a] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.roi-error[b-2sfqnbf34a] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.roi-stats[b-2sfqnbf34a] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: var(--fai-space-3);
}

.roi-bars[b-2sfqnbf34a] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.roi-bar-row[b-2sfqnbf34a] {
    display: grid;
    grid-template-columns: 6.5rem 1fr auto;
    align-items: center;
    gap: var(--fai-space-3);
}

.roi-bar-name[b-2sfqnbf34a] {
    font-size: var(--fai-text-sm);
    font-weight: 500;
    color: var(--fai-ink-2);
}

.roi-bar-track[b-2sfqnbf34a] {
    display: block;
    block-size: 10px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    overflow: hidden;
}

.roi-bar-fill[b-2sfqnbf34a] {
    display: block;
    block-size: 100%;
    border-radius: inherit;
    background: var(--fai-primary);
}

.roi-bar-fill-won[b-2sfqnbf34a] {
    background: var(--fai-success);
}

.roi-bar-fill-lost[b-2sfqnbf34a] {
    background: var(--fai-ink-3);
}

.roi-bar-value[b-2sfqnbf34a] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    font-variant-numeric: tabular-nums;
}

@media (max-width: 639px) {
    .roi-bar-row[b-2sfqnbf34a] {
        grid-template-columns: 1fr;
        gap: var(--fai-space-1);
    }

    .roi-bar-value[b-2sfqnbf34a] {
        order: -1;
    }
}

.roi-recon[b-2sfqnbf34a] {
    display: flex;
    align-items: flex-start;
    gap: var(--fai-space-2);
    margin: 0;
    font-size: var(--fai-text-sm);
}

.roi-recon-ok[b-2sfqnbf34a] {
    color: var(--fai-success);
}

.roi-recon-bad[b-2sfqnbf34a] {
    color: var(--fai-danger);
}

.roi-muted[b-2sfqnbf34a] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.roi-foot[b-2sfqnbf34a] {
    display: flex;
    justify-content: flex-start;
}

.roi-note[b-2sfqnbf34a] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}
/* /Pages/Settings.razor.rz.scp.css */
/* FAI-P05-14 + FAI-P00-03 + FAI-P07-02 — Settings & compliance center (/settings). Logical
   properties throughout for RTL parity; tokens only. */
.set-stack[b-bp44h2bvrz] {
    display: grid;
    gap: var(--fai-space-4);
    margin-block-start: var(--fai-space-3);
}

.set-cta[b-bp44h2bvrz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.set-cta:hover[b-bp44h2bvrz] {
    background: var(--fai-primary-fill-strong);
}

/* -- Company branding (logo + name) --------------------------------------- */
.set-branding[b-bp44h2bvrz] {
    display: flex;
    gap: var(--fai-space-4);
    align-items: flex-start;
    flex-wrap: wrap;
}

.set-branding-logo[b-bp44h2bvrz] {
    flex: none;
    inline-size: 72px;
    block-size: 72px;
    border-radius: var(--fai-radius-md);
    border: 1px solid var(--fai-border);
    background: var(--fai-surface-2);
    display: grid;
    place-items: center;
    overflow: hidden;
}

.set-branding-logo img[b-bp44h2bvrz] {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.set-branding-placeholder[b-bp44h2bvrz] {
    color: var(--fai-ink-3);
    display: inline-flex;
}

.set-branding-fields[b-bp44h2bvrz] {
    flex: 1 1 16rem;
    display: grid;
    gap: var(--fai-space-2);
    min-inline-size: 0;
}

.set-branding-actions[b-bp44h2bvrz] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

/* A <label for> triggering a hidden file input — a.fai-btn/FaiButton's CSS doesn't target <label>,
   so this mirrors that same look (base.css's a.fai-btn-secondary) locally. */
.set-branding-upload[b-bp44h2bvrz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: 32px;
    padding-inline: var(--fai-space-3);
    border: var(--fai-border-width) solid var(--fai-border-strong);
    border-radius: var(--fai-radius-button);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    font-weight: 600;
    font-size: var(--fai-text-sm);
    cursor: pointer;
}

.set-branding-upload:hover[b-bp44h2bvrz] {
    border-color: var(--fai-primary-line);
    color: var(--fai-primary-strong);
}

.set-branding-name-label[b-bp44h2bvrz] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.set-input[b-bp44h2bvrz] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
    /* FAI-P08-03 — phone-first: fields fill their card instead of the input's intrinsic ~347px
       width, which pushed /settings 107px past a 390px viewport. */
    inline-size: 100%;
    max-inline-size: 100%;
    box-sizing: border-box;
}

.set-input:focus[b-bp44h2bvrz] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

/* -- Switch rows (battery / display modes) -------------------------------- */
.set-switch-row[b-bp44h2bvrz] {
    display: flex;
    align-items: flex-start;
    gap: var(--fai-space-3);
    padding-block: var(--fai-space-2);
}

.set-switch-row + .set-switch-row[b-bp44h2bvrz] {
    border-block-start: 1px solid var(--fai-border);
}

.set-switch[b-bp44h2bvrz] {
    appearance: none;
    flex: none;
    inline-size: 2.75rem;
    block-size: 1.5rem;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    border: 1px solid var(--fai-border-strong);
    position: relative;
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease;
}

.set-switch[b-bp44h2bvrz]::after {
    content: "";
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 3px;
    transform: translateY(-50%);
    inline-size: 1.125rem;
    block-size: 1.125rem;
    border-radius: 50%;
    background: var(--fai-surface);
    border: 1px solid var(--fai-border-strong);
    transition: inset-inline-start var(--fai-motion-fast) ease;
}

.set-switch:checked[b-bp44h2bvrz] {
    background: var(--fai-primary);
    border-color: var(--fai-primary-line);
}

.set-switch:checked[b-bp44h2bvrz]::after {
    inset-inline-start: calc(100% - calc(1.125rem + 3px));
}

.set-switch:disabled[b-bp44h2bvrz] {
    opacity: .55;
    cursor: not-allowed;
}

.set-switch:focus-visible[b-bp44h2bvrz] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

.set-switch-label[b-bp44h2bvrz] {
    display: grid;
    gap: 2px;
    cursor: pointer;
}

.set-switch-title[b-bp44h2bvrz] {
    font-size: var(--fai-text-body);
    font-weight: 600;
    color: var(--fai-ink);
}

.set-switch-sub[b-bp44h2bvrz] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

/* -- Language segmented control -------------------------------------------- */
.set-lang[b-bp44h2bvrz] {
    display: inline-flex;
    /* FAI-P08-03 — phone-first: the 6-language / 5-theme button rows wrap instead of pushing
       the page ~107px past a 390px viewport. */
    flex-wrap: wrap;
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    overflow: hidden;
}

.set-lang-btn[b-bp44h2bvrz] {
    appearance: none;
    border: none;
    padding: var(--fai-space-2) var(--fai-space-4);
    min-block-size: var(--fai-target-min);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    font-family: var(--fai-font-body);
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease;
}

.set-lang-btn + .set-lang-btn[b-bp44h2bvrz] {
    border-inline-start: 1px solid var(--fai-border-strong);
}

.set-lang-on[b-bp44h2bvrz] {
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
}

.set-lang-btn:disabled[b-bp44h2bvrz] {
    opacity: .55;
    cursor: not-allowed;
}

.set-lang-btn:focus-visible[b-bp44h2bvrz] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

.set-link[b-bp44h2bvrz] {
    color: var(--fai-primary-ink);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    text-decoration: none;
}

.set-link:hover[b-bp44h2bvrz] {
}

/* -- Consent receipts ------------------------------------------------------- */
.set-empty[b-bp44h2bvrz] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.set-consents[b-bp44h2bvrz] {
    list-style: none;
    margin: 0 0 var(--fai-space-3);
    padding: 0;
    display: grid;
}

.set-consent[b-bp44h2bvrz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    padding-block: var(--fai-space-2);
}

.set-consent + .set-consent[b-bp44h2bvrz] {
    border-block-start: 1px solid var(--fai-border);
}

.set-consent-main[b-bp44h2bvrz] {
    display: grid;
    gap: 2px;
}

.set-consent-purpose[b-bp44h2bvrz] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.set-consent-meta[b-bp44h2bvrz] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.set-consent-side[b-bp44h2bvrz] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
}

/* -- Grant form ------------------------------------------------------------ */
.set-grant[b-bp44h2bvrz] {
    border-block-start: 1px solid var(--fai-border);
    padding-block-start: var(--fai-space-3);
    display: grid;
    gap: var(--fai-space-2);
}

.set-grant-label[b-bp44h2bvrz] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.set-grant-row[b-bp44h2bvrz] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    align-items: center;
}

.set-select[b-bp44h2bvrz] {
    flex: 1 1 10rem;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
}

.set-select:focus[b-bp44h2bvrz] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.set-grant-hint[b-bp44h2bvrz] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

/* -- Data rights (DSR) ------------------------------------------------------ */
.set-dsr[b-bp44h2bvrz] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    margin-block-end: var(--fai-space-3);
}

.set-snapshot[b-bp44h2bvrz] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    margin-block-end: var(--fai-space-3);
}

.set-snapshot summary[b-bp44h2bvrz] {
    padding: var(--fai-space-2) var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    cursor: pointer;
    min-block-size: 44px;
    display: flex;
    align-items: center;
}

.set-snapshot-json[b-bp44h2bvrz] {
    margin: 0;
    padding: var(--fai-space-3);
    border-block-start: 1px solid var(--fai-border);
    max-block-size: 16rem;
    overflow: auto;
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-2);
    white-space: pre-wrap;
    word-break: break-word;
}

.set-dsrs[b-bp44h2bvrz] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
}

.set-dsr-row[b-bp44h2bvrz] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    padding-block: var(--fai-space-2);
}

.set-dsr-row + .set-dsr-row[b-bp44h2bvrz] {
    border-block-start: 1px solid var(--fai-border);
}

.set-dsr-kind[b-bp44h2bvrz] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
    min-inline-size: 5rem;
}

.set-dsr-meta[b-bp44h2bvrz] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

/* -- Offline queue ---------------------------------------------------------- */
.set-queue[b-bp44h2bvrz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
}

.set-queue-count[b-bp44h2bvrz] {
    font-size: var(--fai-text-body);
    color: var(--fai-ink-2);
    font-variant-numeric: tabular-nums;
}

.set-about[b-bp44h2bvrz] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

/* -- Status messages -------------------------------------------------------- */
.set-error[b-bp44h2bvrz] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

.set-ok[b-bp44h2bvrz] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-success);
}
/* /Pages/Strategy.razor.rz.scp.css */
/* FAI-P01-04/05 (M4) — Strategy & outreach layout (UI_UX_PLAN §6.6): pick grid, plan cards,
   tone chips, draft bubbles, version switcher. Logical properties throughout (RTL-safe). */
.strategy[b-g9k2ia7pbo] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.strategy-panel[b-g9k2ia7pbo] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.strategy-form[b-g9k2ia7pbo] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.strategy-fill-head[b-g9k2ia7pbo] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: flex-start;
}

.strategy-section-title[b-g9k2ia7pbo] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.strategy-muted[b-g9k2ia7pbo] {
    margin: var(--fai-space-1) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.strategy-label[b-g9k2ia7pbo] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 var(--fai-space-1);
}

.strategy-input[b-g9k2ia7pbo] {
    inline-size: 100%;
    max-inline-size: 30rem;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    min-block-size: 44px;
}

.strategy-input:focus[b-g9k2ia7pbo] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.strategy-error[b-g9k2ia7pbo] {
    margin: 0;
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.strategy-actions[b-g9k2ia7pbo] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    align-items: center;
}

/* --- Meeting plans: target pick grid --- */
.strategy-picks[b-g9k2ia7pbo] {
    border: none;
    padding: 0;
    margin: 0;
}

.strategy-pick-grid[b-g9k2ia7pbo] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: var(--fai-space-2);
}

.strategy-pick[b-g9k2ia7pbo] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    cursor: pointer;
    min-block-size: 44px;
}

.strategy-pick:hover[b-g9k2ia7pbo] {
    border-color: var(--fai-primary-line);
}

.strategy-pick-on[b-g9k2ia7pbo] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.strategy-pick input[b-g9k2ia7pbo] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.strategy-pick-name[b-g9k2ia7pbo] {
    font-weight: 600;
    color: var(--fai-ink);
    font-size: var(--fai-text-sm);
}

.strategy-pick-meta[b-g9k2ia7pbo] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

/* --- Plan cards --- */
.strategy-plan[b-g9k2ia7pbo] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.strategy-plan-head[b-g9k2ia7pbo] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
}

.strategy-plan-company[b-g9k2ia7pbo] {
    margin: 0;
    font-size: var(--fai-text-md);
    font-weight: 700;
    color: var(--fai-ink);
}

.strategy-plan-objective[b-g9k2ia7pbo] {
    margin: 2px 0 0;
    color: var(--fai-primary-strong);
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.strategy-plan-tools[b-g9k2ia7pbo] {
    display: flex;
    gap: var(--fai-space-1);
    flex-wrap: wrap;
}

.strategy-plan-grid[b-g9k2ia7pbo] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--fai-space-4);
}

.strategy-plan-block p[b-g9k2ia7pbo] {
    margin: 0;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
}

.strategy-intro[b-g9k2ia7pbo] {
    font-style: italic;
    color: var(--fai-ink) !important;
}

.strategy-list[b-g9k2ia7pbo] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.strategy-list li[b-g9k2ia7pbo] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.strategy-list svg[b-g9k2ia7pbo] {
    flex-shrink: 0;
    margin-top: 3px;
}

.strategy-list-ok svg[b-g9k2ia7pbo] { color: var(--fai-success); }
.strategy-list-no svg[b-g9k2ia7pbo] { color: var(--fai-danger); }

/* --- Outreach --- */
.strategy-tone-row[b-g9k2ia7pbo] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.strategy-versions[b-g9k2ia7pbo] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.strategy-version[b-g9k2ia7pbo] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-1) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    cursor: pointer;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.strategy-version-on[b-g9k2ia7pbo] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-weight: 600;
}

.strategy-version-meta[b-g9k2ia7pbo] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.strategy-drafts[b-g9k2ia7pbo] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: var(--fai-space-3);
}

.strategy-draft[b-g9k2ia7pbo] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    overflow: hidden;
}

.strategy-draft-head[b-g9k2ia7pbo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-3);
    background: var(--fai-surface-2);
    border-block-end: 1px solid var(--fai-border);
}

.strategy-draft-channel[b-g9k2ia7pbo] {
    font-weight: 600;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.strategy-draft-body[b-g9k2ia7pbo] {
    margin: 0;
    padding: var(--fai-space-3);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    line-height: 1.55;
    color: var(--fai-ink-2);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    border-inline-start: 3px solid var(--fai-ai);
}

.strategy-copy-note[b-g9k2ia7pbo] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}
/* /Pages/Targets.razor.rz.scp.css */
/* FAI-P01-02 (M4) — Targets & ranking layout (UI_UX_PLAN §6.5): toolbar, tabs, an expandable
   booth-row list (browse vs. your booths), bulk bar, route preview. Logical properties throughout
   (RTL-safe).
   SH (2026-09-20) — redesigned from a dense sortable table to a two-tab browse -> choose flow;
   the old .targets-table* rules are gone, replaced by .tg-* row-list rules below. */
.targets[b-o4pnzfpbht] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-4);
}

.targets-error[b-o4pnzfpbht] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-danger);
    border-radius: var(--fai-radius-md);
    background: var(--fai-danger-soft);
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

/* --- Tabs --- */
.tg-tabs[b-o4pnzfpbht] {
    display: flex;
    gap: var(--fai-space-2);
    border-bottom: 1px solid var(--fai-border);
}

.tg-tab[b-o4pnzfpbht] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-2);
    border: none;
    border-bottom: 2px solid transparent;
    background: none;
    color: var(--fai-ink-3);
    font-family: var(--fai-font-body);
    font-weight: 600;
    font-size: var(--fai-text-body);
    cursor: pointer;
}

.tg-tab:hover[b-o4pnzfpbht] {
    color: var(--fai-ink);
}

.tg-tab-active[b-o4pnzfpbht] {
    color: var(--fai-primary-ink);
    border-block-end-color: var(--fai-primary-line);
}

.tg-tab-count[b-o4pnzfpbht] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: 1.5rem;
    padding-inline: 6px;
    block-size: 1.25rem;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-size: var(--fai-text-xs);
    font-weight: 700;
}

.tg-hint[b-o4pnzfpbht] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.tg-hint a[b-o4pnzfpbht] {
    color: var(--fai-primary-ink);
    font-weight: 600;
}

/* --- Toolbar (All booths filters) --- */
.targets-toolbar[b-o4pnzfpbht] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
}

.targets-toolbar-row[b-o4pnzfpbht] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-3);
    align-items: end;
}

.targets-field[b-o4pnzfpbht] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
    min-inline-size: 0;
}

.targets-grow[b-o4pnzfpbht] {
    flex: 1 1 16rem;
}

.targets-label[b-o4pnzfpbht] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.targets-select[b-o4pnzfpbht],
.targets-input[b-o4pnzfpbht] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 40px;
}

.targets-select:focus[b-o4pnzfpbht],
.targets-input:focus[b-o4pnzfpbht] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.targets-search[b-o4pnzfpbht] {
    position: relative;
    display: flex;
    align-items: center;
    color: var(--fai-ink-3);
}

.targets-search svg[b-o4pnzfpbht] {
    position: absolute;
    inset-inline-start: var(--fai-space-3);
    pointer-events: none;
}

.targets-search .targets-input[b-o4pnzfpbht] {
    inline-size: 100%;
    padding-inline-start: 2.5rem;
}

/* --- Booth row list (both tabs) --- */
.tg-list[b-o4pnzfpbht] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--fai-space-2);
}

.tg-row[b-o4pnzfpbht] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    overflow: hidden;
}

.tg-row-open[b-o4pnzfpbht] {
    border-color: var(--fai-primary-line);
}

.tg-row-top[b-o4pnzfpbht] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding-inline-end: var(--fai-space-3);
}

.tg-check[b-o4pnzfpbht] {
    margin-inline-start: var(--fai-space-4);
    flex: none;
    inline-size: 18px;
    block-size: 18px;
}

.tg-row-main[b-o4pnzfpbht] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    min-inline-size: 0;
    padding: var(--fai-space-3) var(--fai-space-4);
    border: none;
    background: none;
    text-align: start;
    cursor: pointer;
    font-family: inherit;
}

.tg-row-top:has(.tg-check) .tg-row-main[b-o4pnzfpbht] {
    padding-inline-start: var(--fai-space-2);
}

.tg-row-main:hover[b-o4pnzfpbht] {
    background: var(--fai-surface-2);
}

.tg-rank[b-o4pnzfpbht] {
    flex: none;
    inline-size: 1.75rem;
    color: var(--fai-ink-3);
    font-weight: 600;
    font-size: var(--fai-text-sm);
}

.tg-booth[b-o4pnzfpbht] {
    flex: 1;
    min-inline-size: 0;
    display: grid;
    gap: 2px;
}

.tg-company[b-o4pnzfpbht] {
    font-weight: 600;
    color: var(--fai-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tg-loc[b-o4pnzfpbht] {
    display: block;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tg-chevron[b-o4pnzfpbht] {
    flex: none;
    color: var(--fai-ink-3);
    transition: transform var(--fai-motion-fast) var(--fai-ease, ease);
}

.tg-chevron-open[b-o4pnzfpbht] {
    transform: rotate(180deg);
}

/* --- Expanded detail --- */
.tg-detail[b-o4pnzfpbht] {
    display: grid;
    gap: var(--fai-space-3);
    padding: 0 var(--fai-space-4) var(--fai-space-4);
    border-block-start: 1px solid var(--fai-border);
    padding-block-start: var(--fai-space-3);
    background: var(--fai-surface-2);
}

.tg-factors[b-o4pnzfpbht] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--fai-space-2);
}

.tg-factor[b-o4pnzfpbht] {
    color: var(--fai-ink-2);
    font-size: var(--fai-text-xs);
    margin-inline-end: -6px;
}

.targets-bar[b-o4pnzfpbht] {
    display: inline-block;
    inline-size: 4rem;
    block-size: 6px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    overflow: hidden;
    vertical-align: middle;
}

.targets-bar-fill[b-o4pnzfpbht] {
    display: block;
    block-size: 100%;
}

.bar-fit[b-o4pnzfpbht] { background: var(--fai-primary); }
.bar-need[b-o4pnzfpbht] { background: var(--fai-ai); }
.bar-conv[b-o4pnzfpbht] { background: var(--fai-info); }

.targets-rationale[b-o4pnzfpbht] {
    margin: 0;
    color: var(--fai-ink-2);
}

.targets-link[b-o4pnzfpbht] {
    background: none;
    border: none;
    padding: var(--fai-space-1) var(--fai-space-2);
    color: var(--fai-primary-ink);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    border-radius: var(--fai-radius-sm);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    justify-self: start;
}

.targets-link:hover[b-o4pnzfpbht] {
    background: var(--fai-primary-soft);
}

.targets-ai[b-o4pnzfpbht] {
    display: flex;
    gap: var(--fai-space-3);
    padding: var(--fai-space-3);
    border-inline-start: 3px solid var(--fai-ai);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-ai-soft);
}

.targets-ai-body[b-o4pnzfpbht] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
}

.targets-ai-body p[b-o4pnzfpbht] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.targets-ai-why[b-o4pnzfpbht] {
    color: var(--fai-ink-2);
}

.targets-crowd[b-o4pnzfpbht] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.targets-crowd-none[b-o4pnzfpbht] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    font-style: italic;
}

/* --- Footer / pager --- */
.targets-footer[b-o4pnzfpbht] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
}

.targets-count[b-o4pnzfpbht] {
    margin: 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.targets-pager[b-o4pnzfpbht] {
    display: flex;
    gap: var(--fai-space-2);
}

/* --- Bulk bar --- */
.targets-bulk[b-o4pnzfpbht] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    padding: var(--fai-space-3) var(--fai-space-4);
    border: 1px solid var(--fai-primary-line);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary-soft);
    font-weight: 600;
    color: var(--fai-primary-strong);
    flex-wrap: wrap;
}

.targets-route-error[b-o4pnzfpbht] {
    color: var(--fai-danger);
    font-weight: 400;
    font-size: var(--fai-text-sm);
}

/* --- Route preview --- */
.targets-route[b-o4pnzfpbht] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.targets-route li[b-o4pnzfpbht] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: center;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
}

.targets-route-picked[b-o4pnzfpbht] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

.targets-route-order[b-o4pnzfpbht] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 28px;
    block-size: 28px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary);
    color: var(--fai-surface);
    font-weight: 700;
    flex-shrink: 0;
}

.targets-route-note[b-o4pnzfpbht] {
    margin: var(--fai-space-3) 0 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.targets-route-note a[b-o4pnzfpbht] {
    color: var(--fai-primary-ink);
}

/* FAI-P08-06 — translated-name marker + original-name disclosure on booth rows (ADR-0004). */
.tg-name-flag[b-o4pnzfpbht] {
    margin-inline-start: var(--fai-space-2);
    padding-inline: var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-ink);
    font-size: var(--fai-text-xs);
    white-space: nowrap;
}

.tg-orig-line[b-o4pnzfpbht] {
    margin: var(--fai-space-2) 0 0;
}

.tg-orig[b-o4pnzfpbht] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
}
/* /Pages/Team.razor.rz.scp.css */
/* FAI-P05-13 + FAI-P07-02 — team workspace surface (/team). Tokens + logical properties. */
.tam-stack[b-j59p0b70k4] {
    display: grid;
    gap: var(--fai-space-4);
}

.tam-cta[b-j59p0b70k4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.tam-cta:hover[b-j59p0b70k4] {
    background: var(--fai-primary-fill-strong);
}

.tam-input[b-j59p0b70k4] {
    flex: 1 1 12rem;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
}

.tam-input:focus[b-j59p0b70k4] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.tam-create[b-j59p0b70k4],
.tam-invite[b-j59p0b70k4] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    align-items: center;
}

.tam-error[b-j59p0b70k4] {
    margin: var(--fai-space-2) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

.tam-queued[b-j59p0b70k4] {
    margin: var(--fai-space-2) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-warning);
}

.tam-empty[b-j59p0b70k4] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.tam-pooled[b-j59p0b70k4],
.tam-notes[b-j59p0b70k4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--fai-space-2);
}

.tam-target[b-j59p0b70k4] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-2) var(--fai-space-3);
    display: grid;
    gap: var(--fai-space-1);
}

.tam-target-head[b-j59p0b70k4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.tam-target-name[b-j59p0b70k4] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.tam-target-where[b-j59p0b70k4] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.tam-target-why[b-j59p0b70k4] {
    margin: 0;
    padding-inline-start: var(--fai-space-4);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.tam-note[b-j59p0b70k4] {
    display: grid;
    gap: var(--fai-space-2);
    margin-block-end: var(--fai-space-3);
}

.tam-note-text[b-j59p0b70k4] {
    resize: vertical;
}

.tam-note-row[b-j59p0b70k4] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.tam-note-item[b-j59p0b70k4] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-2) var(--fai-space-3);
    display: grid;
    gap: var(--fai-space-1);
    justify-items: start;
}

.tam-note-head[b-j59p0b70k4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    inline-size: 100%;
}

.tam-note-author[b-j59p0b70k4] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.tam-note-when[b-j59p0b70k4] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    font-variant-numeric: tabular-nums;
}

.tam-note-text[b-j59p0b70k4] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.tam-playbook-head[b-j59p0b70k4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
}

.tam-playbook-intro[b-j59p0b70k4] {
    margin: 0 0 var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.tam-playbook-grid[b-j59p0b70k4] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: var(--fai-space-3);
}

.tam-playbook-heading[b-j59p0b70k4] {
    margin: 0 0 var(--fai-space-1);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
}

.tam-playbook-list[b-j59p0b70k4] {
    margin: 0;
    padding-inline-start: var(--fai-space-4);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}
/* /Pages/V2/Alerts.razor.rz.scp.css */
/* FAI-P06-04 (X1) — movement alerts (/alerts). */
.alr-stack[b-gxlozahddg] {
    display: grid;
    gap: var(--fai-space-3);
}

.alr-suppressed[b-gxlozahddg] {
    margin: 0 0 var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.alr-alert-head[b-gxlozahddg] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    margin-block-end: var(--fai-space-2);
}

.alr-subject[b-gxlozahddg] {
    font-weight: 600;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.alr-time[b-gxlozahddg] {
    margin-inline-start: auto;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.alr-headline[b-gxlozahddg] {
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-body);
    color: var(--fai-ink-2);
    line-height: var(--fai-leading-normal);
}

.alr-booth[b-gxlozahddg] {
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.alr-action[b-gxlozahddg] {
    display: flex;
    gap: var(--fai-space-2);
    align-items: flex-start;
    background: var(--fai-warning-soft);
    color: var(--fai-ink-2);
    border-radius: var(--fai-radius-sm);
    padding: var(--fai-space-2) var(--fai-space-3);
    font-size: var(--fai-text-sm);
    margin-block-end: var(--fai-space-2);
}

.alr-action svg[b-gxlozahddg] {
    color: var(--fai-warning);
    flex: 0 0 auto;
    margin-block-start: 2px;
}

.alr-link[b-gxlozahddg] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-ink);
    min-block-size: 44px;
}

.alr-link:hover[b-gxlozahddg],
.alr-link:focus-visible[b-gxlozahddg] {
    color: var(--fai-primary-strong);
}

.alr-cta[b-gxlozahddg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.alr-cta:hover[b-gxlozahddg] {
    background: var(--fai-primary-fill-strong);
}
/* /Pages/V2/Graph.razor.rz.scp.css */
/* FAI-P06-06 (X3) — relationship graph (/graph). */
.grh-stack[b-bv6adl3r1r] {
    display: grid;
    gap: var(--fai-space-4);
}

.grh-form[b-bv6adl3r1r] {
    display: grid;
    gap: var(--fai-space-2);
}

.grh-label[b-bv6adl3r1r] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.grh-form-row[b-bv6adl3r1r] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.grh-input[b-bv6adl3r1r] {
    flex: 1 1 14rem;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
}

.grh-input:focus[b-bv6adl3r1r] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.grh-warm-error[b-bv6adl3r1r] {
    margin: var(--fai-space-2) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

.grh-path[b-bv6adl3r1r] {
    margin-block-start: var(--fai-space-4);
    border-block-start: 1px solid var(--fai-border);
    padding-block-start: var(--fai-space-3);
}

.grh-path-hops[b-bv6adl3r1r] {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    margin: 0 0 var(--fai-space-2);
    padding: 0;
    align-items: center;
}

.grh-hop[b-bv6adl3r1r] {
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    border-radius: var(--fai-radius-pill);
    padding: var(--fai-space-1) var(--fai-space-3);
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.grh-hop + .grh-hop[b-bv6adl3r1r]::before {
    content: "→";
    margin-inline-end: var(--fai-space-2);
    color: var(--fai-ink-3);
}

[dir="rtl"] .grh-hop + .grh-hop[b-bv6adl3r1r]::before {
    content: "←";
}

.grh-path-summary[b-bv6adl3r1r] {
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-body);
    color: var(--fai-ink-2);
}

.grh-path-meta[b-bv6adl3r1r] {
    display: flex;
    gap: var(--fai-space-5);
    flex-wrap: wrap;
    margin: 0;
}

.grh-path-meta dt[b-bv6adl3r1r] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    margin-block-end: var(--fai-space-1);
}

.grh-path-meta dd[b-bv6adl3r1r] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
}

.grh-warmth[b-bv6adl3r1r] {
    display: inline-block;
    inline-size: 5rem;
    block-size: 0.4rem;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    overflow: hidden;
}

.grh-warmth > span[b-bv6adl3r1r] {
    display: block;
    block-size: 100%;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary);
}

.grh-hidden[b-bv6adl3r1r] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0 0 var(--fai-space-3);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.grh-empty[b-bv6adl3r1r] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.grh-edges[b-bv6adl3r1r] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--fai-space-2);
}

.grh-edge[b-bv6adl3r1r] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    padding: var(--fai-space-2) 0;
    border-block-end: 1px solid var(--fai-border);
}

.grh-edge:last-child[b-bv6adl3r1r] {
    border-block-end: none;
}

.grh-edge-pair[b-bv6adl3r1r] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    flex-wrap: wrap;
}

.grh-edge-strength[b-bv6adl3r1r] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
}

.grh-edge-pct[b-bv6adl3r1r] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.grh-cta[b-bv6adl3r1r] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.grh-cta:hover[b-bv6adl3r1r] {
    background: var(--fai-primary-fill-strong);
}
/* /Pages/V2/Investor.razor.rz.scp.css */
/* FAI-P06-02 — investor tap-to-meet surface (/investor). */
.inv-stack[b-hplc2pnzzb] {
    display: grid;
    gap: var(--fai-space-4);
}

.inv-summary[b-hplc2pnzzb] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-4);
}

.inv-entry[b-hplc2pnzzb] {
    margin-block-end: var(--fai-space-3);
}

.inv-entry-head[b-hplc2pnzzb] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-3);
}

.inv-entry-who[b-hplc2pnzzb] {
    min-inline-size: 0;
}

.inv-entry-name[b-hplc2pnzzb] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 600;
    color: var(--fai-ink);
}

.inv-entry-company[b-hplc2pnzzb] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.inv-status[b-hplc2pnzzb] {
    margin-inline-start: auto;
    font-size: var(--fai-text-xs);
    font-weight: 600;
    padding: var(--fai-space-1) var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-2);
    color: var(--fai-ink-2);
    white-space: nowrap;
}

.inv-status-completed[b-hplc2pnzzb],
.inv-status-held[b-hplc2pnzzb] {
    background: var(--fai-success-soft);
    color: var(--fai-success);
}

.inv-status-requested[b-hplc2pnzzb] {
    background: var(--fai-warning-soft);
    color: var(--fai-warning);
}

.inv-status-accepted[b-hplc2pnzzb],
.inv-status-scheduled[b-hplc2pnzzb] {
    background: var(--fai-primary-soft);
    color: var(--fai-primary-ink);
}

.inv-status-declined[b-hplc2pnzzb],
.inv-status-cancelled[b-hplc2pnzzb] {
    background: var(--fai-danger-soft);
    color: var(--fai-danger);
}

.inv-meta[b-hplc2pnzzb] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-5);
    margin: 0 0 var(--fai-space-3);
}

.inv-meta div[b-hplc2pnzzb] {
    min-inline-size: 0;
}

.inv-meta dt[b-hplc2pnzzb] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    margin-block-end: var(--fai-space-1);
}

.inv-meta dd[b-hplc2pnzzb] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.inv-timeline[b-hplc2pnzzb] {
    list-style: none;
    margin: 0 0 var(--fai-space-3);
    padding: 0;
    display: grid;
    gap: var(--fai-space-1);
    border-inline-start: 2px solid var(--fai-border);
    padding-inline-start: var(--fai-space-3);
}

.inv-timeline li[b-hplc2pnzzb] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.inv-timeline-status[b-hplc2pnzzb] {
    font-weight: 600;
    color: var(--fai-ink);
}

.inv-timeline-at[b-hplc2pnzzb] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.inv-timeline-note[b-hplc2pnzzb] {
    color: var(--fai-ink-3);
}

.inv-actions[b-hplc2pnzzb] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.inv-error[b-hplc2pnzzb] {
    color: var(--fai-danger);
    font-size: var(--fai-text-sm);
}

.inv-cta[b-hplc2pnzzb] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.inv-cta:hover[b-hplc2pnzzb] {
    background: var(--fai-primary-fill-strong);
}
/* /Pages/V2/More.razor.rz.scp.css */
/* FAI-P06/FAI-P07-02 — V2 hub (/more): responsive surface grid, live state badges. */
.more-grid[b-3ahs5d0u7c] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: var(--fai-space-4);
    margin-block-end: var(--fai-space-6);
}

.more-surface[b-3ahs5d0u7c] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-3);
    block-size: 100%;
    justify-content: space-between;
}

.more-surface-head[b-3ahs5d0u7c] {
    display: flex;
    gap: var(--fai-space-3);
    align-items: flex-start;
}

.more-surface-icon[b-3ahs5d0u7c] {
    inline-size: 2.5rem;
    block-size: 2.5rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-ink);
}

.more-surface-name[b-3ahs5d0u7c] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 600;
    color: var(--fai-ink);
}

.more-surface-blurb[b-3ahs5d0u7c] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    line-height: var(--fai-leading-normal);
}

.more-surface-foot[b-3ahs5d0u7c] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    border-block-start: 1px solid var(--fai-border);
    padding-block-start: var(--fai-space-3);
}

.more-state[b-3ahs5d0u7c] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-3);
}

.more-state-on[b-3ahs5d0u7c] {
    color: var(--fai-success);
}

.more-state-warn[b-3ahs5d0u7c] {
    color: var(--fai-warning);
}

.more-dot[b-3ahs5d0u7c] {
    inline-size: 0.5rem;
    block-size: 0.5rem;
    border-radius: 50%;
    background: var(--fai-border-strong);
}

.more-dot-on[b-3ahs5d0u7c] {
    background: var(--fai-success);
}

.more-open[b-3ahs5d0u7c] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    margin-inline-start: auto;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-ink);
    min-block-size: 44px; /* one-handed target */
    align-items: center;
}

.more-open:hover[b-3ahs5d0u7c],
.more-open:focus-visible[b-3ahs5d0u7c] {
    color: var(--fai-primary-strong);
}

.more-switch[b-3ahs5d0u7c] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.more-switch code[b-3ahs5d0u7c] {
    font-family: var(--fai-font-mono);
    background: var(--fai-surface-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: 0 var(--fai-space-1);
    color: var(--fai-ink);
}

.more-actions[b-3ahs5d0u7c] {
    display: flex;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
    margin-block-end: var(--fai-space-6);
}

.more-cta[b-3ahs5d0u7c] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    font-weight: 600;
    text-decoration: none;
}

.more-cta:hover[b-3ahs5d0u7c] {
    background: var(--fai-primary-fill-strong);
}
/* /Pages/V2/Nurture.razor.rz.scp.css */
/* FAI-P06-07 (X4) — nurture sequences (/nurture). */
.nur-hint[b-xrpxfuol16] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.nur-form[b-xrpxfuol16] {
    display: grid;
    gap: var(--fai-space-2);
}

.nur-label[b-xrpxfuol16] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.nur-input[b-xrpxfuol16] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
}

.nur-area[b-xrpxfuol16] {
    resize: block;
    line-height: var(--fai-leading-normal);
}

.nur-input:focus[b-xrpxfuol16] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.nur-form-actions[b-xrpxfuol16] {
    display: flex;
    gap: var(--fai-space-2);
}

.nur-error[b-xrpxfuol16] {
    margin: var(--fai-space-2) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

.nur-touches[b-xrpxfuol16] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--fai-space-3);
}

.nur-touch[b-xrpxfuol16] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    padding: var(--fai-space-3);
    display: grid;
    gap: var(--fai-space-2);
    background: var(--fai-surface);
}

.nur-touch-sent[b-xrpxfuol16] {
    background: var(--fai-surface-2);
    border-color: var(--fai-border);
}

.nur-touch-head[b-xrpxfuol16] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.nur-touch-subject[b-xrpxfuol16] {
    font-weight: 600;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.nur-touch-when[b-xrpxfuol16] {
    margin-inline-start: auto;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.nur-touch-body[b-xrpxfuol16] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    line-height: var(--fai-leading-normal);
}

.nur-touch-status[b-xrpxfuol16] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.nur-actions[b-xrpxfuol16] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
    margin-block-start: var(--fai-space-3);
}

.nur-cta[b-xrpxfuol16] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.nur-cta:hover[b-xrpxfuol16] {
    background: var(--fai-primary-fill-strong);
}
/* /Pages/V2/Rewards.razor.rz.scp.css */
/* FAI-P06-10 (X7) — feedback rewards (/rewards). */
.rwd-stats[b-t1oo86z9ox] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-4);
}

.rwd-badges[b-t1oo86z9ox] {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    margin: 0;
    padding: 0;
}

.rwd-badge[b-t1oo86z9ox] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
    border-radius: var(--fai-radius-pill);
    padding: var(--fai-space-1) var(--fai-space-3);
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.rwd-loop[b-t1oo86z9ox] {
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-body);
    color: var(--fai-ink-2);
    line-height: var(--fai-leading-normal);
}

.rwd-impact[b-t1oo86z9ox] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.rwd-impact svg[b-t1oo86z9ox] {
    color: var(--fai-success);
}

.rwd-link[b-t1oo86z9ox] {
    display: inline-flex;
    align-items: center;
    min-block-size: 44px;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-ink);
}

.rwd-link:hover[b-t1oo86z9ox],
.rwd-link:focus-visible[b-t1oo86z9ox] {
    color: var(--fai-primary-strong);
}

.rwd-cta[b-t1oo86z9ox] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.rwd-cta:hover[b-t1oo86z9ox] {
    background: var(--fai-primary-fill-strong);
}
/* /Pages/V2/TargetNews.razor.rz.scp.css */
/* FAI-P06-09 (X6) — target news (/news). */
.nws-form[b-gu6hks2czg] {
    display: grid;
    gap: var(--fai-space-2);
}

.nws-label[b-gu6hks2czg] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.nws-form-row[b-gu6hks2czg] {
    display: flex;
    gap: var(--fai-space-2);
    flex-wrap: wrap;
}

.nws-input[b-gu6hks2czg] {
    flex: 1 1 14rem;
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
}

.nws-input:focus[b-gu6hks2czg] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.nws-error[b-gu6hks2czg] {
    margin: var(--fai-space-2) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

.nws-stack[b-gu6hks2czg] {
    display: grid;
    gap: var(--fai-space-3);
    margin-block-start: var(--fai-space-4);
}

.nws-item-head[b-gu6hks2czg] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin-block-end: var(--fai-space-2);
}

.nws-time[b-gu6hks2czg] {
    margin-inline-start: auto;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.nws-headline[b-gu6hks2czg] {
    margin: 0 0 var(--fai-space-2);
    font-size: var(--fai-text-body);
    color: var(--fai-ink-2);
    line-height: var(--fai-leading-normal);
}

.nws-link[b-gu6hks2czg] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-primary-ink);
    min-block-size: 44px;
}

.nws-link:hover[b-gu6hks2czg],
.nws-link:focus-visible[b-gu6hks2czg] {
    color: var(--fai-primary-strong);
}

.nws-cta[b-gu6hks2czg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.nws-cta:hover[b-gu6hks2czg] {
    background: var(--fai-primary-fill-strong);
}
/* /Pages/V2/Trip.razor.rz.scp.css */
/* FAI-P06-08 (X5) — trip ROI (/trip). */
.trp-stack[b-5h8lmyp1p1] {
    display: grid;
    gap: var(--fai-space-4);
}

.trp-stats[b-5h8lmyp1p1] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-4);
}

.trp-note[b-5h8lmyp1p1] {
    margin: 0 0 var(--fai-space-4);
    font-size: var(--fai-text-sm);
    color: var(--fai-warning);
}

.trp-verdict[b-5h8lmyp1p1] {
    margin: 0 0 var(--fai-space-3);
    font-size: var(--fai-text-lg);
    font-family: var(--fai-font-display);
    font-weight: 600;
    color: var(--fai-ink);
    line-height: var(--fai-leading-tight);
}

.trp-values[b-5h8lmyp1p1] {
    display: flex;
    gap: var(--fai-space-5);
    flex-wrap: wrap;
    margin: 0;
}

.trp-values dt[b-5h8lmyp1p1] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    margin-block-end: var(--fai-space-1);
}

.trp-values dd[b-5h8lmyp1p1] {
    margin: 0;
    font-size: var(--fai-text-body);
    color: var(--fai-ink);
}

.trp-categories[b-5h8lmyp1p1] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--fai-space-2);
}

.trp-category[b-5h8lmyp1p1] {
    display: grid;
    grid-template-columns: minmax(5rem, auto) 1fr auto;
    align-items: center;
    gap: var(--fai-space-3);
}

.trp-category-name[b-5h8lmyp1p1] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.trp-category-bar[b-5h8lmyp1p1] {
    display: block;
    block-size: 0.4rem;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    overflow: hidden;
}

.trp-category-bar > span[b-5h8lmyp1p1] {
    display: block;
    block-size: 100%;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary);
}

.trp-category-total[b-5h8lmyp1p1] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink);
}

.trp-category-count[b-5h8lmyp1p1] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.trp-form[b-5h8lmyp1p1] {
    display: grid;
    gap: var(--fai-space-2);
}

.trp-form-row[b-5h8lmyp1p1] {
    display: flex;
    gap: var(--fai-space-3);
    flex-wrap: wrap;
}

.trp-field[b-5h8lmyp1p1] {
    flex: 1 1 8rem;
    display: grid;
    gap: var(--fai-space-1);
}

.trp-field-amount[b-5h8lmyp1p1] {
    flex: 0 1 8rem;
}

.trp-field-currency[b-5h8lmyp1p1] {
    flex: 0 0 6rem;
}

.trp-label[b-5h8lmyp1p1] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.trp-input[b-5h8lmyp1p1] {
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    min-block-size: 44px;
}

.trp-input:focus[b-5h8lmyp1p1] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.trp-form-actions[b-5h8lmyp1p1] {
    display: flex;
    gap: var(--fai-space-2);
}

.trp-error[b-5h8lmyp1p1] {
    margin: var(--fai-space-2) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

.trp-added[b-5h8lmyp1p1] {
    margin: var(--fai-space-2) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-success);
}

.trp-profile-link[b-5h8lmyp1p1] {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.trp-profile-link:hover[b-5h8lmyp1p1] {
    background: var(--fai-primary-fill-strong);
}

.trp-cta[b-5h8lmyp1p1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: var(--fai-target-min);
    padding-inline: var(--fai-space-5);
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    text-decoration: none;
}

.trp-cta:hover[b-5h8lmyp1p1] {
    background: var(--fai-primary-fill-strong);
}
/* /Shared/AiMarker.razor.rz.scp.css */
/* FAI-P07-02 — AiMarker styles (isolated). */
.fai-ai-marker[b-wl8cirlquh] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
    font-size: var(--fai-text-xs);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .04em;
    flex: 0 0 auto;
}
/* /Shared/Canvas/CanvasReport.razor.rz.scp.css */
/* SH (2026-09-23) — the canvas as a document.
   Two zones with different jobs. The action strip is an interface: yellow, tappable, obviously
   pressable. The document below is a document: measured line length, real headings, generous
   space between sections, nothing that blinks. The contrast is deliberate, because a plan you
   are meant to READ should not look like a control panel. */
.rpt[b-d4zah48q6z] {
    display: grid;
    gap: var(--fai-space-5);
}

.rpt-title[b-d4zah48q6z] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
}

.rpt-sub[b-d4zah48q6z] {
    margin: calc(var(--fai-space-2) * -1) 0 0;
    max-inline-size: 46ch;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

/* ── The action strip ─────────────────────────────────────────────────────────── */
.rpt-actions[b-d4zah48q6z] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

/* Yellow, per Sana. Dark ink rather than white, which fails contrast on this yellow badly. */
.rpt-action[b-d4zah48q6z] {
    display: grid;
    gap: 2px;
    padding: var(--fai-space-3) var(--fai-space-4);
    min-block-size: var(--fai-target-min);
    border: 1px solid #ffe066;
    border-radius: var(--fai-radius-md);
    background: #ffe066;
    color: #1a1a1a;
    font-family: inherit;
    text-align: start;
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease, transform var(--fai-motion-fast) ease;
}

.rpt-action:hover[b-d4zah48q6z] {
    background: #ffd43b;
}

.rpt-action:active[b-d4zah48q6z] {
    transform: translateY(1px);
}

/* The open one is pressed IN, so the panel below is visibly attached to a button, not floating. */
.rpt-action-open[b-d4zah48q6z] {
    background: #ffd43b;
    border-color: #f0b400;
}

.rpt-action-label[b-d4zah48q6z] {
    font-size: var(--fai-text-body);
    font-weight: 700;
}

.rpt-action-state[b-d4zah48q6z] {
    font-size: var(--fai-text-xs);
    opacity: 0.75;
}

/* ── The panel: what this section needs before it can run ─────────────────────── */
.rpt-panel[b-d4zah48q6z] {
    display: grid;
    gap: var(--fai-space-2);
    padding: var(--fai-space-4);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    animation: rpt-open-b-d4zah48q6z 0.2s ease both;
}

@keyframes rpt-open-b-d4zah48q6z {
    from { opacity: 0; transform: translateY(-0.25rem); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .rpt-panel[b-d4zah48q6z] { animation: none; }
}

.rpt-panel-hint[b-d4zah48q6z],
.rpt-panel-ready[b-d4zah48q6z] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.rpt-label[b-d4zah48q6z] {
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.rpt-input[b-d4zah48q6z] {
    box-sizing: border-box;
    inline-size: 100%;
    min-block-size: var(--fai-target-min);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    color: var(--fai-ink);
    font: inherit;
    /* Answers can be Arabic or English whatever the shell's direction. */
    unicode-bidi: plaintext;
}

.rpt-input:focus[b-d4zah48q6z] {
    outline: none;
    border-color: #ffc700;
    box-shadow: 0 0 0 3px rgb(255 199 0 / 0.28);
}

.rpt-area[b-d4zah48q6z] {
    resize: vertical;
    line-height: 1.5;
}

.rpt-panel-foot[b-d4zah48q6z] {
    display: flex;
    justify-content: flex-end;
}

.rpt-go[b-d4zah48q6z] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-5);
    min-block-size: var(--fai-target-min);
    border: 0;
    border-radius: var(--fai-radius-pill);
    background: #ffe066;
    color: #1a1a1a;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.rpt-go:disabled[b-d4zah48q6z] {
    opacity: 0.6;
    cursor: default;
}

.rpt-spinner[b-d4zah48q6z] {
    inline-size: 14px;
    block-size: 14px;
    border: 2px solid rgb(0 0 0 / 0.25);
    border-block-start-color: #1a1a1a;
    border-radius: 50%;
    animation: rpt-spin-b-d4zah48q6z 0.8s linear infinite;
}

@keyframes rpt-spin-b-d4zah48q6z {
    to { transform: rotate(360deg); }
}

.rpt-error[b-d4zah48q6z] {
    margin: 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-danger);
}

/* ── The document ─────────────────────────────────────────────────────────────── */
.rpt-doc[b-d4zah48q6z] {
    padding: var(--fai-space-5);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
}

.rpt-section + .rpt-section[b-d4zah48q6z] {
    margin-block-start: var(--fai-space-6);
    padding-block-start: var(--fai-space-5);
    border-block-start: 1px solid var(--fai-border);
}

.rpt-h2[b-d4zah48q6z] {
    margin: 0 0 var(--fai-space-3);
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-xl);
    font-weight: 700;
    color: var(--fai-ink);
}

/* The document reads title, subtitle, text (Sana, 2026-09-23: "make it like notion"). The
   subtitle was set at the same small grey size as a form label, so it sat closer to a caption
   than to a heading and the eye could not find the shape of the page. It is now a step below
   the section title and a clear step above the prose, in full ink, with ordinary room under it
   rather than the 4px that glued it to its own first line. */
.rpt-doc[b-d4zah48q6z]  .rpt-h3 {
    margin: var(--fai-space-5) 0 var(--fai-space-2);
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    line-height: 1.4;
    color: var(--fai-ink);
}

/* The first subtitle in a section already has the section title above it. */
.rpt-doc[b-d4zah48q6z]  .rpt-h2 + .rpt-h3 {
    margin-block-start: var(--fai-space-3);
}

/* ── Rules below reach INTO the document ──────────────────────────────────────────
   Everything inside <article class="rpt-doc"> is emitted by RenderTreeBuilder in @code, and
   the Razor compiler stamps the CSS-isolation attribute only onto elements written as markup.
   A bare `.rpt-table` here compiles to `.rpt-table[b-hash]`, which no builder-made element
   ever carries, so the rule silently matches nothing: that is why this table had no lines.
   `::deep` scopes on the ancestor instead, and the article is markup, so it is tagged. Any new
   rule for builder output belongs behind `.rpt-doc ::deep`. */

/* Prose, so it is measured for reading rather than stretched across the viewport. */
.rpt-doc[b-d4zah48q6z]  p,
.rpt-doc[b-d4zah48q6z]  li {
    max-inline-size: 68ch;
    line-height: 1.65;
    color: var(--fai-ink);
}

.rpt-doc[b-d4zah48q6z]  .rpt-lede {
    font-weight: 700;
}

.rpt-empty[b-d4zah48q6z],
.rpt-doc[b-d4zah48q6z]  .rpt-empty,
.rpt-doc[b-d4zah48q6z]  .rpt-caveat {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.rpt-doc[b-d4zah48q6z]  .rpt-caveat {
    color: var(--fai-warning);
}

.rpt-writing[b-d4zah48q6z] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

/* The overview reads as a document, not a spec sheet (Sana, 2026-09-23: "make it like notion,
   title, subtitle, then text"). It was a two-column definition grid, so every label was a small
   grey word in a narrow gutter with its paragraph pinned beside it, and the left column set the
   measure for the whole section. Stacked instead: the label is a subtitle on its own line, the
   same weight and size as every other subtitle in the report, and the text runs underneath it at
   full measure. Same dl markup, which is still the right element for label-and-value. */
.rpt-doc[b-d4zah48q6z]  .rpt-kv {
    display: block;
    margin: 0;
}

.rpt-doc[b-d4zah48q6z]  .rpt-kv dt {
    margin-block-start: var(--fai-space-5);
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    line-height: 1.4;
    color: var(--fai-ink);
}

/* The section title is directly above the first one. */
.rpt-doc[b-d4zah48q6z]  .rpt-kv dt:first-of-type {
    margin-block-start: var(--fai-space-3);
}

.rpt-doc[b-d4zah48q6z]  .rpt-kv dd {
    margin: var(--fai-space-2) 0 0;
    max-inline-size: 68ch;
    line-height: 1.65;
}

.rpt-doc[b-d4zah48q6z]  .rpt-list {
    margin: 0;
    padding-inline-start: 1.25rem;
}


/* ── A term with its definition ───────────────────────────────────────────────── */
/* "Direct" and "indirect" get read here by people who have never had to tell them apart
   (Sana, 2026-09-23: "have a dotted underline for those who don't know what they mean"). The
   dotted underline is the old typographic promise that a word has a definition attached. It
   opens on hover for a mouse and on focus for a keyboard, and :focus rather than :focus-visible
   because a tap on a phone focuses without ever counting as keyboard navigation. */
.rpt-doc[b-d4zah48q6z]  .rpt-term-wrap {
    position: relative;
    display: inline-block;
}

.rpt-doc[b-d4zah48q6z]  .rpt-term {
    border-block-end: 1px dotted var(--fai-ink-3);
    cursor: help;
}

.rpt-doc[b-d4zah48q6z]  .rpt-def {
    position: absolute;
    inset-block-start: calc(100% + var(--fai-space-2));
    inset-inline-start: 0;
    z-index: 5;
    inline-size: max-content;
    max-inline-size: min(34rem, 78vw);
    padding: var(--fai-space-3) var(--fai-space-4);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    box-shadow: var(--fai-shadow-md);
    /* Inherited from the heading, which is display type at 700. A definition is prose. */
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    font-weight: 400;
    line-height: 1.65;
    color: var(--fai-ink-2);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--fai-motion-fast) ease;
}

.rpt-doc[b-d4zah48q6z]  .rpt-term:hover + .rpt-def,
.rpt-doc[b-d4zah48q6z]  .rpt-term:focus + .rpt-def {
    opacity: 1;
    visibility: visible;
}

/* ── The competitor table ─────────────────────────────────────────────────────── */
/* A real table, ruled both ways (Sana, 2026-09-23: "should actually look a table with
   lines"). Underlines alone read as a list that happens to be aligned; a grid says "these
   four things were looked up for every one of them, and here is where one ends and the next
   begins". The frame lives on the scroll wrapper so the rounded corners survive
   border-collapse, which clips nothing of its own. */
.rpt-doc[b-d4zah48q6z]  .rpt-table-wrap {
    overflow-x: auto;
    margin-block-start: var(--fai-space-2);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
}

.rpt-doc[b-d4zah48q6z]  .rpt-table {
    inline-size: 100%;
    /* Four columns of prose cannot share 340px on a phone, so the table keeps its own floor
       and the wrapper scrolls sideways instead of crushing every word to one letter wide. */
    min-inline-size: 640px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: var(--fai-text-sm);
}

/* Fixed shares, so the long "what they do" column cannot starve the other three. */
.rpt-doc[b-d4zah48q6z]  .rpt-table th:nth-child(1) { inline-size: 18%; }
.rpt-doc[b-d4zah48q6z]  .rpt-table th:nth-child(2) { inline-size: 16%; }
.rpt-doc[b-d4zah48q6z]  .rpt-table th:nth-child(3) { inline-size: 24%; }
.rpt-doc[b-d4zah48q6z]  .rpt-table th:nth-child(4) { inline-size: 42%; }

.rpt-doc[b-d4zah48q6z]  .rpt-table th,
.rpt-doc[b-d4zah48q6z]  .rpt-table td {
    padding: var(--fai-space-2) var(--fai-space-3);
    text-align: start;
    vertical-align: top;
    border-block-end: 1px solid var(--fai-border);
    border-inline-end: 1px solid var(--fai-border);
    /* Company names and prices are Latin on an Arabic page; each cell takes its own direction. */
    unicode-bidi: plaintext;
    overflow-wrap: anywhere;
}

/* The frame is the wrapper's job. Doubling it here would darken all four edges. */
.rpt-doc[b-d4zah48q6z]  .rpt-table th:last-child,
.rpt-doc[b-d4zah48q6z]  .rpt-table td:last-child {
    border-inline-end: none;
}

.rpt-doc[b-d4zah48q6z]  .rpt-table tbody tr:last-child td {
    border-block-end: none;
}

.rpt-doc[b-d4zah48q6z]  .rpt-table th {
    background: var(--fai-surface-2);
    border-block-end: 2px solid var(--fai-border-strong);
    font-size: var(--fai-text-xs);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--fai-ink-3);
    white-space: nowrap;
}

.rpt-doc[b-d4zah48q6z]  .rpt-table tbody tr:hover {
    background: var(--fai-surface-2);
}

/* "We did not find out" has to look different from a value, or the table lies quietly. */
.rpt-doc[b-d4zah48q6z]  .rpt-unknown {
    color: var(--fai-ink-3);
    font-style: italic;
}

/* ── Citations ────────────────────────────────────────────────────────────────── */
.rpt-doc[b-d4zah48q6z]  .rpt-sources-label {
    margin: var(--fai-space-4) 0 var(--fai-space-1);
    font-size: var(--fai-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--fai-ink-3);
}

.rpt-doc[b-d4zah48q6z]  .rpt-sources {
    margin: 0;
    padding-inline-start: 1.25rem;
    font-size: var(--fai-text-sm);
}

.rpt-doc[b-d4zah48q6z]  .rpt-sources a {
    color: var(--fai-primary-ink);
    unicode-bidi: plaintext;
}

@media (max-width: 640px) {
    .rpt-doc[b-d4zah48q6z] {
        padding: var(--fai-space-4);
    }
}
/* /Shared/Chat/FaiChatDock.razor.rz.scp.css */
/* FAI-P07-01 — Assistant dock: desktop right rail (fixed, above content, below modals);
   phone overlay full-screen; FAB bottom-right above the tab bar. Logical properties for RTL. */
.fai-chat-dock[b-hi3d8bsm6l] {
    position: fixed;
    inset-block: 0;
    inset-inline-end: 0;
    inline-size: min(var(--dock-width, 24.5rem), 100vw);
    display: flex;
    flex-direction: column;
    background: var(--fai-canvas);
    border-inline-start: 1px solid var(--fai-border);
    box-shadow: var(--fai-elev-md);
    z-index: var(--fai-z-dock, 40);
}

/* SH — resize handle: a slim strip straddling the dock's start edge. Widened hit area beyond the
   visible line (a 6px target is easy to miss with a mouse, let alone a thumb) but only the 2px
   center paints, so it doesn't read as a thick border at rest. touch-action:none stops the
   browser from treating a vertical drag here as a page/panel scroll gesture. */
.dock-resize-handle[b-hi3d8bsm6l] {
    position: absolute;
    inset-block: 0;
    inset-inline-start: -3px;
    inline-size: 7px;
    cursor: ew-resize;
    touch-action: none;
    z-index: 1;
    background: transparent;
}

    .dock-resize-handle[b-hi3d8bsm6l]::before {
        content: "";
        position: absolute;
        inset-block: 0;
        inset-inline-start: 3px;
        inline-size: 2px;
        background: transparent;
        transition: background var(--fai-motion-fast, 120ms) ease;
    }

    .dock-resize-handle:hover[b-hi3d8bsm6l]::before,
    .dock-resize-handle:focus-visible[b-hi3d8bsm6l]::before {
        background: var(--fai-primary-line);
    }

    .dock-resize-handle:focus-visible[b-hi3d8bsm6l] {
        outline: none;
    }

.dock-header[b-hi3d8bsm6l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.75rem;
    border-bottom: 1px solid var(--fai-border);
    background: var(--fai-surface);
}

.dock-title[b-hi3d8bsm6l] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-inline-size: 0;
}

/* Ahmed stands "behind" the header: his figure runs down to the header's bottom border, which is
   what cuts him off (negative margin swallows the header padding). */
.dock-guide[b-hi3d8bsm6l] {
    display: inline-flex;
    align-self: flex-end;
    margin-block-end: -0.75rem;
    margin-inline-start: 0.25rem;
}

/* Zoomed in: a bigger figure cut at the chest (head, shoulders, waving hand) — the header keeps the
   same height (212px x 0.52 = the old 168px x 0.66) and the belly fold of the kandura stays out of frame. */
.dock-guide[b-hi3d8bsm6l]  .fai-guide-clip {
    --guide-clip: 0.52;
}

.dock-header .dock-title[b-hi3d8bsm6l] {
    flex: 1;
}

.dock-close[b-hi3d8bsm6l] {
    flex: none;
}

.dock-mark[b-hi3d8bsm6l] {
    inline-size: 2rem;
    block-size: 2rem;
    display: grid;
    place-items: center;
    border-radius: var(--fai-radius-md);
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
    flex: none;
}

.dock-name[b-hi3d8bsm6l] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-weight: 700;
    font-size: 0.9375rem;
    color: var(--fai-ink);
}

.dock-context[b-hi3d8bsm6l] {
    margin: 0;
    font-size: 0.75rem;
    color: var(--fai-ink-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-inline-size: 12rem;
}

.dock-actions[b-hi3d8bsm6l] {
    display: flex;
    gap: 0.25rem;
}

.dock-icon-btn[b-hi3d8bsm6l] {
    inline-size: 2rem;
    block-size: 2rem;
    display: grid;
    place-items: center;
    border: none;
    border-radius: var(--fai-radius-sm);
    background: transparent;
    color: var(--fai-ink-3);
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease, color var(--fai-motion-fast) ease;
}

    .dock-icon-btn:hover:not(:disabled)[b-hi3d8bsm6l],
    .dock-icon-btn:focus-visible[b-hi3d8bsm6l] {
        background: var(--fai-surface-2);
        color: var(--fai-ink);
    }

    .dock-icon-btn:disabled[b-hi3d8bsm6l] {
        opacity: 0.45;
        cursor: default;
    }

.dock-body[b-hi3d8bsm6l] {
    flex: 1;
    min-block-size: 0;
    display: flex;
    /* SH — column: the page-aware starters sit ABOVE the conversation (they used to be squeezed
       into a tall strip beside it because this was a row). */
    flex-direction: column;
}

    .dock-body[b-hi3d8bsm6l] >  .fai-conversation {
        flex: 1;
        min-block-size: 0;
    }

    /* The dock already offers page-aware starters, so the conversation's generic ones would repeat them. */
    .dock-body[b-hi3d8bsm6l]  .conv-greeting .fai-suggestions {
        display: none;
    }

/* FAB — phone-first (hidden on desktop widths; the shell shows the dock rail instead) */
.fai-chat-fab[b-hi3d8bsm6l] {
    display: none;
}

@media (max-width: 1023px) {
    .fai-chat-dock[b-hi3d8bsm6l] {
        inline-size: 100vw;
        z-index: var(--fai-z-modal, 60);
    }

    /* Full-screen overlay on phone — nothing beside it to resize into. */
    .dock-resize-handle[b-hi3d8bsm6l] {
        display: none;
    }

    .fai-chat-fab[b-hi3d8bsm6l] {
        display: grid;
        place-items: center;
        position: fixed;
        inset-inline-end: 1rem;
        inset-block-end: 4.75rem; /* above the bottom tab bar */
        inline-size: 3.25rem;
        block-size: 3.25rem;
        border: none;
        border-radius: 999px;
        background: var(--fai-primary);
        color: var(--fai-on-primary);
        box-shadow: var(--fai-elev-md);
        cursor: pointer;
        z-index: var(--fai-z-dock, 40);
        transition: background var(--fai-motion-fast) ease;
    }

        .fai-chat-fab:hover[b-hi3d8bsm6l],
        .fai-chat-fab:focus-visible[b-hi3d8bsm6l] {
            background: var(--fai-primary-fill-strong);
        }
}

/* SH — surface-aware starter prompts (FAI-P08-04) shipped unstyled (raw browser buttons).
   They read as the same chips the conversation uses for follow-ups. */
.dock-starters[b-hi3d8bsm6l] {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-4) 0;
}

.dock-starter[b-hi3d8bsm6l] {
    min-block-size: 2.25rem;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-primary-strong);
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    text-align: start;
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease, border-color var(--fai-motion-fast) ease;
}

.dock-starter:hover[b-hi3d8bsm6l],
.dock-starter:focus-visible[b-hi3d8bsm6l] {
    background: var(--fai-primary-soft);
    border-color: var(--fai-primary-line);
}
/* /Shared/Chat/FaiConversation.razor.rz.scp.css */
/* FAI-P07-01 — Conversation surface: scrollable thread + sticky composer. Flex column that
   fills its host (dock body, page panel, mobile overlay). Logical properties for RTL. */
.fai-conversation[b-y9dmndqam9] {
    display: flex;
    flex-direction: column;
    min-block-size: 0;
    flex: 1;
}

.conv-scroll[b-y9dmndqam9] {
    flex: 1;
    min-block-size: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.75rem;
}

.conv-thread[b-y9dmndqam9] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

/* SH (2026-09-19) — the empty/greeting state fills and centers instead of pinning to the top
   with a dead void below it down to the composer. min-block-size:100% needs conv-scroll to
   actually have height to stretch into, which it does (flex:1, set above). */
.conv-thread-empty[b-y9dmndqam9] {
    min-block-size: 100%;
    justify-content: center;
}

.conv-anchor[b-y9dmndqam9] {
    block-size: 1px;
}

/* Greeting / empty state */
.conv-greeting[b-y9dmndqam9] {
    align-self: center;
    text-align: center;
    max-inline-size: 26rem;
    padding: 1.5rem 1rem;
    display: grid;
    gap: 0.5rem;
    justify-items: center;
}

.conv-greeting-mark[b-y9dmndqam9] {
    inline-size: 2.5rem;
    block-size: 2.5rem;
    display: grid;
    place-items: center;
    border-radius: var(--fai-radius-md);
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
}

.conv-greeting h3[b-y9dmndqam9] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: 1.125rem;
    color: var(--fai-ink);
}

.conv-greeting p[b-y9dmndqam9] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--fai-ink-3);
}

.conv-context[b-y9dmndqam9] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.75rem;
    color: var(--fai-primary-strong);
    background: var(--fai-primary-soft);
    border-radius: var(--fai-radius-pill);
    padding: 0.25rem 0.625rem;
}

.conv-greeting .fai-suggestions[b-y9dmndqam9] {
    justify-content: center;
    margin-top: 0.5rem;
}

/* Error line */
.conv-error[b-y9dmndqam9] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    align-self: center;
    margin: 0;
    font-size: 0.8125rem;
    color: var(--fai-danger);
    background: var(--fai-danger-soft);
    border: 1px solid var(--fai-danger);
    border-radius: var(--fai-radius-md);
    padding: 0.5rem 0.75rem;
}

/* Composer */
.conv-composer[b-y9dmndqam9] {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    padding: 0.75rem;
    border-top: 1px solid var(--fai-border);
    background: var(--fai-surface);
}

.conv-input[b-y9dmndqam9] {
    flex: 1;
    resize: none;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
    color: var(--fai-ink);
    font: inherit;
    font-size: 0.9375rem;
    line-height: 1.4;
    padding: 0.5625rem 0.75rem;
    min-block-size: 2.5rem;
    max-block-size: 9rem;
}

    .conv-input:focus-visible[b-y9dmndqam9] {
        outline: none;
        border-color: var(--fai-primary-line);
        box-shadow: var(--fai-focus-ring);
    }

    .conv-input:disabled[b-y9dmndqam9] {
        opacity: 0.7;
    }

.conv-send[b-y9dmndqam9] {
    flex: none;
    inline-size: 2.5rem;
    block-size: 2.5rem;
    display: grid;
    place-items: center;
    border: none;
    border-radius: var(--fai-radius-md);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease;
}

    .conv-send:hover:not(:disabled)[b-y9dmndqam9],
    .conv-send:focus-visible[b-y9dmndqam9] {
        background: var(--fai-primary-fill-strong);
    }

    .conv-send:disabled[b-y9dmndqam9] {
        opacity: 0.45;
        cursor: default;
    }
/* /Shared/Chat/FaiMessageBubble.razor.rz.scp.css */
/* FAI-P07-01 — Chat bubbles: assistant left-aligned with AI marker, user right-aligned on the
   primary tint; streaming cursor + thinking dots; collapsible tool trace; confirm chip. */
.fai-bubble[b-0j3lx1114i] {
    display: flex;
    gap: 0.5rem;
    max-inline-size: 42rem;
}

.fai-bubble-assistant[b-0j3lx1114i] {
    align-self: flex-start;
}

.fai-bubble-user[b-0j3lx1114i] {
    align-self: flex-end;
    flex-direction: row-reverse;
}

.bubble-marker[b-0j3lx1114i] {
    flex: none;
    inline-size: 1.75rem;
    block-size: 1.75rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
    border: 1px solid var(--fai-border);
}

.bubble-body[b-0j3lx1114i] {
    min-inline-size: 0;
    padding: 0.625rem 0.875rem;
    border-radius: var(--fai-radius-lg);
    border: 1px solid var(--fai-border);
    background: var(--fai-surface);
    box-shadow: var(--fai-elev-xs);
}

.fai-bubble-user .bubble-body[b-0j3lx1114i] {
    background: var(--fai-primary-soft);
    border-color: transparent;
}

.fai-bubble-user .bubble-body[b-0j3lx1114i]  p {
    color: var(--fai-primary-strong);
}

/* Tool trace */
.bubble-tools[b-0j3lx1114i] {
    margin-bottom: 0.375rem;
    font-size: 0.75rem;
}

    .bubble-tools summary[b-0j3lx1114i] {
        display: inline-flex;
        align-items: center;
        gap: 0.3rem;
        color: var(--fai-ink-3);
        cursor: pointer;
        list-style: none;
        padding: 0.125rem 0.5rem;
        border-radius: var(--fai-radius-pill);
        border: 1px dashed var(--fai-border-strong);
    }

        .bubble-tools summary[b-0j3lx1114i]::-webkit-details-marker {
            display: none;
        }

    .bubble-tools ul[b-0j3lx1114i] {
        list-style: none;
        margin: 0.375rem 0 0;
        padding: 0;
        display: grid;
        gap: 0.25rem;
    }

    .bubble-tools li[b-0j3lx1114i] {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
        align-items: baseline;
        color: var(--fai-ink-2);
    }

    .bubble-tools .tool-succeeded span:first-child[b-0j3lx1114i] {
        color: var(--fai-success);
        font-weight: 600;
    }

    .bubble-tools .tool-failed span:first-child[b-0j3lx1114i] {
        color: var(--fai-danger);
        font-weight: 600;
    }

    .bubble-tools .tool-ms[b-0j3lx1114i] {
        color: var(--fai-ink-3);
    }

    .bubble-tools .tool-error[b-0j3lx1114i] {
        color: var(--fai-danger);
    }

/* Streaming affordances */
.bubble-thinking[b-0j3lx1114i] {
    display: flex;
    gap: 0.25rem;
    margin: 0;
    padding: 0.25rem 0;
}

    .bubble-thinking .dot[b-0j3lx1114i] {
        inline-size: 0.375rem;
        block-size: 0.375rem;
        border-radius: 999px;
        background: var(--fai-ink-3);
        animation: fai-dot-pulse-b-0j3lx1114i 1.2s ease-in-out infinite;
    }

        .bubble-thinking .dot:nth-child(2)[b-0j3lx1114i] { animation-delay: 0.15s; }
        .bubble-thinking .dot:nth-child(3)[b-0j3lx1114i] { animation-delay: 0.3s; }

@keyframes fai-dot-pulse-b-0j3lx1114i {
    0%, 80%, 100% { opacity: 0.25; }
    40% { opacity: 1; }
}

.bubble-cursor[b-0j3lx1114i] {
    display: inline-block;
    inline-size: 0.5rem;
    block-size: 1rem;
    margin-inline-start: 0.125rem;
    vertical-align: text-bottom;
    background: var(--fai-ai);
    animation: fai-cursor-blink-b-0j3lx1114i 0.9s step-end infinite;
}

@keyframes fai-cursor-blink-b-0j3lx1114i {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .bubble-thinking .dot[b-0j3lx1114i],
    .bubble-cursor[b-0j3lx1114i] {
        animation: none;
    }
}

/* Confirm-to-write chip */
.bubble-confirm[b-0j3lx1114i] {
    margin-top: 0.625rem;
    border: 1px solid var(--fai-warning);
    background: var(--fai-warning-soft);
    border-radius: var(--fai-radius-md);
    padding: 0.625rem;
}

.confirm-title[b-0j3lx1114i] {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--fai-ink);
}

.confirm-summary[b-0j3lx1114i] {
    margin: 0.375rem 0 0;
    font-size: 0.8125rem;
    color: var(--fai-ink-2);
    overflow-wrap: anywhere;
}

    .confirm-summary code[b-0j3lx1114i] {
        font-family: var(--fai-font-mono);
        font-size: 0.75rem;
        background: var(--fai-surface);
        border: 1px solid var(--fai-border);
        border-radius: var(--fai-radius-sm);
        padding: 0 0.25rem;
    }

.confirm-args[b-0j3lx1114i] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.25rem;
    font-size: 0.8125rem;
}

    .confirm-args li[b-0j3lx1114i] {
        display: flex;
        gap: 0.5rem;
    }

        .confirm-args li span:first-child[b-0j3lx1114i] {
            color: var(--fai-ink-3);
            min-inline-size: 5rem;
        }

.confirm-actions[b-0j3lx1114i] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.625rem;
}
/* /Shared/Chat/FaiRichCard.razor.rz.scp.css */
/* FAI-P07-01 — Rich-result cards inside chat bubbles: token-driven, hairline borders, soft
   elevation only on interactive elements. RTL-safe via logical properties. */
.fai-rich-card[b-qi2artwpoj] {
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    padding: 0.75rem;
    margin-top: 0.5rem;
    min-inline-size: 0;
}

.rich-card-head[b-qi2artwpoj] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.375rem;
    color: var(--fai-ai);
}

.rich-card-title[b-qi2artwpoj] {
    font-family: var(--fai-font-display);
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--fai-ink);
    margin: 0;
}

/* Booth list */
.rich-card-booths[b-qi2artwpoj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.booth-row[b-qi2artwpoj] {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.5rem;
    background: var(--fai-surface-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
}

.booth-rank[b-qi2artwpoj] {
    flex: none;
    inline-size: 1.5rem;
    block-size: 1.5rem;
    display: grid;
    place-items: center;
    border-radius: var(--fai-radius-sm);
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
    font-weight: 600;
    font-size: 0.8125rem;
}

.booth-main[b-qi2artwpoj] {
    flex: 1;
    min-inline-size: 0;
}

.booth-name[b-qi2artwpoj] {
    margin: 0;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--fai-ink);
}

.booth-meta[b-qi2artwpoj] {
    margin: 0.125rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    font-size: 0.75rem;
    color: var(--fai-ink-3);
}

    .booth-meta span + span[b-qi2artwpoj]::before {
        content: "·";
        margin-inline-end: 0.375rem;
        color: var(--fai-border-strong);
    }

.booth-why[b-qi2artwpoj] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    color: var(--fai-ink-2);
}

/* Competitor list (M3): same row anatomy as the booth list; archetype tinted with the AI accent */
.rich-card-competitors[b-qi2artwpoj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.competitor-row[b-qi2artwpoj] {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.5rem;
    background: var(--fai-surface-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
}

.competitor-rank[b-qi2artwpoj] {
    flex: none;
    inline-size: 1.5rem;
    block-size: 1.5rem;
    display: grid;
    place-items: center;
    border-radius: var(--fai-radius-sm);
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
    font-weight: 700;
    font-size: 0.8125rem;
}

.competitor-main[b-qi2artwpoj] {
    flex: 1;
    min-inline-size: 0;
}

.competitor-name[b-qi2artwpoj] {
    margin: 0;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--fai-ink);
}

.competitor-meta[b-qi2artwpoj] {
    margin: 0.125rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    font-size: 0.75rem;
    color: var(--fai-ink-3);
}

    .competitor-meta span + span[b-qi2artwpoj]::before {
        content: "·";
        margin-inline-end: 0.375rem;
        color: var(--fai-border-strong);
    }

.competitor-archetype[b-qi2artwpoj] {
    color: var(--fai-ai);
    font-weight: 600;
}

.competitor-why[b-qi2artwpoj] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    color: var(--fai-ink-2);
}

/* Stat list */
.rich-card-stats[b-qi2artwpoj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
    gap: 0.5rem;
}

.stat-cell[b-qi2artwpoj] {
    background: var(--fai-surface-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: 0.5rem 0.625rem;
}

.stat-label[b-qi2artwpoj] {
    margin: 0;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fai-ink-3);
}

.stat-value[b-qi2artwpoj] {
    margin: 0.125rem 0 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--fai-ink);
    font-variant-numeric: tabular-nums;
}

.stat-hint[b-qi2artwpoj] {
    margin: 0.25rem 0 0;
    font-size: 0.75rem;
    color: var(--fai-ink-3);
}

/* Route preview */
.rich-card-route[b-qi2artwpoj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.375rem;
    counter-reset: none;
}

.route-stop[b-qi2artwpoj] {
    display: flex;
    gap: 0.625rem;
    align-items: flex-start;
    padding: 0.4375rem 0.5rem;
    background: var(--fai-surface-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
}

.stop-order[b-qi2artwpoj] {
    flex: none;
    inline-size: 1.5rem;
    block-size: 1.5rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    font-weight: 600;
    font-size: 0.8125rem;
}

.stop-name[b-qi2artwpoj] {
    margin: 0;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--fai-ink);
}

.stop-meta[b-qi2artwpoj] {
    margin: 0.125rem 0 0;
    font-size: 0.75rem;
    color: var(--fai-ink-3);
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

    .stop-meta span + span[b-qi2artwpoj]::before {
        content: "·";
        margin-inline-end: 0.375rem;
        color: var(--fai-border-strong);
    }

.stop-note[b-qi2artwpoj] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    color: var(--fai-ink-2);
}

/* Draft */
.rich-card-draft .draft-channel[b-qi2artwpoj] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    color: var(--fai-primary-strong);
    background: var(--fai-primary-soft);
    border-radius: var(--fai-radius-pill);
    padding: 0.125rem 0.5rem;
}

.draft-body[b-qi2artwpoj] {
    margin: 0.5rem 0;
    font-size: 0.875rem;
    color: var(--fai-ink-2);
    white-space: pre-wrap;
    border-inline-start: 3px solid var(--fai-ai);
    padding-inline-start: 0.625rem;
}

.draft-actions[b-qi2artwpoj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.copy-flash[b-qi2artwpoj] {
    font-size: 0.75rem;
    color: var(--fai-success);
    min-inline-size: 3.5rem;
}

/* Checklist */
.rich-card-checklist[b-qi2artwpoj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.375rem;
}

    .rich-card-checklist li[b-qi2artwpoj] {
        position: relative;
        padding-inline-start: 1.25rem;
        font-size: 0.875rem;
        color: var(--fai-ink-2);
    }

        .rich-card-checklist li[b-qi2artwpoj]::before {
            content: "✓";
            position: absolute;
            inset-inline-start: 0;
            color: var(--fai-primary-ink);
            font-weight: 700;
        }

/* Key-value / contact */
.rich-card-rows[b-qi2artwpoj] {
    margin: 0;
    display: grid;
    gap: 0.375rem;
}

.kv-row[b-qi2artwpoj] {
    display: grid;
    grid-template-columns: minmax(6rem, auto) 1fr;
    gap: 0.625rem;
    font-size: 0.8125rem;
}

    .kv-row dt[b-qi2artwpoj] {
        color: var(--fai-ink-3);
        margin: 0;
    }

    .kv-row dd[b-qi2artwpoj] {
        margin: 0;
        color: var(--fai-ink);
    }

.rich-card-unknown[b-qi2artwpoj] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--fai-ink-2);
}

.rich-card-link[b-qi2artwpoj] {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--fai-primary-strong);
}
/* /Shared/Chat/FaiSuggestionChips.razor.rz.scp.css */
/* FAI-P07-01 — Suggestion chips: pill buttons, primary tint, wrap gracefully, RTL-safe. */
.fai-suggestions[b-5l5jwjqjlq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.suggestion-chip[b-5l5jwjqjlq] {
    border: 1px solid var(--fai-border);
    background: var(--fai-surface);
    color: var(--fai-primary-strong);
    border-radius: var(--fai-radius-pill);
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease, border-color var(--fai-motion-fast) ease;
    min-block-size: 2.25rem;
}

    .suggestion-chip:hover:not(:disabled)[b-5l5jwjqjlq],
    .suggestion-chip:focus-visible[b-5l5jwjqjlq] {
        background: var(--fai-primary-soft);
        border-color: var(--fai-primary-line);
    }

    .suggestion-chip:disabled[b-5l5jwjqjlq] {
        opacity: 0.55;
        cursor: default;
    }
/* /Shared/FaiAccordion.razor.rz.scp.css */
/* FAI-P07-02 — FaiAccordion container styles (isolated). */
.fai-accordion[b-0jmegd0pkz] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    overflow: hidden;
}
/* /Shared/FaiAccordionItem.razor.rz.scp.css */
/* FAI-P07-02 — FaiAccordionItem styles (isolated). */
.fai-acc-item + .fai-acc-item[b-ag14jwwmna] {
    border-block-start: 1px solid var(--fai-border);
}

.fai-acc-heading[b-ag14jwwmna] {
    margin: 0;
}

.fai-acc-trigger[b-ag14jwwmna] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-3);
    width: 100%;
    min-height: var(--fai-density-row);
    padding: var(--fai-space-3) var(--fai-space-4);
    border: 0;
    background: transparent;
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    font-weight: 600;
    color: var(--fai-ink);
    cursor: pointer;
    text-align: start;
    transition: background-color var(--fai-motion-fast) var(--fai-ease);
}

.fai-acc-trigger:hover[b-ag14jwwmna] {
    background: var(--fai-surface-2);
}

.fai-acc-chevron[b-ag14jwwmna] {
    flex: 0 0 auto;
    color: var(--fai-ink-3);
    transition: transform var(--fai-motion-base) var(--fai-ease);
}

.fai-acc-open .fai-acc-chevron[b-ag14jwwmna] {
    transform: rotate(180deg);
}

.fai-acc-panel[b-ag14jwwmna] {
    padding: var(--fai-space-4);
    padding-block-start: 0;
    color: var(--fai-ink-2);
}
/* /Shared/FaiAvatar.razor.rz.scp.css */
/* FAI-P07-02 — FaiAvatar styles (isolated). */
.fai-avatar[b-6j0n6otcpw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--avatar-bg);
    color: var(--avatar-fg);
    font-family: var(--fai-font-display);
    font-weight: 700;
    letter-spacing: .02em;
    flex: 0 0 auto;
    user-select: none;
}

.fai-avatar-sm[b-6j0n6otcpw] {
    width: 24px;
    height: 24px;
    font-size: 10px;
}

.fai-avatar-md[b-6j0n6otcpw] {
    width: 32px;
    height: 32px;
    font-size: var(--fai-text-xs);
}

.fai-avatar-lg[b-6j0n6otcpw] {
    width: 40px;
    height: 40px;
    font-size: var(--fai-text-sm);
}
/* /Shared/FaiBadge.razor.rz.scp.css */
/* FAI-P07-02 — FaiBadge styles (isolated). */
.fai-badge[b-03u4afb0gl] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    padding: 2px var(--fai-space-2);
    border-radius: var(--fai-radius-sm);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

.fai-badge-neutral[b-03u4afb0gl] {
    background: var(--fai-surface-3);
    color: var(--fai-ink-2);
}

.fai-badge-primary[b-03u4afb0gl] {
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
}

.fai-badge-ai[b-03u4afb0gl] {
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
}

.fai-badge-success[b-03u4afb0gl] {
    background: var(--fai-success-soft);
    color: var(--fai-success);
}

.fai-badge-warning[b-03u4afb0gl] {
    background: var(--fai-warning-soft);
    color: var(--fai-warning);
}

.fai-badge-danger[b-03u4afb0gl] {
    background: var(--fai-danger-soft);
    color: var(--fai-danger);
}

.fai-badge-info[b-03u4afb0gl] {
    background: var(--fai-info-soft);
    color: var(--fai-info);
}
/* /Shared/FaiButton.razor.rz.scp.css */
/* FAI-P07-02 — FaiButton styles (isolated). */
.fai-btn[b-xtk28m3sy2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fai-space-2);
    font-family: var(--fai-font-body);
    font-weight: 600;
    line-height: 1;
    border: 1px solid transparent;
    border-radius: var(--fai-radius-button); /* pill — regional convention (ADR 0002 §3) */
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition:
        background-color var(--fai-motion-fast) var(--fai-ease),
        border-color var(--fai-motion-fast) var(--fai-ease),
        color var(--fai-motion-fast) var(--fai-ease);
}

/* Sizes (pointer:coarse bumps every size to the 44px one-handed minimum). */
.fai-btn-sm[b-xtk28m3sy2] {
    min-height: 32px;
    padding-inline: var(--fai-space-3);
    font-size: var(--fai-text-sm);
}

.fai-btn-md[b-xtk28m3sy2] {
    min-height: 40px;
    padding-inline: var(--fai-space-4);
    font-size: var(--fai-text-body);
}

.fai-btn-lg[b-xtk28m3sy2] {
    min-height: 48px;
    padding-inline: var(--fai-space-5);
    font-size: var(--fai-text-body);
}

@media (pointer: coarse) {
    .fai-btn[b-xtk28m3sy2] {
        min-height: var(--fai-target-min);
    }
}

/* Variants */
.fai-btn-primary[b-xtk28m3sy2] {
    background: var(--fai-primary);
    color: var(--fai-on-primary);
}

.fai-btn-primary:hover:not(:disabled)[b-xtk28m3sy2] {
    background: var(--fai-primary-fill-strong);
}

.fai-btn-secondary[b-xtk28m3sy2] {
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    border-color: var(--fai-border-strong);
}

.fai-btn-secondary:hover:not(:disabled)[b-xtk28m3sy2] {
    border-color: var(--fai-primary-line);
    color: var(--fai-primary-strong);
}

.fai-btn-ghost[b-xtk28m3sy2] {
    background: transparent;
    color: var(--fai-ink-2);
}

.fai-btn-ghost:hover:not(:disabled)[b-xtk28m3sy2] {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

.fai-btn-danger[b-xtk28m3sy2] {
    background: var(--fai-danger);
    color: var(--fai-surface);
}

.fai-btn-danger:hover:not(:disabled)[b-xtk28m3sy2] {
    background: var(--fai-danger-strong); /* FAI-P08-03 — themed hover fill */
}

.fai-btn:disabled[b-xtk28m3sy2] {
    opacity: .55;
    cursor: not-allowed;
}

.fai-btn-block[b-xtk28m3sy2] {
    display: flex;
    width: 100%;
}

/* Loading spinner */
.spinner[b-xtk28m3sy2] {
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    border-radius: 50%;
    border: 2px solid currentColor;
    border-inline-end-color: transparent;
    animation: fai-btn-spin-b-xtk28m3sy2 .7s linear infinite;
}

@keyframes fai-btn-spin-b-xtk28m3sy2 {
    to {
        transform: rotate(360deg);
    }
}
/* /Shared/FaiCard.razor.rz.scp.css */
/* FAI-P07-02 — FaiCard styles (isolated). */
.fai-card[b-5atexdrp2p] {
    display: flex;
    flex-direction: column;
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    box-shadow: var(--fai-shadow-xs);
}

.fai-card-ai[b-5atexdrp2p] {
    border-inline-start: 3px solid var(--fai-ai);
}

.card-header[b-5atexdrp2p] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--fai-space-3);
    padding: var(--fai-space-4) var(--fai-space-5);
    border-bottom: 1px solid var(--fai-border);
}

.card-heading[b-5atexdrp2p] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    min-width: 0;
}

.card-heading-text[b-5atexdrp2p] {
    min-width: 0;
}

.card-title[b-5atexdrp2p] {
    margin: 0;
    font-size: var(--fai-text-lg);
    font-family: var(--fai-font-display);
    color: var(--fai-ink);
}

.card-subtitle[b-5atexdrp2p] {
    margin: 0;
    margin-block-start: 2px;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.card-actions[b-5atexdrp2p] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    flex-shrink: 0;
}

.card-body[b-5atexdrp2p] {
    flex: 1;
    padding: var(--fai-space-5);
}

.fai-card-flush .card-body[b-5atexdrp2p] {
    padding: 0;
}

.card-footer[b-5atexdrp2p] {
    padding: var(--fai-space-3) var(--fai-space-5);
    border-top: 1px solid var(--fai-border);
    background: var(--fai-surface-2);
    border-end-start-radius: var(--fai-radius-lg);
    border-end-end-radius: var(--fai-radius-lg);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}
/* /Shared/FaiChip.razor.rz.scp.css */
/* FAI-P07-02 — FaiChip styles (isolated). */
.fai-chip[b-dahlnh4nwz],
.chip-remove[b-dahlnh4nwz] {
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    line-height: 1;
}

.fai-chip[b-dahlnh4nwz] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    min-height: 28px;
    padding-inline: var(--fai-space-3);
    border-radius: var(--fai-radius-pill);
    border: 1px solid var(--fai-border);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    transition:
        background-color var(--fai-motion-fast) var(--fai-ease),
        border-color var(--fai-motion-fast) var(--fai-ease),
        color var(--fai-motion-fast) var(--fai-ease);
}

button.fai-chip[b-dahlnh4nwz] {
    cursor: pointer;
}

button.fai-chip:hover[b-dahlnh4nwz] {
    border-color: var(--fai-primary-line);
    color: var(--fai-primary-strong);
}

.fai-chip-selected[b-dahlnh4nwz],
.fai-chip-primary[b-dahlnh4nwz] {
    background: var(--fai-primary-soft);
    border-color: var(--fai-primary-line);
    color: var(--fai-primary-strong);
}

.fai-chip-ai[b-dahlnh4nwz] {
    background: var(--fai-ai-soft);
    border-color: var(--fai-ai);
    color: var(--fai-ai);
}

.fai-chip-success[b-dahlnh4nwz] {
    background: var(--fai-success-soft);
    border-color: var(--fai-success);
    color: var(--fai-success);
}

.fai-chip-warning[b-dahlnh4nwz] {
    background: var(--fai-warning-soft);
    border-color: var(--fai-warning);
    color: var(--fai-warning);
}

.fai-chip-danger[b-dahlnh4nwz] {
    background: var(--fai-danger-soft);
    border-color: var(--fai-danger);
    color: var(--fai-danger);
}

.fai-chip-info[b-dahlnh4nwz] {
    background: var(--fai-info-soft);
    border-color: var(--fai-info);
    color: var(--fai-info);
}

.chip-remove[b-dahlnh4nwz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-inline-start: var(--fai-space-1);
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.chip-remove:hover[b-dahlnh4nwz] {
    background: rgb(15 23 42 / .08);
}
/* /Shared/FaiCommandPalette.razor.rz.scp.css */
/* FAI-P07-02 — Command palette (⌘K): overlay dialog, z-index 90 per the token scale. */
.fai-palette-backdrop[b-uj2tg6to4t] {
    position: fixed;
    inset: 0;
    background: rgb(15 23 42 / 0.32);
    z-index: var(--fai-z-palette);
}

.fai-palette[b-uj2tg6to4t] {
    position: fixed;
    inset-inline: 0;
    margin-inline: auto;
    top: 12vh;
    max-inline-size: 34rem;
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    box-shadow: var(--fai-elevation-md);
    z-index: calc(var(--fai-z-palette) + 1);
    max-block-size: 60vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.fai-palette-head[b-uj2tg6to4t] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-4);
    border-block-end: 1px solid var(--fai-border);
    color: var(--fai-ink-3);
}

.fai-palette-input[b-uj2tg6to4t] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    color: var(--fai-ink);
    font-size: var(--fai-text-body);
    min-block-size: 44px;
}

.fai-palette-input[b-uj2tg6to4t]::placeholder {
    color: var(--fai-ink-3);
}

.fai-palette-kbd[b-uj2tg6to4t] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    padding: 2px 6px;
    color: var(--fai-ink-3);
    background: var(--fai-surface-2);
}

.fai-palette-list[b-uj2tg6to4t] {
    list-style: none;
    margin: 0;
    padding: var(--fai-space-2);
    overflow-y: auto;
}

.fai-palette-group[b-uj2tg6to4t] {
    padding: var(--fai-space-2) var(--fai-space-3) var(--fai-space-1);
    font-size: var(--fai-text-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fai-ink-3);
    font-weight: 600;
}

.fai-palette-option[b-uj2tg6to4t] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-sm);
    cursor: pointer;
    min-block-size: 44px;
    justify-content: center;
}

.fai-palette-option-title[b-uj2tg6to4t] {
    color: var(--fai-ink);
    font-size: var(--fai-text-body);
}

.fai-palette-option-sub[b-uj2tg6to4t] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.fai-palette-option-active[b-uj2tg6to4t] {
    background: var(--fai-primary-soft);
}

.fai-palette-empty[b-uj2tg6to4t] {
    padding: var(--fai-space-4);
    margin: 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-body);
    text-align: center;
}
/* /Shared/FaiDivider.razor.rz.scp.css */
/* FAI-P07-02 — FaiDivider styles (isolated). */
.fai-divider[b-lbbv5r8z0r] {
    border: 0;
    border-top: 1px solid var(--fai-border);
    margin: var(--fai-space-4) 0;
}

.fai-divider-label[b-lbbv5r8z0r] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
    text-transform: uppercase;
    letter-spacing: .06em;
}

.fai-divider-label[b-lbbv5r8z0r]::before,
.fai-divider-label[b-lbbv5r8z0r]::after {
    content: "";
    flex: 1;
    border-top: 1px solid var(--fai-border);
}
/* /Shared/FaiEmptyState.razor.rz.scp.css */
/* FAI-P07-02 — FaiEmptyState styles (isolated). */
.fai-empty[b-vzcao2bfqr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-9) var(--fai-space-5);
}

.empty-icon[b-vzcao2bfqr] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface-2);
    color: var(--fai-ink-3);
    margin-block-end: var(--fai-space-2);
}

.fai-empty h3[b-vzcao2bfqr] {
    margin: 0;
    font-family: var(--fai-font-display);
    color: var(--fai-ink);
}

.fai-empty p[b-vzcao2bfqr] {
    max-width: 44ch;
    margin: 0;
    color: var(--fai-ink-3);
}

.empty-action[b-vzcao2bfqr] {
    margin-block-start: var(--fai-space-3);
}
/* /Shared/FaiGuide.razor.rz.scp.css */
/* SH redesign — guide character sprite: 38 frames side by side, rendered from Sana's rigged Omani
   man (Meshy text-to-motion "hello wave", 12 fps, ~3 s). Frame 0 is the rest pose. Frames are 3:2
   (head and chest, big, with room for the raised hand); --guide-size is the HEIGHT. He never moves
   or shifts — only the frames change. */
.fai-guide[b-hsutnv2gdh] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: flex-start;
    width: calc(var(--guide-size, 96px) * 0.8333);
    height: var(--guide-size, 96px);
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    border-radius: var(--fai-radius-md);
    -webkit-tap-highlight-color: transparent;
}

.fai-guide:focus-visible[b-hsutnv2gdh] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}

/* Clip mode: the button is shorter than the figure and hides the rest, so the surrounding UI
   (e.g. the panel header's bottom edge) is what cuts him off, not the picture. --guide-clip is the
   visible fraction of his height: 0.66 shows head to the waist, ~0.5 cuts at the chest (a host can
   set it lower to zoom in on a bigger figure without growing the header). */
.fai-guide-clip[b-hsutnv2gdh] {
    height: calc(var(--guide-size, 96px) * var(--guide-clip, 0.66));
    overflow: hidden;
}

.fai-guide-figure[b-hsutnv2gdh] {
    --guide-frames: 38;
    flex: 0 0 auto;
    position: relative;
    width: 100%;
    height: var(--guide-size, 96px);
    overflow: hidden;
}

/* The whole strip sits inside the figure box and is MOVED with a transform (compositor thread), not
   by shifting background-position (main thread) — so the wave stays smooth while Blazor is busy
   opening the panel. Each frame = one 38th of the strip's own width. */
.fai-guide-strip[b-hsutnv2gdh] {
    position: absolute;
    top: 0;
    left: 0; /* physical: the strip's frame order never mirrors in RTL */
    width: calc(var(--guide-frames) * 100%);
    height: 100%;
    background-image: var(--guide-sprite, url("img/guide-om-wave.webp"));
    background-repeat: no-repeat;
    background-size: 100% 100%;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    backface-visibility: hidden;
}

/* Play every frame once, as hard cuts (a flip-book): one explicit keyframe per frame with step-end
   timing (works in every engine). The raise (frames 1-4) is a little slower and the descent
   (frames 31-37) twice as slow, so the arm eases down. Total 3.88s. */
.fai-guide-waving .fai-guide-strip[b-hsutnv2gdh] {
    animation: fai-guide-wave-b-hsutnv2gdh 3.88s step-end 1 forwards;
}

@keyframes fai-guide-wave-b-hsutnv2gdh {
    0.000% { transform: translate3d(0.0000%, 0, 0); }
    2.146% { transform: translate3d(-2.6316%, 0, 0); }
    5.150% { transform: translate3d(-5.2632%, 0, 0); }
    8.155% { transform: translate3d(-7.8947%, 0, 0); }
    11.159% { transform: translate3d(-10.5263%, 0, 0); }
    14.163% { transform: translate3d(-13.1579%, 0, 0); }
    16.309% { transform: translate3d(-15.7895%, 0, 0); }
    18.455% { transform: translate3d(-18.4211%, 0, 0); }
    20.601% { transform: translate3d(-21.0526%, 0, 0); }
    22.747% { transform: translate3d(-23.6842%, 0, 0); }
    24.893% { transform: translate3d(-26.3158%, 0, 0); }
    27.039% { transform: translate3d(-28.9474%, 0, 0); }
    29.185% { transform: translate3d(-31.5789%, 0, 0); }
    31.330% { transform: translate3d(-34.2105%, 0, 0); }
    33.476% { transform: translate3d(-36.8421%, 0, 0); }
    35.622% { transform: translate3d(-39.4737%, 0, 0); }
    37.768% { transform: translate3d(-42.1053%, 0, 0); }
    39.914% { transform: translate3d(-44.7368%, 0, 0); }
    42.060% { transform: translate3d(-47.3684%, 0, 0); }
    44.206% { transform: translate3d(-50.0000%, 0, 0); }
    46.352% { transform: translate3d(-52.6316%, 0, 0); }
    48.498% { transform: translate3d(-55.2632%, 0, 0); }
    50.644% { transform: translate3d(-57.8947%, 0, 0); }
    52.790% { transform: translate3d(-60.5263%, 0, 0); }
    54.936% { transform: translate3d(-63.1579%, 0, 0); }
    57.082% { transform: translate3d(-65.7895%, 0, 0); }
    59.227% { transform: translate3d(-68.4211%, 0, 0); }
    61.373% { transform: translate3d(-71.0526%, 0, 0); }
    63.519% { transform: translate3d(-73.6842%, 0, 0); }
    65.665% { transform: translate3d(-76.3158%, 0, 0); }
    67.811% { transform: translate3d(-78.9474%, 0, 0); }
    69.957% { transform: translate3d(-81.5789%, 0, 0); }
    74.249% { transform: translate3d(-84.2105%, 0, 0); }
    78.541% { transform: translate3d(-86.8421%, 0, 0); }
    82.833% { transform: translate3d(-89.4737%, 0, 0); }
    87.124% { transform: translate3d(-92.1053%, 0, 0); }
    91.416% { transform: translate3d(-94.7368%, 0, 0); }
    95.708% { transform: translate3d(-97.3684%, 0, 0); }
    100% { transform: translate3d(-97.3684%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .fai-guide-waving .fai-guide-strip[b-hsutnv2gdh] {
        animation: none;
    }
}
/* /Shared/FaiKanban.razor.rz.scp.css */
@* FAI-P07-02 — Foundry Design System kanban styles (isolated): horizontal scroll of columns,
    drop highlight as supplemental cue, flat cards with the move affordance inside. *@
.fai-kanban {
    display: flex;
    gap: var(--fai-space-3);
    overflow-x: auto;
    padding-block-end: var(--fai-space-2);
    scroll-snap-type: x proximity;
}

.fai-kanban-col[b-z3aw4fezf6] {
    flex: 0 0 17rem;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface-2);
    border-block-start: 3px solid var(--fai-border-strong);
    scroll-snap-align: start;
    min-block-size: 10rem;
}

.fai-kanban-col-drop[b-z3aw4fezf6] {
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.fai-kanban-col-head[b-z3aw4fezf6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--fai-space-2);
}

.fai-kanban-col-title[b-z3aw4fezf6] {
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink);
    margin: 0;
}

.fai-kanban-col-count[b-z3aw4fezf6] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-ink-3);
    background: var(--fai-surface-3);
    border-radius: var(--fai-radius-pill);
    padding: 2px var(--fai-space-2);
}

.fai-kanban-col-meta[b-z3aw4fezf6] {
    margin: calc(-1 * var(--fai-space-1)) 0 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.fai-kanban-list[b-z3aw4fezf6] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
    min-block-size: 3rem;
}

.fai-kanban-card[b-z3aw4fezf6] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    box-shadow: var(--fai-elev-xs);
    cursor: grab;
}

.fai-kanban-card:focus-within[b-z3aw4fezf6] {
    outline: none;
    border-color: var(--fai-primary-line);
    box-shadow: var(--fai-focus-ring);
}

.fai-kanban-card-dragging[b-z3aw4fezf6] {
    opacity: 0.55;
}

.fai-kanban-empty[b-z3aw4fezf6] {
    border: 1px dashed var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    padding: var(--fai-space-3);
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    text-align: center;
    list-style: none;
}

@media (prefers-reduced-motion: reduce) {
    .fai-kanban[b-z3aw4fezf6] {
        scroll-snap-type: none;
    }
}
/* /Shared/FaiKeyValue.razor.rz.scp.css */
/* FAI-P07-02 — FaiKeyValue styles (isolated). */
.fai-kv[b-ehsxkifvcj] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--fai-space-2) var(--fai-space-3);
    margin: 0;
    padding: var(--fai-space-2) 0;
}

.fai-kv dt[b-ehsxkifvcj] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    min-width: 8ch;
}

.fai-kv dd[b-ehsxkifvcj] {
    margin: 0;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-body);
    overflow-wrap: anywhere;
}

.fai-kv-mono[b-ehsxkifvcj] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-sm);
}
/* /Shared/FaiMarkdown.razor.rz.scp.css */
/* FAI-P07-01 — Markdown subset rendering inside chat bubbles (typography from tokens only). */
.fai-markdown[b-c3zgci28m2] {
    font-size: 0.9375rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

    .fai-markdown p[b-c3zgci28m2] {
        margin: 0 0 0.5rem;
    }

    .fai-markdown p:last-child[b-c3zgci28m2] {
        margin-bottom: 0;
    }

    .fai-markdown h3[b-c3zgci28m2],
    .fai-markdown h4[b-c3zgci28m2] {
        margin: 0.75rem 0 0.375rem;
        font-family: var(--fai-font-display);
        font-size: 1rem;
        font-weight: 600;
        color: var(--fai-ink);
    }

    .fai-markdown ul[b-c3zgci28m2],
    .fai-markdown ol[b-c3zgci28m2] {
        margin: 0.25rem 0 0.5rem;
        padding-inline-start: 1.25rem;
        display: grid;
        gap: 0.25rem;
    }

    .fai-markdown code[b-c3zgci28m2] {
        font-family: var(--fai-font-mono);
        font-size: 0.8125rem;
        background: var(--fai-surface-2);
        border: 1px solid var(--fai-border);
        border-radius: var(--fai-radius-sm);
        padding: 0.05rem 0.3rem;
    }

    .fai-markdown pre[b-c3zgci28m2] {
        margin: 0.5rem 0;
        padding: 0.75rem;
        background: var(--fai-surface-2);
        border: 1px solid var(--fai-border);
        border-radius: var(--fai-radius-sm);
        overflow-x: auto;
    }

        .fai-markdown pre code[b-c3zgci28m2] {
            background: none;
            border: none;
            padding: 0;
        }

    .fai-markdown a[b-c3zgci28m2] {
        color: var(--fai-primary-strong);
        text-decoration: underline;
    }

[dir="rtl"] .fai-markdown ul[b-c3zgci28m2],
[dir="rtl"] .fai-markdown ol[b-c3zgci28m2] {
    padding-inline-start: 1.25rem;
}
/* /Shared/FaiPageHeader.razor.rz.scp.css */
/* FAI-P07-02 — FaiPageHeader styles (isolated). */
.fai-page-header[b-l10rgergnh] {
    margin-block-end: var(--fai-space-6);
}

.crumbs[b-l10rgergnh] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin-block-end: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.crumbs[b-l10rgergnh]  a {
    color: var(--fai-ink-3);
}

.crumbs[b-l10rgergnh]  a:hover {
    color: var(--fai-primary-ink);
}

.page-header-row[b-l10rgergnh] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--fai-space-4);
}

.page-header-text[b-l10rgergnh] {
    min-width: 0;
}

.page-header-text h1[b-l10rgergnh] {
    margin: 0;
}

.page-subtitle[b-l10rgergnh] {
    margin: var(--fai-space-2) 0 0;
    max-width: 62ch;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-body);
}

.page-header-actions[b-l10rgergnh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--fai-space-2);
}

.page-header-context[b-l10rgergnh] {
    margin-block-start: var(--fai-space-3);
    padding-block: var(--fai-space-2);
    border-block-start: 1px solid var(--fai-border);
}

/* SH redesign — back-to-section button above the title. */
.page-back[b-l10rgergnh] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    min-height: 36px;
    margin-block-end: var(--fai-space-2);
    padding: var(--fai-space-1) var(--fai-space-3) var(--fai-space-1) var(--fai-space-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-primary-strong);
    font-size: var(--fai-text-sm);
    font-weight: 500;
    text-decoration: none;
}

.page-back:hover[b-l10rgergnh],
.page-back:focus-visible[b-l10rgergnh] {
    border-color: var(--fai-primary-line);
    background: var(--fai-primary-soft);
}

[dir="rtl"] .page-back[b-l10rgergnh]  svg {
    transform: scaleX(-1);
}
/* /Shared/FaiPanel.razor.rz.scp.css */
/* FAI-P07-02 — FaiPanel styles (isolated). */
.fai-panel[b-5a3vfv1ntd] {
    background: var(--fai-surface-2);
    border-radius: var(--fai-radius-lg);
    padding: var(--fai-space-4);
}

.fai-panel-flush[b-5a3vfv1ntd] {
    padding: 0;
}

.panel-title[b-5a3vfv1ntd] {
    margin: 0 0 var(--fai-space-3);
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--fai-ink-3);
}
/* /Shared/FaiScoreChip.razor.rz.scp.css */
/* FAI-P07-02 — FaiScoreChip styles (isolated). */
.fai-score-chip[b-16l9tt8ji7] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    padding: 1px var(--fai-space-2);
    border: 1px solid var(--chip-color);
    border-radius: var(--fai-radius-pill);
    /* FAI-P08-03 — the theme's paired soft fill, not an ad-hoc tint: each theme tunes the
       band color + soft to WCAG AA together; a color-mix background can fall under 4.5:1
       (oasis score-3 did) even though the tuned pair passes. */
    background: var(--chip-soft);
    color: var(--chip-color);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

.chip-score[b-16l9tt8ji7] {
    font-weight: 700;
}
/* /Shared/FaiScoreRing.razor.rz.scp.css */
/* FAI-P07-02 — FaiScoreRing styles (isolated). */
.fai-score-ring[b-rmkvr9l7qf] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: var(--fai-space-1);
}

.ring-dial[b-rmkvr9l7qf] {
    position: relative;
    width: var(--ring);
    height: var(--ring);
}

.ring-dial svg[b-rmkvr9l7qf] {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.ring-track[b-rmkvr9l7qf],
.ring-fill[b-rmkvr9l7qf] {
    fill: none;
    stroke-width: 3.5;
}

.ring-track[b-rmkvr9l7qf] {
    stroke: var(--fai-surface-3);
}

.ring-fill[b-rmkvr9l7qf] {
    stroke: var(--ring-color);
    stroke-linecap: round;
    transition: stroke-dasharray var(--fai-motion-slow) var(--fai-ease);
}

.ring-value[b-rmkvr9l7qf] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--fai-font-display);
    font-size: calc(var(--ring) * .28);
    font-weight: 700;
    color: var(--fai-ink);
}

.ring-label[b-rmkvr9l7qf] {
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    text-transform: uppercase;
    letter-spacing: .05em;
}
/* /Shared/FaiSection.razor.rz.scp.css */
/* FAI-P07-02 — FaiSection styles (isolated). */
.fai-section[b-npmv891kin] {
    margin-block-end: var(--fai-space-8);
}

.section-head[b-npmv891kin] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-4);
    padding-block-end: var(--fai-space-3);
    border-block-end: 1px solid var(--fai-border);
}

.section-text h2[b-npmv891kin] {
    margin: 0;
}

.section-text p[b-npmv891kin] {
    margin: var(--fai-space-1) 0 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.section-actions[b-npmv891kin] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
}
/* /Shared/FaiSheet.razor.rz.scp.css */
/* FAI-P07-02 (M5) — FaiSheet styles (isolated): bottom drawer on phone, centered modal ≥1024px. */
.fai-sheet-root[b-xus2ow86jz] {
    position: fixed;
    inset: 0;
    z-index: var(--fai-z-modal);
}

.fai-sheet-scrim[b-xus2ow86jz] {
    position: absolute;
    inset: 0;
    background: rgb(15 23 42 / .45);
}

.fai-sheet[b-xus2ow86jz] {
    position: absolute;
    inset-inline: 0;
    inset-block-end: 0;
    max-height: min(88dvh, 640px);
    display: flex;
    flex-direction: column;
    border-radius: var(--fai-radius-xl) var(--fai-radius-xl) 0 0;
    background: var(--fai-surface);
    box-shadow: var(--fai-shadow-md);
    animation: fai-sheet-in-b-xus2ow86jz var(--fai-motion-slow) var(--fai-ease);
}

.fai-sheet-grabber[b-xus2ow86jz] {
    align-self: center;
    inline-size: 40px;
    block-size: 4px;
    margin-block: var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-border-strong);
}

.fai-sheet-head[b-xus2ow86jz] {
    display: flex;
    align-items: start;
    gap: var(--fai-space-3);
    padding: var(--fai-space-2) var(--fai-space-5) var(--fai-space-3);
}

.fai-sheet-title[b-xus2ow86jz] {
    margin: 0;
    flex: 1;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 700;
    color: var(--fai-ink);
}

.fai-sheet-sub[b-xus2ow86jz] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.fai-sheet-close[b-xus2ow86jz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: var(--fai-target-min);
    min-block-size: var(--fai-target-min);
    border: 0;
    border-radius: var(--fai-radius-sm);
    background: transparent;
    color: var(--fai-ink-3);
    cursor: pointer;
}

.fai-sheet-close:hover[b-xus2ow86jz] {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

.fai-sheet-body[b-xus2ow86jz] {
    overflow-y: auto;
    padding: 0 var(--fai-space-5) var(--fai-space-4);
}

.fai-sheet-foot[b-xus2ow86jz] {
    display: flex;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-5);
    border-block-start: 1px solid var(--fai-border);
    background: var(--fai-surface);
}

@media (min-width: 1024px) {
    .fai-sheet[b-xus2ow86jz] {
        inset-inline: auto;
        inset-block: auto;
        position: relative;
        align-self: center;
        inline-size: min(520px, 92vw);
        max-height: 82vh;
        margin: auto;
        border-radius: var(--fai-radius-xl);
    }

    .fai-sheet-root[b-xus2ow86jz] {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .fai-sheet-grabber[b-xus2ow86jz] {
        display: none;
    }
}

@keyframes fai-sheet-in-b-xus2ow86jz {
    from {
        transform: translateY(16px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fai-sheet[b-xus2ow86jz] {
        animation: none;
    }
}
/* /Shared/FaiSkeleton.razor.rz.scp.css */
/* FAI-P07-02 — FaiSkeleton styles (isolated). */
.fai-skeleton[b-q14uvwqppc] {
    background: var(--fai-surface-2);
    border-radius: var(--fai-radius-sm);
    animation: fai-skeleton-pulse-b-q14uvwqppc 1.4s ease-in-out infinite;
}

.fai-skeleton-text[b-q14uvwqppc] {
    height: 0.8rem;
}

.fai-skeleton-circle[b-q14uvwqppc] {
    border-radius: 50%;
}

@keyframes fai-skeleton-pulse-b-q14uvwqppc {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: .45;
    }
}
/* /Shared/FaiStat.razor.rz.scp.css */
/* FAI-P07-02 — FaiStat styles (isolated). */
.fai-stat[b-wjyitmnoan] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-1);
    padding: var(--fai-space-4) var(--fai-space-5);
    background: var(--fai-surface);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    box-shadow: var(--fai-shadow-xs);
}

.stat-top[b-wjyitmnoan] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
}

.stat-label[b-wjyitmnoan] {
    font-size: var(--fai-text-sm);
    font-weight: 500;
    color: var(--fai-ink-3);
}

.stat-icon[b-wjyitmnoan] {
    display: inline-flex;
    color: var(--fai-primary-ink);
}

.stat-value[b-wjyitmnoan] {
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-2xl);
    font-weight: 700;
    color: var(--fai-ink);
    line-height: var(--fai-leading-tight);
}

.stat-delta[b-wjyitmnoan] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    font-size: var(--fai-text-sm);
    font-weight: 600;
}

.stat-delta-good[b-wjyitmnoan] {
    color: var(--fai-success);
}

.stat-delta-bad[b-wjyitmnoan] {
    color: var(--fai-danger);
}

.stat-hint[b-wjyitmnoan] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    font-weight: 400;
}
/* /Shared/FaiStepper.razor.rz.scp.css */
/* FAI-P07-02 — Foundry Design System stepper (wizard progress rail). */
.fai-stepper[b-fei7kb09ru] {
    display: flex;
    gap: var(--fai-space-2);
    list-style: none;
    margin: 0 0 var(--fai-space-4);
    padding: 0;
    flex-wrap: wrap;
}

.fai-step[b-fei7kb09ru] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
    min-height: 44px;
}

.fai-step-dot[b-fei7kb09ru] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 24px;
    block-size: 24px;
    border-radius: var(--fai-radius-pill);
    border: 1px solid var(--fai-border-strong);
    background: var(--fai-surface);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
    flex: none;
}

.fai-step-done .fai-step-dot[b-fei7kb09ru] {
    background: var(--fai-primary-soft);
    border-color: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
}

.fai-step-current[b-fei7kb09ru] {
    color: var(--fai-ink);
    font-weight: 600;
}

.fai-step-current .fai-step-dot[b-fei7kb09ru] {
    background: var(--fai-primary);
    border-color: var(--fai-primary-line);
    color: var(--fai-surface);
}

.fai-stepper-compact .fai-step-label[b-fei7kb09ru] {
    display: none;
}

.fai-stepper-compact .fai-step-current .fai-step-label[b-fei7kb09ru] {
    display: inline;
}
/* /Shared/FaiTabs.razor.rz.scp.css */
/* FAI-P07-02 — FaiTabs styles (isolated). */
.fai-tabs[b-k1e0wypj9c] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
    border-block-end: 1px solid var(--fai-border);
    margin-block-end: var(--fai-space-4);
}

.fai-tab[b-k1e0wypj9c] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-2) var(--fai-space-1);
    margin-block-end: -1px;
    border: 0;
    border-block-end: 2px solid transparent;
    background: transparent;
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    font-weight: 500;
    color: var(--fai-ink-3);
    cursor: pointer;
    transition:
        color var(--fai-motion-fast) var(--fai-ease),
        border-color var(--fai-motion-fast) var(--fai-ease);
}

.fai-tab:hover[b-k1e0wypj9c] {
    color: var(--fai-ink);
}

.fai-tab-active[b-k1e0wypj9c],
.fai-tab-active:hover[b-k1e0wypj9c] {
    color: var(--fai-primary-strong);
    border-block-end-color: var(--fai-primary-line);
    font-weight: 600;
}

.fai-tab-count[b-k1e0wypj9c] {
    padding: 0 var(--fai-space-1);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-3);
    font-size: var(--fai-text-xs);
    font-variant-numeric: tabular-nums;
    color: var(--fai-ink-2);
}

.fai-tab-active .fai-tab-count[b-k1e0wypj9c] {
    background: var(--fai-primary-soft);
    color: var(--fai-primary-strong);
}
/* /Shared/FaiTag.razor.rz.scp.css */
/* FAI-P07-02 — FaiTag styles (isolated). */
.fai-tag[b-esra3z5u4c] {
    display: inline-flex;
    align-items: center;
    padding: 1px var(--fai-space-2);
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-sm);
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    background: var(--fai-surface);
    white-space: nowrap;
}
/* /Shared/FaiTooltip.razor.rz.scp.css */
/* FAI-P07-02 — FaiTooltip styles (isolated). */
.fai-tip[b-mtmgv3g15p] {
    position: relative;
    display: inline-flex;
}

.fai-tip-bubble[b-mtmgv3g15p] {
    position: absolute;
    bottom: calc(100% + 6px);
    inset-inline-start: 50%;
    transform: translateX(-50%);
    z-index: var(--fai-z-sticky);
    padding: var(--fai-space-1) var(--fai-space-2);
    background: var(--fai-ink);
    color: var(--fai-surface);
    font-size: var(--fai-text-xs);
    border-radius: var(--fai-radius-sm);
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--fai-motion-fast) var(--fai-ease);
}

.fai-tip:hover .fai-tip-bubble[b-mtmgv3g15p],
.fai-tip:focus-within .fai-tip-bubble[b-mtmgv3g15p],
.fai-tip:focus .fai-tip-bubble[b-mtmgv3g15p] {
    opacity: 1;
    visibility: visible;
}
/* /Shared/LanguageToggle.razor.rz.scp.css */
/* Apple-style segmented control (iOS UISegmentedControl): a soft gray track, no border, the
   active segment reads as a raised white pill rather than a colored/outlined state. */
.lang-toggle[b-f9k3les65t] {
    display: inline-flex;
    align-items: stretch;
    background: rgb(120 120 128 / 12%);
    border-radius: 999px;
    padding: 3px;
    gap: 2px;
}

.lang-toggle-option[b-f9k3les65t] {
    border: 0;
    background: transparent;
    border-radius: 999px;
    padding: 6px 14px;
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    color: var(--fai-color-content-muted);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.lang-toggle-ar[b-f9k3les65t] {
    font-family: var(--fai-font-display); /* IBM Plex Sans Arabic covers the Arabic subset */
}

.lang-toggle-option:disabled[b-f9k3les65t] {
    cursor: default;
}

.lang-toggle-active[b-f9k3les65t] {
    background: var(--fai-color-surface);
    color: var(--fai-color-content-1);
    box-shadow: var(--fai-shadow-xs);
}

.lang-toggle-option:not(:disabled):hover[b-f9k3les65t] {
    color: var(--fai-color-content-1);
}

.lang-toggle-option:focus-visible[b-f9k3les65t] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}
/* /Shared/OmaniGuide3D.razor.rz.scp.css */
.og3d-loading[b-jkt0g3ohbn] {
    width: 100%;
    height: 100%;
    min-block-size: 22rem;
    border-radius: var(--fai-radius-md);
    background: linear-gradient(90deg, #f2f2f2 25%, #e9e9e9 37%, #f2f2f2 63%);
    background-size: 400% 100%;
    animation: og3d-shimmer-b-jkt0g3ohbn 1.4s ease infinite;
}

@keyframes og3d-shimmer-b-jkt0g3ohbn {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

@media (prefers-reduced-motion: reduce) {
    .og3d-loading[b-jkt0g3ohbn] { animation: none; }
}
/* /Shared/Onsite/BoothWidgets.razor.rz.scp.css */
/* SH (2026-09-20) — the pinned 1-minute tools inside a booth's briefing card. Sits below the
   briefing fields, separated by a rule rather than its own card, so it reads as more of this
   booth rather than a second panel. Logical properties throughout (RTL-safe). */
.bwg[b-urypfvrgzx] {
    display: grid;
    gap: var(--fai-space-3);
    margin-block-start: var(--fai-space-3);
    padding-block-start: var(--fai-space-3);
    border-block-start: 1px solid var(--fai-border);
}

.bwg-item[b-urypfvrgzx] {
    display: grid;
    gap: var(--fai-space-1);
    padding: var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
}

.bwg-title[b-urypfvrgzx] {
    margin: 0;
    font-size: var(--fai-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fai-ink-3);
}

.bwg-headline[b-urypfvrgzx] {
    margin: 0;
    font-weight: 600;
    color: var(--fai-ink);
}

.bwg-points[b-urypfvrgzx] {
    margin: 0;
    padding-inline-start: 1.1rem;
    display: grid;
    gap: 2px;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
}

.bwg-footer[b-urypfvrgzx] {
    margin: 0;
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
}

.bwg-provenance[b-urypfvrgzx] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-1);
    margin: 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-xs);
}

.bwg-unavailable[b-urypfvrgzx] {
    margin: 0;
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
    font-style: italic;
}
/* /Shared/Onsite/BriefingOverlay.razor.rz.scp.css */
/* SH (2026-09-19) — the briefing card as an overlay ON the map, not a separate page. Full-screen
   on phone (one-handed); a large right-anchored panel on desktop, so the map stays visible and
   feels like the base underneath it. Field/card visual language matches the standalone
   /onsite/briefing page (BriefingDeck.razor.css's .brf-*) so the two never look like different
   features. */
.bfo-root[b-llvth9sckt] {
    position: fixed;
    inset: 0;
    z-index: var(--fai-z-modal, 60);
    display: flex;
    justify-content: flex-end;
}

.bfo-scrim[b-llvth9sckt] {
    position: absolute;
    inset: 0;
    background: rgb(15 15 12 / 0.4);
}

.bfo-panel[b-llvth9sckt] {
    position: relative;
    inline-size: min(30rem, 100vw);
    block-size: 100%;
    display: flex;
    flex-direction: column;
    background: var(--fai-canvas);
    box-shadow: var(--fai-elev-md);
    overflow-y: auto;
}

.bfo-head[b-llvth9sckt] {
    position: sticky;
    inset-block-start: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-4);
    border-block-end: 1px solid var(--fai-border);
    background: var(--fai-surface);
}

.bfo-close[b-llvth9sckt] {
    flex: none;
    inline-size: 36px;
    block-size: 36px;
    display: grid;
    place-items: center;
    border: none;
    border-radius: var(--fai-radius-sm);
    background: transparent;
    color: var(--fai-ink-2);
    cursor: pointer;
}

.bfo-close:hover[b-llvth9sckt],
.bfo-close:focus-visible[b-llvth9sckt] {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

.bfo-progress[b-llvth9sckt] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    font-variant-numeric: tabular-nums;
}

/* "2 / 6" is a counter, not a sentence: current stop first, total second, in every language. The
   slash between two numbers is bidi-neutral, so on the Arabic shell the algorithm reordered the
   pair and drew it as "6 / 2" (Sana, 2026-09-22). Isolating the run to LTR pins the reading order
   to the meaning; the dots beside it still mirror with the layout, as they should. */
.bfo-progress .fai-numeric[b-llvth9sckt],
.bfo-nav-count[b-llvth9sckt] {
    direction: ltr;
    unicode-bidi: isolate;
}

.bfo-dots[b-llvth9sckt] {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.bfo-dot[b-llvth9sckt] {
    inline-size: 6px;
    block-size: 6px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-border-strong);
}

.bfo-dot-active[b-llvth9sckt] {
    background: var(--fai-primary);
}

.bfo-dot-done[b-llvth9sckt] {
    background: var(--fai-success);
}

.bfo-dot-done.bfo-dot-active[b-llvth9sckt] {
    background: var(--fai-primary);
}

.bfo-head-spacer[b-llvth9sckt] {
    inline-size: 36px;
}

/* The drag surface — the card visually follows the finger/pointer, then either commits to the
   next/previous stop or springs back (CSS transition re-enables once the drag ends). */
/* Named for the gesture it used to carry; now just the card's padding. touch-action is back to
   the default because nothing intercepts horizontal drags any more (SH, 2026-09-20). */
.bfo-swipe-area[b-llvth9sckt] {
    padding: var(--fai-space-4);
}

.bfo-card[b-llvth9sckt] {
    display: grid;
    gap: var(--fai-space-4);
    padding: var(--fai-space-5);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    box-shadow: var(--fai-shadow-xs);
    transition: transform 180ms var(--fai-ease, ease);
    cursor: grab;
    user-select: none;
}

.bfo-card-head[b-llvth9sckt] {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--fai-space-3);
}

.bfo-card-name[b-llvth9sckt] {
    margin: 0;
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-xl);
    font-weight: 700;
    color: var(--fai-ink);
}

.bfo-card-meta[b-llvth9sckt] {
    margin: var(--fai-space-1) 0 0;
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
    font-variant-numeric: tabular-nums;
}

.bfo-outcome[b-llvth9sckt] {
    flex: none;
    padding: 2px var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-success-soft);
    color: var(--fai-success);
    font-size: var(--fai-text-xs);
    font-weight: 700;
}

/* SH — the at-a-glance booth profile: fit %, category, country, and a one-line description, ahead
   of the AI-generated narrative fields below. */
.bfo-booth-meta[b-llvth9sckt] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--fai-space-2);
}

.bfo-booth-tag[b-llvth9sckt] {
    padding: 2px var(--fai-space-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-2);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-xs);
    font-weight: 600;
}

.bfo-booth-desc[b-llvth9sckt] {
    margin: 0;
    padding: var(--fai-space-3);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-sm);
    font-style: italic;
    line-height: var(--fai-leading-normal);
}

.bfo-fields[b-llvth9sckt] {
    display: grid;
    gap: var(--fai-space-4);
    margin: 0;
}

.bfo-fields div[b-llvth9sckt] {
    display: grid;
    gap: 2px;
}

.bfo-fields dt[b-llvth9sckt] {
    font-size: var(--fai-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--fai-ink-3);
}

.bfo-fields dd[b-llvth9sckt] {
    margin: 0;
    font-size: var(--fai-text-body);
    color: var(--fai-ink);
    line-height: var(--fai-leading-normal);
}

.bfo-provenance[b-llvth9sckt] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.bfo-prebrief[b-llvth9sckt] {
    display: grid;
    gap: var(--fai-space-2);
    padding: var(--fai-space-4);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.bfo-prebrief p[b-llvth9sckt] {
    margin: 0;
}

/* SH — the numbered vertical stepper: talking points → outcome, so the card reads as a sequence of
   things to do at this stop, not one undifferentiated block. */
.bfo-steps[b-llvth9sckt] {
    list-style: none;
    margin: 0;
    padding: 0 var(--fai-space-4) var(--fai-space-4);
    display: grid;
}

.bfo-step[b-llvth9sckt] {
    position: relative;
    display: grid;
    grid-template-columns: 28px 1fr;
    align-items: start;
    gap: var(--fai-space-3);
    padding-block-end: var(--fai-space-4);
}

.bfo-step:not(.bfo-step-last)[b-llvth9sckt]::before {
    content: "";
    position: absolute;
    inset-inline-start: 13px;
    inset-block-start: 28px;
    inset-block-end: 0;
    inline-size: 2px;
    background: var(--fai-border);
}

.bfo-step-num[b-llvth9sckt] {
    grid-column: 1;
    inline-size: 28px;
    block-size: 28px;
    border-radius: var(--fai-radius-pill);
    background: var(--fai-primary);
    color: var(--fai-on-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: var(--fai-text-sm);
    z-index: 1;
}

.bfo-step-body[b-llvth9sckt] {
    grid-column: 2;
    display: grid;
    gap: var(--fai-space-2);
    min-inline-size: 0;
}

.bfo-step-label[b-llvth9sckt] {
    margin: 0;
    font-size: var(--fai-text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--fai-ink-3);
}

.bfo-step-actions[b-llvth9sckt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--fai-space-3);
    margin-block-end: var(--fai-space-2);
}

.bfo-step-hint[b-llvth9sckt] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.bfo-nav[b-llvth9sckt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--fai-space-2);
    padding: var(--fai-space-3) var(--fai-space-4) var(--fai-space-4);
    border-block-start: 1px solid var(--fai-border);
    margin-block-start: var(--fai-space-3);
}

.bfo-nav-count[b-llvth9sckt] {
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

/* Square off the two arrows so they read as a pair of controls rather than wide buttons with an
   icon in them. ::deep is required: FaiButton renders its own element in its own CSS scope. */
.bfo-nav[b-llvth9sckt]  button {
    min-inline-size: 40px;
    padding-inline: 0;
}

/* The chevrons are physical left/right glyphs, so mirror them when the card is read
   right-to-left; otherwise Previous points forward and Next points back. */
[dir="rtl"] .bfo-nav[b-llvth9sckt]  svg {
    transform: scaleX(-1);
}

@media (max-width: 640px) {
    .bfo-panel[b-llvth9sckt] {
        inline-size: 100vw;
    }
}
/* /Shared/Onsite/FaiVoiceCaptureButton.razor.rz.scp.css */
/* FAI-P02-01/P03-03 (M5) — Voice capture button styles (isolated). */
.fai-voice[b-40wb6t5269] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    min-inline-size: var(--fai-target-min);
    min-block-size: var(--fai-target-min);
    padding: 0 var(--fai-space-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    cursor: pointer;
    transition:
        background var(--fai-motion-fast) var(--fai-ease),
        border-color var(--fai-motion-fast) var(--fai-ease);
}

.fai-voice:hover[b-40wb6t5269] {
    background: var(--fai-surface-2);
    color: var(--fai-ink);
}

.fai-voice-listening[b-40wb6t5269],
.fai-voice-listening:hover[b-40wb6t5269] {
    border-color: var(--fai-ai);
    background: var(--fai-ai-soft);
    color: var(--fai-ai);
}

.fai-voice-listening[b-40wb6t5269]::after {
    content: "";
    position: absolute;
    inset: -4px;
    border: 2px solid var(--fai-ai);
    border-radius: var(--fai-radius-pill);
    opacity: .5;
    animation: fai-voice-pulse-b-40wb6t5269 1.4s var(--fai-ease) infinite;
}

.fai-voice-interim[b-40wb6t5269] {
    max-inline-size: 180px;
    overflow: hidden;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
    text-overflow: ellipsis;
    white-space: nowrap;
}

@keyframes fai-voice-pulse-b-40wb6t5269 {
    0% { transform: scale(1); opacity: .5; }

    70% { transform: scale(1.25); opacity: 0; }

    100% { transform: scale(1.25); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .fai-voice-listening[b-40wb6t5269]::after {
        animation: none;
    }
}
/* /Shared/Onsite/VenueMapCanvas.razor.rz.scp.css */
/* FAI-P03-01/05 + FAI-P07-02 (M5) — VenueMapCanvas styles (isolated): score-colored pins, hall
   bands, ordered route path, next-stop highlight, accessible twin list. */
.vmc[b-u8ye5vgb0g] {
    display: grid;
    gap: var(--fai-space-3);
}

.vmc-empty[b-u8ye5vgb0g] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-2);
    padding: var(--fai-space-5);
    border: 1px dashed var(--fai-border-strong);
    border-radius: var(--fai-radius-lg);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.vmc-empty p[b-u8ye5vgb0g] {
    margin: 0;
}

.vmc-svg[b-u8ye5vgb0g] {
    inline-size: 100%;
    block-size: auto;
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
}

.vmc-hall[b-u8ye5vgb0g] {
    fill: var(--fai-surface-2);
    stroke: var(--fai-border);
}

.vmc-hall-label[b-u8ye5vgb0g] {
    font-family: var(--fai-font-body);
    font-size: 12px;
    font-weight: 600;
    fill: var(--fai-ink-3);
}

.vmc-route[b-u8ye5vgb0g] {
    fill: none;
    stroke: var(--fai-primary-ink);
    stroke-width: 2.5;
    stroke-dasharray: 6 5;
    stroke-linecap: round;
    opacity: .85;
}

.vmc-dot[b-u8ye5vgb0g] {
    fill: var(--pin-score, var(--fai-ink-3));
    stroke: var(--fai-surface);
    stroke-width: 2;
}

.vmc-pin-route .vmc-dot[b-u8ye5vgb0g] {
    stroke: var(--fai-primary-strong);
    stroke-width: 2.5;
}

.vmc-order[b-u8ye5vgb0g] {
    font-family: var(--fai-font-body);
    font-size: 10px;
    font-weight: 700;
    fill: var(--fai-on-primary);
    text-anchor: middle;
}

.vmc-pin-next .vmc-dot[b-u8ye5vgb0g] {
    stroke: var(--fai-ai);
    stroke-width: 3;
}

.vmc-next-ring[b-u8ye5vgb0g] {
    fill: none;
    stroke: var(--fai-ai);
    stroke-width: 2;
    opacity: .6;
    animation: vmc-pulse-b-u8ye5vgb0g 1.6s var(--fai-ease) infinite;
}

.vmc-here-dot[b-u8ye5vgb0g] {
    fill: var(--fai-primary-strong);
    stroke: var(--fai-surface);
    stroke-width: 2;
}

.vmc-here-halo[b-u8ye5vgb0g] {
    fill: none;
    stroke: var(--fai-primary-strong);
    stroke-width: 2;
    opacity: .4;
    animation: vmc-pulse-b-u8ye5vgb0g 2s var(--fai-ease) infinite;
}

@keyframes vmc-pulse-b-u8ye5vgb0g {
    0% { transform-origin: center; transform: scale(1); opacity: .6; }

    70% { transform-origin: center; transform: scale(1.5); opacity: 0; }

    100% { transform-origin: center; transform: scale(1.5); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .vmc-next-ring[b-u8ye5vgb0g],
    .vmc-here-halo[b-u8ye5vgb0g] {
        animation: none;
    }
}

/* Twin view: the booth list that mirrors the map (keyboard/AT path, §3.8). */
.vmc-twin[b-u8ye5vgb0g] {
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-lg);
    background: var(--fai-surface);
    overflow: hidden;
}

.vmc-twin-note[b-u8ye5vgb0g] {
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-4);
    border-block-end: 1px solid var(--fai-border);
    background: var(--fai-surface-2);
    font-size: var(--fai-text-xs);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--fai-ink-3);
}

.vmc-twin ul[b-u8ye5vgb0g] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.vmc-twin li + li[b-u8ye5vgb0g] {
    border-block-start: 1px solid var(--fai-border);
}

.vmc-twin button[b-u8ye5vgb0g] {
    display: flex;
    align-items: center;
    gap: var(--fai-space-3);
    inline-size: 100%;
    min-block-size: var(--fai-density-row);
    padding: var(--fai-space-2) var(--fai-space-4);
    border: 0;
    background: transparent;
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
    text-align: start;
    cursor: pointer;
}

.vmc-twin button:hover[b-u8ye5vgb0g] {
    background: var(--fai-surface-2);
}

.vmc-twin-next button[b-u8ye5vgb0g] {
    background: var(--fai-ai-soft);
}

.vmc-twin-score[b-u8ye5vgb0g] {
    flex: none;
    min-inline-size: 3.2em;
    padding: 2px var(--fai-space-1);
    border-radius: var(--fai-radius-sm);
    background: var(--pin-score, var(--fai-surface-3));
    font-size: var(--fai-text-xs);
    font-weight: 700;
    color: var(--fai-on-primary);
    text-align: center;
}

.vmc-twin-name[b-u8ye5vgb0g] {
    flex: 1;
    font-weight: 600;
    color: var(--fai-ink);
}

.vmc-twin-loc[b-u8ye5vgb0g] {
    color: var(--fai-ink-3);
}

.vmc-twin-order[b-u8ye5vgb0g] {
    font-weight: 700;
    color: var(--fai-primary-strong);
}
/* /Shared/Onsite/VisitOutcomeSheet.razor.rz.scp.css */
/* FAI-P04-01/04 (M5) — VisitOutcomeSheet styles (isolated): one-handed 20-second form. */
.vos[b-x7smmlmuq1] {
    display: grid;
    gap: var(--fai-space-4);
}

.vos-field[b-x7smmlmuq1] {
    margin: 0;
    padding: 0;
    border: 0;
    display: grid;
    gap: var(--fai-space-2);
}

.vos-field legend[b-x7smmlmuq1] {
    padding: 0;
    font-size: var(--fai-text-sm);
    font-weight: 600;
    color: var(--fai-ink-2);
}

.vos-value[b-x7smmlmuq1] {
    font-variant-numeric: tabular-nums;
    color: var(--fai-primary-strong);
}

/* SH — "Type it in" vs. "Scan their card": a small tab pair, not a whole separate step. */
.vos-mode[b-x7smmlmuq1] {
    display: inline-flex;
    gap: var(--fai-space-1);
    padding: 2px;
    margin-block-end: var(--fai-space-2);
    border-radius: var(--fai-radius-pill);
    background: var(--fai-surface-2);
}

.vos-mode-tab[b-x7smmlmuq1] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-1);
    min-block-size: 32px;
    padding-inline: var(--fai-space-3);
    border: none;
    border-radius: var(--fai-radius-pill);
    background: transparent;
    color: var(--fai-ink-3);
    font-family: inherit;
    font-size: var(--fai-text-sm);
    font-weight: 500;
    cursor: pointer;
}

.vos-mode-tab-active[b-x7smmlmuq1] {
    background: var(--fai-surface);
    color: var(--fai-ink);
    box-shadow: var(--fai-elev-xs, 0 1px 2px rgb(0 0 0 / 0.06));
}

.vos-grid[b-x7smmlmuq1] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: var(--fai-space-2);
}

.vos-input[b-x7smmlmuq1] {
    min-block-size: var(--fai-target-min);
    padding: var(--fai-space-2) var(--fai-space-3);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-surface);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    color: var(--fai-ink);
}

.vos-input[b-x7smmlmuq1]::placeholder {
    color: var(--fai-ink-3);
}

.vos-notes[b-x7smmlmuq1] {
    resize: vertical;
}

.vos-hint[b-x7smmlmuq1] {
    margin: 0;
    font-size: var(--fai-text-xs);
    color: var(--fai-ink-3);
}

.vos-range[b-x7smmlmuq1] {
    inline-size: 100%;
    min-block-size: var(--fai-target-min);
    accent-color: var(--fai-primary);
}

.vos-switches[b-x7smmlmuq1] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fai-space-4);
}

.vos-switch[b-x7smmlmuq1] {
    display: inline-flex;
    align-items: center;
    gap: var(--fai-space-2);
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-2);
}

.vos-switch input[b-x7smmlmuq1] {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    accent-color: var(--fai-primary);
}

.vos-status[b-x7smmlmuq1] {
    margin: 0;
    padding: var(--fai-space-2) var(--fai-space-3);
    border-radius: var(--fai-radius-sm);
    background: var(--fai-success-soft);
    color: var(--fai-success);
    font-size: var(--fai-text-sm);
}

.vos-status-queued[b-x7smmlmuq1] {
    background: var(--fai-warning-soft);
    color: var(--fai-warning);
}
/* /Shared/TaxonomySelector.razor.rz.scp.css */
/* FAI-P00-02 + FAI-P07-02 — taxonomy selector list (phone-first tappable options). */
.tax-list[b-lvehw2yqsh] {
    display: flex;
    flex-direction: column;
    gap: var(--fai-space-2);
}

.tax-empty[b-lvehw2yqsh] {
    font-size: var(--fai-text-sm);
    color: var(--fai-ink-3);
}

.tax-option[b-lvehw2yqsh] {
    appearance: none;
    border: 1px solid var(--fai-border-strong);
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface);
    color: var(--fai-ink-2);
    font-family: var(--fai-font-body);
    font-size: var(--fai-text-body);
    font-weight: 500;
    text-align: start;
    padding: var(--fai-space-2) var(--fai-space-3);
    min-block-size: var(--fai-target-min);
    cursor: pointer;
    transition: background var(--fai-motion-fast) ease, border-color var(--fai-motion-fast) ease;
}

.tax-option:hover[b-lvehw2yqsh] {
    background: var(--fai-surface-2);
}

.tax-option-on[b-lvehw2yqsh] {
    background: var(--fai-primary-soft);
    border-color: var(--fai-primary-line);
    color: var(--fai-primary-strong);
    font-weight: 600;
}

.tax-option:focus-visible[b-lvehw2yqsh] {
    outline: none;
    box-shadow: var(--fai-focus-ring);
}
/* /Shared/V2FlagOff.razor.rz.scp.css */
/* FAI-P06/FAI-P07-02 — graceful flag-off state (§6.12): quiet, honest, operator-actionable. */
.v2-flagoff[b-a4nyvhpsp8] {
    display: flex;
    gap: var(--fai-space-4);
    align-items: flex-start;
}

.v2-flagoff-icon[b-a4nyvhpsp8] {
    inline-size: 3rem;
    block-size: 3rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: var(--fai-radius-md);
    background: var(--fai-surface-2);
    color: var(--fai-ink-3);
}

.v2-flagoff-title[b-a4nyvhpsp8] {
    margin: 0 0 var(--fai-space-1);
    font-family: var(--fai-font-display);
    font-size: var(--fai-text-lg);
    font-weight: 600;
    color: var(--fai-ink);
}

.v2-flagoff-text[b-a4nyvhpsp8] {
    margin: 0 0 var(--fai-space-2);
    color: var(--fai-ink-2);
    font-size: var(--fai-text-body);
}

.v2-flagoff-hint[b-a4nyvhpsp8] {
    margin: 0 0 var(--fai-space-2);
    color: var(--fai-ink-3);
    font-size: var(--fai-text-sm);
}

.v2-flagoff-key[b-a4nyvhpsp8] {
    font-family: var(--fai-font-mono);
    font-size: var(--fai-text-sm);
    background: var(--fai-surface-2);
    border: 1px solid var(--fai-border);
    border-radius: var(--fai-radius-sm);
    padding: 0 var(--fai-space-1);
    color: var(--fai-ink);
}

.v2-flagoff-link[b-a4nyvhpsp8] {
    color: var(--fai-primary-ink);
    font-weight: 600;
    font-size: var(--fai-text-sm);
}

.v2-flagoff-link:hover[b-a4nyvhpsp8],
.v2-flagoff-link:focus-visible[b-a4nyvhpsp8] {
    color: var(--fai-primary-strong);
}
