@import"https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";/* Andora / GCP Design System tokens — sourced from Figma API metadata */
:root {
  /* Left panel gradient */
  --gradient-left-panel: linear-gradient(154.62deg, #1E1A8E 15.1%, #6B4FE0 57%, #9B7AE8 101.4%);

  /* Colours */
  --color-primary: #4353FF;
  --color-primary-dark: #020631;
  --color-primary-link: #0055D4;
  --color-text-label: #47506A;
  --color-text-placeholder: #9CA5BE;
  --color-text-helper: #535F7F;
  --color-text-white: #FFFFFF;
  --color-border-default: #E5E7EF;
  --color-border-card: #C4CBDD;
  --color-surface-card: #FFFFFF;
  --color-surface-page: #F9F9FC;
  --color-required: #D60000;
  --color-error: #DC2626;
  --color-error-bg: #FEE2E2;
  --color-text-large-text: #68769C;

  /* Semantic backgrounds */
  --color-semantic-bg-orange: #FFF3EB;
  --color-semantic-bg-purple: #F5EEFB;
  --color-semantic-bg-blue: #E9F2FF;
  --color-semantic-bg-green: #DCFFF1;
  /*
   * ⚠ Red and grey were missing here while support-ui's tokens.css defined them, so every
   * customer-side badge that wrote `var(--color-semantic-bg-red, #FFECEB)` was silently
   * rendering the fallback. The two modules agreed only by luck — the moment a DS value moved,
   * only the Support Desk would have followed. Defined here so one change reaches both.
   */
  --color-semantic-bg-red: #FFECEB;
  --color-semantic-bg-grey: #F5F5F5;

  /* Semantic text / element colours */
  --color-semantic-text-green: #008516;
  --color-semantic-text-orange: #B95100;
  --color-semantic-text-red: #B30000;
  --color-semantic-element-green: #008516;
  --color-semantic-element-orange: #EC6E0E;
  --color-semantic-element-blue: #0055D4;
  --color-semantic-element-red: #D60000;
  --color-semantic-element-grey: #9CA5BE;

  /* Indicator accents */
  --color-indicator-accent-11: #00C882;
  --color-indicator-accent-7: #0075FF;

  /* Typography */
  --font-family-body: 'Poppins', sans-serif;
  --font-family-header: 'Poppins', sans-serif;
  --font-family-alt: 'Inter', sans-serif;

  /* Font sizes */
  --font-size-12: 12px;
  --font-size-14: 14px;
  --font-size-16: 16px;
  --font-size-20: 20px;
  --font-size-24: 24px;
  --font-size-48: 48px;

  /* Line heights */
  --line-height-xs: 18px;
  --line-height-s: 20px;
  --line-height-sm: 24px;
  --line-height-m: 30px;
  --line-height-3xl: 54px;

  /* Spacing */
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 44px;

  /* Border radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-pill: 32px;

  /* ── Card elevation ────────────────────────────────────────────────────────
     Catalog tiles (app cards, suite cards) previously each hardcoded a
     two-layer shadow — `0 2px 6px /.10` + `0 10px 28px /.12` — in three
     separate scoped <style> blocks. At that weight the tiles read as floating
     panels rather than cards, and because the value was written out three
     times the marketplace and the onboarding catalog could drift apart.
     Tokenised so the elevation is defined once and every surface agrees.

     Deliberately low-contrast: one tight shadow for the edge, one wide and
     very faint for depth. A card wants to sit ON the page, not hover above it. */
  --shadow-card: 0 1px 2px rgba(2, 6, 49, 0.04), 0 2px 8px rgba(2, 6, 49, 0.05);
  --shadow-card-hover: 0 2px 4px rgba(2, 6, 49, 0.06), 0 8px 20px rgba(2, 6, 49, 0.08);

  /* ── Glassy scrolling tab bar ──────────────────────────────────────────────
     Shared by the onboarding catalog and the in-app marketplace so the two tab
     rows are the same component in everything but markup. */
  --glass-surface: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(244, 246, 252, 0.62));
  --glass-border: rgba(2, 6, 49, 0.06);
  --glass-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  --glass-blur: saturate(150%) blur(12px);
  --scroll-thumb: rgba(2, 6, 49, 0.16);
  --scroll-thumb-hover: rgba(2, 6, 49, 0.28);
}
/*
 * Support Centre — shared styles.
 *
 * ⚠ Written ONCE here rather than per screen, on the Support Desk's precedent. The desk's
 * `desk.css` exists because eight admin views each wrote their own table CSS and eight of
 * them clip their rightmost column (DEF-106) — a per-screen copy is a per-screen chance to
 * reintroduce a bug that was already fixed. The conversation, the panel and the ticket
 * rows appear on several components here; their rules live in one file.
 *
 * Everything below uses design-system tokens. No literal hexes: the customer's ticket and
 * the engineer's ticket are the same record in the same state, and the customer side
 * previously painted its status pills in Tailwind while the list beside it used DS
 * semantics — so a ticket changed colour when you clicked it.
 */

/* ── Box model ──────────────────────────────────────────────────────────────── */

/*
 * ⚠ THE PLATFORM HAS NO GLOBAL `box-sizing` RESET — only `.sc-input` sets it, one rule, added
 * for one field. Everything else in this file inherits the browser default of `content-box`.
 *
 * That is what produced the horizontal scrollbar on the Attachments tab (owner, 2026-08-12:
 * "unnecessarily horizontal scroll is coming"). `.sc-row` is `width: 100%` plus `12px 14px` of
 * padding and a 1px border, which under `content-box` measures **30px wider than its container**
 * — so any list of `.sc-row`s overflows its column by exactly that, every time, on every screen.
 * It was never about the filenames.
 *
 * Scoped to the Support Centre's own surfaces rather than declared globally: a `*` reset dropped
 * into a shared stylesheet in a module-federation host re-lays-out every remote that renders
 * inside it, which is a much larger blast radius than the bug being fixed.
 */
.sc-page,
.sc-page *,
.sc-page *::before,
.sc-page *::after {
  box-sizing: border-box;
}

/* ── Page frame ─────────────────────────────────────────────────────────────── */

/*
 * ⚠ NO max-width (owner, 12 Aug 2026: "I don't know why we are not showing all this open
 * tickets in the full screen").
 *
 * This was capped at 1080px, and the reading screens at 860px, which on a 1450px content
 * pane left a third of the window empty beside a ticket list that had been squeezed into
 * three fields per row. The Support Desk's `.desk-page` has never had a cap — it is a flex
 * column that fills what it is given — and the two screens sat side by side looked like
 * they came from different products.
 *
 * A cap still applies where a cap is the right answer: PROSE. `--reading` is for an article
 * body, where a 1400px line length is genuinely worse. A list is not prose.
 */
/*
 * ⚠ NO `flex: 1` here, however much it looks like the desk's `.desk-page` should have it.
 *
 * The desk's page IS a flex item that fills a viewport-height shell, because its queue table
 * scrolls inside itself. The platform's `.content` is `display: flex; flex-direction: column;
 * overflow: auto` — it scrolls the WHOLE page. Copying `flex: 1; min-height: 0` across pinned
 * this element to the viewport height, which squashed the raise-a-ticket card from 803px to
 * 592px, and `.sc-card--flush`'s `overflow` then clipped the form mid-row: Description was
 * the last field anybody could see, and "What happens next" rendered on top of it.
 *
 * The page grows to its content; `.content` scrolls.
 */
.sc-page {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px 28px 36px;
  min-width: 0;
}

/* Kept as an explicit opt-in for article bodies only. Everything else fills the pane. */
.sc-page--reading { max-width: 78ch; }

/*
 * ⚠ THE DESK'S SHELL, and an OPT-IN rather than the default (owner, 2026-08-12: "I need /help
 * and /help/tickets in the full screen like we have in support desk").
 *
 * It pairs with `.content--fill` in AppShell: the page stops scrolling and the table or thread
 * scrolls inside itself, so the head and the filters stay put and the sticky column headers pin
 * to a box that actually scrolls.
 *
 * ⚠ NEVER put this on `.sc-page` itself. An earlier pass applied the desk's
 * `flex: 1; min-height: 0` to every support page and pinned the raise-a-ticket form to the
 * viewport — it squashed from 803px to 592px and `overflow` clipped it mid-row, with Description
 * the last field visible. Long forms and reading pages must keep scrolling the page (§20.7).
 */
.sc-page--fill {
  flex: 1;
  min-height: 0;
  /* The scrolling happens in a child, so the page's own bottom padding would be dead space
     below the scroller rather than under the content. */
  padding-bottom: 0;
}

.sc-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

/*
 * 20px / 600 — the desk's `.page-title` exactly. It was 700 here and 600 there, which is
 * visible when the two are screenshotted into one ticket.
 */
.sc-title {
  font-size: var(--font-size-20, 20px);
  line-height: var(--line-height-m, 30px);
  font-weight: 600;
  color: var(--color-primary-dark);
  margin: 0;
}

.sc-sub {
  font-size: 12px;
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-helper);
  margin: 2px 0 0;
  max-width: 68ch;
}

/* The page's own actions, top right — where the desk puts New ticket, Cancel and Create. */
.sc-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ── Buttons ────────────────────────────────────────────────────────────────── */

/*
 * ⚠ THE DEFAULT IS NEUTRAL, and `--primary` is the modifier — inverted on 12 Aug 2026 to
 * match the desk's `.btn`.
 *
 * It was the other way round: a bare `.sc-btn` painted itself #4353FF, so every screen that
 * offered more than one thing to do offered several equally-loud blue buttons, and the one
 * action that mattered had nothing left to distinguish it. The desk has one filled button
 * per screen and it is always the thing you came to do.
 */
.sc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;               /* WCAG 2.2 AA target size, same as the desk's .btn */
  padding: 0 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-card);
  background: var(--color-surface-card);
  color: var(--color-primary-dark);
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.sc-btn:hover:not(:disabled) { background: var(--color-surface-page); }
.sc-btn:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.sc-btn:disabled { opacity: 0.55; cursor: not-allowed; }

.sc-btn--primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-white);
}
.sc-btn--primary:hover:not(:disabled) { background: #3544DB; border-color: #3544DB; }

/* Retained as an alias so nothing that still says --ghost renders as a primary by accident. */
.sc-btn--ghost { border-color: transparent; background: transparent; }
.sc-btn--ghost:hover:not(:disabled) { background: var(--color-semantic-bg-grey); }

.sc-btn--sm { min-height: 28px; padding: 0 10px; font-size: 11.5px; }

.sc-btn--danger {
  color: var(--color-semantic-text-red);
  border-color: var(--color-semantic-element-red);
}
.sc-btn--danger:hover:not(:disabled) { background: var(--color-semantic-bg-red); }

.sc-link {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-size: 12.5px;
  color: var(--color-semantic-element-blue);
  cursor: pointer;
}
.sc-link:hover { text-decoration: underline; }
.sc-link--danger { color: var(--color-semantic-text-red); }

/* ── Cards, rows, empty states ──────────────────────────────────────────────── */

.sc-card {
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
}

.sc-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  text-align: left;
  width: 100%;
  font-family: inherit;
  cursor: pointer;
}

.sc-row:hover { border-color: var(--color-border-card); background: var(--color-surface-page); }
.sc-row--static { cursor: default; }
.sc-row--static:hover { border-color: var(--color-border-default); background: var(--color-surface-card); }

.sc-row-main { flex: 1; min-width: 0; }

.sc-row-title {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark);
}

.sc-row-meta {
  display: block;
  font-size: 11.5px;
  color: var(--color-text-helper);
  margin-top: 2px;
}

.sc-list { display: flex; flex-direction: column; gap: 8px; }

.sc-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  padding: 36px 20px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  background: var(--color-surface-card);
}

.sc-empty-title { font-size: 14px; font-weight: 600; color: var(--color-primary-dark); }
.sc-empty-sub { font-size: 12.5px; color: var(--color-text-label); margin: 0 0 8px; max-width: 42ch; }

.sc-error { font-size: 12.5px; color: var(--color-semantic-text-red); margin: 0; }

/* ── Badges — one colour system, shared with the desk ───────────────────────── */

.sc-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}

.sc-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* Real statuses. Orange is reserved for the one state where nothing moves until the
   customer acts — colour carries the urgency the words do not. */
/*
 * ⚠ IN PROGRESS IS NO LONGER THE SAME BLUE AS OPEN (owner, 2026-08-13: "in both the page ticket list I
 * need same colour scheme for state and type").
 *
 * The two states were identical here, and on the desk's queue the whole OPEN class was one ORANGE pill —
 * so the same ticket was blue on one screen and orange on the other, and neither screen separated
 * "nobody has started" from "somebody is working on it". Both sides now use six tones for the six agreed
 * statuses, and `--in-progress` takes the product accent: it is the state a customer most wants to see.
 */
.sc-badge--open { background: var(--color-semantic-bg-blue); color: var(--color-semantic-element-blue); }
/* ⚠ `--color-primary-lightest` DOES NOT EXIST in this module's tokens — only `--color-primary`,
   `--color-primary-dark` and `--color-primary-link`. Without the fallback both this and `--primary` below
   rendered with a TRANSPARENT background: the text colour resolved and the ground did not, so the badge
   was coloured text on the row's own white. Caught by probing the computed style, not by reading the CSS.
   #ECEEFF is the desk's `--color-primary-lightest`, so the two sides still match to the hex. */
.sc-badge--in-progress { background: var(--color-primary-lightest, #ECEEFF); color: var(--color-primary); }
.sc-badge--waiting-you { background: var(--color-semantic-bg-orange); color: var(--color-semantic-text-orange); }
.sc-badge--on-hold { background: var(--color-semantic-bg-grey); color: var(--color-text-large-text); }
.sc-badge--resolved { background: var(--color-semantic-bg-green); color: var(--color-semantic-text-green); }
.sc-badge--closed { background: var(--color-semantic-bg-grey); color: var(--color-text-large-text); }

.sc-badge--critical { background: var(--color-semantic-bg-red); color: var(--color-semantic-text-red); }
.sc-badge--high { background: var(--color-semantic-bg-orange); color: var(--color-semantic-text-orange); }
.sc-badge--normal { background: var(--color-semantic-bg-blue); color: var(--color-semantic-element-blue); }
.sc-badge--low { background: var(--color-semantic-bg-grey); color: var(--color-text-large-text); }

/*
 * ⚠ Added so a FEATURE_REQUEST can carry the same tone it does on the desk, where `badge--primary` has
 * existed all along. Without it the type map fell back to blue on this side and indigo on the desk, for
 * one ticket type.
 */
.sc-badge--primary { background: var(--color-primary-lightest, #ECEEFF); color: var(--color-primary); }

/* ── Table — the desk's shell, with the DEF-106 fix it encodes ──────────────── */

/*
 * Lifted from desk.css rather than written fresh, deliberately.
 *
 * `overflow: clip` and NOT `hidden`: `hidden` on the outer shell makes it a scroll container
 * that swallows the inner scroller's overflow, so the rightmost column is cut off with no
 * scrollbar anywhere on the page. That is DEF-106, live across eight admin views, and every
 * one of them got there by writing its own table CSS.
 */
.sc-table-shell {
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  background: var(--color-surface-card);
  overflow: clip;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* The single element that scrolls, on BOTH axes. */
.sc-table-scroll { overflow: auto; min-height: 0; flex: 1; }

.sc-table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  /*
   * ⚠ 820 → 680, AND `.sc-cell-flex` BELOW IS WHAT MAKES THAT SAFE (owner, 2026-08-14: "make sure that in
   * customer side support table also it behaves the same way… as more tickets come in a scroll bar should
   * come, and the table should fix to the roof").
   *
   * The old floor was not arbitrary — its comment was right that removing a minimum crushes every column
   * rather than engaging the scroller. So the minimum is not simply lowered: the ONE flexible column gets
   * `max-width: 0` + ellipsis, the fixed columns take their natural width, and there is nothing left to
   * overflow. Mirrors the desk's `.desk-table` change in the same commit, deliberately — the two stylesheets
   * cannot be shared across the module boundary (§2.2), so if one moves, move both.
   *
   * ⚠ 680 IS STILL A FLOOR. Below it the horizontal scroller comes back rather than seven columns collapsing
   * into slivers. "Vertical only" is the normal case, not a guarantee at any width.
   */
  min-width: 680px;
  font-size: var(--font-size-12, 12px);
}

/*
 * The one column that yields its width so the others fit.
 *
 * ⚠ `max-width: 0` with `width: 100%` is the mechanism, not a typo: the cell asks for everything and yields
 * everything, which finally gives `text-overflow` a boundary. Without `max-width`, an `overflow: hidden` cell
 * in an auto-layout table just grows and the ellipsis never fires.
 */
.sc-table .sc-cell-flex {
  width: 100%;
  max-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sc-table th,
.sc-table td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--color-border-default);
  vertical-align: middle;
  white-space: nowrap;
}

/* Sticky is set per CELL — a sticky <tr> is ignored outright. */
.sc-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--color-surface-page);
  font-weight: 600;
  color: var(--color-text-label);
  font-size: 11.5px;
}

/* Frozen identity column — the one column that says which row you are on. */
.sc-table th.sc-col-id,
.sc-table td.sc-col-id {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--color-surface-card);
}
.sc-table thead th.sc-col-id { z-index: 3; background: var(--color-surface-page); }

.sc-table tbody tr { cursor: pointer; }
.sc-table tbody tr:hover td,
.sc-table tbody tr:hover td.sc-col-id { background: var(--color-semantic-bg-grey); }
.sc-table tbody tr:last-child td { border-bottom: 0; }
.sc-table tbody tr:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }

.sc-cell-strong { font-weight: 500; color: var(--color-primary-dark); }
.sc-cell-muted { color: var(--color-text-helper); }
.sc-cell-wrap { white-space: normal; min-width: 240px; max-width: 460px; }
.sc-mono { font-family: var(--font-family-alt, 'Inter', sans-serif); font-variant-numeric: tabular-nums; }

.sc-table-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border-top: 1px solid var(--color-border-default);
  font-size: 11.5px;
  color: var(--color-text-helper);
  background: var(--color-surface-card);
}

/* A header that reorders the list. Quiet until you look at it. */
.sc-sort {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.sc-sort:hover { color: var(--color-primary); }
.sc-sort:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.sc-sort-mark { font-size: 9px; opacity: 0.55; }

/* ── State blocks — the desk's `.state-block`, one shape for all four ───────── */

.sc-state {
  padding: 40px 24px;
  text-align: center;
  color: var(--color-text-helper);
  font-size: var(--font-size-12, 12px);
  margin: 0;
}

.sc-state strong {
  display: block;
  font-size: var(--font-size-14, 14px);
  color: var(--color-primary-dark);
  margin-bottom: 4px;
  font-weight: 600;
}

.sc-state--error { color: var(--color-semantic-text-red); }

/* ── Callout — a stated caveat, never a silent one ──────────────────────────── */

.sc-callout {
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-default);
  border-left: 3px solid var(--color-primary);
  border-radius: var(--radius-md);
  padding: 11px 14px;
  font-size: 11.5px;
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-helper);
}
.sc-callout--good { border-left-color: var(--color-semantic-element-green); }
.sc-callout strong { color: var(--color-primary-dark); }

/* ── Key/value record — the desk's `.info-table` ────────────────────────────── */

/*
 * A real <table> rather than a <dl>: a fixed label column is what gives the eye a rail to
 * run down, and a definition list cannot hold one without absolute positioning. The side
 * panel used a <dl> and read as loose text beside the desk's version of the same facts.
 */
.sc-info { width: 100%; border-collapse: collapse; }

.sc-info th {
  width: 96px;
  padding: 5px 8px 5px 0;
  text-align: left;
  font-size: 11px;
  font-weight: 400;
  color: var(--color-text-helper);
  vertical-align: top;
}

.sc-info td {
  padding: 5px 0;
  font-size: var(--font-size-12, 12px);
  color: var(--color-primary-dark);
  vertical-align: top;
  /* Long values wrap inside the cell rather than widening the table past the panel and
     inventing a horizontal scrollbar. */
  overflow-wrap: anywhere;
}

.sc-info tr + tr th,
.sc-info tr + tr td { border-top: 1px solid var(--color-border-subtle, #F0F1F6); }

.sc-info-muted { color: var(--color-text-placeholder); }

/* ── Chips ──────────────────────────────────────────────────────────────────── */

/* 28px, tokenised, aria-pressed — the desk's `.chip` metrics exactly. */
.sc-chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }

.sc-chip {
  height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 12px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-border-card);
  background: var(--color-surface-card);
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  color: var(--color-text-label);
  cursor: pointer;
  white-space: nowrap;
}

.sc-chip:hover { background: var(--color-semantic-bg-grey); }
.sc-chip:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }

.sc-chip.active,
.sc-chip[aria-pressed='true'] {
  background: var(--color-primary);
  border-color: transparent;
  color: var(--color-text-white);
}

.sc-chip-count {
  font-family: var(--font-family-alt, 'Inter', sans-serif);
  font-variant-numeric: tabular-nums;
  font-size: 10px;
  opacity: 0.85;
}

/* ── Tabs ───────────────────────────────────────────────────────────────────── */

.sc-tabs {
  display: flex;
  gap: 2px;
  border-bottom: 1.5px solid var(--color-border-default);
  flex-wrap: wrap;
}

.sc-tab {
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text-label);
  padding: 9px 15px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1.5px;
  white-space: nowrap;
}

.sc-tab:hover { color: var(--color-primary-dark); }
.sc-tab.active { color: var(--color-primary); border-bottom-color: var(--color-primary); font-weight: 600; }
.sc-tab-count { font-size: 11px; color: var(--color-text-placeholder); margin-left: 5px; }
.sc-tab.active .sc-tab-count { color: var(--color-primary); }

/* ── Search ─────────────────────────────────────────────────────────────────── */

.sc-search {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-md);
  padding: 0 14px;
  min-height: 44px;
  color: var(--color-text-placeholder);
}

.sc-search:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(67, 83, 255, 0.14);
}

.sc-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: none;
  background: none;
  font: inherit;
  font-size: 13.5px;
  color: var(--color-primary-dark);
}

/* ── Form rows — the desk's `.form-row` ─────────────────────────────────────── */

/*
 * D-14 / §17.1 — label on the left, control on the right. The desk adopted THIS layout from
 * HelpTicket.vue so that an engineer and a customer look at the same shape of form; it now
 * comes back the other way with the desk's measurements, because the two had drifted (200px
 * vs 190px label column, and a control capped at 560px against a full-width one).
 */
.sc-form-row {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 14px 20px;
  align-items: start;
  padding: 12px 18px;
  border-bottom: 1px solid var(--color-border-default);
}
.sc-form-row:last-child { border-bottom: 0; }

.sc-field-label {
  padding-top: 9px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--font-size-12, 12px);
  font-weight: 500;
  color: var(--color-text-label);
}

/* ⚠ `font-style: normal` because the raise form uses an `<i>` for this — the element is chosen for
   brevity in a label, not for emphasis, and italic red punctuation reads as a typo. */
.sc-field-label .sc-req { color: var(--color-required, #D60000); margin-left: 2px; font-style: normal; }
.sc-field-sub { font-weight: 400; font-size: 11.5px; color: var(--color-text-helper); line-height: var(--line-height-xs, 18px); }

.sc-input,
.sc-select,
.sc-textarea {
  width: 100%;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  color: var(--color-primary-dark);
  box-sizing: border-box;
}

.sc-textarea { min-height: 110px; resize: vertical; line-height: var(--line-height-s, 20px); }

.sc-input::placeholder,
.sc-textarea::placeholder { color: var(--color-text-placeholder); }

.sc-input:focus,
.sc-select:focus,
.sc-textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(67, 83, 255, 0.14);
}

/*
 * ⚠ `select` IS IN HERE NOW. The rule covered input and textarea only, so a required select could be
 * flagged `aria-invalid` for a screen reader and look completely normal on screen — which is the half of
 * "this field is required" that a sighted customer relies on. The raise form has three required selects.
 */
.sc-input[aria-invalid='true'],
.sc-select[aria-invalid='true'],
.sc-textarea[aria-invalid='true'] {
  border-color: var(--color-semantic-element-red);
  /* A second pixel of red, because a 1px border change on a select is easy to miss beside its arrow. */
  box-shadow: 0 0 0 1px var(--color-semantic-element-red);
}

.sc-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-border-default);
}

.sc-card-title { margin: 0; font-size: var(--font-size-14, 14px); font-weight: 600; color: var(--color-primary-dark); }
.sc-card-hint { font-size: var(--font-size-12, 12px); color: var(--color-text-helper); }
.sc-card--flush { padding: 0; overflow: hidden; }

@media (max-width: 720px) {
  .sc-form-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .sc-field-label { padding-top: 0; }
}

/* ── Screen-reader only ─────────────────────────────────────────────────────── */

.sc-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

@media (max-width: 700px) {
  .sc-page { padding: 20px 16px 32px; }
}

*,*:before,*:after{box-sizing:border-box}.app-widget[data-v-6ea4b843]{display:flex;justify-content:space-between;align-items:stretch;background:#fff;box-shadow:3px 3px 14px -4px #0006;border-radius:20px;text-decoration:none;color:#232323;transition:transform .15s ease;width:190px;height:90px;box-sizing:border-box}.app-widget[data-v-6ea4b843]:hover{transform:translateY(-2px)}.app-widget-left[data-v-6ea4b843]{padding:16px;display:flex;align-items:center;gap:10px;box-sizing:border-box;flex:1;min-width:0}.app-widget-icon[data-v-6ea4b843]{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#e0e0e0;flex-shrink:0}.app-widget-placeholder[data-v-6ea4b843]{width:42px;height:42px;border-radius:50%;background:#d3d3d3;flex-shrink:0;min-width:42px}.app-widget-name[data-v-6ea4b843]{font-family:Poppins,sans-serif;font-weight:500;font-size:16px;line-height:1.2;letter-spacing:-.01em;word-wrap:break-word;overflow-wrap:break-word;min-width:0;flex:1;max-height:58px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.app-widget-image[data-v-6ea4b843]{width:39%;height:auto;border-radius:0 20px 20px 0;object-fit:cover;flex-shrink:0}.name-wrapper[data-v-6ea4b843]{display:flex;align-items:center;max-width:calc(100% - 52px);height:100%;flex:1}.breadcrumb-container[data-v-ac68535b]{font-family:Inter,sans-serif;font-size:14px;display:flex;align-items:center}.breadcrumb-list[data-v-ac68535b]{list-style:none;display:flex;flex-wrap:wrap;padding:0;margin:0}.breadcrumb-item[data-v-ac68535b]{display:flex;align-items:center;position:relative}.breadcrumb-separator[data-v-ac68535b]{color:#9ca5be;margin:0 8px}.breadcrumb-link[data-v-ac68535b]{color:#4353ff;text-decoration:none;font-family:Poppins,sans-serif}.breadcrumb-link[data-v-ac68535b]:hover{color:#3745db;text-decoration:underline}.breadcrumb-current[data-v-ac68535b]{color:#020631;font-weight:500;font-family:Poppins,sans-serif}.dropdown[data-v-ac68535b]{position:relative}.dropdown-btn[data-v-ac68535b]{background:none;border:none;color:#4353ff;cursor:pointer;font-size:16px;padding:0 4px}.dropdown-menu[data-v-ac68535b]{display:none;position:absolute;top:24px;left:0;background:#fff;border:1px solid #ccc;min-width:140px;padding:4px 0;z-index:10;border-radius:6px;box-shadow:0 2px 8px #0000001a}.dropdown:hover .dropdown-menu[data-v-ac68535b]{display:block}.dropdown-menu li[data-v-ac68535b]{padding:6px 12px}.dropdown-menu li[data-v-ac68535b]:hover{background-color:#f0f0f0}.btn-container[data-v-5936b8cb]{position:relative;display:flex;align-items:center;justify-content:center;border-radius:8px;border:none;font-weight:600;text-decoration:none;color:#fff;font-family:Poppins,sans-serif}.emphasized[data-v-5936b8cb]{background:#4353ff}.neutral[data-v-5936b8cb]{background:#9ca5be}.transparent[data-v-5936b8cb]{background:none;color:#4353ff}.button-arrow-large[data-v-5936b8cb]{height:24px;width:24px;margin-left:8px}.button-arrow-medium[data-v-5936b8cb]{width:20px;height:20px;margin-left:6px}.button-arrow-small[data-v-5936b8cb]{width:16px;height:16px;margin-left:4px}.btn-large[data-v-5936b8cb]{padding:8px 12px;font-size:20px}.btn-medium[data-v-5936b8cb]{padding:8px 12px;font-size:16px}.btn-small[data-v-5936b8cb]{padding:8px 12px;font-size:14px}button[data-tooltip][data-v-5936b8cb]{position:relative}button[data-tooltip][data-v-5936b8cb]:after{content:attr(data-tooltip);position:absolute;bottom:120%;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease-in-out,transform .2s ease-in-out;z-index:10}button[data-tooltip][data-v-5936b8cb]:hover:after{opacity:1;transform:translate(-50%) translateY(-2px)}.cpt-card[data-v-57458a27]{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid #E5E7EF;border-radius:12px;background:#fff;box-shadow:0 2px 6px #0206311a,0 10px 28px #0206311f;transition:border-color .15s,box-shadow .15s,transform .15s;width:100%;max-width:400px;box-sizing:border-box}.cpt-card[data-v-57458a27]:hover{box-shadow:0 6px 14px #0206311f,0 18px 44px #0206312e;transform:translateY(-1px)}.cpt-card--cs[data-v-57458a27]{background:#fff7f2;border-color:#f9c9a8}.cpt-card--default[data-v-57458a27]{background:#fbfaff;border-color:#ddd6fe}.cpt-top[data-v-57458a27]{display:flex;align-items:center;gap:10px}.cpt-icon[data-v-57458a27]{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.cpt-icon--img[data-v-57458a27]{background:#eceeff}.cpt-icon-img[data-v-57458a27]{width:72%;height:72%;object-fit:contain;display:block}.cpt-icon-initials[data-v-57458a27]{font-family:inherit;font-weight:700;font-size:13px;color:#fff;line-height:1;-webkit-user-select:none;user-select:none;letter-spacing:-.3px;text-align:center}.cpt-icon-initials--split[data-v-57458a27]{display:flex;flex-direction:column;align-items:center;font-size:11px;line-height:1.25}.cpt-title-block[data-v-57458a27]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cpt-name-row[data-v-57458a27]{display:flex;align-items:center;gap:5px;min-width:0}.cpt-name-wrap[data-v-57458a27]{flex:1;min-width:0;display:flex;align-items:center;gap:4px}.cpt-name[data-v-57458a27]{font-weight:700;font-size:14px;color:#020631;margin:0;line-height:18px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpt-detail-icon[data-v-57458a27]{flex:0 0 auto;cursor:pointer;font-size:12px;line-height:1;background:none;border:none;padding:0;color:#9ca5be;transition:color .15s}.cpt-detail-icon[data-v-57458a27]:hover{color:#4353ff}.cpt-detail-icon[data-v-57458a27]:focus-visible{outline:2px solid #4353FF;outline-offset:2px;border-radius:3px}.cpt-inactive-pill[data-v-57458a27]{font-size:10px;font-weight:600;padding:2px 7px;border-radius:20px;background:#fee2e2;color:#991b1b;white-space:nowrap}.cpt-sub[data-v-57458a27]{font-size:12px;color:#47506a;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpt-star-btn[data-v-57458a27]{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:2px;border-radius:4px;transition:background .12s}.cpt-star-btn[data-v-57458a27]:hover{background:#f0f1f7}.cpt-ribbon[data-v-57458a27]{position:absolute;top:13px;right:-22px;width:95px;background:linear-gradient(135deg,#f97316,#e84040);color:#fff;font-size:9px;font-weight:800;letter-spacing:.6px;text-align:center;text-transform:uppercase;padding:4px 0;transform:rotate(45deg);box-shadow:0 3px 8px #e8404059;z-index:1;pointer-events:none}.cpt-ribbon--default[data-v-57458a27]{background:linear-gradient(135deg,#7c3aed,#5b21b6);box-shadow:0 3px 8px #5b21b659}.cpt-body[data-v-57458a27]{min-width:0;display:flex;flex-direction:column;gap:2px}.cpt-footer[data-v-57458a27]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}.cpt-price-area[data-v-57458a27]{display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:6px;min-width:0}.chart-container[data-v-6c0f1bde]{position:relative}.tooltip[data-v-6c0f1bde]{position:absolute;background:#fff;padding:8px 10px;border-radius:8px;box-shadow:0 2px 6px #0003;pointer-events:none;text-align:left;width:110px;display:flex;flex-direction:column;gap:4px}.tooltip-line[data-v-6c0f1bde]{display:flex;gap:6px;align-items:center}.tooltip-line .label[data-v-6c0f1bde]{font-weight:700;color:#222}.tooltip-line .value[data-v-6c0f1bde]{color:#555}.axis-value[data-v-6c0f1bde]{font-size:12px;font-family:Poppins,sans-serif}.chart-card[data-v-7651db23]{font-family:Poppins,sans-serif;max-width:100%;border-radius:16px;border:1px solid #E5E7EF;padding:16px 20px;width:100%;background:#fff;box-shadow:2px 4px 8px #68769c14}.canvas-wrapper[data-v-7651db23]{border-radius:10px;background:#fff;display:flex;justify-content:center}.chart-header[data-v-7651db23]{height:36px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.toolbar-buttons[data-v-7651db23]{display:flex;flex-direction:row;margin-left:4px;padding:4px 8px;cursor:pointer;gap:24px}.toolbar-zoomsBtn[data-v-7651db23]{display:flex;flex-direction:row;width:222px;height:36px;border-radius:6px;border:1px solid #C4CBDD;padding:6px;gap:24px}.icon-btn[data-v-7651db23]{cursor:pointer}.resetClass[data-v-7651db23]{padding:6px 12px;border-radius:8px;font-weight:600;background-color:#fff;color:#4353ff}.combobox[data-v-cf8c1a54]{position:relative;font-family:Poppins,sans-serif;font-size:12px;font-weight:400;color:#020631;outline:none;width:100%}.combobox-input-row[data-v-cf8c1a54]{display:flex;align-items:center;min-height:40px;border:1px solid #9CA5BE;border-radius:4px;background:#fff;padding:0 8px;cursor:text;box-sizing:border-box;transition:border-color .15s ease}.combobox-input-row[data-v-cf8c1a54]:focus-within{border-color:#020631}.combobox-input-row[data-v-cf8c1a54]:not(.open){cursor:pointer}.combobox-input[data-v-cf8c1a54]{flex:1;border:none;outline:none;background:transparent;font-family:Poppins,sans-serif;font-size:12px;font-weight:400;color:#020631;line-height:18px;min-width:0}.combobox-input[data-v-cf8c1a54]::placeholder{color:#9ca5be}.combobox-input--closed[data-v-cf8c1a54]{cursor:pointer;caret-color:transparent;text-overflow:ellipsis}.combobox-input[data-v-cf8c1a54]:disabled{cursor:not-allowed;color:#000;-webkit-text-fill-color:#000000}.combobox-arrow[data-v-cf8c1a54]{display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .2s ease;margin-left:4px}.combobox-arrow.open[data-v-cf8c1a54]{transform:rotate(180deg)}.combobox-list[data-v-cf8c1a54]{list-style:none;padding:6px 0;border:1px solid #d0d5e8;border-radius:6px;background:#fff;overflow-y:auto;z-index:8000;box-shadow:0 4px 12px #0206311a;box-sizing:border-box}.combobox-item[data-v-cf8c1a54]{padding:10px 12px;min-height:40px;display:flex;align-items:center;font-family:Poppins,sans-serif;font-size:12px;font-weight:400;color:#020631;cursor:pointer;box-sizing:border-box;transition:background .1s ease}.combobox-item[data-v-cf8c1a54]:hover,.combobox-item.active[data-v-cf8c1a54],.combobox-item.highlighted[data-v-cf8c1a54]{background:#f2f4ff}.combobox-item.active[data-v-cf8c1a54]{color:#4353ff;font-weight:500}.combobox-item-label[data-v-cf8c1a54]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combobox-item-check[data-v-cf8c1a54]{flex:none;margin-left:8px;color:#4353ff}.combobox-empty[data-v-cf8c1a54]{padding:12px;font-size:12px;color:#9ca5be;text-align:center;cursor:default;pointer-events:none}.Customdropdown[data-v-aa8a9ea0]{position:relative;border:1px solid #9CA5BE;border-radius:4px;background:#fff;height:40px;font-weight:400;color:#020631;font-family:Poppins,sans-serif}.disabled-dropdown[data-v-aa8a9ea0],.disabled-dropdown .dropdown-header[data-v-aa8a9ea0]{cursor:not-allowed}.disabled-dropdown .label[data-v-aa8a9ea0]{cursor:not-allowed;color:#000}.disabled-dropdown .icon img[data-v-aa8a9ea0]{opacity:.5}.dropdown-header[data-v-aa8a9ea0]{position:relative;display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 8px}.dropdown-header .icon[data-v-aa8a9ea0]{margin-left:auto;flex-shrink:0}.label[data-v-aa8a9ea0]{border:none;outline:none;width:100%;background:transparent;cursor:pointer;font-family:Poppins,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;line-height:normal;color:#020631;padding:0}.label.is-placeholder[data-v-aa8a9ea0]{font-family:Poppins,sans-serif;font-size:12px;font-weight:400;color:#47506a}.icon img[data-v-aa8a9ea0]{width:20px;height:20px;margin-right:6px;display:flex;justify-content:center;align-items:center}.options[data-v-aa8a9ea0]{list-style:none;padding:6px 0;margin:1px 0 0;border:1px solid #C4CBDD;border-radius:6px;position:absolute;width:100%;background:#fff;overflow-y:auto;z-index:8000;box-shadow:0 10px 25px #02063126;box-sizing:border-box}.options[data-v-aa8a9ea0]::-webkit-scrollbar{width:5px}.options[data-v-aa8a9ea0]::-webkit-scrollbar-track{background:#f0f1f6;border-radius:3px}.options[data-v-aa8a9ea0]::-webkit-scrollbar-thumb{background:#c4cbdd;border-radius:3px}.dropdown-upward[data-v-aa8a9ea0]{position:absolute;bottom:100%;top:auto;margin-bottom:4px}.dropdown-downward[data-v-aa8a9ea0]{position:absolute;top:100%;bottom:auto;margin-top:4px}.options li.scroll-fade-bottom[data-v-aa8a9ea0]{position:sticky;bottom:0;left:0;right:0;height:30px!important;margin-top:-30px!important;background:linear-gradient(to bottom,#fff0,#fff)!important;pointer-events:none!important;z-index:20;padding:0!important;border:none!important}.options li.scroll-fade-bottom[data-v-aa8a9ea0]:hover{background:linear-gradient(to bottom,#fff0,#fff)!important}.options li[data-v-aa8a9ea0]{padding:12px 8px;height:44px;font-weight:400;font-size:14px;line-height:20px;color:#020631;letter-spacing:0;font-family:Poppins,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.options li.active[data-v-aa8a9ea0],.options li[data-v-aa8a9ea0]:hover{background:#f2f2f2}.custom-option[data-v-aa8a9ea0]{display:flex;gap:8px;padding:8px;align-items:center}.custom-option input[data-v-aa8a9ea0]{flex:1;height:32px;padding:4px 8px;font-size:12px;border:1px solid #9CA5BE;border-radius:4px}.custom-option button[data-v-aa8a9ea0]{height:32px;padding:0 10px;font-size:12px;border-radius:4px;border:none;background:#4353ff;color:#fff;cursor:pointer}.empty-option[data-v-aa8a9ea0]{padding:12px 8px;height:44px;font-size:14px;color:#9ca5be;text-align:center;cursor:default;pointer-events:none}.option-icon[data-v-aa8a9ea0]{width:20px;height:20px;object-fit:contain;flex-shrink:0}.inline-dropdown[data-v-aa8a9ea0]{border:none!important;background:transparent!important;height:auto!important;font-size:13px!important;color:#47506a!important}.inline-dropdown .dropdown-header[data-v-aa8a9ea0]{padding:0;height:auto;gap:4px;color:#47506a;font-size:13px;cursor:pointer;transition:color .15s ease;width:fit-content}.inline-dropdown .dropdown-header[data-v-aa8a9ea0]:hover{color:#4353ff}.inline-dropdown .label[data-v-aa8a9ea0]{font-size:13px;font-weight:400;color:inherit}.inline-dropdown .options[data-v-aa8a9ea0]{background:#fff;border:1px solid #e0e4ec;border-radius:10px;box-shadow:0 10px 30px #0000001f;min-width:190px;width:max-content;max-height:none;padding:8px 0}.inline-dropdown .options li[data-v-aa8a9ea0]{display:flex;align-items:center;gap:10px;height:auto;padding:12px 16px;color:#020631;font-size:14px;cursor:pointer}.inline-dropdown .options li.active[data-v-aa8a9ea0],.inline-dropdown .options li[data-v-aa8a9ea0]:hover{background:#f5f7fa}.inline-dropdown .options li.active[data-v-aa8a9ea0]{background:#4353ff14}.inline-dropdown .option-icon[data-v-aa8a9ea0]{width:22px;height:22px}.inline-dropdown .icon img[data-v-aa8a9ea0]{width:16px;height:16px;margin-right:0;opacity:.7}.switch[data-v-037bdf3e]{width:53px;height:32px;border-radius:100px;background-color:#a0afc0;display:flex;align-items:center;justify-content:flex-start;cursor:pointer;transition:all .3s ease;box-sizing:border-box;padding:2px 4px;overflow:visible}.switch.active[data-v-037bdf3e]{background-color:#4353ff;justify-content:flex-end}.switch.inactive[data-v-037bdf3e]{background-color:#9ca5be;justify-content:flex-start}.thumb[data-v-037bdf3e]{width:24px;height:24px;border-radius:24px;padding:0;display:flex;justify-content:center;align-items:center;overflow:hidden;background-color:#fff;border:2px solid transparent;transition:.2s ease,box-shadow .18s ease;position:relative;z-index:1;box-sizing:border-box}.switch.active:hover .thumb[data-v-037bdf3e]{box-shadow:0 0 0 2px #68769c}.switch.inactive:hover .thumb[data-v-037bdf3e]{box-shadow:0 0 0 2px #e5e7ef}.thumb img[data-v-037bdf3e]{width:60%;height:60%;object-fit:contain;image-rendering:crisp-edges;display:block;pointer-events:none}.switch.disabled[data-v-037bdf3e]{opacity:.5;cursor:not-allowed;pointer-events:none}.ctt-container[data-v-4b8a2267]{font-family:Poppins,sans-serif;width:100%;max-height:100%;display:flex;flex-direction:column}.ctt-scroll-area[data-v-4b8a2267]{overflow-y:auto;overflow-x:auto}.ctt-table[data-v-4b8a2267]{width:100%;border-collapse:collapse;table-layout:fixed}.ctt-th[data-v-4b8a2267]{padding:14px 20px;background:#f9f9fc;border-bottom:1px solid #C4CBDD;text-align:left;font-weight:600;position:sticky;top:0;z-index:10}.ctt-expand-column[data-v-4b8a2267]{width:40px;text-align:center;padding:0}.ctt-expand-cell[data-v-4b8a2267]{width:40px;text-align:center;padding:0;border-bottom:1px solid #E5E7EF}.ctt-data-column[data-v-4b8a2267]{width:calc((100% - 40px - 150px)/ var(--data-columns))}.ctt-action-column[data-v-4b8a2267]{width:150px;text-align:center}.ctt-action-cell[data-v-4b8a2267]{width:150px;text-align:center;border-bottom:1px solid #E5E7EF}.ctt-td[data-v-4b8a2267]{padding:12px 20px;border-bottom:1px solid #E5E7EF;vertical-align:middle}.ctt-row[data-v-4b8a2267]:hover{background:#f5f7ff}.ctt-cell[data-v-4b8a2267]{display:flex;align-items:center;min-width:0;width:100%}.ctt-expand-icon[data-v-4b8a2267]{width:18px;height:18px;cursor:pointer}.ctt-actions[data-v-4b8a2267]{display:flex;align-items:center;justify-content:flex-end;padding-right:20px;gap:20px;height:100%;flex-wrap:nowrap}.ctt-icon[data-v-4b8a2267]{width:18px;height:18px;cursor:pointer;transition:.2s}.ctt-col-icon[data-v-4b8a2267]{width:16px;height:16px;margin-right:6px;cursor:grab}.ctt-icon[data-v-4b8a2267]:hover{transform:scale(1.1)}.ctt-indent[data-v-4b8a2267]{display:flex;align-items:center;transition:transform .15s ease;min-width:0;max-width:100%}.ctt-indent span[data-v-4b8a2267]{flex:1;min-width:0}[data-v-4b8a2267]:root{--data-columns: 2}.ctt-link[data-v-4b8a2267]{color:#4353ff;text-decoration:none;font-weight:500;cursor:pointer}.ctt-link[data-v-4b8a2267]:hover{text-decoration:underline}.ctt-col-icon[data-v-4b8a2267]:active{cursor:grabbing}.ctt-empty-row[data-v-4b8a2267]{display:table-row}.ctt-empty-cell[data-v-4b8a2267]{text-align:center;vertical-align:middle;padding:60px 16px}.ctt-empty-content[data-v-4b8a2267]{display:flex;flex-direction:column;align-items:center;gap:12px}.ctt-empty-icon[data-v-4b8a2267]{width:80px;height:80px;object-fit:contain;opacity:.8}.ctt-empty-text[data-v-4b8a2267]{font-size:14px;color:#68769c;margin:0}.ctt-td[data-v-4b8a2267],.ctt-th[data-v-4b8a2267]{overflow:hidden}.ctt-cell>span[data-v-4b8a2267],.ctt-cell>div[data-v-4b8a2267]:not(.ctt-indent),.ctt-link[data-v-4b8a2267]{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.ctt-indent span[data-v-4b8a2267]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Asset_Input_Main_Container[data-v-5f699b3d]{height:var(--container-height);width:100%;max-width:var(--container-width);display:var(--container-display);gap:8px;align-items:center;box-sizing:border-box}.label_name[data-v-5f699b3d]{font-size:14px;color:#47506a;font-weight:400;white-space:nowrap;margin:0}.asterisk[data-v-5f699b3d]{color:#d60000;margin:0}.Options_Label[data-v-5f699b3d]{display:flex;gap:4px;margin:0}.label_input[data-v-5f699b3d]{position:relative;width:100%;border-radius:4px;padding:12px 8px;height:var(--input-height);min-height:var(--input-height);display:flex;justify-content:end;align-items:center;background-color:var(--input-bg)}.inputContainerBorder[data-v-5f699b3d]{border:1px solid #9CA5BE}input[data-v-5f699b3d]{border:none;outline:none;width:100%;font-size:14px;color:#020631;background-color:var(--input-bg);font-family:Poppins,sans-serif}input[data-v-5f699b3d]::placeholder{color:#9ca5be;opacity:1;font-family:Poppins,sans-serif;font-size:12px;font-weight:400}input[data-v-5f699b3d]:focus{border:none;outline:none}.label_input img[data-v-5f699b3d]{position:absolute;height:24px;width:24px;opacity:.6}.inputIcon[data-v-5f699b3d]{cursor:pointer}.disabledContainer[data-v-5f699b3d]{opacity:.6;pointer-events:none}.disabledIcon[data-v-5f699b3d]{cursor:not-allowed;opacity:.4}.helperMessageClass[data-v-5f699b3d]{padding:4px 0;font-size:12px;color:#535f7f}.focused.inputContainerBorder[data-v-5f699b3d]{border-color:#7c3aed}.focused.active.inputContainerBorder[data-v-5f699b3d]{border-color:#4353ff}.error.inputContainerBorder[data-v-5f699b3d]{border-color:#d60000}.warning.inputContainerBorder[data-v-5f699b3d]{border-color:#eab308}.success.inputContainerBorder[data-v-5f699b3d]{border-color:#16a34a}.typing.inputContainerBorder[data-v-5f699b3d],.active.inputContainerBorder[data-v-5f699b3d]{border-color:#4353ff!important}.error.typing.inputContainerBorder[data-v-5f699b3d]{border-color:#d60000!important}.inputContainerBorder[data-v-5f699b3d]:not(.focused):not(.typing):not(.error):not(.warning):not(.success){border-color:#9ca5be}.label_input input[data-v-5f699b3d]{padding-right:32px}.chips_input_container[data-v-5f699b3d]{position:relative;min-height:50px}.chips_scroll_area[data-v-5f699b3d]{display:flex;gap:6px;align-items:center;overflow:hidden;flex-wrap:nowrap;flex:1;padding-bottom:2px}.right-section-chips[data-v-5f699b3d]{display:flex;align-items:center;gap:8px;flex-shrink:0}.io_chip[data-v-5f699b3d]{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #9CA5BE;border-radius:14px;padding:2px 8px;font-size:12px;font-family:Poppins,sans-serif;white-space:nowrap;flex-shrink:0;color:#020631}.io_chip_remove[data-v-5f699b3d]{cursor:pointer;font-size:12px;color:#020631;line-height:1}.io_chip_remove[data-v-5f699b3d]:hover{color:#d60000}.io_chip_placeholder[data-v-5f699b3d]{color:#020631;opacity:1;font-family:Poppins,sans-serif;font-size:12px;font-weight:400;white-space:nowrap}.chipIcon[data-v-5f699b3d]{position:absolute;right:8px;flex-shrink:0}.measure-container[data-v-5f699b3d]{position:absolute;visibility:hidden;top:0;left:0;display:flex;gap:6px;pointer-events:none;z-index:-1;white-space:nowrap;width:0;height:0;overflow:hidden}.more-items-chip[data-v-5f699b3d]{color:#4353ff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}.inline-more[data-v-5f699b3d]{margin-left:2px}.hidden-chips-dropdown[data-v-5f699b3d]{position:absolute;top:calc(100% + 4px);left:0;width:100%;box-sizing:border-box;background:#fff;border:1px solid #C4CBDD;border-radius:4px;padding:4px 0;display:flex;flex-direction:column;gap:0;z-index:1000;box-shadow:0 4px 6px #0000001a;max-height:200px;overflow-y:auto;overflow-x:hidden}.dropdown-hidden-chip[data-v-5f699b3d]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font-size:14px;font-family:Poppins,sans-serif;color:#020631;background:transparent;border:none;min-width:0;width:100%;box-sizing:border-box}.dropdown-hidden-text[data-v-5f699b3d]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.dropdown-hidden-chip[data-v-5f699b3d]:hover{background:#f9fafb}.dropdown-hidden-remove[data-v-5f699b3d]{cursor:pointer;display:flex;align-items:center;margin-right:20px}.dropdown-hidden-remove .closeIcon[data-v-5f699b3d]{width:18px;height:18px}mjx-script{font-size:90%!important}mjx-msub,mjx-msup{font-size:100%!important}.dt-user-date-cell[data-v-779dde54]{display:flex;align-items:center;gap:12px}.dt-primaryName[data-v-779dde54]{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;background-color:#4353ff;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.dt-user-date-text[data-v-779dde54]{display:flex;flex-direction:column;line-height:1.2}.dt-date[data-v-779dde54]{font-size:14px;color:#020631}.dt-secondaryName[data-v-779dde54]{font-size:12px;color:#68769c}.dt-container[data-v-779dde54]{height:100%;display:flex;flex-direction:column}.dt-scroll-area[data-v-779dde54]{flex:1;overflow-y:auto;overscroll-behavior:contain}.sortable[data-v-779dde54]{cursor:pointer}.dt-header-sort[data-v-779dde54]{display:flex;align-items:center;gap:6px}.sort-icon[data-v-779dde54]{font-size:12px;color:#9ca3af}.dt-table[data-v-779dde54]{width:100%;border-collapse:collapse;table-layout:fixed}.dt-row-selected[data-v-779dde54]{background-color:#e3ecff!important}.dt-row-selected td[data-v-779dde54]{border-top:1px solid #3b5bff;border-bottom:1px solid #3b5bff}.dt-row-selected td[data-v-779dde54]{border-bottom:1px solid #3b5bff!important}.dt-row-selected[data-v-779dde54]:hover{background-color:#d6e6ff!important}.dt-th[data-v-779dde54]{height:52px;padding:14px 20px;background:#f9f9fc;border-bottom:1px solid #c4cbdd;box-sizing:border-box;font-family:Poppins,sans-serif;font-weight:600;font-size:16px;line-height:20px;color:#68769c;text-align:left;white-space:normal;overflow:visible;text-overflow:ellipsis}.dt-th-tooltip[data-v-779dde54]{position:relative;display:inline-flex;align-items:center;cursor:pointer}.dt-th-tooltip-icon[data-v-779dde54]{width:14px;height:14px;display:block}.dt-th-tooltip[data-v-779dde54]:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#fff;color:#020631;font-family:Poppins,sans-serif;font-weight:600;font-size:12px;line-height:18px;padding:6px 10px;border-radius:6px;box-shadow:2px 4px 12px -3px #68769c3d;white-space:normal;width:max-content;max-width:220px;opacity:0;pointer-events:none;z-index:20;transition:opacity .2s ease}.dt-th-tooltip[data-v-779dde54]:hover:after{opacity:1}.dt-sticky-header[data-v-779dde54]{position:sticky;top:0;z-index:2;background:#f9f9fc}.dt-td[data-v-779dde54]{padding:12px 20px;border-bottom:1px solid #eaeaea;text-align:left;vertical-align:middle;font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:30px;color:#020631;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dt-cell-text[data-v-779dde54]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-row-even[data-v-779dde54]{background-color:#fff}.dt-row-odd[data-v-779dde54]{background-color:#f5f5f5}.dt-row-even[data-v-779dde54]:hover,.dt-row-odd[data-v-779dde54]:hover{background-color:#eef1fa}.dt-th-checkbox[data-v-779dde54],.dt-td-checkbox[data-v-779dde54]{width:52px;text-align:center;vertical-align:middle;padding:0}.dt-th-checkbox input[data-v-779dde54],.dt-td-checkbox input[data-v-779dde54]{cursor:pointer}.dt-empty-row[data-v-779dde54]{display:table-row}.dt-empty-cell[data-v-779dde54]{text-align:center;vertical-align:middle;padding:60px 16px}.dt-empty-content[data-v-779dde54]{display:flex;flex-direction:column;align-items:center;gap:12px}.dt-empty-icon[data-v-779dde54]{width:80px;height:80px;object-fit:contain;opacity:.8}.dt-empty-text[data-v-779dde54]{font-family:Poppins,sans-serif;font-size:14px;font-weight:400;color:#68769c;margin:0}.dt-loading-row[data-v-779dde54]{display:table-row}.dt-loading-cell[data-v-779dde54]{text-align:center;padding:16px;border-bottom:none}.dt-spinner-wrapper[data-v-779dde54]{display:flex;align-items:center;justify-content:center;gap:10px}.dt-spinner[data-v-779dde54]{width:20px;height:20px;border:3px solid #e0e0e0;border-top:3px solid #4353ff;border-radius:50%;animation:dt-spin-779dde54 .8s linear infinite}.dt-loading-text[data-v-779dde54]{font-family:Poppins,sans-serif;font-size:13px;font-weight:400;color:#68769c}.dt-delete-col[data-v-779dde54]{width:40px!important;max-width:40px;min-width:40px;text-align:center;padding:0!important}.dt-delete-icon[data-v-779dde54]{cursor:pointer;font-size:16px;color:#dc2626}.dt-delete-icon[data-v-779dde54]:hover{opacity:.7}.dt-edit-icon[data-v-779dde54]{cursor:pointer;font-size:26px}.dt-edit-icon[data-v-779dde54]:hover{opacity:.7}@keyframes dt-spin-779dde54{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dt-load-more-footer[data-v-779dde54]{text-align:center;padding:12px;border-top:1px solid #eaeaea;background:#fff}.dt-load-more-btn[data-v-779dde54]{display:inline-flex;align-items:center;justify-content:center;padding:8px 24px;min-width:120px;height:36px;border:1px solid #c4cbdd;border-radius:8px;background:#fff;font-family:Poppins,sans-serif;font-size:14px;font-weight:500;color:#4353ff;cursor:pointer;transition:all .2s ease}.dt-load-more-btn[data-v-779dde54]:hover{background:#f0f2ff;border-color:#4353ff}.dt-load-more-btn[data-v-779dde54]:active{background:#e0e4ff}.status-green[data-v-779dde54]{color:#16a34a;font-weight:500}.status-red[data-v-779dde54]{color:#dc2626;font-weight:500}.status-yellow[data-v-779dde54]{color:#ca8a04;font-weight:500}.navigation-cell[data-v-779dde54]{cursor:pointer;width:40px;text-align:center;vertical-align:middle}.nav-chevron-icon[data-v-779dde54]{width:16px;height:16px;object-fit:contain;display:block;margin:0 auto}.navigation-cell:hover .nav-chevron-icon[data-v-779dde54]{opacity:.7}.navigation-cell[data-v-779dde54]:hover{background:#f0f2ff}.dt-link-cell[data-v-779dde54]{display:flex;align-items:center;gap:8px}.dt-link-text[data-v-779dde54]{color:#2563eb;font-weight:500;cursor:pointer;transition:.2s ease}.dt-link-text[data-v-779dde54]:hover{text-decoration:underline}.dt-link-icon[data-v-779dde54]{width:20px;height:20px;object-fit:contain}.dt-status-badge[data-v-779dde54]{display:inline-flex;align-items:center;justify-content:center;padding-left:8px;padding-right:8px;border-radius:20px;font-size:13px;font-weight:500;white-space:nowrap}.dt-status-orange[data-v-779dde54]{background-color:#fff4e5;color:#b95100}.dt-status-green[data-v-779dde54]{background-color:#e9f2ff;color:#0075ff}.dt-status-success[data-v-779dde54]{background-color:#e9f2ff;color:#008516}.dt-status-red[data-v-779dde54]{background-color:#ffeceb;color:#d60000}.dt-status-badge[data-v-779dde54]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:13px;font-weight:500;white-space:nowrap}.dt-status-icon[data-v-779dde54]{width:12px;height:12px}.dt-icon-blue[data-v-779dde54]{color:#0075ff;filter:invert(32%) sepia(98%) saturate(2475%) hue-rotate(205deg) brightness(98%) contrast(101%)}.dt-icon-red[data-v-779dde54]{filter:invert(16%) sepia(94%) saturate(7463%) hue-rotate(1deg) brightness(95%) contrast(115%)}.dt-icon-orange[data-v-779dde54]{filter:invert(36%) sepia(94%) saturate(1100%) hue-rotate(15deg) brightness(95%) contrast(95%)}.cml-badge-unpublished[data-v-779dde54]{background-color:#fff3eb;color:#b95100}.dt-structure-cell[data-v-779dde54]{display:flex;align-items:center;gap:8px}.dt-drag-icon[data-v-779dde54]{width:16px;height:16px;cursor:grab}.dt-drag-icon[data-v-779dde54]:active{cursor:grabbing}.dt-horizontal-scroll[data-v-779dde54]{overflow-x:auto}.dt-table-fixed[data-v-779dde54]{min-width:max-content}.dt-switch-wrapper[data-v-779dde54]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:visible}.mainInputContainer[data-v-65e3172b]{border-radius:4px;border:1px solid #9CA5BE;padding:0;height:40px;width:100%}.input-container[data-v-65e3172b]{display:block;margin:0;border-radius:4px;padding:8px;box-sizing:border-box;font-family:Poppins,sans-serif;font-weight:400;box-shadow:none;border:none;border-left:4px solid var(--border-color);font-size:12px;line-height:18px;width:100%;height:100%}.input-container[data-v-65e3172b]:focus{outline:none}.input-container[data-v-65e3172b]:disabled{color:#000;-webkit-text-fill-color:#000000;opacity:1}.input-large[data-v-65e3172b]{width:100%;min-height:40px}.input-small[data-v-65e3172b]{width:100%;min-height:32px}[data-v-0b143365],[data-v-0b143365]:before,[data-v-0b143365]:after{box-sizing:border-box}.date-picker[data-v-0b143365]{font-family:Poppins,sans-serif;position:relative;width:80%;border:1px solid #9CA5BE;border-radius:4px;display:flex;align-items:center;width:100%}.calendar-popup[data-v-0b143365]{position:absolute;height:auto;width:auto;top:calc(100% + 8px);right:0;z-index:100;background-color:#fff;border:2px solid #9CA5BE;border-radius:4px}.calendar-header[data-v-0b143365]{padding:8px 8px 12px;display:flex;gap:12px;border-bottom:1px solid #e2e8f0;position:relative;border-bottom:black}.dropdown[data-v-0b143365]{flex:1;display:flex;justify-content:center;align-items:center;padding:6px 8px;font-size:16px;color:#47506a;cursor:pointer;position:relative;gap:8px}.dropdown.muted[data-v-0b143365]{color:#9ca5be}.arrow[data-v-0b143365]{font-size:12px;justify-content:center;align-items:center;padding:4px;height:24px;width:24px}.dropdown-menu[data-v-0b143365]{position:absolute;top:calc(100% + 8px);left:0;width:100%;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0f172a14;padding:8px 0;z-index:20;max-height:240px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.dropdown-item[data-v-0b143365]{padding:10px 16px;display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#47506a;width:100%}.dropdown-item[data-v-0b143365]:hover{background:#f1f5ff}.tick[data-v-0b143365]{color:#47506a;font-weight:600;height:24px;width:24px;justify-content:center;align-items:center}.day-name[data-v-0b143365]{width:100%;height:36px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;line-height:15px;font-weight:400;color:#64748b}.calendar-grid[data-v-0b143365]{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:36px;row-gap:6px;column-gap:0;justify-content:center;margin-top:4px;padding:4px}.date-cell[data-v-0b143365]{position:relative;width:100%;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer}.date-cell.in-range[data-v-0b143365]{background-color:#4353ff26}.date-cell.range-start[data-v-0b143365]{background:linear-gradient(to right,transparent 50%,rgba(67,83,255,.15) 50%)}.date-cell.range-end[data-v-0b143365]{background:linear-gradient(to left,transparent 50%,rgba(67,83,255,.15) 50%)}.date-cell.range-start.range-end[data-v-0b143365]{background:transparent}.date-text[data-v-0b143365]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#020631;border-radius:50%;transition:all .2s ease}.date-text.today[data-v-0b143365]{border:1px solid #4353FF;color:#4353ff}.date-text.selected[data-v-0b143365]{background-color:#4353ff;color:#fff;font-weight:500}.date-text[data-v-0b143365]:not(.selected):hover{border:1px solid #4353FF}.date-cell.disabled .date-text[data-v-0b143365]{color:#68769c;pointer-events:none}.date-input[data-v-0b143365]{width:100%;padding:8px;font-size:12px;line-height:18px;font-size:14px;border-radius:4px;border:none;cursor:text}.dropdown-menu[data-v-0b143365]::-webkit-scrollbar{display:none}.calendar-icon[data-v-0b143365]{height:20px;width:20px;margin-right:8px;margin-left:6px}.date-text.outside-month[data-v-0b143365]{color:#68769c;opacity:.6}.date-text.outside-month[data-v-0b143365]:hover{background-color:#f2f2f2}.slide-left-enter-active[data-v-0b143365],.slide-left-leave-active[data-v-0b143365]{transition:transform .25s ease,opacity .25s ease}.slide-left-enter-from[data-v-0b143365]{transform:translate(30px);opacity:0}.slide-left-leave-to[data-v-0b143365]{transform:translate(-30px);opacity:0}.slide-right-enter-active[data-v-0b143365],.slide-right-leave-active[data-v-0b143365]{transition:transform .25s ease,opacity .25s ease}.slide-right-enter-from[data-v-0b143365]{transform:translate(-30px);opacity:0}.slide-right-leave-to[data-v-0b143365]{transform:translate(30px);opacity:0}.date-picker-disabled[data-v-0b143365]{background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed;pointer-events:none}.date-input[data-v-0b143365]:disabled{background-color:transparent;cursor:not-allowed;color:#000;-webkit-text-fill-color:#000000}.date-picker-disabled[data-v-0b143365]:focus-within{border:1px solid #9CA5BE!important}.headerContainer[data-v-dc86ece4]{font-family:Poppins,sans-serif;width:100%;display:flex;flex-direction:column;box-sizing:border-box;border-radius:16px;border:1px solid #E5E7EF;background-color:#fff}.infoIcon[data-v-dc86ece4]{display:flex;justify-content:flex-end;padding:12px 12px 0 0}.infoIcon img[data-v-dc86ece4]{width:14px;height:14px}.wrapper[data-v-dc86ece4]{width:100%;display:flex;justify-content:space-between;align-items:center;padding:0 16px 16px}.leftContainer[data-v-dc86ece4]{display:flex;align-items:center;gap:18px}.imageContainer img[data-v-dc86ece4]{width:126px;height:126px}.headerTextContainer[data-v-dc86ece4]{display:flex;flex-direction:column;gap:8px;color:#020631}.headerText[data-v-dc86ece4]{font-weight:700;font-size:24px;line-height:30px;letter-spacing:0%}.subHeader[data-v-dc86ece4]{font-weight:400;font-size:16px;line-height:24px;letter-spacing:0%}.rightContainer[data-v-dc86ece4]{display:flex;flex-direction:column;gap:12px;align-items:flex-end}.card[data-v-dc86ece4]{border-left:4px solid #7EB9FF;border-radius:7px;padding:9px 8px;background-color:#f9f9fc;box-shadow:2px 4px 8px #68769c14}.label[data-v-dc86ece4]{font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%;color:#47506a}.value[data-v-dc86ece4]{color:#020631}.detail-dialog[data-v-9a166e2b]{position:absolute;top:90%;right:-10%;width:65%;max-width:90vw;background:#fff;border-radius:12px;box-shadow:0 12px 32px #00000026;padding:16px;font-family:Poppins,sans-serif;transform:translate(-50%);display:flex;flex-direction:column;z-index:10}.dialog-header[data-v-9a166e2b]{display:flex;justify-content:space-between;align-items:center;font-size:20px;font-weight:600;color:#0f0f0f;margin-bottom:26px}.dialog-header-actions[data-v-9a166e2b]{width:104px;display:flex;gap:8px;align-items:center;justify-content:flex-end}.edit-icon-btn[data-v-9a166e2b]{width:48px;height:40px;display:flex;align-items:center;justify-content:center}.save-btn[data-v-9a166e2b]{width:50%;height:80%;color:#fff;background-color:#4353ff;font-weight:600;padding:6px 14px;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-size:14px;transition:background-color .2s}.cancel-btn[data-v-9a166e2b]{width:70%;height:80%;color:#fff;background-color:#888;font-weight:600;padding:6px 14px;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-size:14px;transition:background-color .2s}.save-btn[data-v-9a166e2b]:hover{background:#2f3fcc}.cancel-btn[data-v-9a166e2b]{background:#aaa}.cancel-btn[data-v-9a166e2b]:hover{background:#888}.close-btn[data-v-9a166e2b]{width:48px;height:40px;display:flex;align-items:center;justify-content:center}.dialog-content p[data-v-9a166e2b]{font-size:15px;margin:0 0 12px;line-height:22px;color:#313144;font-weight:500}.dialog-content p[data-v-9a166e2b]:last-child{margin-bottom:0}.dialog-content b[data-v-9a166e2b]{font-weight:600;color:#222}.dialog-content input[data-v-9a166e2b]{font-family:Poppins,sans-serif;font-weight:500;font-size:15px;width:100%;padding:6px 10px;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;margin-top:6px;color:#313144}.dialog-content input.editing[data-v-9a166e2b]{border-color:#aaa}.dialog-content input[data-v-9a166e2b]:focus{border-color:#4656fa;outline:none;box-shadow:0 0 0 2px #4656fa26}.link-text[data-v-9a166e2b]{color:#4353ff;text-decoration:underline;cursor:pointer;font-style:italic}.donut-chart-container[data-v-417c0613]{display:flex;flex-direction:column;align-items:center;position:relative;font-family:Poppins,sans-serif;padding:0 24px 24px}.donut-canvas-wrapper[data-v-417c0613]{position:relative;display:flex;align-items:center;justify-content:center;padding:0 20px 16px;max-width:100%}canvas[data-v-417c0613]{display:block;background:transparent;border-radius:50%;box-shadow:0 0 6px #5f5f820f}.donut-center-label[data-v-417c0613]{position:absolute;text-align:center;pointer-events:none;display:flex;flex-direction:column;align-items:center;inset:0;justify-content:center;transform:none}.center-title[data-v-417c0613]{font-size:12px;color:#47506a;font-weight:400;line-height:18px;letter-spacing:0px;height:36px;width:88px;margin:0 5px}.total-label[data-v-417c0613]{font-weight:600;font-family:poppins;font-size:16px;color:#020631;margin-bottom:2px;line-height:20px;margin-top:25px}.donut-chart-legend[data-v-417c0613]{display:flex;flex-wrap:nowrap;flex-direction:column;justify-content:center;gap:10px;width:100%}.donut-legend[data-v-417c0613]{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:14px;padding:0 14px}.legend-dot[data-v-417c0613]{width:12px;height:12px;border-radius:50%;display:inline-block;box-shadow:0 0 2px #eaeaff}.legend-title[data-v-417c0613]{color:#343456;line-height:20px;margin-left:10px}.legend-value[data-v-417c0613]{font-weight:600;color:#8076f8;margin-left:auto;margin-right:12px}.donut-tooltip[data-v-417c0613]{position:absolute;pointer-events:none;min-width:105px;background:#fff;color:#343456;border:1.5px solid #8076F8;border-radius:6px;box-shadow:0 4px 12px #8076f82a;padding:8px 10px;font-size:15px;z-index:10}.tooltip-label[data-v-417c0613]{font-weight:600;color:#8076f8;margin-bottom:2px}.tooltip-value[data-v-417c0613]{font-weight:600;margin-bottom:2px}.tooltip-tag[data-v-417c0613]{font-size:.92em;color:#888bb1;margin-top:2px}.dropdown-container[data-v-89001649]{position:relative;width:205px;font-family:Poppins,sans-serif}.dropdown-selected[data-v-89001649]{height:44px;width:100%;border:1px solid #d0d0d0;border-radius:6px;display:flex;align-items:center;padding:0 12px;cursor:pointer;background:#fff;font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:var(--line-height-s, 20px);box-sizing:border-box}.dropdown-menu[data-v-89001649]{position:absolute;top:46px;left:0;width:100%;background:#fff;border:1px solid #d0d0d0;border-radius:6px;box-shadow:0 2px 6px #00000014;overflow:hidden;z-index:10;box-sizing:border-box}.dropdown-item[data-v-89001649]{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 12px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:var(--line-height-s, 20px)}.dropdown-item[data-v-89001649]:hover{background:#f5f5f5}.dropdown-selected[data-v-89001649]{display:flex;justify-content:space-between;align-items:center}.arrow-icon[data-v-89001649]{width:16px;height:16px;margin-left:8px}.delete-icon[data-v-89001649]{width:16px;height:16px;opacity:.6;cursor:pointer}.add-view[data-v-89001649]{display:flex;align-items:center;height:44px;padding:0 12px;color:#3b5bdb;cursor:pointer;font-family:Poppins,sans-serif;font-weight:400;font-size:14px}.add-view[data-v-89001649]:hover{background:#f8f9fa}.add-icon[data-v-89001649]{width:16px;height:16px;margin-right:6px}.add-section[data-v-89001649]{padding:8px 12px;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;background:#fff}.add-input[data-v-89001649]{width:100%;height:44px;border:1px solid #ccc;border-radius:6px;padding:0 10px;font-size:14px;box-sizing:border-box}.action-buttons[data-v-89001649]{display:flex;justify-content:flex-end;gap:8px}.cancel-btn[data-v-89001649]{background:none;border:none;color:#555;cursor:pointer;font-size:14px}.save-btn[data-v-89001649]{background:#3b5bdb;color:#fff;border:none;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:14px}.upload-container[data-v-1afd0b27]{display:flex;flex-direction:column;gap:8px;font-family:poppins,sans-serif}.upload-title[data-v-1afd0b27]{font-size:14px;font-weight:500;color:#000}.upload-box[data-v-1afd0b27]{border:1px solid #4353FF;border-radius:8px;padding:4px 8px;background:#fff;display:flex;align-items:center;gap:4px;cursor:pointer;width:100%;justify-content:center}.link-icon[data-v-1afd0b27]{width:16px;height:16px}.upload-text[data-v-1afd0b27]{color:#4353ff;font-weight:600;font-size:14px;line-height:20px}.hidden-input[data-v-1afd0b27]{display:none}.info-section[data-v-1afd0b27]{display:flex;flex-direction:column;gap:2px;margin-top:2px;font-weight:400;font-size:12px;line-height:18px;color:#68769c}.info-row[data-v-1afd0b27]{display:flex;align-items:center;gap:6px}.info-icon[data-v-1afd0b27]{width:24px;height:24px}.info-text[data-v-1afd0b27]{font-size:12px;color:#6d6d6d}.filterButtonContainer[data-v-eabccdee]{display:flex;justify-content:center;align-items:center;border-radius:8px;padding:8px 12px;border:1px solid #4353FF;color:#fff}.filterButton[data-v-eabccdee]{width:20px;height:18px}.profile-thumbnail[data-v-b5ce712c],.thumbnail[data-v-b5ce712c],.large[data-v-b5ce712c],.profile-image[data-v-b5ce712c],.thumbnail-image[data-v-b5ce712c],.image[data-v-b5ce712c],.thumb-image[data-v-b5ce712c]{box-sizing:border-box;font-family:Poppins,sans-serif}.large[data-v-b5ce712c]{display:flex;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px}.medium[data-v-b5ce712c]{display:flex;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px}.small[data-v-b5ce712c]{display:flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:10px}.assetCentricSmall[data-v-b5ce712c]{display:flex;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px}.profile-thumbnail[data-v-b5ce712c]{display:flex;justify-content:center;align-items:center;height:100%;width:100%;color:#000;border-radius:50%;background-color:#4353ff;border:1px solid #9CA5BE}.profile-image[data-v-b5ce712c]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:hidden;border-radius:50%}.image[data-v-b5ce712c]{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-default[data-v-b5ce712c]{color:#fff;background-color:#4353ff;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:50%}.profile-accent1[data-v-b5ce712c]{color:#000;background-color:#aeb5ff;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:50%}.profile-accent2[data-v-b5ce712c]{color:#000;background-color:#f5baff;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:50%}.profile-accent3[data-v-b5ce712c]{color:#000;background-color:#ffc684;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:50%}.profile-accent4[data-v-b5ce712c]{color:#000;background-color:#e6e7e9;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:50%}.thumbnail[data-v-b5ce712c]{display:flex;justify-content:center;align-items:center;height:100%;width:100%;color:#000;border-radius:4px;background-color:#4353ff;border:1px solid #9CA5BE}.thumbnail-image[data-v-b5ce712c]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:hidden;border-radius:4px}.thumb-image[data-v-b5ce712c]{width:100%;height:100%;object-fit:cover;border-radius:4px}.thumbnail-default[data-v-b5ce712c]{color:#fff;background-color:#2e3a59;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:4px}.thumbnail-accent1[data-v-b5ce712c]{color:#000;background-color:#d8dae5;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:4px}.thumbnail-accent2[data-v-b5ce712c]{color:#000;background-color:#ffe4f3;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:4px}.thumbnail-accent3[data-v-b5ce712c]{color:#000;background-color:#ffe1c4;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:4px}.thumbnail-accent4[data-v-b5ce712c]{color:#000;background-color:#f7f8f9;height:100%;width:100%;display:flex;justify-content:center;align-items:center;border-radius:4px}.notification-container[data-v-25ee8194]{font-family:Poppins,sans-serif;position:relative;display:inline-block}.notification-button[data-v-25ee8194]{position:relative;background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:transform .2s ease}.notification-button[data-v-25ee8194]:hover{transform:scale(1.1)}.notification-button img[data-v-25ee8194]{width:21px;height:21px}.badge[data-v-25ee8194]{position:absolute;top:-6px;right:-6px;background-color:#e74c3c;color:#fff;border-radius:10px;min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;line-height:1;box-sizing:border-box;animation:pulse-25ee8194 2s infinite}@keyframes pulse-25ee8194{0%,to{box-shadow:0 0 #e74c3cb3}50%{box-shadow:0 0 0 6px #e74c3c00}}.notification-menu[data-v-25ee8194]{position:absolute;top:40px;right:0;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #00000026;width:380px;max-height:500px;z-index:1000;display:flex;flex-direction:column;animation:slideDown-25ee8194 .3s ease}@keyframes slideDown-25ee8194{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.menu-header[data-v-25ee8194]{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e0e0e0}.notification-tabs[data-v-25ee8194]{display:flex;justify-content:flex-start;align-items:center;padding:0;border-bottom:1px solid #f0f0f0;background:#fff}.tab-btn[data-v-25ee8194]{background:none;border:none;border-bottom:3px solid transparent;padding:12px 18px;font-size:14px;color:#888;cursor:pointer;transition:color .2s,border-color .2s;font-weight:500}.tab-btn.active[data-v-25ee8194]{background:#e9f2ff;color:#4353ff;border-bottom-color:#4353ff}.tab-count[data-v-25ee8194]{margin-left:6px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background-color:#4353ff;color:#fff;font-size:12px;font-weight:600}.menu-header-actions[data-v-25ee8194]{display:flex;align-items:center;gap:12px}.mark-all-btn[data-v-25ee8194]{background:none;border:none;color:#4353ff;cursor:pointer;font-size:14px;padding:0 8px;border-radius:4px;transition:background .2s,color .2s;height:28px}.mark-all-btn[data-v-25ee8194]:hover{background:#e9f2ff;color:#4353ff}.menu-header h3[data-v-25ee8194]{margin:0;font-size:16px;font-weight:600;color:#020631}.clear-btn[data-v-25ee8194]{background:none;border:none;color:#999;cursor:pointer;font-size:18px;padding:0;transition:color .2s ease}.clear-btn[data-v-25ee8194]:hover{color:#e74c3c}.menu-content[data-v-25ee8194]{overflow-y:auto;flex:1;max-height:420px}.empty-state[data-v-25ee8194]{display:flex;align-items:center;justify-content:center;height:150px;color:#999;font-size:14px}.notification-item[data-v-25ee8194]{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s ease;background-color:transparent;align-items:center}.notification-item[data-v-25ee8194]:hover{background-color:#f9f9f9}.notification-item.unread[data-v-25ee8194]{background-color:#f0f7ff}.notification-item.unread[data-v-25ee8194]:hover{background-color:#e6f0ff}.notification-icon[data-v-25ee8194]{min-width:32px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.notification-icon.info[data-v-25ee8194]{background-color:#3498db}.notification-icon.low[data-v-25ee8194]{background-color:#27ae60}.notification-icon.medium[data-v-25ee8194]{background-color:#f39c12}.notification-icon.high[data-v-25ee8194]{background-color:#e74c3c}.notification-content[data-v-25ee8194]{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.notification-message[data-v-25ee8194]{margin:0;font-size:14px;color:#020631;font-weight:500;word-wrap:break-word;overflow-wrap:break-word;white-space:pre-wrap}.notification-display-id[data-v-25ee8194]{margin:0 0 4px;font-size:12px;color:#4353ff;font-weight:700}.notification-data[data-v-25ee8194]{margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;font-size:12px}.data-row[data-v-25ee8194]{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px;align-items:flex-start}.data-label[data-v-25ee8194]{color:#666;font-weight:600;min-width:fit-content}.data-value[data-v-25ee8194]{color:#333;word-break:break-word}.risk-high[data-v-25ee8194]{color:#e74c3c;font-weight:600}.risk-medium[data-v-25ee8194]{color:#f39c12;font-weight:600}.risk-low[data-v-25ee8194]{color:#27ae60;font-weight:600}.changed-params[data-v-25ee8194]{margin-left:4px}.param-item[data-v-25ee8194]{display:flex;gap:4px;align-items:center;margin:4px 0;font-size:11px}.param-name[data-v-25ee8194]{color:#4353ff;font-weight:600}.param-before[data-v-25ee8194]{color:#e74c3c}.param-arrow[data-v-25ee8194]{color:#999}.param-after[data-v-25ee8194]{color:#27ae60}.notification-header[data-v-25ee8194]{display:flex;justify-content:flex-start;align-items:center;gap:8px}.notification-time[data-v-25ee8194]{font-size:12px;color:#999;flex-shrink:0;white-space:nowrap;margin-left:auto}.ai-icon[data-v-25ee8194]{font-size:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.ai-icon img[data-v-25ee8194]{width:40px;height:40px;object-fit:contain}.delete-btn[data-v-25ee8194]{background:none;border:none;color:#ccc;cursor:pointer;font-size:16px;padding:0;flex-shrink:0;transition:color .2s ease}.delete-btn[data-v-25ee8194]:hover{color:#e74c3c}.overlay[data-v-25ee8194]{position:fixed;inset:0;z-index:999}.wf-meta[data-v-25ee8194]{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding-top:10px;border-top:1px solid #f0f0f0}.wf-row[data-v-25ee8194]{display:flex;align-items:center;font-size:12px;line-height:1.4}.wf-row.comment-row[data-v-25ee8194]{align-items:flex-start;flex-direction:column;gap:4px;margin-top:4px;padding:8px 10px;background-color:#f8f9fa;border-radius:6px;border-left:3px solid #d9e2ec}.wf-row.comment-row .wf-label[data-v-25ee8194]{min-width:auto;font-size:11px;color:#64748b}.wf-label[data-v-25ee8194]{color:#64748b;font-weight:600;min-width:95px;flex-shrink:0}.wf-value[data-v-25ee8194]{color:#334155;font-weight:400;word-break:break-word}.wf-value.fw-medium[data-v-25ee8194]{font-weight:500;color:#0f172a}.wf-value.italic[data-v-25ee8194]{font-style:italic;color:#475569}.wf-value.text-accent[data-v-25ee8194]{color:#d97706;font-weight:600;background-color:#fffbeb;padding:2px 6px;border-radius:4px;border:1px solid #fef3c7}.wf-status-pill[data-v-25ee8194]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background-color:#f1f5f9;color:#475569}.wf-status-pill[class*=pending][data-v-25ee8194]{background-color:#fef3c7;color:#92400e}.wf-status-pill[class*=approv][data-v-25ee8194]{background-color:#d1fae5;color:#065f46}.wf-status-pill[class*=reject][data-v-25ee8194]{background-color:#fee2e2;color:#991b1b}.wrapper[data-v-bd2f1c0d]{width:100%;box-sizing:border-box;background-color:#fff}.headerBar[data-v-bd2f1c0d]{display:flex;justify-content:flex-end;flex-direction:row;align-items:center;height:60px;gap:16px}.profile[data-v-bd2f1c0d]{margin-right:32px;cursor:pointer}.languageSwitcher[data-v-bd2f1c0d]{position:relative;display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer}.languageSwitcher[data-v-bd2f1c0d]:hover{background-color:#f3f4f6}.selectedLang[data-v-bd2f1c0d]{display:flex;align-items:center;gap:8px}.langIcon[data-v-bd2f1c0d]{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.languageSwitcher[data-v-bd2f1c0d]{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px}.langName[data-v-bd2f1c0d]{font-weight:600;color:#020631;font-size:14px}.code[data-v-bd2f1c0d]{font-family:Poppins,sans-serif;font-weight:600;font-size:20px;line-height:24px;color:#000}.langDropdown[data-v-bd2f1c0d]{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:#fff;border-radius:12px;box-shadow:0 12px 30px #00000026;z-index:1000;border:1px solid #e5e7eb;padding:6px;max-height:320px;overflow-y:auto;scrollbar-width:thin}.langOption[data-v-bd2f1c0d]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;cursor:pointer;transition:background .15s ease}.langOption.active[data-v-bd2f1c0d]{background:#eef2ff}.langOption[data-v-bd2f1c0d]:hover{background-color:#f3f4f6}.langText[data-v-bd2f1c0d]{font-family:Poppins,sans-serif;font-weight:600;font-size:20px;line-height:24px;color:#000}.selectedCode[data-v-bd2f1c0d]{font-family:Poppins,sans-serif;font-weight:400;font-size:16px;color:#000}.dropdownLangName[data-v-bd2f1c0d]{font-weight:400;font-size:18px;color:#020631}.heatmap-wrapper[data-v-49696921]{font-family:Poppins,sans-serif}.heatmap-scroll text[data-v-49696921],.fullbody-heatmap-scroll text[data-v-49696921]{font-family:Poppins,sans-serif}.heatmap-wrapper[data-v-49696921]{display:flex;flex-direction:column;gap:8px;height:75%;padding-top:24px}.heatmap-toolbar[data-v-49696921]{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;padding:0 36px 0 60px}.heatmap-title[data-v-49696921]{text-align:center;font-size:14px;margin-bottom:4px}.heatmap-main-row[data-v-49696921]{display:flex;align-items:center}.heatmap-y-label[data-v-49696921]{width:40px;display:flex;justify-content:center}.heatmap-y-label span[data-v-49696921]{writing-mode:vertical-rl;transform:rotate(180deg);font-size:14px}.heatmap-y-left[data-v-49696921]{margin-right:8px}.heatmap-y-right[data-v-49696921]{margin-left:8px;transform:rotate(180deg)}.heatmap-bottom-label[data-v-49696921]{text-align:center;margin-top:4px;font-size:14px}.legend[data-v-49696921]{box-sizing:border-box;width:60%;display:flex;flex-wrap:wrap;gap:8px}.legend-item[data-v-49696921]{width:20%;display:flex;align-items:center;gap:4px}.legend-color[data-v-49696921]{width:10px;height:10px;border-radius:50%}.toolbar-buttons[data-v-49696921]{display:flex;flex-direction:row;margin-left:4px;padding:4px 8px;cursor:pointer;gap:24px}.toolbar-zoomsBtn[data-v-49696921]{display:flex;flex-direction:row;width:222px;height:36px;border-radius:6px;border:1px solid #C4CBDD;padding:6px;gap:24px}.resetClass[data-v-49696921]{padding:8px 12px;border-radius:8px;font-size:16px;font-weight:600;background-color:#fff;color:#4353ff}.heatmap-scroll[data-v-49696921]{flex:1;overflow:auto;position:relative;scrollbar-width:none}.heatmap-tooltip[data-v-49696921]{position:fixed;background:#222;color:#fff;padding:8px 12px;border-radius:6px;font-size:11px;pointer-events:none;z-index:10000;box-shadow:0 4px 12px #0006;max-width:180px;white-space:nowrap;font-family:"Poppins" sans-serif}.heatmap-scroll[data-v-49696921],.fullbody-heatmap-scroll[data-v-49696921]{overflow:visible!important}.fullscreen-backdrop[data-v-49696921]{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.fullscreen-content[data-v-49696921]{background:#fff;width:95vw;height:95vh;display:flex;flex-direction:column}.fullscreen-header[data-v-49696921]{padding:8px 12px;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;align-items:center}.fullscreen-body[data-v-49696921]{flex:1;padding:8px;overflow:auto}.fullbody-heatmap-scroll[data-v-49696921]{flex:1;border:1px solid #ddd;overflow:auto;position:relative;background:#fafafa;scrollbar-width:none}.hover-tooltip-bubble[data-v-bbc6d236]{position:fixed;transform:translate(-50%);background:#fff;color:var(--color-primary-dark, #020631);font-family:var(--font-family-body, "Poppins", sans-serif);font-weight:600;font-size:16px;line-height:20px;padding:14px 28px;border-radius:16px;box-shadow:2px 4px 12px -3px #68769c3d;white-space:nowrap;pointer-events:none;z-index:3000}.hover-tooltip-arrow[data-v-bbc6d236]{position:absolute;top:-7px;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #ffffff;filter:drop-shadow(0px -2px 2px rgba(104,118,156,.12))}.ie-pdf-page-controls[data-v-adfd9ce5]{display:flex;align-items:center;gap:6px;padding:0;background:transparent;border:none;border-radius:0;box-shadow:none;color:#020631;font-size:13px;font-family:Poppins,Inter,sans-serif;-webkit-user-select:none;user-select:none}.ie-page-btn[data-v-adfd9ce5]{background:#f8fafc;border:1px solid #E2E8F0;color:#020631;font-size:15px;font-weight:700;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.ie-page-btn[data-v-adfd9ce5]:hover:not(:disabled){background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.ie-page-btn[data-v-adfd9ce5]:disabled{opacity:.35;cursor:not-allowed}.ie-page-indicator[data-v-adfd9ce5]{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#64748b}.ie-page-input[data-v-adfd9ce5]{width:44px;text-align:center;background:#f8fafc;border:1px solid #CBD5E1;border-radius:6px;color:#020631;padding:3px 4px;font-size:12px;font-weight:700;outline:none}.ie-page-input[data-v-adfd9ce5]:focus{border-color:#4338ca}.ie-primary-toolbar[data-v-e71cb523]{display:flex;align-items:center;gap:16px;padding:8px 16px;background:#fff;color:#020631;-webkit-user-select:none;user-select:none;font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;flex-wrap:nowrap;position:relative;z-index:100;overflow:visible}.ie-primary-toolbar[data-v-e71cb523] *{font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.ie-tools-group[data-v-e71cb523]{display:flex;align-items:center;gap:24px;height:74px;box-sizing:border-box;padding:8px 16px;border:1px solid #E5E7EF;border-radius:12px;background:#fff;box-shadow:2px 4px 12px #68769c3d}.ie-tool[data-v-e71cb523]{display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-width:34px;height:56px;padding:4px 10px;background:transparent;border:1px solid transparent;border-radius:5px;cursor:pointer;flex-shrink:0;box-sizing:border-box}.ie-tool.active[data-v-e71cb523]{background:#e9f2ff;border-color:#3745db}.ie-tool-ic-wrap[data-v-e71cb523]{display:flex;align-items:center;justify-content:center}.ie-tool-ic[data-v-e71cb523]{width:24px;height:24px;display:block}.ie-tool-label[data-v-e71cb523]{font-size:10px;font-weight:400;color:#000;line-height:1;white-space:nowrap}.ie-controls-group[data-v-e71cb523]{display:flex;align-items:center;justify-content:center;width:auto;min-width:295px;height:82px;box-sizing:border-box;padding:12px 18px;border:1px solid #E5E7EF;border-radius:12px;background:#fff;box-shadow:2px 4px 12px #68769c3d}.ie-controls-inner[data-v-e71cb523]{display:flex;align-items:center;justify-content:center;gap:18px;width:auto;height:40px}.ie-ctrl-btn[data-v-e71cb523]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;border-radius:6px;color:#020631;cursor:pointer;transition:opacity .15s ease;flex-shrink:0}.ie-ctrl-btn[data-v-e71cb523]:hover:not(:disabled){opacity:.7}.ie-ctrl-btn[data-v-e71cb523]:disabled{opacity:.4;cursor:not-allowed}.ie-ctrl-btn img[data-v-e71cb523]{width:24px;height:24px;display:block}.ie-ctrl-divider[data-v-e71cb523]{width:1px;height:24px;background:#c4cbdd;flex-shrink:0}.ie-reset-btn[data-v-e71cb523]{border:none;background:transparent;color:#4353ff;font-size:16px;font-weight:600;cursor:pointer;padding:0 2px;border-radius:6px;text-transform:capitalize;transition:opacity .15s ease;flex-shrink:0}.ie-reset-btn[data-v-e71cb523]:hover{opacity:.75}.ie-spacer[data-v-e71cb523]{flex:1}.ie-actions-group[data-v-e71cb523]{display:flex;align-items:center;gap:12px}.ie-actions-group .ie-cancel-btn[data-v-e71cb523]{background:#fff!important;border:1px solid #4353FF!important;color:#4353ff!important;text-transform:capitalize}.ie-cp-popup[data-v-3e904000]{width:315px;box-sizing:border-box;padding:12px 21px 18px;background:#fff;border-radius:12px;box-shadow:2px 4px 12px #68769c3d;display:flex;flex-direction:column;gap:16px;font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.ie-cp-header[data-v-3e904000]{display:flex;align-items:center;justify-content:space-between;height:20px}.ie-cp-title[data-v-3e904000]{font-size:16px;font-weight:600;color:#020631}.ie-cp-close[data-v-3e904000]{width:16px;height:16px;border:none;background:transparent;color:#020631;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.ie-cp-presets[data-v-3e904000]{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.ie-cp-swatch[data-v-3e904000]{width:24px;height:24px;border-radius:50%;border:1px solid #E5E7EF;cursor:pointer;padding:0;transition:transform .12s ease}.ie-cp-swatch[data-v-3e904000]:hover{transform:scale(1.12)}.ie-cp-hue[data-v-3e904000]{position:relative;width:100%;height:24px;border-radius:8px;cursor:pointer;background:linear-gradient(90deg,#ff0700,#fb00ff 16.83%,#7e00ff 31.73%,#00f 44.23%,#00fcff 55.29%,#02ff00 72.12%,#faff00 83.17%,#ff000c)}.ie-cp-hue-disc[data-v-3e904000]{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:transparent;border:4px solid #FFFFFF;box-shadow:0 2px 4px #0000005c;transform:translate(-50%,-50%);pointer-events:none}.ie-cp-light[data-v-3e904000]{-webkit-appearance:none;appearance:none;width:100%;height:14px;border-radius:8px;outline:none;cursor:pointer}.ie-cp-light[data-v-3e904000]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #C4CBDD;box-shadow:0 2px 4px #0000004d;cursor:pointer}.ie-cp-light[data-v-3e904000]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #C4CBDD;box-shadow:0 2px 4px #0000004d;cursor:pointer}.ie-options-strip[data-v-fc88a6d0]{position:relative;width:100%;min-height:80px;background:#fff;flex-shrink:0;font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;z-index:10}.ie-options-strip[data-v-fc88a6d0] *{font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.ie-filter-row[data-v-fc88a6d0]{display:flex;align-items:center;gap:12px;padding:20px;height:100%}.ie-filter-label[data-v-fc88a6d0]{font-size:12px;font-weight:700;color:#64748b;letter-spacing:.05em}.ie-filter-select[data-v-fc88a6d0]{height:32px;padding:0 10px;border:1px solid #9CA5BE;border-radius:6px;background:#fff;color:#020631;font-size:13px;font-weight:500;outline:none;cursor:pointer}.ie-flex-spacer[data-v-fc88a6d0]{flex:1}.ie-select-mode-pill[data-v-fc88a6d0]{display:inline-flex;align-items:center;gap:6px;background:#eef2ff;border:1px solid #C7D2FE;border-radius:20px;padding:4px 14px;font-size:13px;font-weight:600;color:#4338ca}.ie-options-popup[data-v-fc88a6d0]{position:absolute;top:14px;display:flex;align-items:center;gap:16px;height:50px;min-width:346px;box-sizing:border-box;padding:0 16px;background:#fff;border:1px solid #E5E7EF;border-radius:8px;box-shadow:2px 4px 12px #68769c3d}.ie-popup-pointer[data-v-fc88a6d0]{position:absolute;top:-6px;width:11px;height:11px;background:#fff;border-left:1px solid #E5E7EF;border-top:1px solid #E5E7EF;transform:rotate(45deg)}.ie-color-wrap[data-v-fc88a6d0]{position:relative;flex-shrink:0;display:flex;align-items:center}.ie-color-circle[data-v-fc88a6d0]{width:24px;height:24px;border-radius:50%;border:2px solid #E5E7EF;cursor:pointer;padding:0}.ie-cp-anchor[data-v-fc88a6d0]{position:absolute;top:34px;left:0;z-index:400}.ie-fmt-btn[data-v-fc88a6d0]{min-width:28px;height:28px;padding:0 4px;border:1px solid transparent;background:transparent;border-radius:6px;color:#020631;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .12s ease}.ie-fmt-btn[data-v-fc88a6d0]:hover{background:#f1f5f9}.ie-fmt-btn.active[data-v-fc88a6d0]{background:#e9f2ff;border-color:#3745db}.ie-fmt-ic[data-v-fc88a6d0]{width:22px;height:22px;display:block}.ie-fmt-label[data-v-fc88a6d0]{font-size:12px;font-weight:700;color:#64748b;letter-spacing:.04em}.ie-fmt-divider[data-v-fc88a6d0]{width:1px;height:24px;background:#c4cbdd;flex-shrink:0}.ie-size-select[data-v-fc88a6d0]{width:72px;height:32px;padding:0 8px;border:1px solid #9CA5BE;border-radius:4px;background:#fff;color:#020631;font-size:14px;outline:none;cursor:pointer}.ie-mini-dropdown[data-v-fc88a6d0]{position:relative;flex-shrink:0}.ie-dd-btn[data-v-fc88a6d0]{display:inline-flex;align-items:center;gap:4px;height:36px;padding:0 6px;border:none;border-radius:6px;background:transparent;color:#020631;cursor:pointer}.ie-dd-btn[data-v-fc88a6d0]:hover{background:#f1f5f9}.ie-dd-emoji[data-v-fc88a6d0]{font-size:20px;line-height:1}.ie-dd-caret[data-v-fc88a6d0]{font-size:11px;color:#64748b}.ie-dd-menu[data-v-fc88a6d0]{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid #E5E7EF;border-radius:8px;box-shadow:0 10px 25px -5px #0206312e;padding:6px;z-index:400;min-width:160px;display:flex;flex-direction:column;gap:2px}.ie-dd-item[data-v-fc88a6d0]{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;background:transparent;border-radius:6px;color:#475569;font-size:13px;font-weight:500;cursor:pointer;text-align:left;width:100%}.ie-dd-item .ie-dd-emoji[data-v-fc88a6d0]{font-size:16px}.ie-dd-item[data-v-fc88a6d0]:hover{background:#f1f5f9;color:#020631}.ie-dd-item.active[data-v-fc88a6d0]{background:#e9f2ff;color:#3745db;font-weight:600}.ie-size-slider[data-v-fc88a6d0]{display:flex;align-items:center;gap:10px}.ie-slider-end[data-v-fc88a6d0]{font-size:14px;font-weight:500;color:#020631}.ie-slider-track[data-v-fc88a6d0]{position:relative;width:200px;display:flex;align-items:center}.ie-slider-bubble[data-v-fc88a6d0]{position:absolute;top:-26px;transform:translate(-50%);background:#fff;border-radius:6px;padding:1px 8px;font-size:14px;font-weight:600;color:#4353ff;box-shadow:0 1px 4px #68769c4d;pointer-events:none}.ie-range[data-v-fc88a6d0]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:100px;outline:none;cursor:pointer}.ie-range[data-v-fc88a6d0]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;border-radius:50%;background:#fff;border:3px solid #4353FF;cursor:pointer}.ie-range[data-v-fc88a6d0]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:#fff;border:3px solid #4353FF;cursor:pointer}.ie-canvas-host-container[data-v-8e90cc6c]{flex:1;width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;position:relative;padding:24px;box-sizing:border-box}.ie-canvas-wrapper[data-v-8e90cc6c]{position:relative;display:block;flex-shrink:0;box-shadow:0 10px 30px #0206311f;border-radius:8px;overflow:hidden;border:1px solid #E2E8F0;background:#fff;transition:transform .15s ease-out;transform-origin:center center}.ie-canvas-wrapper canvas[data-v-8e90cc6c]{display:block}.ie-pdf-layer[data-v-8e90cc6c]{display:block;background:#fff;transition:filter .2s ease}.ie-draw-layer[data-v-8e90cc6c]{display:block;position:absolute;top:0;left:0;cursor:crosshair;background:transparent}.ie-loading-overlay[data-v-8e90cc6c]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8fafce6;z-index:10;gap:16px}.ie-spinner[data-v-8e90cc6c]{width:44px;height:44px;border:4px solid #E2E8F0;border-top-color:#4353ff;border-radius:50%;animation:ie-spin-8e90cc6c .8s linear infinite}@keyframes ie-spin-8e90cc6c{to{transform:rotate(360deg)}}.ie-loading-text[data-v-8e90cc6c]{color:#020631;font-size:14px;font-weight:500;margin:0}.ie-error-state[data-v-8e90cc6c]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:auto}.ie-text-modal-backdrop[data-v-8e90cc6c]{position:fixed;inset:0;z-index:9999;background:#02063173;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;padding:0}@media(min-width:640px){.ie-text-modal-backdrop[data-v-8e90cc6c]{align-items:center;padding:20px}}.ie-text-sheet-card[data-v-8e90cc6c]{width:100%;max-width:480px;max-height:85vh;background:#fff;border-radius:24px 24px 0 0;display:flex;flex-direction:column;box-shadow:0 -10px 40px #0003;overflow:hidden;animation:slideUpModal-8e90cc6c .25s cubic-bezier(.16,1,.3,1)}@media(min-width:640px){.ie-text-sheet-card[data-v-8e90cc6c]{border-radius:24px;box-shadow:0 20px 60px #00000040}}@keyframes slideUpModal-8e90cc6c{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.ie-sheet-drag-handle[data-v-8e90cc6c]{width:36px;height:4px;background:#cbd5e1;border-radius:2px;margin:10px auto 4px;flex-shrink:0}.ie-sheet-header[data-v-8e90cc6c]{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 14px;border-bottom:1px solid #F1F5F9;flex-shrink:0}.ie-btn-text-cancel[data-v-8e90cc6c]{background:none;border:none;font-size:15px;font-weight:600;color:#475569;cursor:pointer}.ie-btn-text-cancel[data-v-8e90cc6c]:hover{color:#020631}.ie-sheet-title[data-v-8e90cc6c]{font-size:17px;font-weight:700;color:#020631}.ie-btn-done-pill[data-v-8e90cc6c]{background:#4353ff;color:#fff;border:none;font-size:14px;font-weight:700;padding:8px 22px;border-radius:12px;cursor:pointer;transition:all .15s ease}.ie-btn-done-pill[data-v-8e90cc6c]:hover{background:#3745db}.ie-sheet-body[data-v-8e90cc6c]{padding:18px 20px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px;scrollbar-width:thin}.ie-sheet-textarea[data-v-8e90cc6c]{width:100%;background:#f8fafc;border:1px solid #E2E8F0;border-radius:14px;padding:14px 16px;font-size:15px;color:#020631;outline:none;font-family:inherit;resize:vertical;transition:all .15s ease}.ie-sheet-textarea[data-v-8e90cc6c]:focus{border-color:#4353ff;background:#fff;box-shadow:0 0 0 3px #4353ff1f}.ie-sheet-preview-box[data-v-8e90cc6c]{background:#f8fafc;border:1px solid #E2E8F0;border-radius:14px;padding:20px;display:flex;align-items:center;justify-content:center;min-height:70px}.ie-sheet-section[data-v-8e90cc6c]{display:flex;flex-direction:column;gap:10px}.ie-sheet-section-title[data-v-8e90cc6c]{font-size:14px;font-weight:700;color:#020631}.ie-segmented-control[data-v-8e90cc6c]{display:flex;gap:8px;background:#f1f5f9;padding:4px;border-radius:14px}.ie-segment-btn[data-v-8e90cc6c]{flex:1;padding:10px 12px;border:1.5px solid transparent;background:transparent;border-radius:10px;font-size:14px;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s ease}.ie-segment-btn.active[data-v-8e90cc6c]{background:#fff;border-color:#4353ff;color:#4353ff;font-weight:700;box-shadow:0 2px 6px #0000000f}.ie-align-icon-row[data-v-8e90cc6c]{display:flex;gap:12px;justify-content:center}.ie-align-icon-btn[data-v-8e90cc6c]{width:46px;height:46px;border-radius:12px;border:1.5px solid #E2E8F0;background:#fff;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.ie-align-icon-btn[data-v-8e90cc6c]:hover{border-color:#cbd5e1;color:#020631}.ie-align-icon-btn.active[data-v-8e90cc6c]{background:#eef2ff;border-color:#4353ff;color:#4353ff}.ie-slider-row[data-v-8e90cc6c]{display:flex;align-items:center;gap:14px}.ie-font-size-icon[data-v-8e90cc6c]{font-size:18px;font-weight:800;color:#020631}.ie-sheet-slider[data-v-8e90cc6c]{flex:1;accent-color:#4353FF;cursor:pointer}.ie-sheet-badge[data-v-8e90cc6c]{font-size:14px;font-weight:700;color:#020631;min-width:42px;text-align:right}.ie-color-grid[data-v-8e90cc6c]{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.ie-grid-color-swatch[data-v-8e90cc6c]{width:38px;height:38px;border-radius:50%;border:2px solid #E2E8F0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,box-shadow .12s ease;position:relative}.ie-grid-color-swatch[data-v-8e90cc6c]:hover{transform:scale(1.15);box-shadow:0 4px 12px #00000026}.ie-grid-color-swatch.active[data-v-8e90cc6c]{transform:scale(1.1);box-shadow:0 0 0 3px #4353ff59;border-color:#4353ff}.ie-swatch-check[data-v-8e90cc6c]{font-size:16px;font-weight:900}.ie-embed-checkbox-row[data-v-8e90cc6c]{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.ie-embed-checkbox[data-v-8e90cc6c]{width:20px;height:20px;accent-color:#4353FF;cursor:pointer;flex-shrink:0;margin-top:2px}.ie-sheet-select[data-v-8e90cc6c]{width:100%;background:#f8fafc;border:1px solid #CBD5E1;border-radius:12px;padding:12px 14px;font-size:14px;font-weight:500;color:#020631;outline:none;cursor:pointer;font-family:inherit;transition:all .15s ease}.ie-sheet-select[data-v-8e90cc6c]:focus{border-color:#4353ff;background:#fff;box-shadow:0 0 0 3px #4353ff1f}.ie-selected-finding-card[data-v-8e90cc6c]{background:#f8fafc;border:1px solid #E2E8F0;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}.ie-sfc-header[data-v-8e90cc6c]{display:flex;align-items:center;justify-content:space-between;gap:8px}.ie-sfc-badge[data-v-8e90cc6c]{font-size:13px;font-weight:700;color:#020631}.ie-sfc-tag[data-v-8e90cc6c]{font-size:11px;font-weight:600;background:#eef2ff;color:#4353ff;padding:2px 8px;border-radius:12px}.ie-sfc-desc[data-v-8e90cc6c]{font-size:13px;color:#64748b;margin:0;line-height:1.4}.ie-finding-empty-notice[data-v-8e90cc6c]{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px dashed #CBD5E1;border-radius:12px;padding:14px;font-size:13px;color:#64748b;line-height:1.4}.ie-editor-root[data-v-ec9a2682]{display:flex;flex-direction:column;width:100%;height:100%;background:#f1f5f9;position:relative;overflow:hidden;font-family:Poppins,Inter,-apple-system,BlinkMacSystemFont,sans-serif}.ie-editor-workspace[data-v-ec9a2682]{flex:1;display:flex;position:relative;overflow:hidden}.ie-modal-overlay[data-v-70e548e4]{position:fixed;inset:0;background:#020631a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:60000;display:flex;align-items:center;justify-content:center;padding:16px;font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.ie-modal-overlay[data-v-70e548e4] *{font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.ie-modal-container[data-v-70e548e4]{width:94vw;height:92vh;background:#fff;border:1px solid #E2E8F0;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:hidden;transition:all .2s ease}.ie-modal-container.is-fullscreen[data-v-70e548e4]{width:100vw;height:100vh;border-radius:0;border:none}.ie-modal-header[data-v-70e548e4]{display:flex;align-items:center;justify-content:space-between;padding:16px;background:#fff;border-bottom:1px solid #C4CBDD}.ie-modal-title-group[data-v-70e548e4]{display:flex;align-items:center;gap:9px;height:40px}.ie-modal-icon[data-v-70e548e4]{font-size:18px;display:flex;align-items:center}.ie-brand-text[data-v-70e548e4]{font-size:14px;font-weight:600;text-transform:capitalize;background:linear-gradient(180deg,#4353ff,#8528f8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.ie-doc-name[data-v-70e548e4]{font-size:16px;font-weight:600;color:#020631;line-height:20px}.ie-header-close-btn[data-v-70e548e4]{width:48px;height:40px;border:none;background:transparent;border-radius:8px;padding:8px 12px;display:flex;align-items:center;justify-content:center;color:#020631;cursor:pointer;transition:background .15s ease}.ie-header-close-btn[data-v-70e548e4]:hover{background:#f1f5f9}.ie-modal-actions[data-v-70e548e4]{display:flex;align-items:center;gap:8px}.ie-header-icon-btn[data-v-70e548e4]{background:#f8fafc;border:1px solid #E2E8F0;color:#475569;font-size:14px;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.ie-header-icon-btn[data-v-70e548e4]:hover{background:#f1f5f9;color:#020631}.ie-header-icon-btn.close-btn[data-v-70e548e4]:hover{background:#fef2f2;border-color:#fca5a5;color:#ef4444}.ie-modal-body[data-v-70e548e4]{flex:1;width:100%;height:calc(100% - 48px);position:relative;overflow:hidden;background:#f1f5f9}.preview-overlay[data-v-482494c3]{position:fixed;inset:0;background:#02063140;display:flex;justify-content:center;align-items:center;z-index:2500}.preview-modal[data-v-482494c3]{width:1415px;max-width:95vw;height:877px;max-height:90vh;background:#fff;border-radius:24px;box-shadow:0 8px 32px #02063126;display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease;box-sizing:border-box}.preview-modal.full-screen[data-v-482494c3]{width:100%;height:100%;max-width:100vw;max-height:100vh;border-radius:0}.preview-header[data-v-482494c3]{height:58px;min-height:58px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #C4CBDD;flex-shrink:0}.preview-title[data-v-482494c3]{font-family:Poppins,sans-serif;font-weight:700;font-size:16px;color:#020631}.header-icon-btn[data-v-482494c3]{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;transition:background-color .2s ease}.header-icon-btn[data-v-482494c3]:hover{background-color:#f0f2ff}.header-icon[data-v-482494c3]{width:20px;height:20px}.preview-body[data-v-482494c3]{flex-grow:1;position:relative;background:#f8f9ff;display:flex;align-items:center;justify-content:center;overflow:hidden}.image-viewport[data-v-482494c3]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px;box-sizing:border-box}.preview-img[data-v-482494c3]{max-width:80%;max-height:80%;object-fit:contain;transition:transform .1s ease;border-radius:12px}.floating-actions[data-v-482494c3]{position:absolute;top:16px;right:16px;width:40px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#f9f9fc;padding:8px;border-radius:4px;box-shadow:0 2px 8px #0206310f;box-sizing:border-box}.float-btn[data-v-482494c3]{background:none;border:none;padding:0;width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center}.float-btn.download-btn .float-icon[data-v-482494c3]{filter:invert(92%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(90%) contrast(85%)}.float-btn.delete-btn .float-icon[data-v-482494c3]{filter:invert(30%) sepia(16%) saturate(1175%) hue-rotate(189deg) brightness(95%) contrast(87%)}.float-icon[data-v-482494c3]{width:24px;height:24px}.preview-footer[data-v-482494c3]{position:relative;height:58px;min-height:58px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent;border-top:1px solid #C4CBDD}.zoom-controls[data-v-482494c3]{display:flex;align-items:center;gap:16px}.zoom-select[data-v-482494c3]{width:100px;height:36px;padding:4px 8px;border:1px solid #C4CBDD;border-radius:8px;font-family:Poppins,sans-serif;font-weight:500;font-size:14px;color:#020631;background-color:#fff;cursor:pointer;outline:none;box-sizing:border-box}.zoom-select[data-v-482494c3]:focus{border-color:#4353ff}.zoom-btn[data-v-482494c3]{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center}.zoom-btn[data-v-482494c3]:hover:not(:disabled){background-color:#f0f2ff}.zoom-btn[data-v-482494c3]:disabled{opacity:.4;cursor:not-allowed}.zoom-icon-img[data-v-482494c3]{width:20px;height:20px}.zoom-slider[data-v-482494c3]{-webkit-appearance:none;appearance:none;width:157px;height:4px;background:#e5e7ef;border-radius:2px;outline:none;cursor:pointer}.zoom-slider[data-v-482494c3]::-webkit-slider-runnable-track{width:100%;height:4px;background:#4353ff;border-radius:2px}.zoom-slider[data-v-482494c3]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid #4353FF;margin-top:-5px;cursor:pointer;box-shadow:0 1px 3px #00000026}.zoom-slider[data-v-482494c3]::-moz-range-track{width:100%;height:4px;background:#4353ff;border-radius:2px}.zoom-slider[data-v-482494c3]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:#fff;border:3px solid #4353FF;cursor:pointer;box-shadow:0 1px 3px #00000026}.close-btn[data-v-482494c3]{position:absolute;right:24px;background:none;border:none;font-family:Poppins,sans-serif;font-weight:600;font-size:16px;color:#4353ff;cursor:pointer;padding:8px 16px;transition:opacity .2s ease}.close-btn[data-v-482494c3]:hover{opacity:.8}.required-dot{color:red;font-size:20px}.label_text{display:block;width:100%;font-family:Poppins,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#47506a;white-space:normal;overflow-wrap:break-word;word-break:break-word}[data-v-07ecd544]{margin:0;padding:0;box-sizing:border-box}.loader-screen[data-v-07ecd544]{position:fixed;top:0;left:0;height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;z-index:99999;overflow:hidden;background:#fff6;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.loader-content[data-v-07ecd544]{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.dots[data-v-07ecd544]{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center}.loader-screen .dots span[data-v-07ecd544]{position:absolute;top:50%;left:50%;height:10px;width:10px;background:#4353ff;border-radius:50%;transform:translate(-50%,-50%) rotate(calc(var(--i) * (360deg / 10))) translateY(35px);animation:animate-07ecd544 1s linear infinite;animation-delay:calc(var(--i) * .1s);opacity:0}.loading-text[data-v-07ecd544]{margin-top:20px;font-size:16px;color:#333}.loader-screen2[data-v-07ecd544]{position:fixed;top:0;left:0;height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;z-index:99999;overflow:hidden;background:#fff;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.loader-content2[data-v-07ecd544]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;max-width:500px;padding:0 20px}.image[data-v-07ecd544]{width:140px;height:122px;background-size:contain;background-repeat:no-repeat;background-position:center}.line[data-v-07ecd544]{width:100%;max-width:400px;height:8px;background:transparent;position:relative;overflow:hidden;border-radius:4px}.line[data-v-07ecd544]:after{content:"";position:absolute;height:100%;width:100%;background:#4353ff;border-radius:4px;animation:colorTransition-07ecd544 8s ease forwards}.loading-text2[data-v-07ecd544]{font-size:16px;color:#666;text-align:center;line-height:1.5;font-weight:400}.inline-loader[data-v-07ecd544]{padding:8px;display:flex;align-items:center}.inline-loader .loader-content[data-v-07ecd544]{display:flex;flex-direction:column;align-items:center;gap:12px}.inline-loader .dots[data-v-07ecd544]{position:relative;width:56px;height:48px}.inline-loader .dots span[data-v-07ecd544]{position:absolute;top:50%;left:50%;width:8px;height:8px;background:#4353ff;border-radius:50%;transform:translate(-50%,-50%) rotate(calc(var(--i) * (360deg / 8))) translateY(20px);animation:animate-07ecd544 1s linear infinite;animation-delay:calc(var(--i) * .1s);opacity:0}.inline-loader .loading-text3[data-v-07ecd544]{font-family:Poppins,sans-serif;font-size:14px;line-height:20px;color:#020631}@media(max-width:768px){.dots[data-v-07ecd544]{width:80px;height:80px}.loader-screen .dots span[data-v-07ecd544]{height:8px;width:8px;transform:translate(-50%,-50%) rotate(calc(var(--i) * (360deg / 10))) translateY(28px)}.loading-text[data-v-07ecd544]{margin-top:16px;font-size:14px}.loader-content2[data-v-07ecd544]{gap:20px;max-width:400px}.image[data-v-07ecd544]{width:110px;height:96px}.line[data-v-07ecd544]{max-width:320px;height:6px}.loading-text2[data-v-07ecd544]{font-size:14px}}@media(max-width:480px){.dots[data-v-07ecd544]{width:60px;height:60px}.loader-screen .dots span[data-v-07ecd544]{height:6px;width:6px;transform:translate(-50%,-50%) rotate(calc(var(--i) * (360deg / 10))) translateY(20px)}.loading-text[data-v-07ecd544]{margin-top:12px;font-size:13px}.loader-content2[data-v-07ecd544]{gap:16px;max-width:300px;padding:0 16px}.image[data-v-07ecd544]{width:90px;height:78px}.line[data-v-07ecd544]{max-width:260px;height:5px}.loading-text2[data-v-07ecd544]{font-size:13px;line-height:1.4}}@keyframes colorTransition-07ecd544{0%{background:#fff}to{background:#4353ff}}@keyframes animate-07ecd544{0%{opacity:1}to{opacity:0}}.chart-card[data-v-5bc1321c]{font-family:Poppins,sans-serif;max-width:100%;border-radius:16px;border:1px solid #E5E7EF;padding:16px 20px;width:100%;background:#fff;box-shadow:2px 4px 8px #68769c14}.canvas-wrapper[data-v-5bc1321c]{border-radius:10px;background:#fff;display:flex;justify-content:center}.chart-header[data-v-5bc1321c]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.toolbar-buttons[data-v-5bc1321c]{display:flex;gap:24px}.toolbar-zoomsBtn[data-v-5bc1321c]{display:flex;width:222px;height:36px;border-radius:6px;border:1px solid #C4CBDD;padding:6px;gap:24px}.icon-btn[data-v-5bc1321c]{cursor:pointer}.resetClass[data-v-5bc1321c]{padding:6px 12px;border-radius:8px;font-weight:600;background-color:#fff;color:#4353ff}.dialog-overlay[data-v-cd288801]{font-family:Poppins,sans-serif;position:fixed;inset:0;background:#3c3c3c1f;display:flex;align-items:center;justify-content:center;z-index:99999;overflow:auto;padding:16px}.dialog-card[data-v-cd288801]{background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000024;padding:24px clamp(16px,5vw,32px) 32px;max-width:clamp(320px,90vw,480px);width:100%;text-align:center;animation:dialogPop-cd288801 .18s cubic-bezier(.4,0,.2,1);outline:none;-webkit-user-select:auto;user-select:auto;max-height:90vh;overflow-y:auto;align-items:center;justify-content:center;display:flex;flex-direction:column;gap:16px}@keyframes dialogPop-cd288801{0%{transform:scale(.88) translateY(48px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.dialog-icon[data-v-cd288801]{width:52px;height:52px;display:flex;justify-content:center;align-items:center}.dialog-title[data-v-cd288801]{font-size:1.5rem;margin:0}.dialog-message[data-v-cd288801]{margin:0}.dialog-actions[data-v-cd288801]{display:flex;gap:12px;justify-content:center}.cancel-btn[data-v-cd288801]{padding:4px 8px;border-radius:8px;border:1px solid #4353ff;background-color:#fff;color:#4353ff}.dropdown-container[data-v-37314108]{width:100%;max-width:100%;position:relative;font-family:Poppins,sans-serif}.dropdown-header[data-v-37314108]{padding:12px 8px;border:1px solid #9CA5BE;border-radius:4px;cursor:pointer;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:10px;height:40px}.labelText[data-v-37314108]{font-size:14px;margin:opx;color:#47506a;font-weight:400}.arrow[data-v-37314108]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.arrow img[data-v-37314108]{width:20px;height:20px;display:block}.Options_Label[data-v-37314108]{display:flex;gap:4px}.asterisk[data-v-37314108]{color:#d60000}.dropdown-list[data-v-37314108]{position:absolute;top:calc(100% + 6px);left:0;width:100%;border:1px solid #C4CBDD;border-radius:4px;background:#fff;overflow-y:auto;z-index:1000}.dropdown-list[data-v-37314108]::-webkit-scrollbar{width:6px}.dropdown-list[data-v-37314108]::-webkit-scrollbar-thumb{background:#9ca5be;border-radius:12px}.dropdown-list.upward[data-v-37314108]{top:auto;bottom:calc(100% + 6px)}.dropdown-item[data-v-37314108]{padding:12px;display:flex;gap:10px;align-items:center;cursor:pointer}.dropdown-item[data-v-37314108]:last-child{border-bottom:none}.dropdown-item[data-v-37314108]:hover{background:#eef1ff}.dropdown-item.selected[data-v-37314108]{background:#fff;color:#4353ff;border:1px solid #4353FF;font-weight:500}input[type=checkbox][data-v-37314108]{accent-color:#4353FF}.selected-options[data-v-37314108]{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;flex:1;overflow:hidden}.right-section[data-v-37314108]{display:flex;align-items:center;gap:8px;flex-shrink:0}.measure-container[data-v-37314108]{position:absolute;visibility:hidden;top:0;left:0;display:flex;gap:6px;pointer-events:none;z-index:-1;white-space:nowrap}.placeholder[data-v-37314108]{font-family:Poppins,sans-serif;font-size:12px;font-weight:400;color:#47506a}.selected-tag[data-v-37314108]{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #9CA5BE;border-radius:14px;padding:2px 8px;font-size:12px;white-space:nowrap}.remove[data-v-37314108]{cursor:pointer;font-size:12px;color:#020631;height:16px;width:16px}.closeIcon[data-v-37314108]{height:16px;width:16px}.dropdown-header.disabled[data-v-37314108]{background:#f5f5f5;cursor:not-allowed;color:#000}.dropdown-item.disabled[data-v-37314108]{cursor:not-allowed;opacity:.6;pointer-events:none}input[type=checkbox][data-v-37314108]:disabled{accent-color:#ccc}.more-items[data-v-37314108]{color:#4353ff;font-size:13px;font-weight:500;margin-left:2px;cursor:default;white-space:nowrap}.inline-more[data-v-37314108]{margin-left:6px}.obj-dropdown[data-v-71073086]{position:relative;border:1px solid #9CA5BE;border-radius:4px;background:#fff;height:40px;font-size:12px;font-family:Poppins,sans-serif;color:#020631}.dropdown-header[data-v-71073086]{display:flex;align-items:center;justify-content:space-between;height:100%;padding:6px;cursor:pointer}.label[data-v-71073086]{font-family:Poppins,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label.placeholder[data-v-71073086]{color:#9ca5be}.icon img[data-v-71073086]{width:20px;height:20px;display:block}.options[data-v-71073086]{list-style:none;padding:6px 0;margin:1px 0 0;border:1px solid #ccc;border-radius:6px;position:absolute;width:100%;background:#fff;max-height:150px;overflow-y:auto;z-index:1000;scrollbar-width:none}.options li[data-v-71073086]{padding:12px 8px;height:44px;font-size:14px;font-family:Poppins,sans-serif;color:#020631;cursor:pointer}.options li.active[data-v-71073086],.options li[data-v-71073086]:hover{background:#f2f2f2}.empty-option[data-v-71073086]{padding:12px 8px;height:44px;font-size:14px;color:#9ca5be;text-align:center;cursor:default;pointer-events:none}.segmented-control[data-v-11f47ff8]{font-family:Poppins,sans-serif;display:inline-flex;flex-wrap:nowrap}.seg-btn[data-v-11f47ff8]{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;width:91px;height:44px;background:#fff;padding:8px 12px;border:1px solid #9ca5be;color:#020631;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;outline:none;position:relative;box-sizing:border-box}.seg-btn[data-v-11f47ff8]:hover{box-shadow:0 4px 12px #4353ff2e,0 2px 8px #0000001f}.seg-btn.focused[data-v-11f47ff8]{border:1px solid #a43dff;box-shadow:2px 4px 12px #68769c3d}.seg-btn.selected[data-v-11f47ff8]{border:1px solid #4353ff;color:#4353ff;z-index:1;position:relative}.seg-btn.left[data-v-11f47ff8]{border-radius:6px 0 0 6px}.seg-btn.middle[data-v-11f47ff8]{border-radius:0;margin-left:-1px;margin-right:-1px}.seg-btn.right[data-v-11f47ff8]{border-radius:0 6px 6px 0}.seg-btn.left+.seg-btn.right[data-v-11f47ff8]{margin-left:-1px}.icon[data-v-11f47ff8]{display:inline-flex;align-items:center;font-size:16px;transition:filter .2s ease,opacity .2s ease}.seg-btn .icon[data-v-11f47ff8]:not(:last-child){margin-right:8px}.seg-btn:not(.selected) .icon[data-v-11f47ff8]{filter:brightness(0);opacity:.9}.seg-btn.selected .icon[data-v-11f47ff8]{filter:none;opacity:1}.seg-btn.disabled[data-v-11f47ff8]{cursor:not-allowed}.seg-btn.disabled[data-v-11f47ff8]:hover{box-shadow:none}.seg-btn .label[data-v-11f47ff8]{display:inline-flex;align-items:center}@media(max-width:480px){.segmented-control[data-v-11f47ff8]{flex-wrap:nowrap;overflow-x:auto}.seg-btn[data-v-11f47ff8]{flex-shrink:0}}@media(min-width:600px){.seg-btn[data-v-11f47ff8]{width:91px;padding:8px 16px}}.page-title[data-v-539638b2]{display:flex;align-items:center;justify-content:flex-start;padding:12px 20px;background:transparent;width:100%;box-sizing:border-box}.title-left[data-v-539638b2]{display:flex;align-items:center;gap:8px;flex-shrink:0}.page-icon[data-v-539638b2]{width:40px;height:40px;object-fit:contain}.page-name[data-v-539638b2]{font-family:Poppins,sans-serif;font-weight:700;font-style:normal;font-size:24px;line-height:30px;letter-spacing:0;color:#020631;margin:0}.title-actions[data-v-539638b2]{margin-left:auto;display:flex;align-items:center;gap:8px;box-sizing:border-box}[data-v-539638b2] .icon{margin:0}.action-btn[data-v-539638b2]{background-color:#4353ff;color:#fff;border:none;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s ease}.action-btn[data-v-539638b2]:hover{background-color:#2f3bdd}.progress-wrapper[data-v-c765527e]{font-family:Poppins,sans-serif;width:220px;display:flex;flex-direction:column;gap:6px;text-align:center}.progress-bar[data-v-c765527e]{width:100%;height:10px;background:#c4cbdd;border-radius:6px;overflow:hidden}.progress-fill[data-v-c765527e]{height:100%;background:#008516;border-radius:6px;transition:width .3s ease}.percentage[data-v-c765527e]{font-size:14px;font-weight:400;color:#020631}.label[data-v-c765527e]{font-size:16px;font-weight:400;color:#020631}.sub-label[data-v-c765527e]{font-size:12px;font-weight:400;color:#47506a}.gauge-wrapper[data-v-461bdcd5]{font-family:Poppins,sans-serif;width:220px;text-align:center;display:flex;flex-direction:column;gap:6px}.gauge[data-v-461bdcd5]{position:relative;width:120px;height:50px;margin:0 auto}.bar[data-v-461bdcd5]{position:absolute;bottom:0;left:48%;width:4px;height:22px;background:#c4cbdd;border-radius:4px;transform-origin:center bottom}.bar.active[data-v-461bdcd5]{background:#008516}.center-text[data-v-461bdcd5]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:40px}.percentage[data-v-461bdcd5]{font-size:14px;font-weight:400;color:#020631}.label[data-v-461bdcd5]{font-size:16px;font-weight:400;color:#020631}.sub-label[data-v-461bdcd5]{font-size:12px;font-weight:400;color:#47506a}.radio-group[data-v-4f1b10e4]{font-family:Poppins,sans-serif;display:flex;font-weight:400;font-size:16px;line-height:24px;color:#020631;margin-left:8px}.active[data-v-4f1b10e4]{flex-direction:column}.radio-item[data-v-4f1b10e4]{display:flex;width:180px;align-items:center}.input_radio[data-v-4f1b10e4]{margin-right:16px}.searchbar-container[data-v-ee0e9a6f]{display:flex;align-items:center;background:#fff;border:1px solid var(--Color-Neutral-400, #68769C);gap:8px;transition:border-color .3s ease,box-shadow .3s ease;min-width:0}.searchbar-container[data-v-ee0e9a6f]:focus-within{border-color:#a43dff;background:#fff;box-shadow:2px 4px 12px #68769c3d}.searchbar-container.active[data-v-ee0e9a6f]{border:2px solid #4353ff;background:#fff;box-shadow:none}.searchbar-container.disabled[data-v-ee0e9a6f]{background:#f5f5f5;border:1px solid #9ca5be;cursor:not-allowed}.searchbar-container.disabled input[data-v-ee0e9a6f],.searchbar-container.disabled button[data-v-ee0e9a6f]{pointer-events:none;color:#a0a0a0;background:transparent}.searchbar-container input[data-v-ee0e9a6f]{display:flex;align-items:center;border:none;outline:none;flex-grow:1;font-family:poppins,sans-serif;background:transparent;min-width:0;width:100%}.searchbar-container input[data-v-ee0e9a6f]::placeholder{color:#999}.searchbar-container button[data-v-ee0e9a6f]{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:5px;box-sizing:border-box;height:24px;width:24px}.searchbar-container button:hover .icon[data-v-ee0e9a6f]{color:#007bff}.icon[data-v-ee0e9a6f]{font-size:18px;color:#020631;transition:color .3s ease}.search-icon[data-v-ee0e9a6f]{font-size:20px}.clear-icon[data-v-ee0e9a6f]{font-size:18px}.searchbar-large[data-v-ee0e9a6f]{width:358px;height:48px;padding:10px 16px;border-radius:12px;font-size:16px;box-sizing:border-box}.searchbar-large[data-v-ee0e9a6f]:hover{border-color:#68769c;box-shadow:2px 4px 12px #68769c3d}.searchbar-large input[data-v-ee0e9a6f]{font-size:16px}.searchbar-small[data-v-ee0e9a6f]{width:358px;height:40px;padding:10px 14px;border-radius:10px;font-size:14px;box-sizing:border-box}.searchbar-small[data-v-ee0e9a6f]:hover{border-color:#68769c;box-shadow:2px 4px 12px #68769c3d}.searchbar-small input[data-v-ee0e9a6f]{font-size:14px}.SearchComponent[data-v-fccc4686]{display:flex;flex-direction:column;gap:8px}.searchBar-filter-wrapper[data-v-fccc4686]{display:flex;align-items:center;padding:0 16px;gap:13px}.filter-button[data-v-fccc4686]{border-radius:8px;padding:10px 11px;border:1px solid #4353ff;box-sizing:border-box;background-color:#fff}.filter-count-applied[data-v-fccc4686]{height:26px;font-family:Poppins,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:20px;letter-spacing:0%;color:#4353ff;border-radius:20px;border:1px solid #0075ff;padding:3px 8px;display:flex;gap:4px;background-color:#e9f2ff}.filter_options[data-v-fccc4686]{display:flex;gap:16px;padding:8px 18px;flex-wrap:wrap;box-sizing:border-box;width:100%;height:42px;margin-top:16px;align-items:center;border-top:1px solid #C4CBDD}.close-icon[data-v-fccc4686]{width:12px;height:12px;background-color:#4353ff;mask:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADHSURBVHgBjZNBDgIhDEVbDJ5jjqJHmZ2zc+kRXLrTnUfRo3AMI4naFiXjUAo/mYTw+z5DG3C3Pw/g/RViHC+nKUCH5oyTBcIG1v4mRg9MtcIQ62AVR9oP9A2tkAxzLTPEohgHMl4z4xm3y+sUsKOa4xQwFxghNZg9/DtFCRGjAhcBakiSCqsBSgjUYJbTAuDRuaf9QdGwpLRWpoMm7L5NNEaMFvy7szVibMH5gEoI9sBWSHpMHTBLvNSXIEx+TG+4t+AihBliP9ZZtURAvcKuAAAAAElFTkSuQmCC) no-repeat center;mask-size:contain;-webkit-mask:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADHSURBVHgBjZNBDgIhDEVbDJ5jjqJHmZ2zc+kRXLrTnUfRo3AMI4naFiXjUAo/mYTw+z5DG3C3Pw/g/RViHC+nKUCH5oyTBcIG1v4mRg9MtcIQ62AVR9oP9A2tkAxzLTPEohgHMl4z4xm3y+sUsKOa4xQwFxghNZg9/DtFCRGjAhcBakiSCqsBSgjUYJbTAuDRuaf9QdGwpLRWpoMm7L5NNEaMFvy7szVibMH5gEoI9sBWSHpMHTBLvNSXIEx+TG+4t+AihBliP9ZZtURAvcKuAAAAAElFTkSuQmCC) no-repeat center;-webkit-mask-size:contain}.filters[data-v-fccc4686]{width:auto;padding:4px 8px;height:26px;display:flex;align-items:center;border:1px solid #9CA5BE;border-radius:16px;font-family:Popins,Arial,sans-serif;font-size:12px;color:#020631;background:#fff;cursor:pointer;transition:all .2s}.filters.selected[data-v-fccc4686]{display:flex;gap:7px;background:#e9f2ff;border-color:#4353ff;color:#4353ff;align-items:center}.select-group[data-v-f910750a]{font-family:Poppins,sans-serif}.messageContainer[data-v-9905706b]{font-family:Poppins,sans-serif;display:flex;border-radius:12px;width:100%}.message[data-v-9905706b]{display:flex;align-items:center;justify-content:center;padding:24px;gap:16px}.infoIcon[data-v-9905706b]{width:32px;height:32px;display:grid;place-content:center}.infoIcon img[data-v-9905706b]{width:26px;height:26px}.messageTitle[data-v-9905706b]{font-weight:600;font-size:16px;line-height:20px;color:#020631}.messageText[data-v-9905706b]{font-weight:400;font-size:14px;line-height:20px;color:#47506a}.multiline[data-v-9905706b]{display:flex;gap:16px}.info[data-v-9905706b]{background-color:#e9f2ff;border:1px solid #0055D4}.warning[data-v-9905706b]{background-color:#fff3eb;border:1px solid #EC6E0E}.success[data-v-9905706b]{background-color:#dcfff1;border:1px solid #008516}.error[data-v-9905706b]{background-color:#ffeceb;border:1px solid #D60000}.neutral[data-v-9905706b]{background-color:#f5f5f5;border:1px solid #9CA5BE}.crossIcon[data-v-9905706b]{margin:24px 16px 0 0;width:20px;height:20px}.crossIcon img[data-v-9905706b]{width:14px;height:14px}.sidepanel[data-v-275d56d6]{position:relative;box-sizing:border-box;width:298px;height:100vh;padding:32px 24px;display:flex;justify-content:space-between;flex-direction:column;background:#020631;z-index:2000;transition:width .45s cubic-bezier(.4,0,.2,1),padding .45s cubic-bezier(.4,0,.2,1)}.sidepanel.collapsed[data-v-275d56d6]{width:108px;padding:32px 24px;display:flex;justify-content:space-between;background-color:#020631;transition:width .45s cubic-bezier(.4,0,.2,1),padding .45s cubic-bezier(.4,0,.2,1)}.sidepanel-header[data-v-275d56d6]{position:relative;box-sizing:border-box;padding-left:16px;width:250px;height:44px;display:flex;align-items:start;transition:padding .4s ease,height .4s ease}.sidepanel-header.collapsed[data-v-275d56d6]{box-sizing:border-box;width:60px;height:48px!important;padding-left:0;transition:width .45s cubic-bezier(.4,0,.2,1),padding .45s cubic-bezier(.4,0,.2,1);display:flex;align-items:center}.header-logo-toggle[data-v-275d56d6]{position:relative;width:120px;height:48px;transition:width .45s cubic-bezier(.4,0,.2,1),padding .45s cubic-bezier(.4,0,.2,1)}.wordLogo[data-v-275d56d6]{position:absolute;left:0;top:50%;transform:translateY(-50%) scale(1);opacity:1;transition:opacity .3s ease,transform .3s ease}.A-icon[data-v-275d56d6]{position:absolute;left:50%;top:50%;width:60px;height:48px;transform:translate(-50%,-50%) scale(.8);opacity:0;transition:opacity .3s ease,transform .3s ease}.sidepanel.collapsed .wordLogo[data-v-275d56d6]{opacity:0;transform:translateY(-50%) scale(.9)}.sidepanel.collapsed .A-icon[data-v-275d56d6]{opacity:1;transform:translate(-50%,-50%) scale(1)}.toggle-wrapper-btn[data-v-275d56d6]{position:absolute;top:32px;right:0;transform:translate(50%);width:44px;height:44px;border-radius:8px;padding:10px;background:#fff;border:1px solid #020631;transition:background-color .3s ease}.header-left-arrow[data-v-275d56d6]{transition:transform .6s ease}.header-left-arrow.rotated[data-v-275d56d6]{transform:rotate(180deg)}.middle-part[data-v-275d56d6]{flex-grow:1;padding-top:48px;padding-bottom:48px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.sidepanel.collapsed .middle-part[data-v-275d56d6]{padding:48px 23px;margin:0 -20px}.sidepanel-menu li[data-v-275d56d6]{height:48px;padding:12px;display:flex;align-items:center;gap:8px;cursor:pointer;color:#fff;font-family:Poppins,sans-serif;font-size:17px;line-height:24px;font-weight:400;border-radius:8px;transition:padding .45s cubic-bezier(.4,0,.2,1)}.sidepanel.collapsed .sidepanel-menu li[data-v-275d56d6]{display:flex;justify-content:center;padding:12px;gap:0}.sidepanel.collapsed .sidepanel-menu li .menu-label[data-v-275d56d6],.sidepanel.collapsed .sidepanel-menu li .nav-arrow[data-v-275d56d6]{display:none!important}.sidepanel.collapsed .sidepanel-menu li img[data-v-275d56d6]{margin:0 auto}.sidepanel-menu ul[data-v-275d56d6]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.sidepanel-menu li img[data-v-275d56d6]{width:24px;height:24px;object-fit:contain}.sidepanel.collapsed .sidepanel-menu li[data-v-275d56d6]{display:flex;justify-content:center}.sidepanel-menu li.is-selected[data-v-275d56d6]{background-color:#4353ff;border:none}@media(hover:hover)and (pointer:fine){.sidepanel-menu li[data-v-275d56d6]:hover:not(.is-selected):not(:focus-visible){background-color:#3745db}}.sidepanel-menu li[data-v-275d56d6]:focus-visible:not(.is-selected){outline:none;border:4px solid #A43DFF;padding:8px;box-sizing:border-box}.sidepanel-footer[data-v-275d56d6]{box-sizing:border-box;height:48px;border-radius:8px;padding:12px}.sidepanel.collapsed .sidepanel-footer[data-v-275d56d6]{box-sizing:border-box;height:48px;border-radius:8px;padding:12px;display:flex;justify-content:center}.sidepanel-footer-logout-btn[data-v-275d56d6]{box-sizing:border-box;height:24px;display:flex;gap:10px;background:transparent;border:none;outline:none}.sidepanel.collapsed .sidepanel-footer-logout-btn[data-v-275d56d6]{box-sizing:border-box;height:24px;display:flex;gap:10px}.sidepanel-footer-section[data-v-275d56d6]{height:24px;display:flex;align-items:center;gap:8px}.sidepanel.collapsed .sidepanel-footer-section[data-v-275d56d6]{height:24px;display:flex;align-items:center;justify-content:center;gap:8px}.sidepanel-footer-section-text[data-v-275d56d6]{font-family:Poppins,sans-serif;font-weight:400;font-size:16px;line-height:20px;letter-spacing:0%;color:#fff}.submenu-lv1[data-v-275d56d6]{position:absolute;top:180px;left:100%;margin-left:-10px;min-width:220px;background:#020631;border-radius:4px;padding:0;box-shadow:2px 4px 12px #68769c3d;z-index:1050}.submenu-lv1-list[data-v-275d56d6]{list-style:none;margin:0 0 6px;padding:0}.submenu-lv1-item[data-v-275d56d6]{max-width:220px;height:52px;padding:12px 8px;position:relative;display:flex;align-items:center;justify-content:space-between!important;gap:8px;cursor:pointer;color:#fff;font-family:Poppins,sans-serif;font-size:14px;line-height:20px;border-radius:0;box-sizing:border-box}.submenu-lv1-item[data-v-275d56d6]:hover{background-color:#00085c;border-bottom:1px solid #3745DB}.submenu-lv1-left[data-v-275d56d6]{display:flex;align-items:center;gap:8px}.submenu-lv1-icon[data-v-275d56d6]{width:20px;height:20px;object-fit:contain}.submenu-lv1-label[data-v-275d56d6]{flex:1;box-sizing:border-box}.submenu-lv1-arrow img[data-v-275d56d6]{width:16px!important;height:16px!important;filter:brightness(0) invert(1)}.nav-arrow[data-v-275d56d6]{margin-left:auto;display:flex;align-items:center}.nav-arrow img[data-v-275d56d6]{width:16px!important;height:16px!important;filter:brightness(0) invert(1)}.submenu-lv2[data-v-275d56d6]{position:absolute;top:-52px;left:100%;min-width:220px;background:#020631;border-radius:4px;padding:0;box-shadow:0 8px 24px #00000059;z-index:1060}.submenu-lv2-list[data-v-275d56d6]{list-style:none;margin:0 0 6px;padding:0}.submenu-lv2-item[data-v-275d56d6]{height:52px;padding:12px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;color:#fff;font-family:Poppins,sans-serif;font-size:14px}.submenu-lv2-item[data-v-275d56d6]:hover{background-color:#00085c;border-bottom:1px solid #3745DB}.submenu-lv2-external img[data-v-275d56d6]{width:16px;height:16px;filter:brightness(0) invert(1)}.show,.submenu-lv1[style*="display: block"]~.sidepanel-menu li[data-v-275d56d6]:nth-child(2),.submenu-lv1:not([style*="display: none"])~.sidepanel-menu li[data-v-275d56d6]:nth-child(2){background-color:#3745db!important}[data-v-275d56d6] .submenu-lv1~.sidepanel-menu li:nth-child(2){background-color:#3745db!important}.sidepanel-menu li.has-submenu-open[data-v-275d56d6]{background-color:#3745db!important}.sidepanel-menu li.has-submenu-open[data-v-275d56d6]:hover:not(.is-selected){background-color:#4353ff!important}.sidepanel-menu li.apps-submenu-open[data-v-275d56d6]:hover{background-color:#4353ff}.sidepanel-menu li.no-hover[data-v-275d56d6]:hover,.sidepanel-menu li.no-hover[data-v-275d56d6]:focus-visible{background-color:transparent!important;outline:none;box-shadow:none}.sidepanel-menu li.apps-submenu-open[data-v-275d56d6],.sidepanel-menu li.apps-submenu-open[data-v-275d56d6]:hover{background-color:#4353ff}@media(max-width:450px){.sidepanel[data-v-275d56d6]{position:fixed;top:0;left:0;width:75%;height:100vh;background:#020631;z-index:10000;transform:translate(-100%);pointer-events:none;transition:transform .35s ease-in-out}.sidepanel.mobile-open[data-v-275d56d6]{transform:translate(0);pointer-events:auto}.sidepanel.collapsed[data-v-275d56d6]{width:75%}.toggle-wrapper-btn[data-v-275d56d6]{display:none}.sidepanel.mobile-open .toggle-wrapper-btn[data-v-275d56d6]{display:flex}.hamburger-menu[data-v-275d56d6]{position:fixed;top:10px;left:16px;width:44px;height:44px;border-radius:8px;border:none;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.hamburger-menu img[data-v-275d56d6]{width:24px;height:24px}}.sidepanel-menu li[data-tooltip][data-v-275d56d6],.sidepanel-footer-logout-btn[data-tooltip][data-v-275d56d6]{position:relative}.sidepanel-menu li[data-tooltip][data-v-275d56d6]:after,.sidepanel-footer-logout-btn[data-tooltip][data-v-275d56d6]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate3d(-50%,4px,0);background:#fff;color:#020631;font-family:Poppins,sans-serif;font-weight:600;font-size:12px;line-height:12px;padding:4px 8px;border-radius:8px;box-shadow:2px 4px 16px #68769c47;white-space:nowrap;opacity:0;pointer-events:none!important;z-index:9999;transition:opacity .18s ease,transform .18s ease;will-change:transform,opacity}.sidepanel-menu li[data-tooltip][data-v-275d56d6]:not([data-tooltip=""]):hover:after,.sidepanel-footer-logout-btn[data-tooltip][data-v-275d56d6]:not([data-tooltip=""]):hover:after{opacity:1;transform:translate3d(-50%,0,0);pointer-events:none!important}.table-scroll[data-v-88f96127]{overflow-x:auto;overflow-y:visible;width:100%}.custom-table[data-v-88f96127]{width:100%;max-width:100%;min-width:0;table-layout:fixed}.custom-table th[data-v-88f96127],.custom-table td[data-v-88f96127]{padding:8px 12px;border-bottom:1px solid #eaeaea;text-align:left;white-space:normal;overflow:hidden;text-overflow:ellipsis}.table-container[data-v-88f96127]{border:1px solid #ddd;border-radius:20px;position:relative;overflow:visible;background:#fff;font-family:Poppins,sans-serif;width:100%;box-sizing:border-box;height:100%!important;display:flex;flex:1;min-height:0}.table-header[data-v-88f96127]{display:flex;flex-direction:column;justify-content:center;align-items:stretch;background:#f9f9f9;border-bottom:1px solid #ddd;width:100%;height:93px;gap:12px;box-sizing:border-box}.table-header-title[data-v-88f96127]{display:inline-block;font-family:Poppins,sans-serif;font-weight:600;font-style:normal;font-size:20px;line-height:1.5;letter-spacing:0;text-transform:capitalize;text-align:center;vertical-align:middle;color:#020631}.table-header-title-section[data-v-88f96127]{display:flex;justify-content:space-between;align-items:center;width:100%;height:40px}.table-header-title-with-count[data-v-88f96127]{display:flex;align-items:center;gap:8px}.record-count-tag[data-v-88f96127]{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:54px;height:26px;padding:3px 8px;background-color:#f5f5f5;border:0px solid #9ca5be;border-radius:20px;box-sizing:border-box;font-family:Poppins,sans-serif;font-size:13px;font-weight:500;line-height:1;letter-spacing:0;text-transform:capitalize;opacity:1;transform:rotate(0)}.record-icon[data-v-88f96127]{width:16px;height:16px;background-color:#47506a;mask:url("data:image/svg+xml,%3csvg%20width='12'%20height='9'%20viewBox='0%200%2012%209'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.57296%209L0.772964%205.2L1.72296%204.25L4.57296%207.1L10.6896%200.983334L11.6396%201.93333L4.57296%209Z'%20fill='%234353FF'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='12'%20height='9'%20viewBox='0%200%2012%209'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.57296%209L0.772964%205.2L1.72296%204.25L4.57296%207.1L10.6896%200.983334L11.6396%201.93333L4.57296%209Z'%20fill='%234353FF'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain}.record-count-text[data-v-88f96127]{display:inline-block;font-family:Poppins,sans-serif;font-weight:600;font-style:normal;font-size:14px;line-height:1.5;letter-spacing:0;text-transform:capitalize}.table-header-search[data-v-88f96127]{width:100%}.table-header-actions button[data-v-88f96127]{margin-left:8px}.custom-table[data-v-88f96127]{width:100%;border-collapse:collapse}.custom-table th[data-v-88f96127],.custom-table td[data-v-88f96127]{padding:8px 12px;border-bottom:1px solid #eaeaea;text-align:left}.custom-table td[data-v-88f96127]{font-family:Poppins,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:20px;letter-spacing:0;color:#020631}.table-th[data-v-88f96127]{height:52px;gap:12px;padding:16px;background:#f9f9fc;border-bottom:1px solid #C4CBDD;opacity:1;transform:rotate(0);box-sizing:border-box;font-family:Poppins,sans-serif;font-weight:600;font-style:normal;font-size:16px;line-height:20px;letter-spacing:0;color:#68769c}.sort-icon[data-v-88f96127]{margin-left:6px;cursor:pointer;opacity:.6}.progress-wrapper[data-v-88f96127]{width:100%;height:6px;background:#eee;border-radius:4px;overflow:hidden}.progress-bar[data-v-88f96127]{height:100%;background:#4caf50}.input-cell[data-v-88f96127]{width:223px;height:36px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}.input-cell[data-v-88f96127]:hover{border-color:#4353ff}.input-cell[data-v-88f96127]:focus{outline:none;border-color:#4353ff}.btn-cell[data-v-88f96127]{padding:4px 8px;border:none;background:#1976d2;color:#fff;border-radius:4px;cursor:pointer}.btn-cell[data-v-88f96127]:hover{background:#0d6efd}.icon-cell[data-v-88f96127]{cursor:pointer;color:#666;transition:color .2s;width:16px;height:16px;object-fit:contain}.icon-cell[data-v-88f96127]:hover{color:#d00}.action-cell[data-v-88f96127]{display:flex;align-items:center;gap:8px}.action-column[data-v-88f96127]{background:#f9f9fc;border-bottom:#C4CBDD;width:52px;height:52px;padding:16px;box-sizing:border-box}.last-modified-wrapper[data-v-88f96127]{display:flex;align-items:center;gap:6px}.modified-text[data-v-88f96127]{font-family:Poppins,sans-serif;font-weight:400;font-style:normal;font-size:14px;line-height:1.4;letter-spacing:0}.even-row[data-v-88f96127]{display:table-row;flex-direction:row;background-color:#fff}.odd-row[data-v-88f96127]{display:table-row;flex-direction:row;background-color:#f5f5f5}.row-selected[data-v-88f96127]{background-color:#e9f2ff!important}.row-selected td[data-v-88f96127]{border-bottom:1px solid #4353FF}.date-cell-wrapper[data-v-88f96127]{position:relative;display:flex;align-items:center;justify-content:flex-start;width:255px;height:52px;padding:6px 16px;box-sizing:border-box}.input-date-cell[data-v-88f96127]{width:223px;height:40px;padding:8px 36px 8px 12px;border:1px solid #c4cbdd;border-radius:8px;background-color:#fff;box-sizing:border-box;flex:none;font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0;color:#020631;appearance:none;-webkit-appearance:none;-moz-appearance:none}.calendar-icon[data-v-88f96127]{position:absolute;right:12px;width:20px;height:20px;background-color:#68769c;mask:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M21.2315%207.04632C21.1122%205.06319%2019.4563%203.50952%2017.4618%203.50952H16.4908V2.75476C16.4908%202.33813%2016.1527%202%2015.7361%202C15.3195%202%2014.9813%202.33813%2014.9813%202.75476V3.50952H8.94325V2.75476C8.94325%202.33813%208.60512%202%208.18849%202C7.77187%202%207.43373%202.33813%207.43373%202.75476V3.50952H6.46273C4.46791%203.50952%202.81196%205.06319%202.69309%207.04632C2.4693%2010.7763%202.47345%2014.56%202.70554%2018.2919C2.82328%2020.1871%204.34148%2021.7053%206.23668%2021.823C8.13604%2021.9411%2010.049%2022%2011.9619%2022C13.8745%2022%2015.7878%2021.9411%2017.6871%2021.823C19.5823%2021.7053%2021.1005%2020.1871%2021.2183%2018.2919C21.4508%2014.5618%2021.4549%2010.7786%2021.2315%207.04632ZM19.7122%2018.1983C19.6412%2019.3353%2018.7306%2020.2459%2017.5939%2020.3165C13.8571%2020.5486%2010.0675%2020.5486%206.33065%2020.3165C5.19361%2020.2456%204.28299%2019.3349%204.21242%2018.1983C4.03392%2015.3291%203.99731%2012.4296%204.09279%209.5476H19.8322C19.9273%2012.4308%2019.8907%2015.3302%2019.7122%2018.1983ZM8.18849%206.52856C8.60512%206.52856%208.94325%206.19043%208.94325%205.7738V5.01904H14.9813V5.7738C14.9813%206.19043%2015.3195%206.52856%2015.7361%206.52856C16.1527%206.52856%2016.4908%206.19043%2016.4908%205.7738V5.01904H17.4618C18.6593%205.01904%2019.6533%205.94928%2019.7246%207.13652C19.7424%207.43616%2019.7499%207.73768%2019.7646%208.03808H4.15996C4.17506%207.73768%204.18223%207.43616%204.19997%207.13652C4.27129%205.94928%205.26493%205.01904%206.46273%205.01904H7.43373V5.7738C7.43373%206.19043%207.77187%206.52856%208.18849%206.52856Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2014.0762C8.81377%2014.0762%209.32064%2013.5693%209.32064%2012.944C9.32064%2012.3188%208.81377%2011.8119%208.18851%2011.8119C7.56324%2011.8119%207.05637%2012.3188%207.05637%2012.944C7.05637%2013.5693%207.56324%2014.0762%208.18851%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2014.0762C12.5876%2014.0762%2013.0944%2013.5693%2013.0944%2012.944C13.0944%2012.3188%2012.5876%2011.8119%2011.9623%2011.8119C11.337%2011.8119%2010.8302%2012.3188%2010.8302%2012.944C10.8302%2013.5693%2011.337%2014.0762%2011.9623%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2017.8499C8.81377%2017.8499%209.32064%2017.3431%209.32064%2016.7178C9.32064%2016.0925%208.81377%2015.5857%208.18851%2015.5857C7.56324%2015.5857%207.05637%2016.0925%207.05637%2016.7178C7.05637%2017.3431%207.56324%2017.8499%208.18851%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2014.0762C16.3614%2014.0762%2016.8682%2013.5693%2016.8682%2012.944C16.8682%2012.3188%2016.3614%2011.8119%2015.7361%2011.8119C15.1108%2011.8119%2014.604%2012.3188%2014.604%2012.944C14.604%2013.5693%2015.1108%2014.0762%2015.7361%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2017.8499C16.3614%2017.8499%2016.8682%2017.3431%2016.8682%2016.7178C16.8682%2016.0925%2016.3614%2015.5857%2015.7361%2015.5857C15.1108%2015.5857%2014.604%2016.0925%2014.604%2016.7178C14.604%2017.3431%2015.1108%2017.8499%2015.7361%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2017.8499C12.5876%2017.8499%2013.0944%2017.3431%2013.0944%2016.7178C13.0944%2016.0925%2012.5876%2015.5857%2011.9623%2015.5857C11.337%2015.5857%2010.8302%2016.0925%2010.8302%2016.7178C10.8302%2017.3431%2011.337%2017.8499%2011.9623%2017.8499Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M21.2315%207.04632C21.1122%205.06319%2019.4563%203.50952%2017.4618%203.50952H16.4908V2.75476C16.4908%202.33813%2016.1527%202%2015.7361%202C15.3195%202%2014.9813%202.33813%2014.9813%202.75476V3.50952H8.94325V2.75476C8.94325%202.33813%208.60512%202%208.18849%202C7.77187%202%207.43373%202.33813%207.43373%202.75476V3.50952H6.46273C4.46791%203.50952%202.81196%205.06319%202.69309%207.04632C2.4693%2010.7763%202.47345%2014.56%202.70554%2018.2919C2.82328%2020.1871%204.34148%2021.7053%206.23668%2021.823C8.13604%2021.9411%2010.049%2022%2011.9619%2022C13.8745%2022%2015.7878%2021.9411%2017.6871%2021.823C19.5823%2021.7053%2021.1005%2020.1871%2021.2183%2018.2919C21.4508%2014.5618%2021.4549%2010.7786%2021.2315%207.04632ZM19.7122%2018.1983C19.6412%2019.3353%2018.7306%2020.2459%2017.5939%2020.3165C13.8571%2020.5486%2010.0675%2020.5486%206.33065%2020.3165C5.19361%2020.2456%204.28299%2019.3349%204.21242%2018.1983C4.03392%2015.3291%203.99731%2012.4296%204.09279%209.5476H19.8322C19.9273%2012.4308%2019.8907%2015.3302%2019.7122%2018.1983ZM8.18849%206.52856C8.60512%206.52856%208.94325%206.19043%208.94325%205.7738V5.01904H14.9813V5.7738C14.9813%206.19043%2015.3195%206.52856%2015.7361%206.52856C16.1527%206.52856%2016.4908%206.19043%2016.4908%205.7738V5.01904H17.4618C18.6593%205.01904%2019.6533%205.94928%2019.7246%207.13652C19.7424%207.43616%2019.7499%207.73768%2019.7646%208.03808H4.15996C4.17506%207.73768%204.18223%207.43616%204.19997%207.13652C4.27129%205.94928%205.26493%205.01904%206.46273%205.01904H7.43373V5.7738C7.43373%206.19043%207.77187%206.52856%208.18849%206.52856Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2014.0762C8.81377%2014.0762%209.32064%2013.5693%209.32064%2012.944C9.32064%2012.3188%208.81377%2011.8119%208.18851%2011.8119C7.56324%2011.8119%207.05637%2012.3188%207.05637%2012.944C7.05637%2013.5693%207.56324%2014.0762%208.18851%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2014.0762C12.5876%2014.0762%2013.0944%2013.5693%2013.0944%2012.944C13.0944%2012.3188%2012.5876%2011.8119%2011.9623%2011.8119C11.337%2011.8119%2010.8302%2012.3188%2010.8302%2012.944C10.8302%2013.5693%2011.337%2014.0762%2011.9623%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2017.8499C8.81377%2017.8499%209.32064%2017.3431%209.32064%2016.7178C9.32064%2016.0925%208.81377%2015.5857%208.18851%2015.5857C7.56324%2015.5857%207.05637%2016.0925%207.05637%2016.7178C7.05637%2017.3431%207.56324%2017.8499%208.18851%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2014.0762C16.3614%2014.0762%2016.8682%2013.5693%2016.8682%2012.944C16.8682%2012.3188%2016.3614%2011.8119%2015.7361%2011.8119C15.1108%2011.8119%2014.604%2012.3188%2014.604%2012.944C14.604%2013.5693%2015.1108%2014.0762%2015.7361%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2017.8499C16.3614%2017.8499%2016.8682%2017.3431%2016.8682%2016.7178C16.8682%2016.0925%2016.3614%2015.5857%2015.7361%2015.5857C15.1108%2015.5857%2014.604%2016.0925%2014.604%2016.7178C14.604%2017.3431%2015.1108%2017.8499%2015.7361%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2017.8499C12.5876%2017.8499%2013.0944%2017.3431%2013.0944%2016.7178C13.0944%2016.0925%2012.5876%2015.5857%2011.9623%2015.5857C11.337%2015.5857%2010.8302%2016.0925%2010.8302%2016.7178C10.8302%2017.3431%2011.337%2017.8499%2011.9623%2017.8499Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain;pointer-events:none}.input-date-cell[data-v-88f96127]:hover{border-color:#4353ff}.input-date-cell[data-v-88f96127]:focus{outline:none;border-color:#4353ff;box-shadow:0 0 0 2px #4353ff33}.global-popover[data-v-88f96127]{position:absolute;background:#fff;border:1px solid #d0d4e4;border-radius:12px;box-shadow:0 6px 20px #0000001f;z-index:9999;font-family:Poppins,sans-serif;color:#020631;animation:fadeIn-88f96127 .15s ease-out;transform:translateY(-50%)}.global-popover.right[data-v-88f96127]:before{content:"";position:absolute;top:50%;left:-10px;transform:translateY(-50%);border-width:8px;border-style:solid;border-color:transparent #ffffff transparent transparent;box-shadow:-1px 0 #d0d4e4}.global-popover.left[data-v-88f96127]:before{content:"";position:absolute;top:50%;right:-10px;transform:translateY(-50%);border-width:8px;border-style:solid;border-color:transparent transparent transparent #ffffff;box-shadow:1px 0 #d0d4e4}.popover-btn[data-v-88f96127]{background:none;border:1px solid #ccc;padding:4px 8px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.popover-btn[data-v-88f96127]:hover{border-color:#4353ff;color:#4353ff}.popover-trigger[data-v-88f96127]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-family:Poppins,sans-serif;background:none;border:none;outline:none}[data-v-88f96127] .arrow-number-combo{display:flex;align-items:flex-start;flex-direction:row}.arrow-icon[data-v-88f96127]{width:16px;height:16px;display:inline-block;background-color:#6b5cff;background-image:linear-gradient(180deg,#6b5cff,#4353ff);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:contain;-webkit-mask-size:contain}.arrow-icon-img[data-v-88f96127]{width:16px;height:16px;display:inline-block;vertical-align:middle}[data-v-88f96127] .arrow-number{font-size:12px;font-weight:400;background:linear-gradient(180deg,#6b5cff,#4353ff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1;transform:translateY(-2px);margin-top:0;padding-top:0}[data-v-88f96127] .trigger-text{font-size:14px;font-weight:400;color:#4353ff}@keyframes fadeIn-88f96127{0%{opacity:0;transform:translateY(-50%) scale(.96)}to{opacity:1;transform:translateY(-50%) scale(1)}}.table-scroll-virtual[data-v-88f96127]{overflow-y:auto;overflow-x:hidden;position:relative;flex:1;min-height:0;scrollbar-width:thin}.spacer[data-v-88f96127]{width:1px;opacity:0}.virtual-table[data-v-88f96127]{position:absolute;top:0;left:0;width:100%}.virtual-thead[data-v-88f96127]{position:sticky;top:0;z-index:2;width:100%}.virtual-tbody[data-v-88f96127]{position:relative}.normal-tbody tr[data-v-88f96127]{display:table-row!important;flex-direction:row}.normal-tbody td[data-v-88f96127]{display:table-cell!important}.table-th[data-v-88f96127]{align-items:center;min-width:0}.table-th-checkbox[data-v-88f96127]{flex:0 0 auto;min-width:52px;max-width:52px;justify-content:center}.table-td[data-v-88f96127]{flex:1;display:table-cell;vertical-align:middle;align-items:center;min-width:0;padding:8px 12px;border-bottom:1px solid #eaeaea;text-align:left;white-space:nowrap;box-sizing:border-box}.table-td-checkbox[data-v-88f96127]{flex:0 0 auto;width:52px;min-width:52px;align-items:center;justify-content:center;padding:0;border-bottom:1px solid #eaeaea;box-sizing:border-box}.table-th.action-column[data-v-88f96127]{flex:0 0 52px;width:52px;min-width:52px;max-width:52px;justify-content:center}.table-td.action-column[data-v-88f96127]{flex:0 0 52px;width:52px;min-width:52px;max-width:52px;justify-content:center;background:transparent!important}.table-td span[data-v-88f96127]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-cell[data-v-88f96127]{cursor:pointer}.table-th-checkbox[data-v-88f96127],.table-td-checkbox[data-v-88f96127]{width:52px;min-width:52px;max-width:52px;text-align:center}.cell-flex[data-v-88f96127]{display:flex;align-items:center;gap:8px}.empty-row[data-v-88f96127]{display:table-row}.empty-cell[data-v-88f96127]{text-align:center;font-family:Poppins,sans-serif;font-size:14px;color:#68769c;vertical-align:middle;display:table-cell}.imgText[data-v-88f96127]{text-align:center}.table-link[data-v-88f96127]{display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer;font-family:Poppins,sans-serif}.link-icon[data-v-88f96127]{width:14px;height:14px;object-fit:contain}.textareaContainer{width:100%;height:100%;border-radius:4px;padding:8px;box-sizing:border-box;font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:20px;border:1px solid #9CA5BE;background-color:#fff}.messageMainContainer[data-v-37e2b718]{box-sizing:border-box;font-family:Poppins,sans-serif;position:fixed;top:40px;right:24px;z-index:100000;min-width:320px;display:flex;padding:16px;gap:16px;border:1px solid #008516;border-radius:12px;background-color:#dcfff1;align-items:center;height:64px}.iconContainer[data-v-37e2b718]{display:flex;align-items:center;height:27px;width:27px;z-index:9999}.iconContainer img[data-v-37e2b718]{height:24px;width:24px}.textContainer[data-v-37e2b718]{flex:1;display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.primaryMessage[data-v-37e2b718]{color:#020631;font-size:16px;font-weight:600}.secondaryMessage[data-v-37e2b718]{color:#47506a;font-size:14px}.cancelButton[data-v-37e2b718]{cursor:pointer}.cancelButton img[data-v-37e2b718]{height:14px;width:14px}.slide-right-enter-active[data-v-37e2b718],.slide-right-leave-active[data-v-37e2b718]{transition:all 1s ease}.slide-right-enter-from[data-v-37e2b718]{transform:translate(100%);opacity:0}.slide-right-enter-to[data-v-37e2b718]{transform:translate(0);opacity:1}.slide-right-leave-to[data-v-37e2b718]{transform:translate(100%);opacity:0}.messageMainContainer.success[data-v-37e2b718]{background-color:#dcfff1;border-color:#008516}.messageMainContainer.error[data-v-37e2b718]{background-color:#fff4e5;border-color:#ffa940}.messageMainContainer.warning[data-v-37e2b718]{background-color:#fffbe6;border-color:#ffd666}.messageMainContainer.info[data-v-37e2b718]{background-color:#e6f4ff;border-color:#69b1ff}.upload-overlay[data-v-dce1befe]{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.upload-dialog[data-v-dce1befe]{max-width:90%;width:479px;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:16px;background:#fff;box-shadow:2px 4px 14px #68769c66}.upload-dialog-header[data-v-dce1befe]{font-family:Poppins,sans-serif;font-weight:600;font-size:20px;line-height:24px;letter-spacing:0;color:#020631}.upload-dialog-subtext[data-v-dce1befe]{font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%;color:#47506a}.upload-dropzone[data-v-dce1befe]{width:auto;max-width:447px;border-radius:8px;border:1.5px dashed #C4CBDD;border-style:dashed;padding:9px 37px;text-align:center;display:flex;flex-direction:column;gap:8px}.middle-zone[data-v-dce1befe]{display:flex;gap:4px;flex-direction:column}.middle-zone-text[data-v-dce1befe]{font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%;color:#47506a}.upload-btn[data-v-dce1befe]{max-width:186px;border-radius:8px;border:1px solid #4353ff;padding:4px 8px;display:flex;align-items:center;gap:4px;align-self:center;color:#4353ff;cursor:pointer}.upload-btn-text[data-v-dce1befe]{width:143px;height:20px;font-family:Poppins,sans-serif;font-weight:600;font-size:14px;line-height:20px;letter-spacing:0%}.file-name[data-v-dce1befe]{font-family:Poppins,sans-serif;font-weight:500;font-size:14px;line-height:20px;letter-spacing:0%;color:#020631}.upload-actions[data-v-dce1befe]{display:flex;justify-content:flex-end;gap:12px}.cancel-btn[data-v-dce1befe]{font-family:Poppins,sans-serif;font-weight:600;font-size:16px;line-height:24px;letter-spacing:0%;color:#4353ff;background:transparent}.view-attachments-container[data-v-2b040d62]{display:flex;flex-direction:column;width:100%;box-sizing:border-box;gap:12px;position:relative}.attachments-toolbar[data-v-2b040d62]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.search-filter-group[data-v-2b040d62]{display:flex;align-items:center;gap:8px;flex:1;max-width:480px}.search-filter-group .attachments-searchbar[data-v-2b040d62]{flex:1;width:100%!important;max-width:100%}.search-input-wrapper[data-v-2b040d62]{position:relative;flex:1;display:flex;align-items:center}.search-icon[data-v-2b040d62]{position:absolute;left:12px;pointer-events:none}.search-input[data-v-2b040d62]{width:100%;height:38px;padding:0 32px 0 36px;background:#f8fafc;border:1px solid #E2E8F0;border-radius:8px;font-family:Poppins,sans-serif;font-size:13px;color:#0f172a;outline:none;transition:all .2s ease}.search-input[data-v-2b040d62]:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.clear-search-btn[data-v-2b040d62]{position:absolute;right:10px;background:none;border:none;padding:4px;cursor:pointer;color:#94a3b8;display:flex;align-items:center;justify-content:center}.clear-search-btn[data-v-2b040d62]:hover{color:#475569}.toolbar-filter-btn-wrapper[data-v-2b040d62]{position:relative;display:flex}.toolbar-filter-button[data-v-2b040d62]{display:flex;align-items:center;justify-content:center;width:40px;height:38px;background:#fff;border:1px solid var(--color-primary, #4353FF);border-radius:8px;cursor:pointer;color:var(--color-primary, #4353FF);position:relative;transition:all .2s ease}.toolbar-filter-button[data-v-2b040d62]:hover{background:#e9f2ff}.toolbar-filter-button.active[data-v-2b040d62]{background:var(--color-primary, #4353FF);color:#fff}.toolbar-filter-button.active svg path[data-v-2b040d62]{fill:#fff}.filter-count-badge[data-v-2b040d62]{position:absolute;top:-5px;right:-5px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:9999px;display:flex;align-items:center;justify-content:center}.toolbar-right-actions[data-v-2b040d62]{display:flex;align-items:center;gap:8px}.filtered-status-text[data-v-2b040d62]{font-family:Poppins,sans-serif;font-size:12px;color:#64748b}.table-outer-wrapper[data-v-2b040d62]{overflow-y:auto;overflow-x:hidden;max-height:260px;min-height:160px;background:#fff;border:1px solid #E2E8F0;border-radius:10px;display:flex;flex-direction:column}.assign-loading-state-box[data-v-2b040d62],.assign-empty-state-box[data-v-2b040d62]{flex:1;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px}.spinner-circle-large[data-v-2b040d62]{width:36px;height:36px;border:3.5px solid var(--color-border-default, #E5E7EF);border-top-color:var(--color-primary, #4353FF);border-radius:50%;animation:spin-2b040d62 .8s linear infinite;margin-bottom:12px}.loading-heading[data-v-2b040d62]{font-family:Poppins,sans-serif;font-size:15px;font-weight:600;color:#0f172a;margin-bottom:4px}.loading-subtext[data-v-2b040d62]{font-family:Poppins,sans-serif;font-size:13px;color:#64748b}.empty-state-card[data-v-2b040d62]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;max-width:360px}.empty-illustration[data-v-2b040d62]{width:64px;height:64px;object-fit:contain;margin-bottom:8px}.empty-heading[data-v-2b040d62]{font-family:Poppins,sans-serif;font-size:16px;font-weight:600;color:#0f172a}.empty-subtext[data-v-2b040d62]{font-family:Poppins,sans-serif;font-size:13px;color:#64748b;line-height:1.4}.btn-clear-filters-pill[data-v-2b040d62]{margin-top:12px;padding:6px 16px;background:#fff;border:1px solid var(--color-primary, #4353FF);border-radius:20px;font-family:Poppins,sans-serif;font-size:12px;font-weight:500;color:var(--color-primary, #4353FF);cursor:pointer;transition:all .15s ease}.btn-clear-filters-pill[data-v-2b040d62]:hover{background:#eff6ff}.documents-data-table[data-v-2b040d62]{width:100%;border-collapse:separate;border-spacing:0;text-align:left;font-family:Poppins,sans-serif;font-size:13px}.documents-data-table thead th[data-v-2b040d62]{background:#f8fafc;color:#64748b;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.6px;padding:12px 16px;border-bottom:1px solid #E2E8F0;white-space:nowrap;position:sticky;top:0;z-index:2}.documents-data-table tbody tr[data-v-2b040d62]{border-bottom:1px solid #F1F5F9;transition:background .15s ease;height:48px}.documents-data-table tbody tr.clickable-doc-row[data-v-2b040d62]{cursor:pointer}.documents-data-table tbody tr[data-v-2b040d62]:hover{background:#f8fafc}.documents-data-table td[data-v-2b040d62]{padding:10px 16px;color:#0f172a;vertical-align:middle}.col-name[data-v-2b040d62]{min-width:260px}.col-date[data-v-2b040d62]{width:180px}.col-creator[data-v-2b040d62]{width:150px}.col-actions[data-v-2b040d62]{width:110px;text-align:right}.document-name-cell-group[data-v-2b040d62]{display:flex;align-items:center;gap:10px}.doc-file-type-icon-wrapper[data-v-2b040d62]{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.5px;flex-shrink:0;cursor:pointer;transition:transform .15s ease}.doc-file-type-icon-wrapper[data-v-2b040d62]:hover{transform:scale(1.06)}.doc-file-type-icon-wrapper.file-image[data-v-2b040d62]{background:#dbeafe;color:#1d4ed8}.doc-file-type-icon-wrapper.file-pdf[data-v-2b040d62]{background:#fee2e2;color:#dc2626}.doc-file-type-icon-wrapper.file-excel[data-v-2b040d62]{background:#d1fae5;color:#059669}.doc-file-type-icon-wrapper.file-generic[data-v-2b040d62]{background:#f1f5f9;color:#475569}.document-full-name[data-v-2b040d62]{font-weight:500;color:#0f172a;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:320px}.creation-date-text[data-v-2b040d62]{font-size:12px;color:#64748b;white-space:nowrap}.creator-name-text[data-v-2b040d62]{font-size:12px;font-weight:500;color:#334155;white-space:nowrap}.row-actions-group[data-v-2b040d62]{display:flex;align-items:center;justify-content:flex-end;gap:4px}.row-action-icon-trigger[data-v-2b040d62]{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.row-action-icon-trigger[data-v-2b040d62]:hover:not(:disabled){background:#f1f5f9;color:#1e293b}.row-action-icon-trigger[data-v-2b040d62]:disabled{opacity:.4;cursor:not-allowed}.action-icon-emoji[data-v-2b040d62]{font-size:14px;line-height:1}@keyframes spin-2b040d62{to{transform:rotate(360deg)}}.ec-filter-overlay[data-v-2b040d62]{position:fixed;inset:0;background:#00000073;display:flex;justify-content:flex-end;z-index:100010}.ec-filter-panel[data-v-2b040d62]{box-sizing:border-box;width:440px;height:100%;background:#fff;display:flex;flex-direction:column;border-top-left-radius:20px;border-bottom-left-radius:20px;box-shadow:-4px 0 24px #00000026;overflow:hidden;animation:slideInRight-2b040d62 .25s cubic-bezier(.16,1,.3,1)}@keyframes slideInRight-2b040d62{0%{transform:translate(100%)}to{transform:translate(0)}}.ec-filter-header[data-v-2b040d62]{display:flex;align-items:center;gap:10px;padding:20px 24px;border-bottom:1px solid var(--color-border-default, #E5E7EF);flex-shrink:0}.ec-filter-header-icon[data-v-2b040d62]{width:20px;height:20px}.ec-filter-title[data-v-2b040d62]{font-family:Poppins,sans-serif;font-weight:600;font-size:16px;color:#020631}.ec-filter-body[data-v-2b040d62]{flex:1;padding:20px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.ec-filter-field[data-v-2b040d62]{display:flex;flex-direction:column;gap:6px}.ec-field-label[data-v-2b040d62]{font-family:Poppins,sans-serif;font-size:14px;font-weight:400;color:#535f7f}.ec-filter-select[data-v-2b040d62],.ec-filter-date[data-v-2b040d62]{height:42px;padding:0 14px;background:#fff;border:1px solid #C4CBDD;border-radius:8px;font-family:Poppins,sans-serif;font-size:13px;color:#0f172a;outline:none;transition:border-color .2s ease}.ec-filter-select[data-v-2b040d62]:focus,.ec-filter-date[data-v-2b040d62]:focus{border-color:var(--color-primary, #4353FF)}.ec-filter-footer[data-v-2b040d62]{flex-shrink:0;padding:16px 24px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid #F0F1F7;background:#fff}.ec-btn-link[data-v-2b040d62],.ec-btn-outline[data-v-2b040d62],.ec-btn-primary[data-v-2b040d62]{padding:8px 20px;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;font-size:14px;line-height:24px;transition:all .15s ease}.ec-btn-link[data-v-2b040d62]{background:none;border:none;color:var(--color-primary, #4353FF);margin-right:auto;padding-left:0}.ec-btn-link[data-v-2b040d62]:hover{opacity:.75}.ec-btn-outline[data-v-2b040d62]{border:1px solid var(--color-primary, #4353FF);background:#fff;color:var(--color-primary, #4353FF)}.ec-btn-outline[data-v-2b040d62]:hover{background:#f5f6ff}.ec-btn-primary[data-v-2b040d62]{background:var(--color-primary, #4353FF);border:1px solid var(--color-primary, #4353FF);color:#fff}.ec-btn-primary[data-v-2b040d62]:hover{background:#3342cc}.modal-overlay-wrapper,.modal-box-card,.document-details-modal-view,.full-screen-preview-overlay,.point-modal-card,.create-point-modal-overlay,.point-details-modal-overlay,.unlink-confirm-modal-card,.unlink-confirm-modal-overlay,.ie-modal-overlay,.ie-modal-container{font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;color:#1e293b}.modal-overlay-wrapper *,.modal-box-card *,.document-details-modal-view *,.full-screen-preview-overlay *,.point-modal-card *,.create-point-modal-overlay *,.point-details-modal-overlay *,.unlink-confirm-modal-card *,.unlink-confirm-modal-overlay *,.ie-modal-overlay *,.ie-modal-container *,.point-modal-card input,.point-modal-card select,.point-modal-card textarea,.point-modal-card button{font-family:Poppins,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important}.modal-overlay-wrapper[data-v-8efc42af]{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:0 16px;box-sizing:border-box;z-index:10000}.modal-overlay-wrapper.document-details-overlay[data-v-8efc42af]{padding:24px 16px!important;overflow-y:auto!important}.document-details-modal-view[data-v-8efc42af]{width:min(680px,100%)!important;height:auto!important;max-height:88vh!important;display:flex!important;flex-direction:column!important;background:#fff!important;border-radius:16px!important;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a!important;font-family:Poppins,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;overflow:hidden!important;margin:auto!important}.document-details-modal-view .detail-header-row[data-v-8efc42af],.detail-header-row[data-v-8efc42af]{flex-shrink:0!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:16px!important;padding:18px 24px 16px!important;border-bottom:1px solid #F1F5F9!important;background:#fff!important;z-index:10!important}.document-details-modal-view .detail-header-left[data-v-8efc42af],.detail-header-left[data-v-8efc42af]{display:flex!important;align-items:center!important;gap:14px!important;flex:1!important;min-width:0!important}.file-type-badge-large[data-v-8efc42af]{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;flex-shrink:0;transition:transform .2s ease,box-shadow .2s ease}.file-type-badge-large.pdf[data-v-8efc42af]{background:#fee2e2}.file-type-badge-large.zip[data-v-8efc42af],.file-type-badge-large.rar[data-v-8efc42af]{background:#f5f3ff}.file-type-badge-large.xlsx[data-v-8efc42af],.file-type-badge-large.xls[data-v-8efc42af],.file-type-badge-large.xlsm[data-v-8efc42af],.file-type-badge-large.csv[data-v-8efc42af]{background:#ecfdf5}.file-type-badge-large.docx[data-v-8efc42af],.file-type-badge-large.doc[data-v-8efc42af]{background:#eff6ff}.file-type-badge-large.jpg[data-v-8efc42af],.file-type-badge-large.jpeg[data-v-8efc42af],.file-type-badge-large.png[data-v-8efc42af]{background:#fdf2f8}.file-type-text-large[data-v-8efc42af]{font-size:14px;font-weight:800;color:#47506a}.file-type-badge-large.pdf .file-type-text-large[data-v-8efc42af]{color:#dc2626}.file-type-badge-large.zip .file-type-text-large[data-v-8efc42af],.file-type-badge-large.rar .file-type-text-large[data-v-8efc42af]{color:#8b5cf6}.file-type-badge-large.xlsx .file-type-text-large[data-v-8efc42af],.file-type-badge-large.xls .file-type-text-large[data-v-8efc42af],.file-type-badge-large.xlsm .file-type-text-large[data-v-8efc42af],.file-type-badge-large.csv .file-type-text-large[data-v-8efc42af]{color:#10b981}.file-type-badge-large.docx .file-type-text-large[data-v-8efc42af]{color:#3b82f6}.file-type-badge-large.jpg .file-type-text-large[data-v-8efc42af],.file-type-badge-large.png .file-type-text-large[data-v-8efc42af]{color:#ec4899}.document-details-modal-view .detail-title-group[data-v-8efc42af],.detail-title-group[data-v-8efc42af]{display:flex!important;flex-direction:column!important;gap:4px!important;flex:1!important;min-width:0!important}.document-details-modal-view .detail-document-name[data-v-8efc42af],.detail-document-name[data-v-8efc42af]{font-size:16px!important;font-weight:700!important;color:#0f172a!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.3!important}.detail-badge-group[data-v-8efc42af]{display:flex;gap:8px;margin-top:4px}.detail-status-pill[data-v-8efc42af]{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#f1f5f9;color:#47506a;border:1px solid #E5E7EF;text-transform:capitalize}.detail-status-pill.approved[data-v-8efc42af],.detail-status-pill.active[data-v-8efc42af]{background:#dcfff1;color:#15803d;border:1px solid #BBF7D0}.detail-status-pill.under-review[data-v-8efc42af]{background:#fef3c7;color:#d97706;border:1px solid #FDE68A}.detail-status-pill.expired[data-v-8efc42af]{background:#fee2e2;color:#b91c1c;border:1px solid #FCA5A5}.detail-version-pill[data-v-8efc42af]{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#eff6ff;color:#3b82f6;border:1px solid #BFDBFE}.document-details-modal-view .detail-header-right[data-v-8efc42af],.detail-header-right[data-v-8efc42af]{display:flex!important;align-items:center!important;gap:8px!important;flex-shrink:0!important}.header-action-btn-pill[data-v-8efc42af]{width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #E5E7EF;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#68769c;transition:all .2s}.header-action-btn-pill[data-v-8efc42af]:hover:not(:disabled){background:#f8fafc;border-color:#c4cbdd}.header-action-btn-pill.close-btn[data-v-8efc42af]:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.document-details-modal-view .flex-column-body[data-v-8efc42af],.flex-column-body[data-v-8efc42af],.modal-scrollable-body[data-v-8efc42af]{display:flex!important;flex-direction:column!important;gap:20px!important;padding:20px 24px 24px!important;flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}.detail-split-view-section[data-v-8efc42af]{display:flex;gap:20px;align-items:flex-start}.document-rendering-card-left[data-v-8efc42af]{flex:1;background:#f8fafc;border:1px solid #E5E7EF;border-radius:12px;padding:20px;display:flex;justify-content:center;position:relative;min-height:240px;box-sizing:border-box}.rendered-document-sheet[data-v-8efc42af]{background:#fff;border:1px solid #C4CBDD;border-radius:4px;width:170px;height:220px;box-shadow:0 4px 6px -1px #0000000d;padding:16px;box-sizing:border-box;position:relative;transition:transform .2s,box-shadow .2s}.rendered-document-sheet[data-v-8efc42af]:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.document-properties-table-right[data-v-8efc42af]{flex:1.5;background:#fff}.prop-table-grid[data-v-8efc42af]{display:flex!important;flex-direction:column!important;gap:12px!important;width:100%!important}.prop-row[data-v-8efc42af]{display:grid!important;grid-template-columns:140px 1fr!important;align-items:flex-start!important;gap:12px!important;font-size:13px!important;padding:6px 0!important;box-sizing:border-box!important}.prop-label[data-v-8efc42af]{font-size:11px!important;font-weight:600!important;color:#9ca5be!important;text-transform:uppercase!important;letter-spacing:.5px!important}.prop-val[data-v-8efc42af]{font-size:13px!important;color:#0f172a!important;font-weight:500!important}.prop-val.text-bold[data-v-8efc42af]{font-weight:600!important}.document-sub-actions-bar[data-v-8efc42af]{display:flex;gap:12px;border-bottom:1px solid #E5E7EF;padding-bottom:20px}.sub-action-outline-btn[data-v-8efc42af]{flex:1;background:#fff;border:1px solid #D1D5DB;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;color:#374151;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.sub-action-outline-btn[data-v-8efc42af]:hover{background:#f9fafb;border-color:#9ca3af;color:#4353ff}.sub-action-outline-btn.intelliedit-action-btn[data-v-8efc42af]{background:#eef2ff!important;border-color:#c7d2fe!important;color:#4353ff!important}.document-details-modal-view .assignments-section-block[data-v-8efc42af],.assignments-section-block[data-v-8efc42af]{display:flex!important;flex-direction:column!important;gap:12px!important;padding-bottom:0!important;flex:none!important}.assignments-header-row[data-v-8efc42af]{display:flex;justify-content:space-between;align-items:center}.assignments-title[data-v-8efc42af]{margin:0!important;font-size:15px!important;line-height:23.2px!important;font-weight:700!important;color:#0f172a!important}.assign-link-action-btn[data-v-8efc42af]{background:#fff;border:1px solid #D1D5DB;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;color:#47506a;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.assign-link-action-btn[data-v-8efc42af]:hover{border-color:#4353ff;color:#4353ff;background:#eef2ff}.document-details-modal-view .assignments-table-wrapper[data-v-8efc42af],.assignments-table-wrapper[data-v-8efc42af]{width:100%!important;max-height:240px!important;min-height:unset!important;overflow-y:auto!important;overflow-x:auto!important;border:1px solid #E2E8F0!important;border-radius:8px!important;background:#fff!important;margin-top:4px!important}.document-details-modal-view .assignments-table-wrapper .assignments-mini-table[data-v-8efc42af],.assignments-mini-table[data-v-8efc42af]{margin-top:0!important;border:none!important;border-radius:0!important;width:100%!important;border-collapse:collapse}.document-details-modal-view .assignments-mini-table th[data-v-8efc42af],.assignments-mini-table th[data-v-8efc42af]{position:sticky!important;top:0!important;z-index:2!important;background:#f8fafc!important;color:#47506a!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.04em!important;padding:10px 14px!important;text-align:left!important;border-bottom:1px solid #E2E8F0!important;white-space:nowrap!important}.assignments-mini-table td[data-v-8efc42af]{padding:10px 14px!important;font-size:12px!important;color:#334155!important;border-bottom:1px solid #F1F5F9!important;vertical-align:middle!important}.date-text-sm[data-v-8efc42af]{font-size:12px!important;color:#61718b!important;font-weight:400!important}.username-text-sm[data-v-8efc42af]{font-size:12px!important;color:#0f172a!important;font-weight:500!important}.ref-value-text[data-v-8efc42af]{font-size:13px!important;color:#0f172a!important;font-weight:500!important}.entity-type-badge-row[data-v-8efc42af]{display:flex;align-items:center;gap:8px}.entity-badge-icon[data-v-8efc42af]{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px}.entity-badge-icon.blue[data-v-8efc42af]{background:#eef2ff}.entity-badge-text[data-v-8efc42af]{font-weight:600;font-size:12px}.mini-actions-row[data-v-8efc42af]{display:flex;gap:8px;justify-content:center}.mini-action-btn[data-v-8efc42af]{background:none;border:none;color:#9ca5be;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.mini-action-btn[data-v-8efc42af]:hover{color:#dc2626;background:#fee2e2}.full-screen-preview-overlay[data-v-8efc42af]{position:fixed;inset:0;background:#0f172af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20000;display:flex;flex-direction:column;font-family:Poppins,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.preview-navbar[data-v-8efc42af]{height:60px;background:#fff;border-bottom:1px solid #E5E7EF;display:flex;justify-content:space-between;align-items:center;padding:0 24px;box-shadow:0 4px 6px -1px #0000000d}.preview-filename[data-v-8efc42af]{color:#0f172a;font-size:16px;font-weight:600}.preview-controls-row[data-v-8efc42af]{display:flex;align-items:center;gap:12px}.nav-control-btn[data-v-8efc42af]{background:#f1f5f9;border:1px solid #C4CBDD;color:#47506a;border-radius:6px;padding:6px 12px;height:32px;box-sizing:border-box;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease}.nav-control-btn[data-v-8efc42af]:hover:not(:disabled){background:#e5e7ef;border-color:#9ca5be;color:#0f172a}.nav-control-btn[data-v-8efc42af]:disabled{opacity:.5;cursor:not-allowed}.nav-control-btn.zoom-btn[data-v-8efc42af]{width:32px;height:32px;padding:0;font-size:16px;font-weight:600;line-height:1}.nav-control-btn.download-nav-btn[data-v-8efc42af]{width:32px;height:32px;padding:0}.zoom-value-text[data-v-8efc42af]{color:#47506a;font-size:13px;font-weight:600;min-width:44px;text-align:center;-webkit-user-select:none;user-select:none}.divider-v[data-v-8efc42af]{width:1px;height:20px;background:#e5e7ef;margin:0 4px}.nav-control-btn.intelliedit-nav-btn[data-v-8efc42af]{background:#f1f5f9;border:1px solid #C4CBDD;color:#47506a;font-weight:500}.nav-control-btn.intelliedit-nav-btn[data-v-8efc42af]:hover:not(:disabled){background:#e5e7ef;border-color:#9ca5be;color:#0f172a}.nav-control-btn.close-preview[data-v-8efc42af]{width:32px;height:32px;padding:0;background:#f1f5f9;border:1px solid #C4CBDD;color:#47506a}.nav-control-btn.close-preview[data-v-8efc42af]:hover:not(:disabled){background:#e5e7ef;border-color:#9ca5be;color:#0f172a}.full-preview-body[data-v-8efc42af]{flex:1;overflow-y:auto;padding:40px;display:flex;justify-content:center;align-items:flex-start}.fs-details-panel[data-v-8efc42af]{position:absolute;top:0;left:0;width:360px;height:100vh;background:#fff;border-right:1px solid #E5E7EF;box-sizing:border-box;padding:24px 22px;overflow-y:auto;z-index:10;display:flex;flex-direction:column;gap:22px;transition:width .2s ease,padding .2s ease}.fs-panel-collapsed .fs-details-panel[data-v-8efc42af]{width:52px;padding:14px 8px;align-items:center;gap:0;overflow:hidden}.full-screen-preview-overlay .preview-navbar[data-v-8efc42af]{margin-left:360px;transition:margin-left .2s ease}.full-screen-preview-overlay .full-preview-body[data-v-8efc42af]{margin-left:360px;width:calc(100% - 360px);transition:margin-left .2s ease,width .2s ease}.fs-panel-collapsed .preview-navbar[data-v-8efc42af]{margin-left:52px}.fs-panel-collapsed .full-preview-body[data-v-8efc42af]{margin-left:52px;width:calc(100% - 52px)}.fs-panel-collapse-btn[data-v-8efc42af],.fs-panel-expand-btn[data-v-8efc42af]{background:#fff;border:1px solid #C4CBDD;padding:4px;border-radius:8px;cursor:pointer;color:#47506a;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.fs-panel-collapse-btn[data-v-8efc42af]:hover,.fs-panel-expand-btn[data-v-8efc42af]:hover{background:#f0f2ff;color:#4353ff}.preview-navbar-title[data-v-8efc42af]{display:flex;align-items:center;gap:10px;min-width:0}.preview-navbar-title .navbar-file-badge[data-v-8efc42af]{width:30px;height:30px;font-size:10px;flex-shrink:0}.preview-navbar-spacer[data-v-8efc42af]{flex:1}.fs-details-name-row[data-v-8efc42af]{display:flex;align-items:center;gap:10px}.fs-details-name-row .fs-badge[data-v-8efc42af]{width:38px;height:38px;font-size:11px;flex-shrink:0}.fs-details-name[data-v-8efc42af]{font-family:Poppins,sans-serif;font-weight:600;font-size:15px;color:#020631;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.fs-prop-grid[data-v-8efc42af]{display:flex;flex-direction:column;gap:14px}.fs-assignments-block[data-v-8efc42af]{display:flex;flex-direction:column;gap:10px;border-top:1px solid #E5E7EF;padding-top:18px}.fs-assignments-header[data-v-8efc42af]{display:flex;align-items:center;justify-content:space-between;gap:8px}.fs-assignments-title[data-v-8efc42af]{font-family:Poppins,sans-serif;font-weight:700;font-size:14px;color:#020631}.fs-assign-link-btn[data-v-8efc42af]{background:none;border:1px solid #4353FF;color:#4353ff;width:28px;height:28px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease}.fs-assign-link-btn[data-v-8efc42af]:hover{background:#f0f2ff}.fs-assignments-empty[data-v-8efc42af]{font-size:13px;color:#9ca5be}.fs-assignment-item[data-v-8efc42af]{display:flex;align-items:center;gap:10px}.fs-assignment-text[data-v-8efc42af]{display:flex;flex-direction:column;min-width:0;flex:1}.fs-unlink-btn[data-v-8efc42af]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:6px;color:#68769c;cursor:pointer;transition:background .15s ease,color .15s ease}.fs-unlink-btn[data-v-8efc42af]:hover:not(:disabled){background:#fee2e2;color:#dc2626}.fs-unlink-btn[data-v-8efc42af]:disabled{cursor:default;opacity:.6}.fs-assignment-type[data-v-8efc42af]{font-family:Poppins,sans-serif;font-size:12px;font-weight:600;color:#68769c}.fs-assignment-ref[data-v-8efc42af]{font-family:Poppins,sans-serif;font-size:13px;color:#020631;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:720px){.fs-details-panel[data-v-8efc42af]{display:none}.full-screen-preview-overlay .preview-navbar[data-v-8efc42af],.full-screen-preview-overlay .full-preview-body[data-v-8efc42af]{margin-left:0;width:100%}}.spatial-point-pin[data-v-8efc42af]{position:absolute;transform:translate(-50%,-50%);color:#fff;padding:4px 8px;font-size:11px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #0006;display:flex;align-items:center;gap:4px;z-index:20;border:2px solid #FFFFFF;transition:transform .15s ease,box-shadow .15s ease}.spatial-point-pin[data-v-8efc42af]:hover{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 6px 18px #00000080;z-index:25}.spinner-inline[data-v-8efc42af]{border-radius:50%;border-style:solid;animation:spin-8efc42af .8s linear infinite;display:inline-block}@keyframes spin-8efc42af{to{transform:rotate(360deg)}}.assign-overlay[data-v-1268614a]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.assign-modal[data-v-1268614a]{background:#fff;border-radius:10px;width:100%;max-width:780px;height:70vh;min-height:460px;max-height:590px;display:flex;flex-direction:column;box-shadow:0 16px 36px -8px #00000029;position:relative;overflow:hidden;animation:modalScaleIn-1268614a .2s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn-1268614a{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-header[data-v-1268614a]{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--color-border-default, #E2E8F0)}.modal-title[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:15px;font-weight:600;color:#0f172a;margin:0}.modal-subtitle[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:11px;color:#64748b;margin-top:1px}.close-btn[data-v-1268614a]{background:none;border:none;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:all .15s ease}.close-btn[data-v-1268614a]:hover{background:#f1f5f9;color:#0f172a}.modal-body[data-v-1268614a]{display:flex;flex:1;min-height:0;position:relative;overflow:hidden}.main-content-full[data-v-1268614a]{flex:1;display:flex;flex-direction:column;padding:10px 16px;min-width:0;min-height:0;overflow:hidden;gap:8px}.toolbar[data-v-1268614a]{display:flex;align-items:center;justify-content:space-between;gap:10px}.search-filter-group[data-v-1268614a]{display:flex;align-items:center;gap:8px;flex:1;max-width:400px}.search-box[data-v-1268614a]{position:relative;flex:1}.search-box input[data-v-1268614a]{width:100%;height:32px;padding:0 26px 0 30px;background:#f8fafc;border:1px solid var(--color-border-default, #E2E8F0);border-radius:6px;font-family:Poppins,sans-serif;font-size:11.5px;outline:none;transition:all .2s ease}.search-box input[data-v-1268614a]:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-icon[data-v-1268614a]{position:absolute;left:9px;top:8px;pointer-events:none}.clear-search-btn[data-v-1268614a]{position:absolute;right:7px;top:7px;background:none;border:none;color:#94a3b8;cursor:pointer;padding:2px;display:flex}.clear-search-btn[data-v-1268614a]:hover{color:#475569}.toolbar-filter-btn-wrapper[data-v-1268614a]{display:flex;align-items:center}.toolbar-filter-button[data-v-1268614a]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#fff;border:1px solid var(--color-primary, #4353FF);border-radius:6px;cursor:pointer;color:var(--color-primary, #4353FF);position:relative;transition:all .2s ease}.toolbar-filter-button[data-v-1268614a]:hover{background:#e9f2ff}.toolbar-filter-button.active[data-v-1268614a]{background:var(--color-primary, #4353FF);color:#fff}.toolbar-filter-button.active svg path[data-v-1268614a]{fill:#fff}.filter-count-badge[data-v-1268614a]{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:8.5px;font-weight:700;min-width:14px;height:14px;border-radius:9999px;display:flex;align-items:center;justify-content:center}.toolbar-right-actions[data-v-1268614a]{display:flex;align-items:center;gap:8px}.sort-box[data-v-1268614a]{display:flex;align-items:center;gap:6px}.sort-label[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:11px;color:#64748b}.sort-select[data-v-1268614a]{height:32px;padding:0 8px;background:#f8fafc;border:1px solid var(--color-border-default, #E2E8F0);border-radius:6px;font-family:Poppins,sans-serif;font-size:11.5px;color:#0f172a;outline:none}.selected-documents-bar[data-v-1268614a]{background:#f8fafc;border:1px solid #E2E8F0;border-radius:6px;padding:5px 8px;display:flex;flex-direction:column;gap:4px;flex-shrink:0;animation:fadeInDown-1268614a .2s ease-out}@keyframes fadeInDown-1268614a{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.selected-bar-header[data-v-1268614a]{display:flex;align-items:center;justify-content:space-between}.selected-bar-title-group[data-v-1268614a]{display:flex;align-items:center;gap:6px}.selected-badge[data-v-1268614a]{display:inline-flex;align-items:center;gap:4px;font-family:Poppins,sans-serif;font-size:10.5px;font-weight:500;background:#eef2ff;padding:1px 6px;border-radius:4px;color:var(--color-primary, #4353FF)}.selected-badge strong[data-v-1268614a]{font-weight:700}.limit-tag[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:9.5px;font-weight:600;color:#d97706;background:#fef3c7;padding:1px 4px;border-radius:3px;border:1px solid #FDE68A}.btn-clear-selection[data-v-1268614a]{background:none;border:none;font-family:Poppins,sans-serif;font-size:10.5px;font-weight:500;color:#64748b;cursor:pointer;padding:1px 4px;border-radius:3px;transition:all .15s ease}.btn-clear-selection[data-v-1268614a]:hover{color:#ef4444;background:#fee2e2}.selected-chips-scroll[data-v-1268614a]{display:flex;flex-wrap:nowrap;align-items:center;gap:5px;overflow-x:auto;overflow-y:hidden;padding:2px 1px 3px;scrollbar-width:thin;scrollbar-color:#CBD5E1 transparent}.selected-chips-scroll[data-v-1268614a]::-webkit-scrollbar{height:4px}.selected-chips-scroll[data-v-1268614a]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.selected-chip[data-v-1268614a]{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid #CBD5E1;border-radius:4px;padding:1px 6px;max-width:145px;height:22px;box-sizing:border-box;flex-shrink:0;box-shadow:0 1px 2px #00000008;transition:all .15s ease}.selected-chip[data-v-1268614a]:hover{border-color:#94a3b8}.chip-ext[data-v-1268614a]{font-size:7px;font-weight:700;padding:1px 3px;border-radius:2px;letter-spacing:.2px}.chip-ext.file-image[data-v-1268614a]{background:#dbeafe;color:#1d4ed8}.chip-ext.file-pdf[data-v-1268614a]{background:#fee2e2;color:#dc2626}.chip-ext.file-excel[data-v-1268614a]{background:#d1fae5;color:#059669}.chip-ext.file-generic[data-v-1268614a]{background:#f1f5f9;color:#475569}.chip-text[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:10.5px;font-weight:500;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-remove-btn[data-v-1268614a]{background:none;border:none;display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border-radius:50%;color:#94a3b8;cursor:pointer;flex-shrink:0;padding:0;transition:all .15s ease}.chip-remove-btn[data-v-1268614a]:hover{background:#f1f5f9;color:#ef4444}.table-container[data-v-1268614a]{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;border:1px solid var(--color-border-default, #E2E8F0);border-radius:6px;background:#fff;position:relative;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:#CBD5E1 transparent}.table-container[data-v-1268614a]::-webkit-scrollbar{width:5px;height:5px}.table-container[data-v-1268614a]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.assign-loading-state-box[data-v-1268614a],.assign-empty-state-box[data-v-1268614a]{flex:1;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 16px}.spinner-circle-large[data-v-1268614a]{width:32px;height:32px;border:3px solid var(--color-border-default, #E5E7EF);border-top-color:var(--color-primary, #4353FF);border-radius:50%;animation:spin-1268614a .8s linear infinite;margin-bottom:10px}.loading-heading[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:14px;font-weight:600;color:#0f172a;margin-bottom:3px}.loading-subtext[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:12px;color:#64748b}.empty-state-card[data-v-1268614a]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;max-width:320px}.empty-illustration[data-v-1268614a]{width:54px;height:54px;object-fit:contain;margin-bottom:6px}.empty-heading[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:15px;font-weight:600;color:#0f172a}.empty-subtext[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:12px;color:#64748b;line-height:1.4}.btn-clear-filters-pill[data-v-1268614a]{margin-top:10px;padding:4px 14px;background:#fff;border:1px solid var(--color-primary, #4353FF);border-radius:16px;font-family:Poppins,sans-serif;font-size:11px;font-weight:500;color:var(--color-primary, #4353FF);cursor:pointer;transition:all .15s ease}.btn-clear-filters-pill[data-v-1268614a]:hover{background:#eff6ff}.documents-data-table[data-v-1268614a]{width:100%;border-collapse:collapse;table-layout:fixed;font-family:Poppins,sans-serif}.documents-data-table thead th[data-v-1268614a]{background:#f8fafc;color:#64748b;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:6px 8px;border-bottom:1px solid var(--color-border-default, #E2E8F0);position:sticky;top:0;z-index:2;box-sizing:border-box}.documents-data-table tbody tr[data-v-1268614a]{border-bottom:1px solid #F1F5F9;cursor:pointer;transition:background .15s ease;height:33px}.documents-data-table tbody tr[data-v-1268614a]:hover:not(.limit-disabled){background:#f8fafc}.documents-data-table tbody tr.selected[data-v-1268614a]{background:#eff6ff}.documents-data-table tbody tr.already-assigned-row[data-v-1268614a]{cursor:default;background:#f8fafc}.documents-data-table tbody tr.already-assigned-row[data-v-1268614a]:hover{background:#f1f5f9}.documents-data-table tbody tr.limit-disabled[data-v-1268614a]{opacity:.55;cursor:not-allowed;background:#fafafa}.documents-data-table tbody tr.limit-disabled[data-v-1268614a]:hover{background:#fafafa}.documents-data-table td[data-v-1268614a]{padding:4px 8px;color:#0f172a;vertical-align:middle;box-sizing:border-box;font-size:11.5px}.checkbox-col[data-v-1268614a]{width:36px;text-align:center;padding:4px 6px}.col-name[data-v-1268614a]{width:auto;min-width:0}.col-date[data-v-1268614a]{width:145px;font-size:10.5px}.col-creator[data-v-1268614a]{width:125px;font-size:10.5px}.col-actions[data-v-1268614a]{width:65px;text-align:center}.doc-checkbox[data-v-1268614a]{width:14px;height:14px;border-radius:3px;accent-color:var(--color-primary, #4353FF);cursor:pointer}.doc-checkbox[data-v-1268614a]:disabled{cursor:not-allowed;opacity:.4}.already-assigned-checkbox[data-v-1268614a]:disabled{accent-color:#059669;opacity:.9;cursor:default}.asint-assigned-tag[data-v-1268614a]{display:inline-flex;align-items:center;font-family:Poppins,sans-serif;font-size:9px;font-weight:600;padding:1px 4px;border-radius:3px;background:#ecfdf5;color:#059669;border:1px solid #A7F3D0;flex-shrink:0;margin-left:4px}.document-name-cell-group[data-v-1268614a]{display:flex;align-items:center;gap:6px;min-width:0}.doc-file-type-icon-wrapper[data-v-1268614a]{width:20px;height:20px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;flex-shrink:0;cursor:pointer;transition:transform .15s ease}.doc-file-type-icon-wrapper[data-v-1268614a]:hover{transform:scale(1.08)}.doc-file-type-icon-wrapper.file-image[data-v-1268614a]{background:#dbeafe;color:#1d4ed8}.doc-file-type-icon-wrapper.file-pdf[data-v-1268614a]{background:#fee2e2;color:#dc2626}.doc-file-type-icon-wrapper.file-excel[data-v-1268614a]{background:#d1fae5;color:#059669}.doc-file-type-icon-wrapper.file-generic[data-v-1268614a]{background:#f1f5f9;color:#475569}.document-full-name[data-v-1268614a]{font-weight:500;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;cursor:pointer}.document-full-name[data-v-1268614a]:hover{color:var(--color-primary, #4353FF)}.creation-date-text[data-v-1268614a],.creator-name-text[data-v-1268614a]{font-size:11px;color:#64748b;white-space:nowrap}.action-btn-preview[data-v-1268614a]{width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:#64748b;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin:0 auto;transition:all .15s ease}.action-btn-preview[data-v-1268614a]:hover{background:#eff6ff;color:var(--color-primary, #4353FF)}.loading-more-row td[data-v-1268614a]{padding:0;border-bottom:none}.loading-more-center[data-v-1268614a]{display:flex;align-items:center;justify-content:center}.modal-footer[data-v-1268614a]{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-top:1px solid var(--color-border-default, #E2E8F0);background:#fff}.selected-count-info[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:11.5px;font-weight:500;display:flex;align-items:center}.selected-count-active[data-v-1268614a]{color:var(--color-primary, #4353FF)}.selected-count-hint[data-v-1268614a]{color:#94a3b8}.footer-actions[data-v-1268614a]{display:flex;align-items:center;gap:8px;margin-left:auto}.btn-cancel[data-v-1268614a]{height:30px;padding:0 14px;background:#fff;border:1px solid #CBD5E1;border-radius:6px;font-family:Poppins,sans-serif;font-size:11.5px;font-weight:500;color:#475569;cursor:pointer}.btn-primary[data-v-1268614a]{height:30px;padding:0 16px;background:var(--color-primary, #4353FF);border:none;border-radius:6px;font-family:Poppins,sans-serif;font-size:11.5px;font-weight:500;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn-primary[data-v-1268614a]:disabled{background:#a5b4fc;opacity:.6;cursor:not-allowed}.spinner-small[data-v-1268614a]{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-1268614a .8s linear infinite}@keyframes spin-1268614a{to{transform:rotate(360deg)}}.ec-filter-overlay[data-v-1268614a]{position:fixed;inset:0;background:#00000073;display:flex;justify-content:flex-end;z-index:100010}.ec-filter-panel[data-v-1268614a]{box-sizing:border-box;width:440px;height:100%;background:#fff;display:flex;flex-direction:column;border-top-left-radius:20px;border-bottom-left-radius:20px;box-shadow:-4px 0 24px #00000026;overflow:hidden;animation:slideInRight-1268614a .25s cubic-bezier(.16,1,.3,1)}@keyframes slideInRight-1268614a{0%{transform:translate(100%)}to{transform:translate(0)}}.ec-filter-header[data-v-1268614a]{display:flex;align-items:center;gap:10px;padding:20px 24px;border-bottom:1px solid var(--color-border-default, #E5E7EF);flex-shrink:0}.ec-filter-header-icon[data-v-1268614a]{width:20px;height:20px}.ec-filter-title[data-v-1268614a]{font-family:Poppins,sans-serif;font-weight:600;font-size:16px;color:#020631}.ec-filter-body[data-v-1268614a]{flex:1;padding:20px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.ec-filter-field[data-v-1268614a]{display:flex;flex-direction:column;gap:6px}.ec-field-label[data-v-1268614a]{font-family:Poppins,sans-serif;font-size:14px;font-weight:400;color:#535f7f}.ec-filter-select[data-v-1268614a],.ec-filter-date[data-v-1268614a]{height:42px;padding:0 14px;background:#fff;border:1px solid #C4CBDD;border-radius:8px;font-family:Poppins,sans-serif;font-size:13px;color:#0f172a;outline:none;transition:border-color .2s ease}.ec-filter-select[data-v-1268614a]:focus,.ec-filter-date[data-v-1268614a]:focus{border-color:var(--color-primary, #4353FF)}.ec-filter-footer[data-v-1268614a]{flex-shrink:0;padding:16px 24px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid #F0F1F7;background:#fff}.ec-btn-link[data-v-1268614a],.ec-btn-outline[data-v-1268614a],.ec-btn-primary[data-v-1268614a]{padding:8px 20px;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;font-size:14px;line-height:24px;transition:all .15s ease}.ec-btn-link[data-v-1268614a]{background:none;border:none;color:var(--color-primary, #4353FF);margin-right:auto;padding-left:0}.ec-btn-link[data-v-1268614a]:hover{opacity:.75}.ec-btn-outline[data-v-1268614a]{border:1px solid var(--color-primary, #4353FF);background:#fff;color:var(--color-primary, #4353FF)}.ec-btn-outline[data-v-1268614a]:hover{background:#f5f6ff}.ec-btn-primary[data-v-1268614a]{background:var(--color-primary, #4353FF);border:1px solid var(--color-primary, #4353FF);color:#fff}.ec-btn-primary[data-v-1268614a]:hover{background:#3342cc}.upload-overlay[data-v-8d9173b2]{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.upload-overlay.modal-hidden-behind-assign[data-v-8d9173b2]{background:transparent}.upload-modal[data-v-8d9173b2]{background:#fff;border-radius:16px;width:100%;max-width:960px;height:960px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px -10px #00000026,0 0 1px #0000001a;overflow:hidden;animation:modalScaleIn-8d9173b2 .2s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn-8d9173b2{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.upload-modal-header[data-v-8d9173b2]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 7px;border-bottom:1px solid #E2E8F0}.upload-title-text[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:16px;font-weight:600;color:#0f172a;margin:0}.upload-subtitle-text[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:11px;color:#64748b;margin-top:1px}.upload-modal-close-btn[data-v-8d9173b2]{background:none;border:none;width:42px;height:42px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:all .15s ease;transform:translateY(-7px)}.upload-modal-close-btn[data-v-8d9173b2]:hover{background:#f1f5f9;color:#0f172a}.upload-modal-body[data-v-8d9173b2]{padding:14px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;flex:1}.hidden-file-input[data-v-8d9173b2]{display:none}.dropzone-area[data-v-8d9173b2]{border:1.5px dashed #4353FF;border-radius:10px;background:transparent;padding:8px 12px;text-align:center;transition:all .2s ease;cursor:pointer;min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box}.dropzone-area[data-v-8d9173b2]:hover,.dropzone-area.is-dragging[data-v-8d9173b2]{border-color:#2563eb;background:#4353ff0a}.dropzone-area.is-disabled[data-v-8d9173b2]{opacity:.6;pointer-events:none}.dropzone-inner-content[data-v-8d9173b2]{display:flex;flex-direction:column;align-items:center;gap:3px}.cloud-upload-icon-wrapper[data-v-8d9173b2]{width:32px;height:32px;border-radius:50%;background:#eff6ff;display:flex;align-items:center;justify-content:center;margin-bottom:0}.cloud-upload-icon-wrapper svg[data-v-8d9173b2]{width:18px;height:18px}.dropzone-headline[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13px;font-weight:600;color:#0f172a;margin:0}.dropzone-subheadline[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:11px;color:#64748b;margin:0}.dropzone-subheadline .highlight-text[data-v-8d9173b2]{color:#2563eb;font-weight:600}.dropzone-action-buttons[data-v-8d9173b2]{display:flex;align-items:center;gap:10px;margin-top:4px}.btn-browse-action[data-v-8d9173b2]{background:#4353ff;color:#fff;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:12px;font-weight:500;padding:4px 14px;border-radius:6px;border:none;cursor:pointer;transition:all .15s ease}.btn-browse-action[data-v-8d9173b2]:hover{background:#3342cc}.btn-assign-action[data-v-8d9173b2]{background:#4353ff;color:#fff;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:12px;font-weight:500;padding:4px 14px;border-radius:6px;border:none;cursor:pointer;transition:all .15s ease}.btn-assign-action[data-v-8d9173b2]:hover{background:#3342cc}.upload-progress-banner[data-v-8d9173b2]{background:#eff6ff;border:1px solid #BFDBFE;border-radius:10px;padding:12px 16px;display:flex;flex-direction:column;gap:8px;animation:fadeIn-8d9173b2 .2s ease}.progress-banner-text[data-v-8d9173b2]{display:flex;align-items:center;justify-content:space-between}.banner-title[data-v-8d9173b2]{display:flex;align-items:center;gap:8px;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13px;font-weight:600;color:#1e40af}.banner-percent[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13px;font-weight:700;color:#2563eb}.progress-banner-track[data-v-8d9173b2]{width:100%;height:6px;background:#dbeafe;border-radius:9999px;overflow:hidden}.progress-banner-fill[data-v-8d9173b2]{height:100%;background:#2563eb;border-radius:9999px;transition:width .3s ease}.spinner-small-blue[data-v-8d9173b2]{width:14px;height:14px;border:2px solid #BFDBFE;border-top-color:#2563eb;border-radius:50%;animation:spin-8d9173b2 .8s linear infinite;display:inline-block}.validation-error-alert[data-v-8d9173b2]{display:flex;align-items:center;gap:10px;background:#fef2f2;border:1px solid #FCA5A5;border-radius:8px;padding:10px 14px;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13px;color:#b91c1c}.upload-queue-container[data-v-8d9173b2]{border:1px solid #E2E8F0;border-radius:12px;background:#f8fafc;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.queue-header[data-v-8d9173b2]{display:flex;align-items:center;justify-content:space-between}.queue-title[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:14px;font-weight:600;color:#0f172a}.queue-title-count[data-v-8d9173b2]{font-weight:500;color:#64748b}.clear-queue-btn[data-v-8d9173b2]{background:none;border:none;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:12px;color:#ef4444;cursor:pointer;padding:2px 6px;border-radius:4px}.clear-queue-btn[data-v-8d9173b2]:hover{background:#fee2e2}.queue-list-scrollable[data-v-8d9173b2]{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.queue-item-card[data-v-8d9173b2]{background:#fff;border:1px solid #E2E8F0;border-radius:8px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:all .15s ease}.queue-item-card.is-uploading[data-v-8d9173b2]{border-color:#93c5fd}.queue-item-card.is-success[data-v-8d9173b2]{border-color:#86efac;background:#f0fdf4}.queue-item-card.is-error[data-v-8d9173b2]{border-color:#fca5a5;background:#fef2f2}.queue-item-left[data-v-8d9173b2]{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.queue-item-badge[data-v-8d9173b2]{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.5px;flex-shrink:0}.badge-image[data-v-8d9173b2]{background:#dbeafe;color:#1d4ed8}.badge-pdf[data-v-8d9173b2]{background:#fee2e2;color:#dc2626}.badge-excel[data-v-8d9173b2]{background:#d1fae5;color:#059669}.badge-generic[data-v-8d9173b2]{background:#f1f5f9;color:#475569}.queue-item-info[data-v-8d9173b2]{display:flex;flex-direction:column;min-width:0}.queue-item-name[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13px;font-weight:500;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-item-size[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:11px;color:#64748b}.queue-item-right[data-v-8d9173b2]{display:flex;align-items:center;gap:10px;flex-shrink:0}.queue-item-progress[data-v-8d9173b2]{display:flex;align-items:center;gap:8px;min-width:120px}.queue-progress-bar[data-v-8d9173b2]{flex:1;height:6px;background:#e2e8f0;border-radius:9999px;overflow:hidden}.queue-progress-fill[data-v-8d9173b2]{height:100%;background:#2563eb;border-radius:9999px;transition:width .2s ease}.queue-progress-text[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:11px;font-weight:600;color:#2563eb;min-width:32px;text-align:right}.queue-status-tag[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:11px;font-weight:600;padding:2px 8px;border-radius:9999px}.queue-status-tag.success[data-v-8d9173b2]{background:#dcfce7;color:#15803d}.queue-status-tag.error[data-v-8d9173b2]{background:#fee2e2;color:#dc2626}.queue-status-tag.queued[data-v-8d9173b2]{background:#e2e8f0;color:#64748b}.remove-queue-item-btn[data-v-8d9173b2]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.remove-queue-item-btn[data-v-8d9173b2]:hover{color:#ef4444;background:#fee2e2}.attachments-table-section[data-v-8d9173b2]{display:flex;flex-direction:column;gap:10px;margin-top:4px}.attachments-section-header[data-v-8d9173b2]{display:flex;align-items:center;justify-content:space-between}.attachments-section-title[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:14px;font-weight:600;color:#0f172a;margin:0}.upload-modal-footer[data-v-8d9173b2]{padding:16px 24px;border-top:1px solid #E2E8F0;display:flex;align-items:center;justify-content:flex-end;gap:12px;background:#fff}.btn-cancel[data-v-8d9173b2]{height:38px;padding:0 20px;background:#fff;border:1px solid #CBD5E1;border-radius:8px;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13px;font-weight:500;color:#475569;cursor:pointer;transition:all .15s ease}.btn-cancel[data-v-8d9173b2]:hover:not(:disabled){background:#f8fafc}.btn-upload-primary[data-v-8d9173b2]{height:38px;padding:0 24px;background:#4353ff;border:none;border-radius:8px;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13px;font-weight:500;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s ease}.btn-upload-primary[data-v-8d9173b2]:hover:not(:disabled){background:#3342cc}.btn-upload-primary[data-v-8d9173b2]:disabled{opacity:.5;cursor:not-allowed}.spinner-small[data-v-8d9173b2]{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-8d9173b2 .8s linear infinite}@keyframes spin-8d9173b2{to{transform:rotate(360deg)}}@keyframes fadeIn-8d9173b2{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.queue-select-all[data-v-8d9173b2]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.queue-select-all.is-disabled[data-v-8d9173b2]{cursor:default;opacity:.6}.queue-checkbox[data-v-8d9173b2]{width:15px;height:15px;accent-color:#4353FF;cursor:pointer;flex-shrink:0;margin:0}.queue-checkbox[data-v-8d9173b2]:disabled{cursor:default}.queue-item-card.is-unselected[data-v-8d9173b2]{opacity:.55;background:#f8fafc}.queue-item-tag-select[data-v-8d9173b2]{height:30px;max-width:168px;padding:0 8px;border:1px solid #CBD5E1;border-radius:6px;background:#fff;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:12px;color:#1e293b;cursor:pointer}.queue-item-tag-select[data-v-8d9173b2]:focus{outline:none;border-color:#4353ff}.queue-item-tag-select.is-required[data-v-8d9173b2]{border-color:#f59e0b;background:#fffbeb}.queue-action-hint[data-v-8d9173b2]{margin-right:auto;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:12.5px;color:#b45309}.rename-queue-item-btn[data-v-8d9173b2]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.rename-queue-item-btn[data-v-8d9173b2]:hover{color:#4353ff;background:#eef2ff}.queue-action-bar[data-v-8d9173b2]{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:12px;border-top:1px solid #E2E8F0}.rename-overlay[data-v-8d9173b2]{position:absolute;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:20;border-radius:inherit}.rename-dialog[data-v-8d9173b2]{width:min(520px,calc(100% - 48px));max-height:calc(100% - 48px);background:#fff;border-radius:12px;box-shadow:0 20px 40px #0f172a38;display:flex;flex-direction:column;overflow:hidden}.rename-dialog-header[data-v-8d9173b2]{padding:18px 22px 12px;border-bottom:1px solid #E2E8F0}.rename-dialog-title[data-v-8d9173b2]{margin:0;font-family:var(--font-family-header, "Poppins", sans-serif);font-size:16px;font-weight:600;color:#0f172a}.rename-dialog-subtitle[data-v-8d9173b2]{margin:4px 0 0;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:12.5px;color:#64748b}.rename-dialog-body[data-v-8d9173b2]{padding:16px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.rename-row[data-v-8d9173b2]{display:flex;align-items:center;gap:10px}.rename-field[data-v-8d9173b2]{flex:1;min-width:0;display:flex;align-items:center;border:1px solid #CBD5E1;border-radius:8px;background:#fff;padding-right:10px}.rename-field[data-v-8d9173b2]:focus-within{border-color:#4353ff}.rename-input[data-v-8d9173b2]{flex:1;min-width:0;height:38px;padding:0 4px 0 12px;border:none;background:transparent;font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13.5px;color:#0f172a}.rename-input[data-v-8d9173b2]:focus{outline:none}.rename-extension[data-v-8d9173b2]{font-family:var(--font-family-body, "Poppins", sans-serif);font-size:13.5px;color:#94a3b8;flex-shrink:0}.rename-dialog-footer[data-v-8d9173b2]{padding:14px 22px;border-top:1px solid #E2E8F0;display:flex;align-items:center;justify-content:flex-end;gap:12px}.view-attachments-container[data-v-4b8322f0]{display:flex;flex-direction:column;gap:16px;width:100%;box-sizing:border-box}.attachments-title[data-v-4b8322f0]{font-family:Poppins,sans-serif;font-weight:700;font-size:16px;line-height:20px;color:#020631;margin:0;text-align:left}.attachments-empty[data-v-4b8322f0]{font-family:Poppins,sans-serif;font-size:14px;color:#68769c;text-align:center;padding:24px 0}.attachments-list[data-v-4b8322f0]{display:flex;flex-direction:column;gap:16px;max-height:300px;overflow-y:auto;padding-right:4px}.attachment-item-wrapper[data-v-4b8322f0]{display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:#fff;border:1px solid #E5E7EF;border-radius:16px;box-sizing:border-box}.attachment-row[data-v-4b8322f0]{display:flex;align-items:center;gap:16px;width:100%}.description-section[data-v-4b8322f0]{display:flex;flex-direction:column;gap:4px;margin-top:4px;width:100%}.description-label[data-v-4b8322f0]{font-family:Poppins,sans-serif;font-weight:500;font-size:13px;line-height:18px;color:#020631}.description-input[data-v-4b8322f0]{width:100%;padding:8px 12px;border:1px solid #E5E7EF;border-radius:8px;font-family:Poppins,sans-serif;font-size:13px;color:#020631;box-sizing:border-box;outline:none;transition:border-color .2s}.description-input[data-v-4b8322f0]:focus{border-color:#4353ff}.description-input[data-v-4b8322f0]::placeholder{color:#9ca5be}.description-input[data-v-4b8322f0]:disabled{background-color:#f8f9ff;cursor:not-allowed}.thumbnail-wrapper[data-v-4b8322f0]{width:48px;height:48px;border-radius:8px;background:#f8f9ff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;border:1px solid #E5E7EF}.thumbnail-img[data-v-4b8322f0]{width:100%;height:100%;object-fit:cover}.thumbnail-icon-fallback[data-v-4b8322f0]{width:24px;height:24px;opacity:.6}.attachment-info[data-v-4b8322f0]{display:flex;flex-direction:column;flex-grow:1;min-width:0;gap:4px}.attachment-name[data-v-4b8322f0]{font-family:Poppins,sans-serif;font-weight:600;font-size:14px;line-height:20px;color:#020631;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.progress-bar-container[data-v-4b8322f0]{width:100%;max-width:400px;height:6px;background:#e5e7ef;border-radius:99px;overflow:hidden}.progress-bar-container.is-uploading[data-v-4b8322f0]{background:#e9f2ff}.progress-bar-container.is-success[data-v-4b8322f0]{background:#e5e7ef}.progress-bar-container.is-error[data-v-4b8322f0]{background:#fde8e8}.progress-bar-fill[data-v-4b8322f0]{height:100%;border-radius:99px;transition:width .3s ease}.progress-bar-fill.is-uploading[data-v-4b8322f0]{background:#0055d4}.progress-bar-fill.is-success[data-v-4b8322f0]{background:#008516}.progress-bar-fill.is-error[data-v-4b8322f0]{background:#d60000}.attachment-status[data-v-4b8322f0]{font-family:Poppins,sans-serif;font-weight:400;font-size:12px;line-height:16px;color:#68769c;text-align:left}.attachment-actions[data-v-4b8322f0]{display:flex;align-items:center;gap:12px;flex-shrink:0}.action-btn[data-v-4b8322f0]{background:none;border:none;padding:8px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.action-btn[data-v-4b8322f0]:hover:not(:disabled){background-color:#f0f2ff}.action-btn[data-v-4b8322f0]:disabled{opacity:.5;cursor:not-allowed}.btn-icon[data-v-4b8322f0],.ai-icon[data-v-4b8322f0]{width:20px;height:20px}.delete-icon[data-v-4b8322f0],.download-icon[data-v-4b8322f0],.chevron-icon[data-v-4b8322f0]{filter:invert(34%) sepia(85%) saturate(3681%) hue-rotate(227deg) brightness(101%) contrast(101%)}.modal-overlay-wrapper[data-v-8c9fca11]{position:fixed;inset:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.modal-box-card[data-v-8c9fca11]{background:#fff;border-radius:16px;width:90%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;overflow:hidden}.modal-header-row[data-v-8c9fca11]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #E2E8F0;background:#f8fafc}.modal-title-text[data-v-8c9fca11]{font-family:Poppins,sans-serif;font-size:18px;font-weight:700;color:#0f172a;margin:0}.modal-header-actions[data-v-8c9fca11]{display:flex;align-items:center;gap:16px}.attach-btn[data-v-8c9fca11]{background:#3b82f6;color:#fff;font-family:Poppins,sans-serif;font-weight:600;font-size:14px;padding:8px 16px;border-radius:8px;border:none;cursor:pointer;transition:background .2s}.attach-btn[data-v-8c9fca11]:hover{background:#2563eb}.modal-close-btn[data-v-8c9fca11]{background:none;border:none;color:#64748b;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.modal-close-btn[data-v-8c9fca11]:hover{background:#e2e8f0;color:#0f172a}.modal-body-content[data-v-8c9fca11]{padding:24px;overflow-y:auto;overflow-x:hidden;flex-grow:1;display:flex;flex-direction:column}.status-card[data-v-faae3ace]{display:flex;justify-content:center;align-items:center;flex-direction:column;padding:8px 28px;background:#fff;box-shadow:3.06px 3.06px 13.78px -3.83px #0006;border-radius:19.13px;box-sizing:border-box;max-width:173px;height:92px;gap:8.5px}.icon-wrapper[data-v-faae3ace]{border-radius:50%;box-shadow:0 3.06px 3.06px #00000040;display:flex;justify-content:center;align-items:center;height:52px;min-width:52px}.icon[data-v-faae3ace]{flex-shrink:0;object-fit:contain}.details[data-v-faae3ace]{display:flex;flex-direction:row;align-items:center;gap:11.5px;width:100%;box-sizing:border-box}.title[data-v-faae3ace]{height:15px;opacity:1;font-family:Inter,sans-serif;font-weight:400;font-size:12.24px;line-height:100%;letter-spacing:0;margin-left:0;margin-bottom:0;color:#718ebf;white-space:nowrap}.value[data-v-faae3ace]{font-family:Inter,sans-serif;font-weight:600;font-size:19.13px;line-height:100%;letter-spacing:0;color:#232323}.comparison[data-v-faae3ace]{width:100%;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:4px;margin-top:2px;margin-left:0%;box-sizing:border-box;min-height:22px}.comparison.placeholder[data-v-faae3ace]{visibility:hidden}.label[data-v-faae3ace]{font-family:Inter,sans-serif;font-weight:600;font-size:9.18px;line-height:100%;letter-spacing:0;color:#525252}.change[data-v-faae3ace]{border:.77px solid #CAC4D0;font-weight:600;border-radius:22.96px;padding:0 9.18px}.change.positive[data-v-faae3ace]{color:#22c55e}.change.negative[data-v-faae3ace]{color:#ef4444}.modal-overlay[data-v-44fe5c0c]{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a66;display:flex;justify-content:center;align-items:center;z-index:9999}.approval-dialog[data-v-44fe5c0c]{background:#fff;border-radius:12px;padding:16px;gap:24px;color:#fff;box-shadow:2px 4px 14px #68769c66;width:35vw;max-width:90vw;display:flex;flex-direction:column;font-family:Poppins,sans-serif}.dialog-header[data-v-44fe5c0c]{display:flex;justify-content:space-between;align-items:center;font-family:Poppins,sans-serif;font-weight:600;font-size:20px;line-height:24px;letter-spacing:0;color:#020631}.close-btn[data-v-44fe5c0c]{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.close-btn img[data-v-44fe5c0c]{width:16px;height:16px}.dialog-content[data-v-44fe5c0c]{display:flex;flex-direction:column;gap:16px}.approver-section[data-v-44fe5c0c]{margin-top:25px;display:flex;flex-direction:column;gap:16px}.workflow-type[data-v-44fe5c0c]{font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0;color:#47506a;margin:0}.approver-dropdown[data-v-44fe5c0c]{display:flex;flex-direction:column;gap:4px}.approver-label[data-v-44fe5c0c]{font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0;color:#47506a}[data-v-44fe5c0c] .custom-input-option .label_name,[data-v-44fe5c0c] .custom-input-option input{font-family:Poppins,sans-serif!important;font-weight:400!important;font-size:14px!important;line-height:normal!important;letter-spacing:0%!important;color:#47506a!important}[data-v-44fe5c0c] .custom-input-option .inputContainerBorder{border:1px solid #9CA5BE!important}[data-v-44fe5c0c] .custom-desc-option .label_input{align-items:flex-start!important}[data-v-44fe5c0c] .label_input{padding:6px 8px}[data-v-44fe5c0c] .label_name{color:#47506a!important}.custom-textarea-slot[data-v-44fe5c0c]{width:100%;height:100%;border:none;background:transparent;resize:none;font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:normal;color:#47506a;padding:0;outline:none}.custom-textarea-slot[data-v-44fe5c0c]:disabled{cursor:not-allowed;opacity:1!important;color:#020631!important;-webkit-text-fill-color:#020631!important}[data-v-44fe5c0c] .custom-input-option.disabledContainer{opacity:1!important;cursor:not-allowed}[data-v-44fe5c0c] .custom-input-option input:disabled{cursor:not-allowed;opacity:1!important;color:#020631!important;-webkit-text-fill-color:#020631!important}.dialog-footer[data-v-44fe5c0c]{display:flex;justify-content:flex-end;gap:12px}.cancel-btn-link[data-v-44fe5c0c],.confirm-btn-link[data-v-44fe5c0c]{border:none;border-radius:10px;cursor:pointer;font-family:Poppins,sans-serif;font-size:16px;font-weight:600;line-height:24px;padding:10px 18px}.cancel-btn-link[data-v-44fe5c0c]{background:transparent;color:#4353ff}.confirm-btn-link[data-v-44fe5c0c]{background:#4353ff;color:#fff}[data-v-44fe5c0c] .combobox-input{font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%;color:#020631}[data-v-44fe5c0c] .combobox-list{scrollbar-width:thin}.modal-overlay[data-v-d2fc6293]{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a66;display:flex;justify-content:center;align-items:center;z-index:999}.approval-dialog[data-v-d2fc6293]{background:#fff;border-radius:12px;padding:24px;gap:24px;color:#fff;box-shadow:2px 4px 14px #68769c66;width:35vw;max-width:90vw;display:flex;flex-direction:column;font-family:Poppins,sans-serif}.dialog-header[data-v-d2fc6293]{display:flex;justify-content:space-between;align-items:center;font-family:Poppins,sans-serif;font-weight:600;font-size:20px;line-height:24px;letter-spacing:0;color:#020631}.close-btn[data-v-d2fc6293]{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.close-btn img[data-v-d2fc6293]{width:16px;height:16px}.dialog-content[data-v-d2fc6293]{display:flex;flex-direction:column;gap:16px}[data-v-d2fc6293] .custom-input-option .label_name,[data-v-d2fc6293] .custom-input-option input{font-family:Poppins,sans-serif!important;font-weight:400!important;font-size:14px!important;line-height:normal!important;letter-spacing:0%!important;color:#47506a!important}[data-v-d2fc6293] .custom-input-option .inputContainerBorder:not(.focused):not(.active){border:1px solid #9CA5BE!important}[data-v-d2fc6293] .custom-desc-option .label_input{align-items:flex-start!important}[data-v-d2fc6293] .label_input{padding:6px 8px}[data-v-d2fc6293] .label_name{color:#47506a!important}.custom-textarea-slot[data-v-d2fc6293]{width:100%;height:100%;border:none;background:transparent;resize:none;font-family:Poppins,sans-serif;font-weight:400;font-size:14px;line-height:normal;color:#47506a;padding:0;outline:none}.custom-textarea-slot[data-v-d2fc6293]:disabled{cursor:not-allowed;opacity:1!important;color:#020631!important;-webkit-text-fill-color:#020631!important}.enabled-textarea[data-v-d2fc6293]{color:#020631!important}[data-v-d2fc6293] .custom-input-option.disabledContainer{opacity:1!important;cursor:not-allowed}[data-v-d2fc6293] .custom-input-option input:disabled{cursor:not-allowed;opacity:1!important;color:#020631!important;-webkit-text-fill-color:#020631!important}.dialog-footer[data-v-d2fc6293]{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.cancel-btn-link[data-v-d2fc6293],.approve-btn[data-v-d2fc6293],.reject-btn[data-v-d2fc6293]{border:none;border-radius:10px;cursor:pointer;font-family:Poppins,sans-serif;font-size:16px;font-weight:600;line-height:24px;padding:10px 18px}.cancel-btn-link[data-v-d2fc6293]{background:transparent;color:#4353ff}.approve-btn[data-v-d2fc6293]{background:green;color:#fff}.reject-btn[data-v-d2fc6293]{background:#c00;color:#fff}[data-v-b3230f45]{font-family:Poppins,sans-serif;box-sizing:border-box}.workflow-action-buttons[data-v-b3230f45]{display:flex;align-items:center;gap:8px}.status-dropdown-wrapper[data-v-b3230f45]{position:relative}.status-btn[data-v-b3230f45]{box-sizing:border-box;max-width:250px;height:40px;color:#4353ff;border-radius:8px;padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;font-family:Poppins,sans-serif;line-height:30px;letter-spacing:0%;white-space:nowrap;border:1px solid #4353ff;background-color:#fff;cursor:pointer}.arrow[data-v-b3230f45]{width:20px;height:20px;display:block;background-color:#4353ff;mask:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%205.27272C14%205.13322%2013.9467%204.99359%2013.8402%204.88709C13.627%204.67395%2013.2819%204.67395%2013.0689%204.88709L7.99999%209.956L2.93107%204.88709C2.71794%204.67395%202.3728%204.67395%202.1598%204.88709C1.9468%205.10022%201.94666%205.44536%202.1598%205.65836L7.61435%2011.1129C7.82749%2011.326%208.17263%2011.326%208.38563%2011.1129L13.8402%205.65836C13.9467%205.55186%2014%205.41222%2014%205.27272Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%205.27272C14%205.13322%2013.9467%204.99359%2013.8402%204.88709C13.627%204.67395%2013.2819%204.67395%2013.0689%204.88709L7.99999%209.956L2.93107%204.88709C2.71794%204.67395%202.3728%204.67395%202.1598%204.88709C1.9468%205.10022%201.94666%205.44536%202.1598%205.65836L7.61435%2011.1129C7.82749%2011.326%208.17263%2011.326%208.38563%2011.1129L13.8402%205.65836C13.9467%205.55186%2014%205.41222%2014%205.27272Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain}.info-btn[data-v-b3230f45]{width:48px;height:40px;border:none;background-color:#fff;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.info-btn-icon[data-v-b3230f45]{width:20px;height:20px;display:block;background-color:#4353ff;mask:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%202C6.486%202%202%206.48606%202%2012.0001C2%2017.5141%206.486%2022%2012%2022C17.514%2022%2022%2017.5141%2022%2012.0001C22%206.48606%2017.514%202%2012%202ZM12%2020.1818C7.48848%2020.1818%203.81818%2016.5115%203.81818%2012.0001C3.81818%207.48861%207.48848%203.81818%2012%203.81818C16.5115%203.81818%2020.1818%207.48861%2020.1818%2012.0001C20.1818%2016.5115%2016.5115%2020.1818%2012%2020.1818Z'%20fill='%234353FF'/%3e%3cpath%20d='M11.9999%206.24219C11.3316%206.24219%2010.788%206.78619%2010.788%207.45485C10.788%208.12292%2011.3316%208.66643%2011.9999%208.66643C12.6681%208.66643%2013.2118%208.12292%2013.2118%207.45485C13.2118%206.78619%2012.6681%206.24219%2011.9999%206.24219Z'%20fill='%234353FF'/%3e%3cpath%20d='M12%2010.4844C11.4979%2010.4844%2011.0909%2010.8914%2011.0909%2011.3935V16.848C11.0909%2017.3501%2011.4979%2017.7571%2012%2017.7571C12.5021%2017.7571%2012.9091%2017.3501%2012.9091%2016.848V11.3935C12.9091%2010.8914%2012.5021%2010.4844%2012%2010.4844Z'%20fill='%234353FF'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%202C6.486%202%202%206.48606%202%2012.0001C2%2017.5141%206.486%2022%2012%2022C17.514%2022%2022%2017.5141%2022%2012.0001C22%206.48606%2017.514%202%2012%202ZM12%2020.1818C7.48848%2020.1818%203.81818%2016.5115%203.81818%2012.0001C3.81818%207.48861%207.48848%203.81818%2012%203.81818C16.5115%203.81818%2020.1818%207.48861%2020.1818%2012.0001C20.1818%2016.5115%2016.5115%2020.1818%2012%2020.1818Z'%20fill='%234353FF'/%3e%3cpath%20d='M11.9999%206.24219C11.3316%206.24219%2010.788%206.78619%2010.788%207.45485C10.788%208.12292%2011.3316%208.66643%2011.9999%208.66643C12.6681%208.66643%2013.2118%208.12292%2013.2118%207.45485C13.2118%206.78619%2012.6681%206.24219%2011.9999%206.24219Z'%20fill='%234353FF'/%3e%3cpath%20d='M12%2010.4844C11.4979%2010.4844%2011.0909%2010.8914%2011.0909%2011.3935V16.848C11.0909%2017.3501%2011.4979%2017.7571%2012%2017.7571C12.5021%2017.7571%2012.9091%2017.3501%2012.9091%2016.848V11.3935C12.9091%2010.8914%2012.5021%2010.4844%2012%2010.4844Z'%20fill='%234353FF'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain}.button-text[data-v-b3230f45]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left}.dropdown-menu[data-v-b3230f45]{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background-color:#fff;border:1px solid #E2E8F0;border-radius:8px;box-shadow:0 4px 12px #0f172a14;overflow:hidden;min-width:100%;width:max-content;z-index:50;display:flex;flex-direction:column}.dropdown-item[data-v-b3230f45]{display:flex;align-items:center;gap:11px;cursor:pointer;padding:12px 8px;transition:background-color .2s ease}.dropdown-item[data-v-b3230f45]:hover{background-color:#f2f5ff}.step-dot[data-v-b3230f45]{width:10.67px;height:10.67px;border-radius:4px;flex-shrink:0;display:block}.step-text[data-v-b3230f45]{font-family:Poppins,sans-serif;font-weight:400;font-size:14px;color:#020631;line-height:20px;letter-spacing:0;white-space:nowrap}[data-v-b3230f45] .combobox-list{scrollbar-width:thin}.slide-enter-active[data-v-b3230f45],.slide-leave-active[data-v-b3230f45]{transition:transform .3s cubic-bezier(.4,0,.2,1)}.slide-enter-from[data-v-b3230f45],.slide-leave-to[data-v-b3230f45]{transform:translate(100%)}.fade-enter-active[data-v-b3230f45],.fade-leave-active[data-v-b3230f45]{transition:opacity .3s ease}.fade-enter-from[data-v-b3230f45],.fade-leave-to[data-v-b3230f45]{opacity:0}.timeline-overlay[data-v-b3230f45]{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a66;z-index:1000}.timeline-drawer[data-v-b3230f45]{position:fixed;top:0;right:0;width:28%;height:100vh;border-top-left-radius:20px;border-bottom-left-radius:20px;background-color:#fff;z-index:1001;display:flex;flex-direction:column}.timeline-header[data-v-b3230f45]{padding:21px 23px;border-bottom:1px solid #E5E7EF;font-weight:600;font-size:16px;line-height:20px;letter-spacing:0%;color:#000}.timeline-content-wrapper[data-v-b3230f45]{padding:0 20px 20px;overflow:auto;scrollbar-width:none}.timeline-sub-header[data-v-b3230f45]{border-radius:4px;margin:19px 0 24px;padding:8px 0;font-weight:600;font-size:16px;line-height:24px;letter-spacing:0%;text-align:center;color:#47506a;background-color:#f5f5f5}.timeline-events-container[data-v-b3230f45]{position:relative;padding-left:20px}.timeline-event[data-v-b3230f45]{position:relative;margin-bottom:16px}.timeline-event[data-v-b3230f45]:last-child{margin-bottom:0}.timeline-line[data-v-b3230f45]{position:absolute;left:-20px;top:24px;bottom:-32px;width:1px;background-color:#4353ff}.timeline-icon-wrapper[data-v-b3230f45]{position:absolute;left:-32px;top:0;width:24px;height:24px;border-radius:50%;background-color:#4353ff;display:flex;align-items:center;justify-content:center;z-index:2}.timeline-icon-wrapper.is-pending[data-v-b3230f45]{background-color:#fff;border:1px solid #4353FF}.timeline-tick-mask[data-v-b3230f45]{width:14px;height:10px;background-color:#fff;mask:url("data:image/svg+xml,%3csvg%20width='12'%20height='9'%20viewBox='0%200%2012%209'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.57296%209L0.772964%205.2L1.72296%204.25L4.57296%207.1L10.6896%200.983334L11.6396%201.93333L4.57296%209Z'%20fill='%234353FF'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='12'%20height='9'%20viewBox='0%200%2012%209'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.57296%209L0.772964%205.2L1.72296%204.25L4.57296%207.1L10.6896%200.983334L11.6396%201.93333L4.57296%209Z'%20fill='%234353FF'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain}.timeline-card[data-v-b3230f45]{border-radius:7px;border:1px solid #4353FF;background-color:#e9f2ff;padding:16px;display:flex;flex-direction:column;gap:12px}.timeline-card.is-pending[data-v-b3230f45]{border:1px solid #E5E7EF;background-color:#f9f9fc}.timeline-card-header[data-v-b3230f45]{font-weight:600;font-size:14px;line-height:20px;color:#68769c}.timeline-card-title[data-v-b3230f45]{padding-left:8px;font-size:16px;font-weight:600;color:#0f172a;display:flex;align-items:center;gap:12px}.step-box-circle[data-v-b3230f45]{width:8px;height:8px;background-color:#68769c;border-radius:50%}.step-name[data-v-b3230f45]{font-weight:400;font-size:16px;line-height:24px;letter-spacing:0%;color:#020631}.arrow-right[data-v-b3230f45]{display:flex;align-items:center;width:30px}.arrow-line[data-v-b3230f45]{flex:1;height:1px;background:repeating-linear-gradient(to right,#68769C 0 2px,transparent 2px 4px)}.arrow-head[data-v-b3230f45]{margin-left:-1px;width:8px;height:8px;background-color:#68769c;transform:rotate(270deg);mask:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%205.27272C14%205.13322%2013.9467%204.99359%2013.8402%204.88709C13.627%204.67395%2013.2819%204.67395%2013.0689%204.88709L7.99999%209.956L2.93107%204.88709C2.71794%204.67395%202.3728%204.67395%202.1598%204.88709C1.9468%205.10022%201.94666%205.44536%202.1598%205.65836L7.61435%2011.1129C7.82749%2011.326%208.17263%2011.326%208.38563%2011.1129L13.8402%205.65836C13.9467%205.55186%2014%205.41222%2014%205.27272Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%205.27272C14%205.13322%2013.9467%204.99359%2013.8402%204.88709C13.627%204.67395%2013.2819%204.67395%2013.0689%204.88709L7.99999%209.956L2.93107%204.88709C2.71794%204.67395%202.3728%204.67395%202.1598%204.88709C1.9468%205.10022%201.94666%205.44536%202.1598%205.65836L7.61435%2011.1129C7.82749%2011.326%208.17263%2011.326%208.38563%2011.1129L13.8402%205.65836C13.9467%205.55186%2014%205.41222%2014%205.27272Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain}.step-box[data-v-b3230f45]{width:8px;height:8px;background-color:#4353ff}.timeline-user-info[data-v-b3230f45]{display:flex;align-items:center;gap:36px}.thumbnailEmail[data-v-b3230f45]{display:flex;flex-direction:row;gap:8px}[data-v-b3230f45] .profile-thumbnail{border:0px}.user-email[data-v-b3230f45]{display:flex;align-items:center;font-weight:400;font-size:12px;line-height:18px;letter-spacing:0%;color:#020631}.iconDate[data-v-b3230f45]{display:flex;flex-direction:row;gap:8px}.calendar-icon[data-v-b3230f45]{width:19px;height:20px;background-color:#4353ff;mask:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M21.2315%207.04632C21.1122%205.06319%2019.4563%203.50952%2017.4618%203.50952H16.4908V2.75476C16.4908%202.33813%2016.1527%202%2015.7361%202C15.3195%202%2014.9813%202.33813%2014.9813%202.75476V3.50952H8.94325V2.75476C8.94325%202.33813%208.60512%202%208.18849%202C7.77187%202%207.43373%202.33813%207.43373%202.75476V3.50952H6.46273C4.46791%203.50952%202.81196%205.06319%202.69309%207.04632C2.4693%2010.7763%202.47345%2014.56%202.70554%2018.2919C2.82328%2020.1871%204.34148%2021.7053%206.23668%2021.823C8.13604%2021.9411%2010.049%2022%2011.9619%2022C13.8745%2022%2015.7878%2021.9411%2017.6871%2021.823C19.5823%2021.7053%2021.1005%2020.1871%2021.2183%2018.2919C21.4508%2014.5618%2021.4549%2010.7786%2021.2315%207.04632ZM19.7122%2018.1983C19.6412%2019.3353%2018.7306%2020.2459%2017.5939%2020.3165C13.8571%2020.5486%2010.0675%2020.5486%206.33065%2020.3165C5.19361%2020.2456%204.28299%2019.3349%204.21242%2018.1983C4.03392%2015.3291%203.99731%2012.4296%204.09279%209.5476H19.8322C19.9273%2012.4308%2019.8907%2015.3302%2019.7122%2018.1983ZM8.18849%206.52856C8.60512%206.52856%208.94325%206.19043%208.94325%205.7738V5.01904H14.9813V5.7738C14.9813%206.19043%2015.3195%206.52856%2015.7361%206.52856C16.1527%206.52856%2016.4908%206.19043%2016.4908%205.7738V5.01904H17.4618C18.6593%205.01904%2019.6533%205.94928%2019.7246%207.13652C19.7424%207.43616%2019.7499%207.73768%2019.7646%208.03808H4.15996C4.17506%207.73768%204.18223%207.43616%204.19997%207.13652C4.27129%205.94928%205.26493%205.01904%206.46273%205.01904H7.43373V5.7738C7.43373%206.19043%207.77187%206.52856%208.18849%206.52856Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2014.0762C8.81377%2014.0762%209.32064%2013.5693%209.32064%2012.944C9.32064%2012.3188%208.81377%2011.8119%208.18851%2011.8119C7.56324%2011.8119%207.05637%2012.3188%207.05637%2012.944C7.05637%2013.5693%207.56324%2014.0762%208.18851%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2014.0762C12.5876%2014.0762%2013.0944%2013.5693%2013.0944%2012.944C13.0944%2012.3188%2012.5876%2011.8119%2011.9623%2011.8119C11.337%2011.8119%2010.8302%2012.3188%2010.8302%2012.944C10.8302%2013.5693%2011.337%2014.0762%2011.9623%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2017.8499C8.81377%2017.8499%209.32064%2017.3431%209.32064%2016.7178C9.32064%2016.0925%208.81377%2015.5857%208.18851%2015.5857C7.56324%2015.5857%207.05637%2016.0925%207.05637%2016.7178C7.05637%2017.3431%207.56324%2017.8499%208.18851%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2014.0762C16.3614%2014.0762%2016.8682%2013.5693%2016.8682%2012.944C16.8682%2012.3188%2016.3614%2011.8119%2015.7361%2011.8119C15.1108%2011.8119%2014.604%2012.3188%2014.604%2012.944C14.604%2013.5693%2015.1108%2014.0762%2015.7361%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2017.8499C16.3614%2017.8499%2016.8682%2017.3431%2016.8682%2016.7178C16.8682%2016.0925%2016.3614%2015.5857%2015.7361%2015.5857C15.1108%2015.5857%2014.604%2016.0925%2014.604%2016.7178C14.604%2017.3431%2015.1108%2017.8499%2015.7361%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2017.8499C12.5876%2017.8499%2013.0944%2017.3431%2013.0944%2016.7178C13.0944%2016.0925%2012.5876%2015.5857%2011.9623%2015.5857C11.337%2015.5857%2010.8302%2016.0925%2010.8302%2016.7178C10.8302%2017.3431%2011.337%2017.8499%2011.9623%2017.8499Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M21.2315%207.04632C21.1122%205.06319%2019.4563%203.50952%2017.4618%203.50952H16.4908V2.75476C16.4908%202.33813%2016.1527%202%2015.7361%202C15.3195%202%2014.9813%202.33813%2014.9813%202.75476V3.50952H8.94325V2.75476C8.94325%202.33813%208.60512%202%208.18849%202C7.77187%202%207.43373%202.33813%207.43373%202.75476V3.50952H6.46273C4.46791%203.50952%202.81196%205.06319%202.69309%207.04632C2.4693%2010.7763%202.47345%2014.56%202.70554%2018.2919C2.82328%2020.1871%204.34148%2021.7053%206.23668%2021.823C8.13604%2021.9411%2010.049%2022%2011.9619%2022C13.8745%2022%2015.7878%2021.9411%2017.6871%2021.823C19.5823%2021.7053%2021.1005%2020.1871%2021.2183%2018.2919C21.4508%2014.5618%2021.4549%2010.7786%2021.2315%207.04632ZM19.7122%2018.1983C19.6412%2019.3353%2018.7306%2020.2459%2017.5939%2020.3165C13.8571%2020.5486%2010.0675%2020.5486%206.33065%2020.3165C5.19361%2020.2456%204.28299%2019.3349%204.21242%2018.1983C4.03392%2015.3291%203.99731%2012.4296%204.09279%209.5476H19.8322C19.9273%2012.4308%2019.8907%2015.3302%2019.7122%2018.1983ZM8.18849%206.52856C8.60512%206.52856%208.94325%206.19043%208.94325%205.7738V5.01904H14.9813V5.7738C14.9813%206.19043%2015.3195%206.52856%2015.7361%206.52856C16.1527%206.52856%2016.4908%206.19043%2016.4908%205.7738V5.01904H17.4618C18.6593%205.01904%2019.6533%205.94928%2019.7246%207.13652C19.7424%207.43616%2019.7499%207.73768%2019.7646%208.03808H4.15996C4.17506%207.73768%204.18223%207.43616%204.19997%207.13652C4.27129%205.94928%205.26493%205.01904%206.46273%205.01904H7.43373V5.7738C7.43373%206.19043%207.77187%206.52856%208.18849%206.52856Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2014.0762C8.81377%2014.0762%209.32064%2013.5693%209.32064%2012.944C9.32064%2012.3188%208.81377%2011.8119%208.18851%2011.8119C7.56324%2011.8119%207.05637%2012.3188%207.05637%2012.944C7.05637%2013.5693%207.56324%2014.0762%208.18851%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2014.0762C12.5876%2014.0762%2013.0944%2013.5693%2013.0944%2012.944C13.0944%2012.3188%2012.5876%2011.8119%2011.9623%2011.8119C11.337%2011.8119%2010.8302%2012.3188%2010.8302%2012.944C10.8302%2013.5693%2011.337%2014.0762%2011.9623%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M8.18851%2017.8499C8.81377%2017.8499%209.32064%2017.3431%209.32064%2016.7178C9.32064%2016.0925%208.81377%2015.5857%208.18851%2015.5857C7.56324%2015.5857%207.05637%2016.0925%207.05637%2016.7178C7.05637%2017.3431%207.56324%2017.8499%208.18851%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2014.0762C16.3614%2014.0762%2016.8682%2013.5693%2016.8682%2012.944C16.8682%2012.3188%2016.3614%2011.8119%2015.7361%2011.8119C15.1108%2011.8119%2014.604%2012.3188%2014.604%2012.944C14.604%2013.5693%2015.1108%2014.0762%2015.7361%2014.0762Z'%20fill='%23020631'/%3e%3cpath%20d='M15.7361%2017.8499C16.3614%2017.8499%2016.8682%2017.3431%2016.8682%2016.7178C16.8682%2016.0925%2016.3614%2015.5857%2015.7361%2015.5857C15.1108%2015.5857%2014.604%2016.0925%2014.604%2016.7178C14.604%2017.3431%2015.1108%2017.8499%2015.7361%2017.8499Z'%20fill='%23020631'/%3e%3cpath%20d='M11.9623%2017.8499C12.5876%2017.8499%2013.0944%2017.3431%2013.0944%2016.7178C13.0944%2016.0925%2012.5876%2015.5857%2011.9623%2015.5857C11.337%2015.5857%2010.8302%2016.0925%2010.8302%2016.7178C10.8302%2017.3431%2011.337%2017.8499%2011.9623%2017.8499Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain}.event-date[data-v-b3230f45]{display:flex;align-items:end;font-weight:400;font-size:12px;line-height:18px;letter-spacing:0%;color:#020631}.timeline-comments-wrapper[data-v-b3230f45]{display:flex;gap:4px;flex-direction:column}.comments-toggle[data-v-b3230f45]{display:flex;gap:4px;font-weight:400;font-size:12px;line-height:18px;letter-spacing:0%;color:#4353ff;cursor:pointer;align-items:center}.right-arrow-icon[data-v-b3230f45]{width:12px;height:12px;background-color:#4353ff;transform:rotate(270deg);mask:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%205.27272C14%205.13322%2013.9467%204.99359%2013.8402%204.88709C13.627%204.67395%2013.2819%204.67395%2013.0689%204.88709L7.99999%209.956L2.93107%204.88709C2.71794%204.67395%202.3728%204.67395%202.1598%204.88709C1.9468%205.10022%201.94666%205.44536%202.1598%205.65836L7.61435%2011.1129C7.82749%2011.326%208.17263%2011.326%208.38563%2011.1129L13.8402%205.65836C13.9467%205.55186%2014%205.41222%2014%205.27272Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14%205.27272C14%205.13322%2013.9467%204.99359%2013.8402%204.88709C13.627%204.67395%2013.2819%204.67395%2013.0689%204.88709L7.99999%209.956L2.93107%204.88709C2.71794%204.67395%202.3728%204.67395%202.1598%204.88709C1.9468%205.10022%201.94666%205.44536%202.1598%205.65836L7.61435%2011.1129C7.82749%2011.326%208.17263%2011.326%208.38563%2011.1129L13.8402%205.65836C13.9467%205.55186%2014%205.41222%2014%205.27272Z'%20fill='%23020631'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain;transition:transform .3s ease}.right-arrow-icon.expanded[data-v-b3230f45]{transform:rotate(360deg)}.comments-text[data-v-b3230f45]{font-weight:400;font-size:12px;line-height:18px;letter-spacing:0%;color:#020631}.timeline-footer[data-v-b3230f45]{margin-top:auto;padding:16px 20px 20px;border-top:1px solid #F1F5F9;display:flex;justify-content:flex-end;align-items:center;gap:16px}.footer-btn[data-v-b3230f45]{padding:8px 12px;font-size:16px;line-height:24px;letter-spacing:0%}.secondary[data-v-b3230f45]{background-color:#fff;border:1px solid #4353FF;color:#4353ff}.chart-color-picker[data-v-691693f3]{position:absolute;width:242px;max-height:calc(100% - 24px);padding:14px;border:1px solid #e5e7ef;border-radius:8px;background:#fff;box-shadow:0 8px 24px #02063129;box-sizing:border-box;overflow-y:auto;z-index:6}.chart-color-picker[data-v-691693f3]::-webkit-scrollbar{width:6px}.chart-color-picker[data-v-691693f3]::-webkit-scrollbar-track{background:transparent}.chart-color-picker[data-v-691693f3]::-webkit-scrollbar-thumb{background:#c4cbdd;border-radius:10px}.color-picker-header[data-v-691693f3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:#020631;font-size:12px;font-weight:600;line-height:18px}.color-picker-close[data-v-691693f3]{position:relative;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 16px;border:none;background:transparent;cursor:pointer;padding:0}.color-picker-close[data-v-691693f3]:before,.color-picker-close[data-v-691693f3]:after{content:"";position:absolute;left:1px;top:7px;width:14px;height:2px;border-radius:2px;background:#020631}.color-picker-close[data-v-691693f3]:before{transform:rotate(45deg)}.color-picker-close[data-v-691693f3]:after{transform:rotate(-45deg)}.color-picker-close[data-v-691693f3]:hover:before,.color-picker-close[data-v-691693f3]:hover:after{background:#4353ff}.color-picker-spectrum-group[data-v-691693f3]{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.color-picker-spectrum-range[data-v-691693f3]{width:100%;height:43px;border-radius:4px;appearance:none;cursor:pointer}.color-picker-spectrum-range[data-v-691693f3]::-webkit-slider-runnable-track{height:43px;border-radius:4px}.color-picker-spectrum-range[data-v-691693f3]::-webkit-slider-thumb{width:14px;height:14px;margin-top:14px;border:2px solid #ffffff;border-radius:50%;background:var(--spectrum-thumb-color, #4353ff);box-shadow:0 0 0 1px #02063159;appearance:none}.color-picker-spectrum-range[data-v-691693f3]::-moz-range-track{height:43px;border-radius:4px}.color-picker-spectrum-range[data-v-691693f3]::-moz-range-thumb{width:14px;height:14px;border:2px solid #ffffff;border-radius:50%;background:var(--spectrum-thumb-color, #4353ff);box-shadow:0 0 0 1px #02063159}.color-picker-tone-range[data-v-691693f3]{width:100%;height:8px;border-radius:999px;appearance:none;cursor:pointer}.color-picker-tone-range[data-v-691693f3]::-webkit-slider-runnable-track{height:8px;border-radius:999px}.color-picker-tone-range[data-v-691693f3]::-webkit-slider-thumb{width:12px;height:12px;margin-top:-2px;border:2px solid #ffffff;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #4353ffcc;appearance:none}.color-picker-tone-range[data-v-691693f3]::-moz-range-track{height:8px;border-radius:999px}.color-picker-tone-range[data-v-691693f3]::-moz-range-thumb{width:12px;height:12px;border:2px solid #ffffff;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #4353ffcc}.color-swatch[data-v-691693f3]{-webkit-user-select:none;user-select:none}.color-swatch[data-v-691693f3]:focus-visible{outline:2px solid #4353ff;outline-offset:2px}.color-picker-hex-label[data-v-691693f3]{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;color:#68769c;font-size:12px;font-weight:400;line-height:16px}.color-picker-hex-label input[data-v-691693f3]{height:32px;border:1px solid #c4cbdd;border-radius:4px;padding:4px 8px;color:#020631;font-family:Poppins,sans-serif;font-size:12px;box-sizing:border-box}.color-picker-section[data-v-691693f3]{margin:8px 0;color:#68769c;font-size:12px;font-weight:400;line-height:16px}.color-swatch-grid[data-v-691693f3]{display:grid;grid-template-columns:repeat(6,20px);gap:10px 12px}.color-swatch[data-v-691693f3]{width:20px;height:20px;border:1px solid #e5e7ef;border-radius:50%;cursor:pointer;padding:0}.color-swatch.empty[data-v-691693f3]{cursor:default}.analytics-sidebar-overlay[data-v-39a6eef5]{--analytics-drawer-width: 330px;--analytics-horizontal-padding: 16px;position:fixed;inset:0;background:#0000003d;display:flex;justify-content:flex-end;z-index:999;overflow:hidden}.analytics-sidebar[data-v-39a6eef5]{width:var(--analytics-drawer-width);flex:0 0 var(--analytics-drawer-width);max-width:calc(100vw - 20px);height:100%;background:#fff;display:flex;flex-direction:column;border-top-left-radius:16px;border-bottom-left-radius:16px;overflow:hidden}.analytics-sidebar-header[data-v-39a6eef5]{display:flex;align-items:center;height:50px;padding:0 var(--analytics-horizontal-padding);box-sizing:border-box;border-bottom:1px solid #e5e7ef;flex-shrink:0}.analytics-sidebar-title[data-v-39a6eef5]{margin:0;color:#000;font-family:Poppins,sans-serif;font-size:16px;font-weight:600;line-height:20px}.analytics-sidebar-body[data-v-39a6eef5]{flex:1;display:flex;flex-direction:column;gap:14px;padding:12px var(--analytics-horizontal-padding) 16px;overflow-y:auto;overflow-x:hidden}.analytics-sidebar[data-chart-type=spider] .analytics-sidebar-body[data-v-39a6eef5]{gap:20px;padding:20px var(--analytics-horizontal-padding) 24px}.analytics-form-field[data-v-39a6eef5]{display:flex;flex-direction:column;gap:4px}.analytics-field-label[data-v-39a6eef5]{color:#47506a;font-family:Poppins,sans-serif;font-size:12px;font-weight:400;line-height:14px}.analytics-field-hint[data-v-39a6eef5]{color:#70768f;font-family:Poppins,sans-serif;font-size:11px;font-weight:400;line-height:14px;margin-top:2px}.required[data-v-39a6eef5]{color:#ed1c24}.analytics-input[data-v-39a6eef5]{width:100%;height:40px;box-sizing:border-box;border:1px solid #9ca5be;border-radius:4px;background:#fff;color:#020631;font-family:Poppins,sans-serif;font-size:14px;font-weight:400;line-height:16px;padding:12px 8px;outline:none}.analytics-input[data-v-39a6eef5]::placeholder{color:#9ca5be;opacity:1}.analytics-sidebar-footer[data-v-39a6eef5]{display:flex;justify-content:flex-end;gap:16px;padding:14px var(--analytics-horizontal-padding);border-top:1px solid #f0f1f7;flex-shrink:0}.analytics-sidebar-footer[data-v-39a6eef5] .analytics-cancel-btn,.analytics-sidebar-footer[data-v-39a6eef5] .analytics-create-btn{min-width:82px;height:40px;box-sizing:border-box;padding:8px 12px;border-radius:8px;font-size:16px;line-height:18px;font-weight:600;cursor:pointer}.analytics-sidebar-footer[data-v-39a6eef5] .analytics-cancel-btn{border:1px solid #4353ff;background:#fff;color:#4353ff}.analytics-sidebar-footer[data-v-39a6eef5] .analytics-create-btn{border:1px solid #4353ff;background:#4353ff;color:#fff}.checkbox-container[data-v-39a6eef5]{display:flex;align-items:center;gap:8px;margin:4px 0}.custom-checkbox[data-v-39a6eef5]{width:18px;height:18px;border:1.5px solid #4353ff;border-radius:4px;cursor:pointer}.checkbox-label[data-v-39a6eef5]{color:#47506a;font-family:Poppins,sans-serif;font-size:14px;font-weight:500;cursor:pointer}.radio-group[data-v-39a6eef5]{display:flex;flex-direction:column;gap:8px;margin-top:2px}.radio-option[data-v-39a6eef5]{display:flex;align-items:center;gap:8px;cursor:pointer}.custom-radio[data-v-39a6eef5]{width:18px;height:18px;border:1.5px solid #4353ff;border-radius:50%;cursor:pointer;accent-color:#4353ff}.radio-label[data-v-39a6eef5]{color:#47506a;font-family:Poppins,sans-serif;font-size:14px;font-weight:400;cursor:pointer}.type-selector-segmented[data-v-39a6eef5]{display:flex;border:1px solid #9ca5be;border-radius:4px;overflow:hidden;height:40px}.segmented-btn[data-v-39a6eef5]{flex:1;background:#fff;border:none;color:#47506a;font-family:Poppins,sans-serif;font-size:14px;font-weight:400;cursor:pointer;outline:none;transition:all .2s ease}.segmented-btn[data-v-39a6eef5]:first-child{border-right:1px solid #9ca5be}.segmented-btn.active[data-v-39a6eef5]{background:#fff;color:#4353ff;font-weight:600;box-shadow:inset 0 0 0 1.5px #4353ff}.series-order-list[data-v-39a6eef5]{display:flex;flex-direction:column;gap:8px;margin-top:4px}.series-order-item[data-v-39a6eef5]{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fafafc;border:1px solid #e5e7ef;border-radius:6px;cursor:grab;-webkit-user-select:none;user-select:none}.series-order-item.is-dragging[data-v-39a6eef5]{opacity:.5;background:#e5e7ef;border-style:dashed}.drag-handle[data-v-39a6eef5]{display:flex;align-items:center;cursor:grab}.drag-icon[data-v-39a6eef5]{width:14px;height:14px;opacity:.7}.series-name[data-v-39a6eef5]{color:#020631;font-family:Poppins,sans-serif;font-size:13px;font-weight:450}.checkbox-group-others[data-v-39a6eef5]{align-items:flex-start!important}.checkbox-label-hint-group[data-v-39a6eef5]{display:flex;flex-direction:column;gap:2px}.font-bold[data-v-39a6eef5]{font-weight:600}@media(min-width:768px){.analytics-sidebar-overlay[data-v-39a6eef5]{--analytics-drawer-width: 420px;--analytics-horizontal-padding: 20px}.analytics-sidebar-body[data-v-39a6eef5]{gap:16px}}@media(min-width:1024px){.analytics-sidebar-overlay[data-v-39a6eef5]{--analytics-drawer-width: 460px}}.analytics-sidebar-overlay[data-v-39a6eef5]:has(.analytics-sidebar[data-chart-type=spider]){--analytics-drawer-width: 900px}@media(min-width:768px){.analytics-sidebar-overlay[data-v-39a6eef5]:has(.analytics-sidebar[data-chart-type=spider]){--analytics-drawer-width: 900px}}@media(min-width:1024px){.analytics-sidebar-overlay[data-v-39a6eef5]:has(.analytics-sidebar[data-chart-type=spider]){--analytics-drawer-width: 900px}}[data-v-39a6eef5] .combobox:has(.combobox-input:disabled) .combobox-input-row{background-color:#f5f5f5!important;border-color:#e5e7ef!important;cursor:not-allowed!important}.spider-top-row[data-v-39a6eef5]{display:flex;align-items:flex-start;gap:24px}.spider-radar-field[data-v-39a6eef5]{flex:1.2;min-width:0}.spider-compare-field[data-v-39a6eef5]{flex:1;min-width:0}.spider-checkbox-row[data-v-39a6eef5]{display:flex;flex-direction:column;gap:8px;margin:4px 0}.spider-value-config[data-v-39a6eef5]{display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7ef;border-radius:20px;padding:16px;gap:0}.spider-config-header[data-v-39a6eef5]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.spider-config-title[data-v-39a6eef5]{color:#020631;font-family:Poppins,sans-serif;font-size:14px;font-weight:600;line-height:18px}.spider-config-count[data-v-39a6eef5]{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#e5e7ef;color:#47506a;font-family:Poppins,sans-serif;font-size:12px;font-weight:600;line-height:1}.spider-config-table[data-v-39a6eef5]{display:flex;flex-direction:column;width:100%;border:1px solid #e5e7ef;border-radius:8px}.spider-config-columns[data-v-39a6eef5]{display:grid;grid-template-columns:1.1fr 1.8fr 1.1fr;gap:0;background:#f5f6fa;border-bottom:1px solid #e5e7ef;align-items:stretch;border-top-left-radius:8px;border-top-right-radius:8px}.spider-col-header[data-v-39a6eef5]{display:flex;align-items:center;gap:4px;color:#70768f;font-family:Poppins,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:10px 12px;box-sizing:border-box}.spider-config-columns>span[data-v-39a6eef5]:not(:last-child),.spider-config-row>div[data-v-39a6eef5]:not(:last-child){border-right:1px solid #e5e7ef}.spider-sort-arrows[data-v-39a6eef5]{flex-shrink:0}.spider-config-row[data-v-39a6eef5]{display:grid;grid-template-columns:1.1fr 1.8fr 1.1fr;gap:0;align-items:stretch;border-bottom:1px solid #e5e7ef;background:#fff}.spider-config-row[data-v-39a6eef5]:last-child{border-bottom:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.spider-config-row[data-v-39a6eef5]:active{background:#fafafc}.spider-col-axis[data-v-39a6eef5],.spider-col-value[data-v-39a6eef5],.spider-col-increments[data-v-39a6eef5]{padding:10px 12px;box-sizing:border-box;display:flex;align-items:center;min-height:48px}.spider-col-axis[data-v-39a6eef5]{gap:8px;color:#020631;font-family:Poppins,sans-serif;font-size:13px;font-weight:450}.spider-close-icon[data-v-39a6eef5]{width:8px;height:8px;opacity:.6;transition:opacity .15s}.spider-inc-remove:hover .spider-close-icon[data-v-39a6eef5]{opacity:1}.spider-col-value[data-v-39a6eef5]{color:#47506a;font-family:Poppins,sans-serif;font-size:13px;font-weight:400}.spider-value-input[data-v-39a6eef5]{width:100%;border:none;background:transparent;color:#47506a;font-family:Poppins,sans-serif;font-size:13px;font-weight:400;padding:2px 0;outline:none}.spider-value-input[data-v-39a6eef5]::placeholder{color:#9ca5be;opacity:1}.spider-col-increments[data-v-39a6eef5]{display:flex;align-items:center;width:100%}.spider-inc-container[data-v-39a6eef5]{display:flex;flex-wrap:wrap;gap:4px 6px;padding:4px 8px;background:#fff;border:1px solid #CCD2E3;border-radius:6px;min-height:32px;align-items:center;width:100%;box-sizing:border-box}.spider-inc-chip[data-v-39a6eef5]{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#fff;border:1px solid #e5e7ef;border-radius:20px;color:#47506a;font-family:Poppins,sans-serif;font-size:12px;font-weight:450;line-height:16px}.spider-inc-remove[data-v-39a6eef5]{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;padding:0;border:none;background:transparent;color:#9ca5be;font-size:14px;font-weight:500;line-height:1;cursor:pointer;margin-left:2px;transition:color .15s}.spider-inc-remove[data-v-39a6eef5]:hover{color:#ed1c24}.spider-inc-input[data-v-39a6eef5]{flex:1;min-width:60px;border:none;background:transparent;outline:none;font-family:Poppins,sans-serif;font-size:12px;color:#47506a;padding:0}.spider-inc-input[data-v-39a6eef5]::placeholder{color:#9ca5be;opacity:.7}[data-v-39a6eef5] .dropdown-list{min-width:250px!important}[data-v-39a6eef5] .spider-col-value .selected-tag{max-width:125px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;display:inline-block!important;position:relative!important;padding-right:22px!important;box-sizing:border-box!important}[data-v-39a6eef5] .spider-col-value .selected-tag .remove{position:absolute!important;right:4px!important;top:50%!important;transform:translateY(-50%)!important;display:inline-flex!important;align-items:center!important;background:#fff!important}[data-v-39a6eef5] .arrow{display:inline-flex!important;align-items:center!important}[data-v-39a6eef5] .arrow img{display:block!important}.analytics-chart-builder[data-v-e0eafb31]{display:flex;width:100%;height:100%;min-height:566px;flex:1;min-width:0;background:#fff;border:1px solid #e5e7ef;border-radius:20px;box-sizing:border-box;overflow:hidden;font-family:Poppins,sans-serif}.chart-type-sidebar[data-v-e0eafb31]{position:relative;z-index:3;width:56px;flex:0 0 56px;display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0;box-sizing:border-box;background:#f9f9fc;border-right:1px solid #e5e7ef}.chart-type-button[data-v-e0eafb31]{position:relative;width:56px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-left:3px solid transparent;border-radius:6px;background:transparent;cursor:default;padding:8px 16px;box-sizing:border-box;font-family:Poppins,sans-serif}.analytics-chart-builder.has-chart-data .chart-type-button[data-v-e0eafb31]{cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.analytics-chart-builder.has-chart-data .chart-type-button[data-v-e0eafb31]:hover{background:#eef5ff;border-left-color:#4353ff;transform:translateY(-1px) scale(1.03);box-shadow:0 4px 12px #4353ff14}.analytics-chart-builder.has-chart-data .chart-type-button.active[data-v-e0eafb31]{background:#eef5ff;border-left-color:#4353ff;transform:scale(.96)}.chart-type-button.disabled[data-v-e0eafb31]:hover{background:transparent;border-left-color:transparent}.chart-type-icon[data-v-e0eafb31]{display:flex;align-items:center;justify-content:center;opacity:.24;transition:opacity .15s ease,filter .15s ease}.analytics-chart-builder.has-chart-data .chart-type-icon[data-v-e0eafb31]{opacity:1}.analytics-chart-builder.has-chart-data .chart-type-button.active .chart-type-icon[data-v-e0eafb31]{filter:invert(36%) sepia(96%) saturate(3728%) hue-rotate(230deg) brightness(101%) contrast(101%)}.chart-type-icon[data-v-e0eafb31] svg{width:24px;height:24px;display:block}.chart-type-tooltip[data-v-e0eafb31]{position:absolute;left:calc(100% + 22px);top:50%;width:121px;height:48px;display:flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;background:#fff;border:1px solid #d9deeb;box-shadow:0 10px 24px #0206311f;box-sizing:border-box;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .15s ease;z-index:10;font-family:Poppins,sans-serif}.chart-type-tooltip[data-v-e0eafb31]:before,.chart-type-tooltip[data-v-e0eafb31]:after{content:"";position:absolute;top:50%;width:0;height:0;transform:translateY(-50%)}.chart-type-tooltip[data-v-e0eafb31]:before{left:-15px;border-top:14px solid transparent;border-bottom:14px solid transparent;border-right:15px solid #d9deeb}.chart-type-tooltip[data-v-e0eafb31]:after{left:-13px;border-top:13px solid transparent;border-bottom:13px solid transparent;border-right:14px solid #ffffff}.chart-type-tooltip-label[data-v-e0eafb31]{position:relative;z-index:1;color:#000c;font-size:12px;font-weight:400;line-height:18px;text-align:center;white-space:nowrap;font-family:Poppins,sans-serif}.chart-type-button:hover .chart-type-tooltip[data-v-e0eafb31]{opacity:1}.chart-builder-canvas[data-v-e0eafb31]{position:relative;flex:1;min-width:0;height:100%;background-color:#fff;background-image:radial-gradient(#d6dbf5 1px,transparent 1px);background-size:16px 16px;box-sizing:border-box}.chart-render-area[data-v-e0eafb31]{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(144px,170px);align-items:center;gap:16px;padding:44px 24px 24px 12px;box-sizing:border-box;overflow:hidden}.chart-render-area.layout-vertical[data-v-e0eafb31]{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:44px 20px 16px}.chart-data-legend.layout-grid[data-v-e0eafb31]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;max-height:110px;overflow-y:auto;padding-left:54px;box-sizing:border-box}.analytics-echart[data-v-e0eafb31]{position:relative;width:100%;height:100%;min-width:0;min-height:0;touch-action:none}.chart-data-legend[data-v-e0eafb31]{width:100%;max-height:min(240px,calc(100% - 32px));display:flex;flex-direction:column;gap:9px;padding:10px;box-sizing:border-box;overflow-y:auto;pointer-events:auto}.chart-data-legend[data-v-e0eafb31]::-webkit-scrollbar{width:6px}.chart-data-legend[data-v-e0eafb31]::-webkit-scrollbar-thumb{background:#c4cbdd;border-radius:10px}.chart-legend-row[data-v-e0eafb31]{display:flex;align-items:center;gap:12px;min-width:0;color:#020631;font-size:13px;font-weight:400;line-height:20px}.chart-legend-dot[data-v-e0eafb31]{width:12px;height:12px;border-radius:50%;flex-shrink:0}.chart-legend-label[data-v-e0eafb31]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.chart-legend-value[data-v-e0eafb31]{flex-shrink:0}.chart-builder-expand[data-v-e0eafb31]{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:6px;background:transparent;cursor:pointer;z-index:2}.chart-builder-expand[data-v-e0eafb31]:disabled{cursor:not-allowed;opacity:.45}.chart-builder-expand[data-v-e0eafb31]:hover{background:#f5f6ff}.chart-builder-expand img[data-v-e0eafb31]{width:24px;height:24px;object-fit:contain}.chart-modal-overlay[data-v-e0eafb31]{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:32px;background:#02063166;box-sizing:border-box;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.chart-modal-card[data-v-e0eafb31]{width:min(1120px,92vw);height:min(720px,84vh);display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:#fff;box-shadow:0 20px 40px #02063126}.modal-enter-active[data-v-e0eafb31],.modal-leave-active[data-v-e0eafb31]{transition:opacity .25s ease,backdrop-filter .25s ease}.modal-enter-active .chart-modal-card[data-v-e0eafb31],.modal-leave-active .chart-modal-card[data-v-e0eafb31]{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.modal-enter-from[data-v-e0eafb31],.modal-leave-to[data-v-e0eafb31]{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}.modal-enter-from .chart-modal-card[data-v-e0eafb31],.modal-leave-to .chart-modal-card[data-v-e0eafb31]{transform:scale(.95) translateY(24px)}.chart-modal-header[data-v-e0eafb31]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7ef;background:#fff}.chart-modal-title[data-v-e0eafb31]{margin:0;color:#020631;font-size:16px;font-weight:600;line-height:24px}.chart-modal-close[data-v-e0eafb31]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;cursor:pointer;padding:0}.chart-modal-close[data-v-e0eafb31]:hover{background:#f5f6ff}.chart-modal-close img[data-v-e0eafb31]{width:24px;height:24px;object-fit:contain}.chart-modal-body[data-v-e0eafb31]{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:56px minmax(0,1fr) minmax(150px,180px);align-items:center;gap:20px;padding:0 36px 0 0;background-color:#fff;background-image:radial-gradient(#d6dbf5 1px,transparent 1px);background-size:16px 16px;box-sizing:border-box}.chart-modal-body.layout-vertical[data-v-e0eafb31]{grid-template-columns:56px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:0 20px 20px 0}.chart-modal-body.layout-vertical .chart-modal-type-sidebar[data-v-e0eafb31]{grid-row:1 / 3}.chart-modal-body.layout-vertical .chart-data-legend-modal[data-v-e0eafb31]{grid-column:2;max-height:112px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;overflow-y:auto}.chart-modal-type-sidebar[data-v-e0eafb31]{height:100%;align-self:stretch}.chart-modal-echart[data-v-e0eafb31]{height:100%}.chart-data-legend-modal[data-v-e0eafb31]{max-height:min(320px,calc(100% - 48px))}.chart-builder-empty-state[data-v-e0eafb31]{position:absolute;left:50%;top:50%;width:min(360px,calc(100% - 48px));display:flex;flex-direction:column;align-items:center;text-align:center;transform:translate(-50%,-50%)}.chart-empty-icon-wrap[data-v-e0eafb31]{position:relative;width:88px;height:72px;display:flex;align-items:flex-end;justify-content:flex-start;margin-bottom:8px}.chart-empty-icon-wrap[data-v-e0eafb31]:before{content:"";position:absolute;right:0;top:0;width:64px;height:64px;border-radius:50%;background:#f5f6f8}.chart-empty-icon[data-v-e0eafb31]{width:64px;height:64px;object-fit:contain;position:relative;z-index:1}.chart-empty-title[data-v-e0eafb31]{margin:0 0 4px;color:#47506a;font-size:20px;font-weight:700;line-height:28px}.chart-empty-description[data-v-e0eafb31]{margin:0;color:#47506a;font-size:16px;font-weight:400;line-height:24px}@media(max-width:1024px){.analytics-chart-builder[data-v-e0eafb31]{max-width:none;height:420px;min-height:420px}.chart-render-area[data-v-e0eafb31]{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:44px 20px 16px}.chart-data-legend[data-v-e0eafb31]{max-height:96px;display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.chart-modal-overlay[data-v-e0eafb31]{padding:20px}.chart-modal-card[data-v-e0eafb31]{width:94vw;height:82vh}.chart-modal-body[data-v-e0eafb31]{grid-template-columns:48px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:0 20px 20px 0}.chart-modal-type-sidebar[data-v-e0eafb31]{width:48px;flex-basis:48px;grid-row:1 / 3}.chart-modal-type-sidebar .chart-type-button[data-v-e0eafb31]{width:48px;padding:8px 12px}.chart-data-legend-modal[data-v-e0eafb31]{grid-column:2;max-height:112px;display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}}@media(max-width:600px){.chart-data-legend.layout-grid[data-v-e0eafb31],.chart-modal-body.layout-vertical .chart-data-legend-modal[data-v-e0eafb31]{grid-template-columns:repeat(2,1fr)!important}}.chart-builder-actions[data-v-e0eafb31]{position:absolute;top:16px;right:16px;display:flex;gap:8px;z-index:10;align-items:center}.chart-builder-actions .chart-builder-expand[data-v-e0eafb31]{position:static!important;width:32px!important;height:32px!important;border:1px solid #4353FF!important;border-radius:6px!important;background:#fff!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;cursor:pointer}.chart-builder-actions .chart-builder-expand img[data-v-e0eafb31]{width:18px!important;height:18px!important;object-fit:contain;display:block!important}.chart-builder-actions .chart-builder-expand[data-v-e0eafb31] svg{width:22px!important;height:22px!important;object-fit:contain;display:block!important}.chart-builder-actions .chart-builder-expand[data-v-e0eafb31] svg rect[stroke]{display:none!important}.chart-builder-actions .edit-chart-btn img[data-v-e0eafb31]{filter:invert(31%) sepia(85%) saturate(5412%) hue-rotate(228deg) brightness(101%) contrast(101%)!important}.chart-tooltip-stacked-color-bar{display:flex;height:6px;margin:-8px -12px 10px;border-radius:12px 12px 0 0;overflow:hidden}.chart-tooltip-stacked-color-bar-segment{flex:1}.chart-tooltip-stacked-list{display:flex;flex-direction:column;gap:10px;max-height:180px;overflow-y:auto;padding-right:6px;scrollbar-width:thin}.chart-tooltip-stacked-item{display:flex;align-items:center;justify-content:space-between;gap:24px}.chart-tooltip-stacked-details{display:flex;flex-direction:column}.chart-tooltip-stacked-title{font-weight:700;font-size:13px;color:#020631;font-family:Poppins,sans-serif;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-tooltip-stacked-value-label{font-size:11px;color:#70768f;font-family:Poppins,sans-serif}.chart-tooltip-stacked-value-label strong{color:#020631}.chart-tooltip-stacked-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.chart-tooltip-color-bar{height:6px;margin:-8px -12px 10px;border-radius:12px 12px 0 0}.chart-tooltip-wrapper{display:flex;flex-direction:column;padding:0 2px 2px;box-sizing:border-box}.chart-tooltip-title{font-weight:700;font-size:13px;color:#020631;font-family:Poppins,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;display:block;max-width:186px}.chart-tooltip-row{font-size:12px;font-family:Poppins,sans-serif;color:#70768f;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:186px}.chart-tooltip-row strong{color:#020631;font-weight:600}.slide-enter-active[data-v-e0eafb31],.slide-leave-active[data-v-e0eafb31]{transition:opacity .28s ease}.slide-enter-active[data-v-e0eafb31] .analytics-sidebar,.slide-leave-active[data-v-e0eafb31] .analytics-sidebar{transition:transform .3s cubic-bezier(.25,.8,.25,1)}.slide-enter-from[data-v-e0eafb31],.slide-leave-to[data-v-e0eafb31]{opacity:0}.slide-enter-from[data-v-e0eafb31] .analytics-sidebar,.slide-leave-to[data-v-e0eafb31] .analytics-sidebar{transform:translate(100%)}.chart-canvas-wrapper[data-v-e0eafb31]{position:relative;width:100%;height:100%;min-width:0;min-height:0}.chart-footer-area[data-v-e0eafb31]{display:flex;align-items:center;gap:20px;width:100%;margin-top:12px;box-sizing:border-box}.chart-footer-area.has-toolbar .chart-data-legend[data-v-e0eafb31]{flex:1;min-width:0;padding-left:0}.chart-footer-area:not(.has-toolbar) .chart-data-legend[data-v-e0eafb31]{width:100%;padding-left:54px}.chart-modal-footer-area[data-v-e0eafb31]{grid-column:2;margin-top:0}.chart-modal-footer-area.has-toolbar .chart-data-legend-modal[data-v-e0eafb31]{flex:1;min-width:0;padding-left:0}.chart-modal-footer-area:not(.has-toolbar) .chart-data-legend-modal[data-v-e0eafb31]{width:100%;padding-left:16px}.chart-board-toolbar[data-v-e0eafb31]{position:relative;flex-shrink:0;display:flex;align-items:center;background:#fff;border:1px solid #E5E7EF;border-radius:12px;box-shadow:0 10px 24px #204abb1f;overflow:hidden;z-index:10}.chart-toolbar-item[data-v-e0eafb31]{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;font-family:Poppins,sans-serif;font-size:12px;font-weight:500;line-height:1;color:#2b3455;background:transparent;border:none;cursor:pointer}.chart-toolbar-item[data-v-e0eafb31]:not(:last-child){border-right:1px solid #E6E9F2}.chart-toolbar-item.icon-only[data-v-e0eafb31]{width:36px;justify-content:center;padding:8px}.chart-toolbar-item.value-only[data-v-e0eafb31]{min-width:52px;justify-content:center;cursor:default}.chart-toolbar-icon[data-v-e0eafb31]{position:relative;width:14px;height:14px;display:inline-block}.chart-toolbar-icon-svg-wrapper[data-v-e0eafb31]{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.chart-toolbar-icon-svg-wrapper[data-v-e0eafb31] svg{width:14px;height:14px;display:block}.chart-toolbar-icon-svg-wrapper[data-v-e0eafb31] svg path{fill:#000!important}.chart-toolbar-icon-svg-wrapper[data-v-e0eafb31] svg rect[stroke]{display:none!important}.chart-toolbar-icon-svg-wrapper[data-v-e0eafb31] svg rect[fill=white]{fill:#fff!important}.chart-toolbar-icon.plus[data-v-e0eafb31]:before,.chart-toolbar-icon.plus[data-v-e0eafb31]:after,.chart-toolbar-icon.minus[data-v-e0eafb31]:before{content:"";position:absolute;background:#2b3455;border-radius:1px}.chart-toolbar-icon.plus[data-v-e0eafb31]:before,.chart-toolbar-icon.minus[data-v-e0eafb31]:before{width:10px;height:2px;left:2px;top:6px}.chart-toolbar-icon.plus[data-v-e0eafb31]:after{width:2px;height:10px;left:6px;top:2px}.chart-table-container[data-v-20ef9ced]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}[data-v-20ef9ced] .dt-table th{max-width:220px}[data-v-20ef9ced] .dt-table th .dt-header-sort{display:inline-flex;align-items:center;max-width:100%}[data-v-20ef9ced] .dt-table th .dt-header-sort span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}[data-v-20ef9ced] .dt-table th:nth-child(2),[data-v-20ef9ced] .dt-table td:nth-child(2){text-align:center}[data-v-20ef9ced] .dt-table th:nth-child(2) .dt-header-sort{justify-content:center}.empty-state[data-v-20ef9ced]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px}.empty-icon-container[data-v-20ef9ced]{display:flex;align-items:center;justify-content:center;margin-bottom:12px}.empty-state-img[data-v-20ef9ced]{width:81px;height:83px;object-fit:contain}.empty-title[data-v-20ef9ced]{margin:0 0 4px;color:#020631;font-size:14px;font-weight:600;line-height:20px}.empty-description[data-v-20ef9ced]{margin:0;color:#47506a;font-size:12px;font-weight:400;line-height:18px}.sidebar[data-v-e8d1c5fb]{--color-bg: #f7f8fc;--color-surface: #ffffff;--color-border: #e4e7f0;--color-border-hover: #c4cbdd;--color-text-primary: #020631;--color-text-secondary: #68769c;--color-accent: #4353ff;--color-accent-light: #eef0fd;--color-accent-border: #d0d5ff;--color-pill-hover-bg: #eef0ff;--color-loading-dot: #4353ff;--color-row-even: #ffffff;--color-row-odd: #f4f5fb;--color-row-leaf-odd: #f0f2ff;--font-family: "Poppins", sans-serif;--radius-fn: 8px;--sidebar-width: 234px}.sidebar[data-v-e8d1c5fb]{width:var(--sidebar-width);min-width:var(--sidebar-width);background:transparent;display:flex;flex-direction:column;height:100%;overflow:hidden}.sidebar-nav[data-v-e8d1c5fb]{flex:1;overflow-y:auto;padding:6px 0;background-color:#fff}.sidebar-nav[data-v-e8d1c5fb]::-webkit-scrollbar{width:4px}.accordion-group[data-v-e8d1c5fb]{display:flex;flex-direction:column;margin:0 12px;border-bottom:1px solid var(--color-border);transition:all .2s ease}.accordion-group--open[data-v-e8d1c5fb]{background:#f9f9fc;margin:8px 12px;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.accordion-group[data-v-e8d1c5fb]:last-child{border-bottom:none}.accordion-group--open[data-v-e8d1c5fb]:last-child{border-bottom:1px solid var(--color-border)}.accordion-header[data-v-e8d1c5fb]{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s ease;outline:none}.accordion-header[data-v-e8d1c5fb]:hover{background:var(--Color-Neutral-100, #e5e7ef)}.accordion-header--open[data-v-e8d1c5fb]{background:#e5e7ef!important;border-bottom:1px solid var(--color-border)}.accordion-header[data-v-e8d1c5fb]:focus-visible{box-shadow:inset 0 0 0 2px var(--color-accent)}.panel-icon[data-v-e8d1c5fb]{width:18px;height:18px;object-fit:contain;flex-shrink:0;display:block;color:transparent;filter:brightness(0) saturate(100%) invert(13%) sepia(20%) saturate(800%) hue-rotate(195deg) brightness(90%)}.panel-icon[src=""][data-v-e8d1c5fb]{display:none}.panel-label[data-v-e8d1c5fb]{flex:1;font-family:var(--font-family);font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chevron-icon[data-v-e8d1c5fb]{width:14px;height:14px;object-fit:contain;opacity:.45;flex-shrink:0;transition:transform .22s cubic-bezier(.4,0,.2,1),opacity .15s ease}.chevron-icon--open[data-v-e8d1c5fb]{transform:rotate(90deg);opacity:.7}.accordion-body[data-v-e8d1c5fb]{background:transparent;overflow:hidden}.accordion-body-inner[data-v-e8d1c5fb]{overflow:hidden}.panel-expand-enter-active[data-v-e8d1c5fb],.panel-expand-leave-active[data-v-e8d1c5fb]{max-height:600px;transition:max-height .24s cubic-bezier(.4,0,.2,1),opacity .2s ease;overflow:hidden}.panel-expand-enter-from[data-v-e8d1c5fb],.panel-expand-leave-to[data-v-e8d1c5fb]{max-height:0;opacity:0}.token-section[data-v-e8d1c5fb]{padding:10px 12px 12px}.token-section--divider[data-v-e8d1c5fb]{border-top:1px solid var(--color-border)}.token-group-label[data-v-e8d1c5fb]{font-family:var(--font-family);font-weight:600;font-size:14px;line-height:20px;letter-spacing:0;text-transform:capitalize;color:var(--text-primary, #020631);padding-top:0}.token-flex-row[data-v-e8d1c5fb]{display:flex;flex-wrap:wrap;gap:6px}.token-pill[data-v-e8d1c5fb]{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:10px;border:1.5px solid var(--color-accent-border);background:var(--color-surface);font-family:var(--font-family);font-size:11px;font-weight:600;color:var(--color-accent);cursor:pointer;white-space:nowrap;line-height:1;flex-shrink:0;transition:background .15s ease,border-color .12s ease,box-shadow .12s ease;outline:none;overflow:hidden}.token-pill[data-v-e8d1c5fb]:hover{background:var(--color-accent-light);border-color:var(--color-accent);box-shadow:0 1px 4px #4353ff26}.token-pill--operator[data-v-e8d1c5fb],.token-pill--logical[data-v-e8d1c5fb],.token-pill--separator[data-v-e8d1c5fb]{width:36px;height:36px}.token-pill--function[data-v-e8d1c5fb]{width:auto;min-width:44px;height:28px;padding:0 10px;border-radius:8px}.token-text[data-v-e8d1c5fb]{font-family:var(--font-family);font-size:12px;font-weight:700;line-height:1;color:var(--color-accent);display:block;text-align:center;-webkit-user-select:none;user-select:none}.drill-list-container[data-v-e8d1c5fb]{overflow:auto;max-height:400px}.drill-item[data-v-e8d1c5fb]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;background:none;border:none;border-bottom:1px solid #eef0f7;cursor:pointer;text-align:left;gap:8px;transition:background .12s ease;outline:none;box-sizing:border-box}.drill-item[data-v-e8d1c5fb]:last-child{border-bottom:none}.drill-item--even[data-v-e8d1c5fb]{background:transparent}.drill-item--odd[data-v-e8d1c5fb]{background:#00000005}.drill-item--leaf.drill-item--even[data-v-e8d1c5fb]{background:transparent}.drill-item--leaf.drill-item--odd[data-v-e8d1c5fb]{background:#4353ff08}.drill-item--even[data-v-e8d1c5fb]:hover,.drill-item--odd[data-v-e8d1c5fb]:hover{background:var(--color-accent-light)}.drill-item--leaf.drill-item--even[data-v-e8d1c5fb]:hover,.drill-item--leaf.drill-item--odd[data-v-e8d1c5fb]:hover{background:#e0e4ff}.drill-item--leaf[data-v-e8d1c5fb]{padding-left:18px}.drill-item-label[data-v-e8d1c5fb]{flex:1;font-family:var(--font-family);font-size:13px;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.drill-chevron[data-v-e8d1c5fb]{width:12px;height:12px;object-fit:contain;opacity:.4;flex-shrink:0}.drill-nav-header[data-v-e8d1c5fb]{display:flex;flex-direction:column;gap:2px;padding:10px 14px 8px;border-bottom:1px solid var(--color-border);background:transparent}.drill-back-btn[data-v-e8d1c5fb]{display:inline-flex;align-items:center;gap:3px;background:none;border:none;cursor:pointer;font-family:var(--font-family);font-size:12px;font-weight:600;color:var(--color-accent);padding:0;text-align:left;transition:opacity .12s ease;outline:none}.drill-back-btn[data-v-e8d1c5fb]:hover{opacity:.75}.drill-back-arrow[data-v-e8d1c5fb]{font-size:16px;line-height:1;font-weight:400}.drill-section-title[data-v-e8d1c5fb]{font-family:var(--font-family);font-size:10px;font-weight:700;color:var(--color-text-secondary);letter-spacing:.6px}.drill-parent-title[data-v-e8d1c5fb]{font-family:var(--font-family);font-size:9px;font-weight:400;color:var(--color-text-secondary);opacity:.7;letter-spacing:.3px;margin-top:1px}.drill-empty[data-v-e8d1c5fb]{padding:14px;font-family:var(--font-family);font-size:12px;color:var(--color-text-secondary);margin:0}.drill-loading[data-v-e8d1c5fb]{display:flex;align-items:center;justify-content:center;gap:5px;padding:20px 14px}.loading-dot[data-v-e8d1c5fb]{width:6px;height:6px;border-radius:50%;background:var(--color-loading-dot);animation:dot-bounce-e8d1c5fb 1.2s ease-in-out infinite}.loading-dot[data-v-e8d1c5fb]:nth-child(2){animation-delay:.2s}.loading-dot[data-v-e8d1c5fb]:nth-child(3){animation-delay:.4s}@keyframes dot-bounce-e8d1c5fb{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.value-action-row[data-v-e8d1c5fb]{display:flex;justify-content:flex-end;margin-top:8px}.value-add-btn[data-v-e8d1c5fb]{padding:6px 16px;border:1px solid var(--color-accent);border-radius:6px;background:var(--color-accent);color:#fff;font-family:var(--font-family);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease}.value-add-btn[data-v-e8d1c5fb]:hover{background:#3342f4}.sidebar-footer[data-v-e8d1c5fb]{flex-shrink:0}.expression-overlay[data-v-2b0d688e]{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;background:#020631b8;box-sizing:border-box}.expression-dialog[data-v-2b0d688e]{width:min(1017px,calc(100vw - 32px));height:min(699px,calc(100vh - 32px));display:flex;flex-direction:column;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 24px 48px #0206313d;animation:scale-in-2b0d688e .2s ease;font-family:Poppins,sans-serif}.expression-header[data-v-2b0d688e]{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:16px 16px 8px;box-sizing:border-box;background:#fff}.expression-title[data-v-2b0d688e]{margin:0;color:#020631;font-size:18px;font-weight:600;line-height:24px}.expression-close-btn[data-v-2b0d688e]{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;cursor:pointer;padding:0}.expression-close-btn[data-v-2b0d688e]:hover{background:#f5f6ff}.expression-close-btn img[data-v-2b0d688e]{width:16px;height:16px;object-fit:contain}.expression-body[data-v-2b0d688e]{display:flex;align-items:stretch;gap:16px;min-height:0;flex:1;padding:8px;box-sizing:border-box;background:#fff}.expression-sidebar-shell[data-v-2b0d688e]{width:260px;min-width:260px;min-height:0;max-height:100%;border:1px solid #e5e7ef;border-radius:12px;background:#fff;box-shadow:0 4px 10px #68769c29;padding:12px;display:flex;flex-direction:column;height:100%;box-sizing:border-box;overflow:hidden}.expression-workspace[data-v-2b0d688e]{flex:1;align-self:stretch;min-width:0;min-height:0;display:flex;flex-direction:column;gap:16px;padding:16px;border-radius:10px;background:#f9f9fc;box-sizing:border-box}.expression-workspace-header[data-v-2b0d688e]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.workspace-title[data-v-2b0d688e]{margin:0 0 6px;color:#020631;font-size:14px;font-weight:700;line-height:20px}.workspace-hint[data-v-2b0d688e]{margin:0;color:#68769c;font-size:12px;font-weight:400;line-height:18px}.token-count[data-v-2b0d688e]{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:68px;padding:0 10px;border-radius:999px;background:#0052cc;color:#fff;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.chips-canvas[data-v-2b0d688e]{flex:1;min-height:260px;padding:10px;border:1px dashed #c4cbdd;border-radius:10px;background:#fff;overflow-y:auto;box-sizing:border-box}.chips-canvas[data-v-2b0d688e]::-webkit-scrollbar{width:5px}.chips-canvas[data-v-2b0d688e]::-webkit-scrollbar-thumb{background:#c4cbdd;border-radius:4px}.chips-box[data-v-2b0d688e]{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px}.expression-chip[data-v-2b0d688e]{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-height:22px;padding:2px 7px;border:1px solid #4353ff;border-radius:999px;background:#eaf0ff;color:#4353ff;font-size:12px;font-weight:500;line-height:16px;box-sizing:border-box}.chip-remove-btn[data-v-2b0d688e]{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border:none;background:transparent;color:inherit;cursor:pointer;font-size:11px;line-height:1;padding:0}.chips-placeholder[data-v-2b0d688e]{color:#9ca5be;font-size:13px;line-height:20px}.expression-footer[data-v-2b0d688e]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.footer-btn[data-v-2b0d688e]{height:34px;border-radius:8px;cursor:pointer;font-family:Poppins,sans-serif;font-size:13px;font-weight:600}.footer-btn--reset[data-v-2b0d688e]{border:1px solid #4353ff;background:#fff;color:#4353ff}.footer-btn--save[data-v-2b0d688e]{border:1px solid #4353ff;background:#4353ff;color:#fff}.footer-btn--save[data-v-2b0d688e]:hover{background:#3342f4}@keyframes scale-in-2b0d688e{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:768px){.expression-dialog[data-v-2b0d688e]{max-height:calc(100vh - 24px)}.expression-body[data-v-2b0d688e]{flex-direction:column;overflow-y:auto}.expression-sidebar-shell[data-v-2b0d688e]{width:100%;min-width:0;min-height:220px}.chips-canvas[data-v-2b0d688e]{min-height:220px}}.analytics-config-panel[data-v-d6153250]{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:566px;flex:1;background:#fff;border:1px solid #e5e7ef;border-radius:20px;box-sizing:border-box;font-family:Poppins,sans-serif;overflow:hidden}.analytics-config-panel[data-v-d6153250] .combobox-list{padding:0!important;border-radius:4px!important}.analytics-config-panel[data-v-d6153250] .combobox-item{border:1px solid transparent}.analytics-config-panel[data-v-d6153250] .combobox-item.active{background:#fff!important;color:#4353ff!important;border:1px solid #4353ff!important;font-weight:500}.analytics-config-panel[data-v-d6153250] .combobox-item:first-child.active{border-top-left-radius:4px;border-top-right-radius:4px}.analytics-config-panel[data-v-d6153250] .combobox-item:last-child.active{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.analytics-config-panel[data-v-d6153250] .combobox-item.active.highlighted{background:#f2f4ff!important}.panel-scroll-content[data-v-d6153250]{display:flex;flex-direction:column;gap:16px;width:100%;height:100%;padding:16px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden}.panel-scroll-content[data-v-d6153250]::-webkit-scrollbar{width:5px}.panel-scroll-content[data-v-d6153250]::-webkit-scrollbar-track{background:transparent}.panel-scroll-content[data-v-d6153250]::-webkit-scrollbar-thumb{background:#9ca5be73;border-radius:10px}.panel-scroll-content[data-v-d6153250]::-webkit-scrollbar-thumb:hover{background:#68769cb3}.calculate-btn[data-v-d6153250]{height:32px;padding:0 16px;border:1px solid #4353ff;border-radius:6px;background:#4353ff;color:#fff;font-family:Poppins,sans-serif;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s ease,border-color .2s ease;align-self:center}.calculate-btn[data-v-d6153250]:hover{background:#3342f4;border-color:#3342f4}.calculate-btn[data-v-d6153250]:active{background:#2231e0;border-color:#2231e0}.card-header-actions[data-v-d6153250]{display:flex;align-items:center;gap:12px}.config-section[data-v-d6153250]{display:flex;flex-direction:column;gap:8px;width:100%}.row-section[data-v-d6153250]{flex-direction:row;align-items:center;justify-content:space-between;height:32px}.section-title[data-v-d6153250]{margin:0;color:#020631;font-size:16px;font-weight:600;line-height:24px}.field-container[data-v-d6153250]{width:100%}.field-container[data-v-d6153250] .combobox{max-width:365px}.analytics-config-panel[data-v-d6153250] .Options_Label,.filter-row .Options_Label[data-v-d6153250]{display:inline-flex;align-items:flex-start;gap:2px;margin-bottom:4px}.analytics-config-panel[data-v-d6153250] .labelText,.filter-row .labelText[data-v-d6153250]{color:#47506a;font-size:14px;font-weight:400;line-height:20px}.analytics-config-panel[data-v-d6153250] .asterisk,.filter-row .asterisk[data-v-d6153250]{color:#d60000;font-size:10px;height:6px;width:6px;position:relative}.field-container[data-v-d6153250] .dropdown-header,.filter-values-field[data-v-d6153250] .dropdown-header{border-color:#c4cbdd;border-radius:4px;height:40px;min-height:40px;padding:6px 8px;box-sizing:border-box;display:flex;align-items:center;gap:10px;background:#fff}.field-container[data-v-d6153250] .selected-tag,.filter-values-field[data-v-d6153250] .selected-tag{background:#fff;border:1px solid #c4cbdd;color:#020631;border-radius:16px;padding:4px 8px;font-size:12px;font-weight:400;height:28px;min-height:21px;box-sizing:border-box;display:flex;align-items:center;gap:4px;max-width:180px;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-container[data-v-d6153250] .remove,.filter-values-field[data-v-d6153250] .remove{width:11px;height:11px;display:flex;align-items:center;justify-content:center}.field-container[data-v-d6153250] .closeIcon,.filter-values-field[data-v-d6153250] .closeIcon{width:11px;height:11px;object-fit:contain}.field-container[data-v-d6153250] .arrow,.filter-values-field[data-v-d6153250] .arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.field-container[data-v-d6153250] .arrow img,.filter-values-field[data-v-d6153250] .arrow img{width:24px;height:24px;object-fit:contain;display:block}.field-container[data-v-d6153250] .selected-options,.filter-values-field[data-v-d6153250] .selected-options{counter-reset:hidden-tags-count;flex-wrap:nowrap!important;overflow:hidden;display:flex;width:100%}.filter-values-field[data-v-d6153250] .selected-tag{display:inline-flex!important;align-items:center!important;max-width:140px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;box-sizing:border-box!important}.filter-values-field[data-v-d6153250] .selected-tag .remove{flex-shrink:0!important;margin-left:4px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:16px!important;height:16px!important}.field-container[data-v-d6153250] .combobox-input-row,.filter-dropdown-field[data-v-d6153250] .combobox-input-row{border-color:#c4cbdd;border-radius:4px;height:40px;min-height:40px;padding:0 8px;box-sizing:border-box;display:flex;align-items:center;background:#fff}.field-container[data-v-d6153250] .combobox-input,.filter-dropdown-field[data-v-d6153250] .combobox-input{font-family:Poppins,sans-serif;color:#020631;font-size:14px;font-weight:400}.field-container[data-v-d6153250] .combobox-input::placeholder,.filter-dropdown-field[data-v-d6153250] .combobox-input::placeholder{color:#9ca5be}.field-container[data-v-d6153250] .combobox-arrow,.filter-dropdown-field[data-v-d6153250] .combobox-arrow{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.field-container[data-v-d6153250] .combobox-arrow img,.filter-dropdown-field[data-v-d6153250] .combobox-arrow img{width:24px;height:24px;object-fit:contain}.field-container[data-v-d6153250] .combobox-arrow.open,.filter-dropdown-field[data-v-d6153250] .combobox-arrow.open{transform:none!important}.add-btn[data-v-d6153250]{display:flex;align-items:center;justify-content:center;width:44px;height:36px;border:1px solid #4353ff;border-radius:8px;background:#fff;cursor:pointer;padding:8px 12px;box-sizing:border-box;transition:all .2s ease}.add-btn.disabled[data-v-d6153250]{opacity:.5;cursor:not-allowed;border-color:#e5e7ef}.add-btn.disabled img[data-v-d6153250]{filter:grayscale(1)}.add-btn img[data-v-d6153250]{width:16px;height:16px;object-fit:contain}.add-btn:not(.disabled) img[data-v-d6153250]{filter:invert(28%) sepia(85%) saturate(7355%) hue-rotate(235deg) brightness(101%) contrast(100%)}.filters-list[data-v-d6153250]{display:flex;flex-direction:column;gap:18px;width:100%}.filter-row[data-v-d6153250]{display:flex;align-items:flex-end;justify-content:flex-start;width:100%;gap:12px;height:61px}.filter-field[data-v-d6153250]{display:flex;flex-direction:column;gap:4px}.filter-dropdown-field[data-v-d6153250]{flex:0 0 176px;width:176px}.filter-values-field[data-v-d6153250]{flex:0 0 380px;width:380px}.remove-filter-btn[data-v-d6153250]{display:flex;align-items:center;justify-content:center;width:44px;height:40px;border:none;background:transparent;cursor:pointer;padding:0;transition:opacity .2s ease;margin-left:auto}.remove-filter-btn[data-v-d6153250]:hover{opacity:.7}.remove-filter-btn img[data-v-d6153250]{width:16px;height:16px;object-fit:contain}.expressions-list[data-v-d6153250]{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:-8px}.expression-preview[data-v-d6153250]{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%}.expression-chip-group[data-v-d6153250]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;flex:1;min-width:0}.remove-expression-btn img[data-v-d6153250]{width:16px;height:16px;object-fit:contain}.saved-expression-chip[data-v-d6153250]{display:inline-flex;align-items:center;max-width:100%;min-height:28px;padding:4px 10px;border:1px solid #c4cbdd;border-radius:999px;background:#eef2f8;color:#47506a;font-size:14px;font-weight:400;line-height:20px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-table-card[data-v-d6153250]{display:flex;flex-direction:column;min-height:250px;flex-shrink:0;border:1px solid #e5e7ef;border-radius:16px;background:#fff;overflow:hidden}.card-header[data-v-d6153250]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7ef;background:#fff}.card-title[data-v-d6153250]{margin:0;color:#020631;font-size:16px;font-weight:600;line-height:1}.expand-btn[data-v-d6153250]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;cursor:pointer;padding:0;transition:background .2s ease}.expand-btn[data-v-d6153250]:hover{background:#f5f6ff}.expand-btn img[data-v-d6153250]{width:24px;height:24px;object-fit:contain}.card-content[data-v-d6153250]{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;padding:24px;background:#fff}.card-title-container[data-v-d6153250]{display:flex;align-items:center;gap:8px}.badge[data-v-d6153250]{display:inline-flex;align-items:center;justify-content:center;background:#f5f5f5;color:#020631;font-size:12px;font-weight:600;height:22px;border-radius:20px;padding:0 6px;box-sizing:border-box;min-width:22px;font-family:Poppins,sans-serif;line-height:1}.card-content.has-table[data-v-d6153250]{display:flex;flex-direction:column;height:260px;padding:0;overflow:hidden;flex:none}.card-content.has-table[data-v-d6153250]::-webkit-scrollbar{width:5px}.card-content.has-table[data-v-d6153250]::-webkit-scrollbar-track{background:transparent}.card-content.has-table[data-v-d6153250]::-webkit-scrollbar-thumb{background:#c4cbdd73;border-radius:10px}.card-content.has-table[data-v-d6153250]::-webkit-scrollbar-thumb:hover{background:#9ca5beb3}.table-modal-overlay[data-v-d6153250]{position:fixed;inset:0;background:#02063166;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.table-modal-card[data-v-d6153250]{width:min(1120px,92vw);max-height:min(720px,84vh);height:auto;background:#fff;border-radius:16px;box-shadow:0 20px 40px #02063126;display:flex;flex-direction:column;overflow:hidden}.modal-enter-active[data-v-d6153250],.modal-leave-active[data-v-d6153250]{transition:opacity .25s ease,backdrop-filter .25s ease}.modal-enter-active .table-modal-card[data-v-d6153250],.modal-leave-active .table-modal-card[data-v-d6153250]{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.modal-enter-from[data-v-d6153250],.modal-leave-to[data-v-d6153250]{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}.modal-enter-from .table-modal-card[data-v-d6153250],.modal-leave-to .table-modal-card[data-v-d6153250]{transform:scale(.95) translateY(24px)}.expanded-content[data-v-d6153250]{display:flex;flex-direction:column;flex:1;min-height:0;padding:24px;overflow:hidden}@media(max-width:1024px){.analytics-config-panel[data-v-d6153250]{max-width:none;height:420px;min-height:420px}}.filter-values-field[data-v-d6153250] .selected-options .selected-tag{position:relative!important;display:inline-block!important;max-width:100%!important;padding:2px 28px 2px 8px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;box-sizing:border-box!important;vertical-align:middle!important;line-height:18px!important;height:24px!important}.filter-values-field[data-v-d6153250] .selected-options .selected-tag .remove{position:absolute!important;right:6px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:16px!important;height:16px!important}.custom-value-help-trigger[data-v-d6153250]{border:1px solid #c4cbdd;border-radius:4px;height:40px;min-height:40px;padding:6px 8px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;cursor:pointer;width:100%}.custom-value-help-trigger.disabled[data-v-d6153250]{opacity:.5;cursor:not-allowed;border-color:#e5e7ef}.custom-value-help-trigger .selected-options[data-v-d6153250]{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:thin;flex:1}.custom-value-help-trigger .selected-options[data-v-d6153250]::-webkit-scrollbar{height:3px}.custom-value-help-trigger .selected-options[data-v-d6153250]::-webkit-scrollbar-track{background:transparent}.custom-value-help-trigger .selected-options[data-v-d6153250]::-webkit-scrollbar-thumb{background:#9ca5be4d;border-radius:10px}.custom-value-help-trigger .placeholder[data-v-d6153250]{color:#9ca5be;font-size:14px;font-family:Poppins,sans-serif}.custom-value-help-trigger .selected-tag[data-v-d6153250]{background:#fff;border:1px solid #c4cbdd;color:#020631;border-radius:16px;padding:2px 24px 2px 8px;font-size:12px;font-weight:400;height:24px;display:inline-flex;align-items:center;position:relative;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;vertical-align:middle;line-height:18px}.custom-value-help-trigger .selected-tag .remove[data-v-d6153250]{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;cursor:pointer}.custom-value-help-trigger .selected-tag .closeIcon[data-v-d6153250]{width:11px;height:11px;object-fit:contain}.custom-value-help-trigger .right-section[data-v-d6153250]{display:flex;align-items:center;gap:8px;flex-shrink:0}.custom-value-help-trigger .value-help-icon[data-v-d6153250]{width:20px;height:20px;object-fit:contain}.custom-value-help-trigger .more-items[data-v-d6153250]{color:#4353ff;font-size:13px;font-weight:500;margin-left:2px;cursor:default;white-space:nowrap}.custom-value-help-trigger .inline-more[data-v-d6153250]{margin-left:6px}.datasource-fields-row[data-v-d6153250]{display:flex;gap:12px}.datasource-fields-row .application-container[data-v-d6153250]{flex:0 0 240px}.datasource-fields-row .datasource-container[data-v-d6153250]{flex:1;max-width:312px}[data-v-d6153250] .combobox:has(.combobox-input:disabled) .combobox-input-row{background-color:#f5f5f5!important;border-color:#e5e7ef!important;cursor:not-allowed!important}.analytics-sidebar-overlay[data-v-9a0a9d41]{--analytics-drawer-width: 330px;--analytics-horizontal-padding: 16px;position:fixed;inset:0;background:#0000003d;display:flex;justify-content:flex-end;z-index:999}.analytics-sidebar[data-v-9a0a9d41]{width:var(--analytics-drawer-width);flex:0 0 var(--analytics-drawer-width);max-width:calc(100vw - 20px);height:100%;background:#fff;display:flex;flex-direction:column;border-top-left-radius:16px;border-bottom-left-radius:16px;overflow:hidden}.analytics-sidebar-header[data-v-9a0a9d41]{display:flex;align-items:center;height:50px;padding:0 var(--analytics-horizontal-padding);box-sizing:border-box;border-bottom:1px solid #e5e7ef;flex-shrink:0}.analytics-sidebar-title[data-v-9a0a9d41]{margin:0;color:#000;font-family:Poppins,sans-serif;font-size:16px;font-weight:600;line-height:20px}.analytics-sidebar-body[data-v-9a0a9d41]{flex:1;display:flex;flex-direction:column;gap:14px;padding:12px var(--analytics-horizontal-padding) 16px;overflow-y:auto}.analytics-form-field[data-v-9a0a9d41]{display:flex;flex-direction:column;gap:4px}.analytics-field-label[data-v-9a0a9d41]{color:#47506a;font-family:Poppins,sans-serif;font-size:12px;font-weight:400;line-height:14px}.required[data-v-9a0a9d41]{color:#ed1c24}.analytics-input[data-v-9a0a9d41]{width:100%;height:40px;box-sizing:border-box;border:1px solid #9ca5be;border-radius:4px;background:#fff;color:#020631;font-family:Poppins,sans-serif;font-size:14px;font-weight:400;line-height:16px;padding:12px 8px;outline:none;box-shadow:none}.analytics-input[data-v-9a0a9d41]::placeholder{color:#9ca5be;opacity:1}.analytics-input[data-v-9a0a9d41]:focus{border-color:#9ca5be}.analytics-sidebar-footer[data-v-9a0a9d41]{display:flex;justify-content:flex-end;gap:16px;padding:14px var(--analytics-horizontal-padding);border-top:1px solid #f0f1f7;flex-shrink:0}.analytics-sidebar-footer[data-v-9a0a9d41] .analytics-cancel-btn,.analytics-sidebar-footer[data-v-9a0a9d41] .analytics-create-btn{min-width:82px;height:40px;box-sizing:border-box;padding:8px 12px;border-radius:8px;font-size:16px;line-height:18px;font-weight:600;cursor:pointer}.analytics-sidebar-footer[data-v-9a0a9d41] .analytics-cancel-btn{border:1px solid #4353ff;background:#fff;color:#4353ff}.analytics-sidebar-footer[data-v-9a0a9d41] .analytics-create-btn{border:1px solid #4353ff;background:#4353ff;color:#fff}@media(min-width:768px){.analytics-sidebar-overlay[data-v-9a0a9d41]{--analytics-drawer-width: 420px;--analytics-horizontal-padding: 20px}.analytics-sidebar-body[data-v-9a0a9d41]{gap:16px}}@media(min-width:1024px){.analytics-sidebar-overlay[data-v-9a0a9d41]{--analytics-drawer-width: 460px}}@media(min-width:1440px){.analytics-sidebar-overlay[data-v-9a0a9d41]{--analytics-drawer-width: 460px}}.modal-overlay-wrapper[data-v-b1c2b65f]{position:fixed;inset:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:0 16px;box-sizing:border-box;z-index:1000}.modal-overlay-wrapper.document-details-overlay[data-v-b1c2b65f]{padding:24px 16px!important;overflow-y:auto!important}.document-details-modal-view[data-v-b1c2b65f]{width:min(680px,100%)!important;height:auto!important;max-height:88vh!important;display:flex!important;flex-direction:column!important;background:#fff!important;border-radius:16px!important;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a!important;font-family:Poppins,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;overflow:hidden!important;margin:auto!important}.document-details-modal-view .detail-header-row[data-v-b1c2b65f],.detail-header-row[data-v-b1c2b65f]{flex-shrink:0!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:16px!important;padding:18px 24px 16px!important;border-bottom:1px solid #F1F5F9!important;background:#fff!important;z-index:10!important}.document-details-modal-view .detail-header-left[data-v-b1c2b65f],.detail-header-left[data-v-b1c2b65f]{display:flex!important;align-items:center!important;gap:14px!important;flex:1!important;min-width:0!important}.file-type-badge-large[data-v-b1c2b65f]{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;flex-shrink:0;transition:transform .2s ease,box-shadow .2s ease}.file-type-badge-large.pdf[data-v-b1c2b65f]{background:#fee2e2}.file-type-badge-large.zip[data-v-b1c2b65f],.file-type-badge-large.rar[data-v-b1c2b65f]{background:#f5f3ff}.file-type-badge-large.xlsx[data-v-b1c2b65f],.file-type-badge-large.xls[data-v-b1c2b65f],.file-type-badge-large.xlsm[data-v-b1c2b65f],.file-type-badge-large.csv[data-v-b1c2b65f]{background:#ecfdf5}.file-type-badge-large.docx[data-v-b1c2b65f],.file-type-badge-large.doc[data-v-b1c2b65f]{background:#eff6ff}.file-type-badge-large.jpg[data-v-b1c2b65f],.file-type-badge-large.jpeg[data-v-b1c2b65f],.file-type-badge-large.png[data-v-b1c2b65f]{background:#fdf2f8}.file-type-text-large[data-v-b1c2b65f]{font-size:14px;font-weight:800;color:#47506a}.file-type-badge-large.pdf .file-type-text-large[data-v-b1c2b65f]{color:#dc2626}.file-type-badge-large.zip .file-type-text-large[data-v-b1c2b65f],.file-type-badge-large.rar .file-type-text-large[data-v-b1c2b65f]{color:#8b5cf6}.file-type-badge-large.xlsx .file-type-text-large[data-v-b1c2b65f],.file-type-badge-large.xls .file-type-text-large[data-v-b1c2b65f],.file-type-badge-large.xlsm .file-type-text-large[data-v-b1c2b65f],.file-type-badge-large.csv .file-type-text-large[data-v-b1c2b65f]{color:#10b981}.file-type-badge-large.docx .file-type-text-large[data-v-b1c2b65f]{color:#3b82f6}.file-type-badge-large.jpg .file-type-text-large[data-v-b1c2b65f],.file-type-badge-large.png .file-type-text-large[data-v-b1c2b65f]{color:#ec4899}.document-details-modal-view .detail-title-group[data-v-b1c2b65f],.detail-title-group[data-v-b1c2b65f]{display:flex!important;flex-direction:column!important;gap:4px!important;flex:1!important;min-width:0!important}.document-details-modal-view .detail-document-name[data-v-b1c2b65f],.detail-document-name[data-v-b1c2b65f]{font-size:16px!important;font-weight:700!important;color:#0f172a!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.3!important}.detail-badge-group[data-v-b1c2b65f]{display:flex;gap:8px;margin-top:4px}.detail-status-pill[data-v-b1c2b65f]{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#f1f5f9;color:#47506a;border:1px solid #E5E7EF;text-transform:capitalize}.detail-status-pill.approved[data-v-b1c2b65f],.detail-status-pill.active[data-v-b1c2b65f]{background:#dcfff1;color:#15803d;border:1px solid #BBF7D0}.detail-status-pill.under-review[data-v-b1c2b65f]{background:#fef3c7;color:#d97706;border:1px solid #FDE68A}.detail-status-pill.expired[data-v-b1c2b65f]{background:#fee2e2;color:#b91c1c;border:1px solid #FCA5A5}.detail-version-pill[data-v-b1c2b65f]{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#eff6ff;color:#3b82f6;border:1px solid #BFDBFE}.document-details-modal-view .detail-header-right[data-v-b1c2b65f],.detail-header-right[data-v-b1c2b65f]{display:flex!important;align-items:center!important;gap:8px!important;flex-shrink:0!important}.header-action-btn-pill[data-v-b1c2b65f]{width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #E5E7EF;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#68769c;transition:all .2s}.header-action-btn-pill[data-v-b1c2b65f]:hover:not(:disabled){background:#f8fafc;border-color:#c4cbdd}.header-action-btn-pill.close-btn[data-v-b1c2b65f]:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.document-details-modal-view .flex-column-body[data-v-b1c2b65f],.flex-column-body[data-v-b1c2b65f],.modal-scrollable-body[data-v-b1c2b65f]{display:flex!important;flex-direction:column!important;gap:20px!important;padding:20px 24px 24px!important;flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}.detail-split-view-section[data-v-b1c2b65f]{display:flex;gap:20px;align-items:flex-start}.document-rendering-card-left[data-v-b1c2b65f]{flex:1;background:#f8fafc;border:1px solid #E5E7EF;border-radius:12px;padding:20px;display:flex;justify-content:center;position:relative;min-height:240px;box-sizing:border-box}.rendered-document-sheet[data-v-b1c2b65f]{background:#fff;border:1px solid #C4CBDD;border-radius:4px;width:170px;height:220px;box-shadow:0 4px 6px -1px #0000000d;padding:16px;box-sizing:border-box;position:relative;transition:transform .2s,box-shadow .2s}.rendered-document-sheet[data-v-b1c2b65f]:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.document-properties-table-right[data-v-b1c2b65f]{flex:1.5;background:#fff}.prop-table-grid[data-v-b1c2b65f]{display:flex!important;flex-direction:column!important;gap:12px!important;width:100%!important}.prop-row[data-v-b1c2b65f]{display:grid!important;grid-template-columns:140px 1fr!important;align-items:flex-start!important;gap:12px!important;font-size:13px!important;padding:6px 0!important;box-sizing:border-box!important}.prop-label[data-v-b1c2b65f]{font-size:11px!important;font-weight:600!important;color:#9ca5be!important;text-transform:uppercase!important;letter-spacing:.5px!important}.prop-val[data-v-b1c2b65f]{font-size:13px!important;color:#0f172a!important;font-weight:500!important}.prop-val.text-bold[data-v-b1c2b65f]{font-weight:600!important}.document-sub-actions-bar[data-v-b1c2b65f]{display:flex;gap:12px;border-bottom:1px solid #E5E7EF;padding-bottom:20px}.sub-action-outline-btn[data-v-b1c2b65f]{flex:1;background:#fff;border:1px solid #D1D5DB;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;color:#374151;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.sub-action-outline-btn[data-v-b1c2b65f]:hover{background:#f9fafb;border-color:#9ca3af;color:#4353ff}.sub-action-outline-btn.intelliedit-action-btn[data-v-b1c2b65f]{background:#eef2ff!important;border-color:#c7d2fe!important;color:#4353ff!important}.document-details-modal-view .assignments-section-block[data-v-b1c2b65f],.assignments-section-block[data-v-b1c2b65f]{display:flex!important;flex-direction:column!important;gap:12px!important;padding-bottom:0!important;flex:none!important}.assignments-title[data-v-b1c2b65f]{margin:0!important;font-size:15px!important;line-height:23.2px!important;font-weight:700!important;color:#0f172a!important}.document-details-modal-view .assignments-table-wrapper[data-v-b1c2b65f],.assignments-table-wrapper[data-v-b1c2b65f]{width:100%!important;max-height:240px!important;min-height:unset!important;overflow-y:auto!important;overflow-x:auto!important;border:1px solid #E2E8F0!important;border-radius:8px!important;background:#fff!important;margin-top:4px!important}.document-details-modal-view .assignments-table-wrapper .assignments-mini-table[data-v-b1c2b65f],.assignments-mini-table[data-v-b1c2b65f]{margin-top:0!important;border:none!important;border-radius:0!important;width:100%!important;border-collapse:collapse}.document-details-modal-view .assignments-mini-table th[data-v-b1c2b65f],.assignments-mini-table th[data-v-b1c2b65f]{position:sticky!important;top:0!important;z-index:2!important;background:#f8fafc!important;color:#47506a!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.04em!important;padding:10px 14px!important;text-align:left!important;border-bottom:1px solid #E2E8F0!important;white-space:nowrap!important}.assignments-mini-table td[data-v-b1c2b65f]{padding:10px 14px!important;font-size:12px!important;color:#334155!important;border-bottom:1px solid #F1F5F9!important;vertical-align:middle!important}.date-text-sm[data-v-b1c2b65f]{font-size:12px!important;color:#61718b!important;font-weight:400!important}.username-text-sm[data-v-b1c2b65f]{font-size:12px!important;color:#0f172a!important;font-weight:500!important}.ref-value-text[data-v-b1c2b65f]{font-size:13px!important;color:#0f172a!important;font-weight:500!important}.assignments-header-row[data-v-b1c2b65f]{display:flex;justify-content:space-between;align-items:center}.assignments-title[data-v-b1c2b65f]{margin:0;font-size:14px;font-weight:700;color:#0f172a}.assign-link-action-btn[data-v-b1c2b65f]{background:#fff;border:1px solid #D1D5DB;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;color:#47506a;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.assign-link-action-btn[data-v-b1c2b65f]:hover{border-color:#4353ff;color:#4353ff;background:#eef2ff}.assignments-table-wrapper[data-v-b1c2b65f]{width:100%!important;max-height:240px!important;min-height:unset!important;overflow-y:auto!important;overflow-x:auto!important;border:1px solid #E2E8F0!important;border-radius:8px!important;background:#fff!important;margin-top:4px!important}.assignments-table-wrapper .assignments-mini-table[data-v-b1c2b65f]{margin-top:0!important;border:none!important;border-radius:0!important;width:100%!important;border-collapse:collapse}.assignments-mini-table th[data-v-b1c2b65f]{position:sticky!important;top:0!important;z-index:2!important;background:#f8fafc!important;color:#47506a!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.04em!important;padding:10px 14px!important;text-align:left!important;border-bottom:1px solid #E2E8F0!important;white-space:nowrap!important}.assignments-mini-table td[data-v-b1c2b65f]{padding:10px 14px;font-size:13px;color:#334155;border-bottom:1px solid #F1F5F9}.entity-type-badge-row[data-v-b1c2b65f]{display:flex;align-items:center;gap:8px}.entity-badge-icon[data-v-b1c2b65f]{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px}.entity-badge-icon.blue[data-v-b1c2b65f]{background:#eef2ff}.entity-badge-text[data-v-b1c2b65f]{font-weight:600;font-size:12px}.mini-actions-row[data-v-b1c2b65f]{display:flex;gap:8px;justify-content:center}.mini-action-btn[data-v-b1c2b65f]{background:none;border:none;color:#9ca5be;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.mini-action-btn[data-v-b1c2b65f]:hover{color:#dc2626;background:#fee2e2}.full-screen-preview-overlay[data-v-b1c2b65f]{position:fixed;inset:0;background:#0f172af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20000;display:flex;flex-direction:column;font-family:Poppins,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.preview-navbar[data-v-b1c2b65f]{height:60px;background:#fff;border-bottom:1px solid #E5E7EF;display:flex;justify-content:space-between;align-items:center;padding:0 24px;box-shadow:0 4px 6px -1px #0000000d}.preview-filename[data-v-b1c2b65f]{color:#0f172a;font-size:16px;font-weight:600}.preview-controls-row[data-v-b1c2b65f]{display:flex;align-items:center;gap:12px}.nav-control-btn[data-v-b1c2b65f]{background:#f1f5f9;border:1px solid #C4CBDD;color:#47506a;border-radius:6px;padding:6px 12px;height:32px;box-sizing:border-box;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease}.nav-control-btn[data-v-b1c2b65f]:hover:not(:disabled){background:#e5e7ef;border-color:#9ca5be;color:#0f172a}.nav-control-btn[data-v-b1c2b65f]:disabled{opacity:.5;cursor:not-allowed}.nav-control-btn.zoom-btn[data-v-b1c2b65f]{width:32px;height:32px;padding:0;font-size:16px;font-weight:600;line-height:1}.nav-control-btn.download-nav-btn[data-v-b1c2b65f]{width:32px;height:32px;padding:0}.zoom-value-text[data-v-b1c2b65f]{color:#47506a;font-size:13px;font-weight:600;min-width:44px;text-align:center;-webkit-user-select:none;user-select:none}.divider-v[data-v-b1c2b65f]{width:1px;height:20px;background:#e5e7ef;margin:0 4px}.nav-control-btn.intelliedit-nav-btn[data-v-b1c2b65f]{background:#f1f5f9;border:1px solid #C4CBDD;color:#47506a;font-weight:500}.nav-control-btn.intelliedit-nav-btn[data-v-b1c2b65f]:hover:not(:disabled){background:#e5e7ef;border-color:#9ca5be;color:#0f172a}.nav-control-btn.close-preview[data-v-b1c2b65f]{width:32px;height:32px;padding:0;background:#f1f5f9;border:1px solid #C4CBDD;color:#47506a}.nav-control-btn.close-preview[data-v-b1c2b65f]:hover:not(:disabled){background:#e5e7ef;border-color:#9ca5be;color:#0f172a}.full-preview-body[data-v-b1c2b65f]{flex:1;overflow-y:auto;padding:40px;display:flex;justify-content:center;align-items:flex-start}.spatial-point-pin[data-v-b1c2b65f]{position:absolute;transform:translate(-50%,-50%);color:#fff;padding:4px 8px;font-size:11px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #0006;display:flex;align-items:center;gap:4px;z-index:20;border:2px solid #FFFFFF;transition:transform .15s ease,box-shadow .15s ease}.spatial-point-pin[data-v-b1c2b65f]:hover{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 6px 18px #00000080;z-index:25}.spinner-inline[data-v-b1c2b65f]{border-radius:50%;border-style:solid;animation:spin-b1c2b65f .8s linear infinite;display:inline-block}@keyframes spin-b1c2b65f{to{transform:rotate(360deg)}}

.shell-bar[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 48px;
  flex-shrink: 0;
  padding: 0 20px;
  background: var(--color-surface-page, #F9F9FC);
}
.shell-left[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}
.shell-logo[data-v-a7aaf6d3] {
  width: 120px;
  height: 22px;
  display: block;
}
.shell-logo-btn[data-v-a7aaf6d3] {
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}
.shell-logo-btn[data-v-a7aaf6d3]:focus-visible {
  outline: 2px solid var(--color-primary, #4353FF);
  outline-offset: 3px;
  border-radius: 6px;
}
.shell-right[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.scope-switch[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  margin-left: 4px;
  padding-left: 16px;
  border-left: 1px solid var(--color-border-default, #E5E7EF);
}

/* Collapsed sidebar: append the project segment after a slash separator.
   Same plain look as the standalone workspace pill — no boxed container. */
.scope-switch--crumb[data-v-a7aaf6d3] {
  gap: 1px;
}
.scope-sep[data-v-a7aaf6d3] {
  flex-shrink: 0;
  color: var(--color-text-large-text, #68769C);
  opacity: 0.5;
}
.scope-icon[data-v-a7aaf6d3] {
  flex-shrink: 0;
}
.scope-icon--ws[data-v-a7aaf6d3] {
  color: var(--color-primary, #4353FF);
}
.scope-icon--pj[data-v-a7aaf6d3] {
  color: #1E7A43;
}
.scope-switch--crumb .ws-switch-name[data-v-a7aaf6d3] {
  max-width: 130px;
}
.ws-switch-wrap[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  position: relative;
  cursor: pointer;
}
.ws-switch-btn[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: transparent;
  padding: 6px 8px;
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.ws-switch-btn[data-v-a7aaf6d3]:hover {
  background: rgba(0, 0, 0, 0.05);
}
.ws-switch-name[data-v-a7aaf6d3] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ws-switch-chevron[data-v-a7aaf6d3] {
  flex-shrink: 0;
  color: var(--color-text-large-text, #68769C);
  transition: transform 0.15s ease;
}
.ws-switch-chevron--open[data-v-a7aaf6d3] {
  transform: rotate(180deg);
}
.ws-switch-dropdown[data-v-a7aaf6d3] {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  background: #ffffff;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.12);
  min-width: 240px;
  max-width: 320px;
  z-index: 9999;
  overflow: hidden;
  padding: 4px 0;
}
.ws-switch-error[data-v-a7aaf6d3] {
  margin: 0;
  padding: 8px 14px;
  font-size: 12px;
  color: #dc2626;
}
.ws-switch-item[data-v-a7aaf6d3] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  width: 100%;
  padding: 8px 14px;
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  transition: background 0.1s;
}
.ws-switch-item[data-v-a7aaf6d3]:hover:not(:disabled) {
  background: var(--color-bg-page, #F9F9FC);
}
.ws-switch-item[data-v-a7aaf6d3]:disabled {
  cursor: default;
  opacity: 0.6;
}
.ws-switch-item--active .ws-switch-item-name[data-v-a7aaf6d3]::after {
  content: ' \2713';
  color: var(--color-primary, #4353FF);
}
.ws-switch-item-name[data-v-a7aaf6d3] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.ws-switch-item-meta[data-v-a7aaf6d3] {
  font-size: 11px;
  color: var(--color-text-large-text, #68769C);
}
.icon-btn[data-v-a7aaf6d3] {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: none;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  gap: 4px;
  position: relative;
}
.icon-btn svg[data-v-a7aaf6d3] {
  width: 20px;
  height: 20px;
}
.notif-wrap[data-v-a7aaf6d3] {
  position: relative;
}
.notif-badge[data-v-a7aaf6d3] {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 15px;
  height: 15px;
  padding: 0 3px;
  border-radius: 999px;
  background: #dc2626;
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 15px;
  text-align: center;
}
.notif-dropdown[data-v-a7aaf6d3] {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: #ffffff;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.12);
  width: 340px;
  max-width: 90vw;
  z-index: 9999;
  overflow: hidden;
}
.notif-dropdown-header[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.notif-dropdown-title[data-v-a7aaf6d3] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.notif-mark-all[data-v-a7aaf6d3] {
  border: none;
  background: none;
  color: var(--color-primary, #4353FF);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
}
.notif-empty[data-v-a7aaf6d3] {
  padding: 20px 14px;
  font-size: 12.5px;
  color: var(--color-text-label, #47506A);
  text-align: center;
  margin: 0;
}
.notif-dropdown-footer[data-v-a7aaf6d3] {
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  padding: 8px 14px;
  text-align: center;
}
.notif-clear-all[data-v-a7aaf6d3] {
  border: none;
  background: none;
  color: var(--color-text-label, #47506A);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
}
.notif-clear-all[data-v-a7aaf6d3]:hover {
  color: #dc2626;
}
.notif-list[data-v-a7aaf6d3] {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 360px;
  overflow-y: auto;
}
.notif-item[data-v-a7aaf6d3] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 14px;
  cursor: pointer;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.notif-item[data-v-a7aaf6d3]:last-child {
  border-bottom: none;
}
.notif-item[data-v-a7aaf6d3]:hover {
  background: var(--color-bg-page, #F9F9FC);
}
.notif-item--unread[data-v-a7aaf6d3] {
  background: rgba(67, 83, 255, 0.04);
}
.notif-item-title[data-v-a7aaf6d3] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.notif-item-body[data-v-a7aaf6d3] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.notif-item-time[data-v-a7aaf6d3] {
  font-size: 10.5px;
  color: var(--color-text-large-text, #68769C);
  margin-top: 2px;
}
.admin-btn[data-v-a7aaf6d3] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px 5px 8px;
  border-radius: 8px;
  background: rgba(220, 38, 38, 0.08);
  color: #dc2626;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  border: 1px solid rgba(220, 38, 38, 0.22);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  white-space: nowrap;
  text-decoration: none;
}
.admin-btn svg[data-v-a7aaf6d3] { flex-shrink: 0;
}
.admin-btn[data-v-a7aaf6d3]:hover {
  background: rgba(220, 38, 38, 0.18);
  border-color: rgba(220, 38, 38, 0.4);
}
.admin-btn__label[data-v-a7aaf6d3] { line-height: 1;
}
.icon-btn[data-v-a7aaf6d3]:hover {
  background: rgba(0, 0, 0, 0.05);
}
.icon-img[data-v-a7aaf6d3] {
  width: 20px;
  height: 20px;
  display: block;
}
.profile-wrap[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  position: relative;
}
.profile-dropdown[data-v-a7aaf6d3] {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: #ffffff;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.12);
  min-width: 220px;
  z-index: 9999;
  overflow: hidden;
}
.dropdown-user[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
}
.dropdown-avatar[data-v-a7aaf6d3] {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--color-primary, #4353FF);
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dropdown-user-info[data-v-a7aaf6d3] {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.dropdown-name[data-v-a7aaf6d3] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dropdown-email[data-v-a7aaf6d3] {
  font-size: 11px;
  color: var(--color-text-large-text, #68769C);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dropdown-email--solo[data-v-a7aaf6d3] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.dropdown-role[data-v-a7aaf6d3] {
  align-self: flex-start;
  margin-top: 3px;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-primary, #4353FF);
  background: rgba(67, 83, 255, 0.08);
}
.dropdown-divider[data-v-a7aaf6d3] {
  height: 1px;
  background: var(--color-border-default, #E5E7EF);
  margin: 0;
}
.dropdown-link[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 9px 14px;
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  font-weight: 400;
  color: var(--color-primary-dark, #020631);
  text-align: left;
  transition: background 0.1s;
}
.dropdown-link[data-v-a7aaf6d3]:hover {
  background: var(--color-bg-page, #F9F9FC);
}
.dropdown-link--danger[data-v-a7aaf6d3] {
  color: #dc2626;
}
.dropdown-link--danger[data-v-a7aaf6d3]:hover {
  background: #fff1f1;
}
.dropdown-version[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
}
.dropdown-version-label[data-v-a7aaf6d3] {
  font-size: 11px;
  color: var(--color-text-large-text, #68769C);
}
.dropdown-version-value[data-v-a7aaf6d3] {
  font-size: 11px;
  font-weight: 600;
  font-family: monospace;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-page, #F9F9FC);
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid var(--color-border-default, #E5E7EF);
}
.dropdown-link--lang[data-v-a7aaf6d3] {
  justify-content: flex-start;
  gap: 8px;
}
.dropdown-lang-current[data-v-a7aaf6d3] {
  margin-left: auto;
  font-size: 11px;
  font-weight: 500;
  color: var(--color-text-large-text, #68769C);
  margin-right: 2px;
}
.dropdown-chevron[data-v-a7aaf6d3] {
  flex-shrink: 0;
  transition: transform 0.15s ease;
  color: var(--color-text-large-text, #68769C);
}
.dropdown-chevron--open[data-v-a7aaf6d3] {
  transform: rotate(180deg);
}
.dropdown-lang-list[data-v-a7aaf6d3] {
  background: var(--color-bg-page, #F9F9FC);
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.dropdown-lang-item[data-v-a7aaf6d3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px 14px 8px 36px;
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 12px;
  color: var(--color-primary-dark, #020631);
  text-align: left;
  transition: background 0.1s;
}
.dropdown-lang-item[data-v-a7aaf6d3]:hover {
  background: rgba(67, 83, 255, 0.06);
}
.dropdown-lang-item[data-v-a7aaf6d3]:disabled { cursor: default; opacity: 0.55;
}
.dropdown-lang-soon[data-v-a7aaf6d3] {
  margin-left: auto;
  font: 400 10px/14px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
}
.dropdown-lang-item--active[data-v-a7aaf6d3] {
  font-weight: 600;
  color: var(--color-primary, #4353FF);
}
.user-avatar[data-v-a7aaf6d3] {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--color-primary, #4353FF);
  color: var(--color-text-white, #FFFFFF);
  font-weight: 700;
  font-size: 11px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}


.app-tile-icon[data-v-e69c340d] {
  border-radius: 10px;
  background: linear-gradient(135deg, #5E4ED4, #4353FF);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

/* Image icons sit on a light neutral tile so full-colour SVGs/PNGs read true. */
.app-tile-icon--img[data-v-e69c340d] {
  background: #ECEEFF;
}
.app-tile-icon__img[data-v-e69c340d] {
  width: 72%;
  height: 72%;
  object-fit: contain;
  display: block;
}
.app-tile-icon__initials[data-v-e69c340d] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 700;
  color: var(--color-text-white, #FFFFFF);
  line-height: 1;
  user-select: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.app-tile-icon__initials--stacked .app-tile-icon__line[data-v-e69c340d] {
  line-height: 1.05;
}

.sidebar[data-v-d6cc50bf] {
  width: 232px;
  flex-shrink: 0;
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  padding: 0 0 24px 0;
  overflow-y: auto;
  transition: width 0.2s ease, padding 0.2s ease;
  position: sticky;
  top: 0;
  align-self: stretch;
}
.sidebar--collapsed[data-v-d6cc50bf] {
  width: 64px;
  align-items: center;
}

/* ── Workspace header ── */
.sb-workspace-area[data-v-d6cc50bf] {
  padding: 8px 16px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  margin-bottom: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sb-workspace-area--collapsed[data-v-d6cc50bf] {
  padding: 12px 0;
  align-items: center;
}
.sb-workspace-row[data-v-d6cc50bf] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sb-workspace-label[data-v-d6cc50bf] {
  font-size: 12px;
  font-weight: 500;
  color: var(--color-text-large-text, #68769C);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  min-width: 0;
}
.sb-project-select[data-v-d6cc50bf] {
  position: relative;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
}
.sb-project-select-input[data-v-d6cc50bf] {
  appearance: none;
  border: none;
  background: transparent;
  /* full-box padding so the whole control (incl. the chevron side) is the click target */
  padding: 7px 30px 7px 10px;
  margin: 0;
  width: 100%;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-primary-dark, #020631);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 1;
  cursor: pointer;
}
.sb-project-select-input[data-v-d6cc50bf]:focus {
  outline: none;
}
.sb-project-select-input[data-v-d6cc50bf]:disabled {
  cursor: not-allowed;
  color: var(--color-text-large-text, #68769C);
}
.sb-chevron[data-v-d6cc50bf] {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-label, #47506A);
  pointer-events: none;
}

/* ── Current project ── */
.current-project[data-v-d6cc50bf] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 10px 8px;
  padding: 12px;
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
}
.sidebar--collapsed .current-project[data-v-d6cc50bf] {
  margin: 10px 0;
  padding: 8px 0;
  align-items: center;
  background: transparent;
  border: none;
}
.cp-header[data-v-d6cc50bf] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.cp-label[data-v-d6cc50bf] {
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--color-text-large-text, #68769C);
}
.cp-apps[data-v-d6cc50bf] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cp-app-row[data-v-d6cc50bf] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  border: none;
  border-radius: 8px;
  background: none;
  cursor: pointer;
  text-align: left;
  width: 190px;
  transition: background 0.15s, box-shadow 0.15s;
}
.cp-app-row[data-v-d6cc50bf]:hover {
  background: #eeebfc;
  box-shadow: 0 4px 16px rgba(94, 78, 212, 0.14);
}
.cp-app-icon[data-v-d6cc50bf] {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  border-radius: 6px;
  background: linear-gradient(135deg, #5E4ED4 0%, #4353FF 100%);
  color: #fff;
  font: 700 9px/1 'Poppins', sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cp-app-name[data-v-d6cc50bf] {
  flex: 1;
  min-width: 0;
  font-size: 12.5px;
  color: var(--color-primary-dark, #020631);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cp-apps[data-v-d6cc50bf] {
  overflow: visible;
}
.cp-app-pill[data-v-d6cc50bf] {
  font-size: 10px;
  font-weight: 500;
  padding: 2px 7px;
  border-radius: 999px;
}
.cp-app-pill--active[data-v-d6cc50bf] {
  background: #ECFDF5;
  color: #059669;
}
.cp-app-pill--inactive[data-v-d6cc50bf] {
  background: #FEF3C7;
  color: #92400E;
}
.cp-empty[data-v-d6cc50bf] {
  font-size: 12px;
  color: var(--color-text-placeholder, #9CA5BE);
  padding: 4px 6px;
  margin: 0;
}
.cp-add-btn[data-v-d6cc50bf] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 32px;
  border: 1px dashed var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  background: none;
  color: var(--color-text-label, #47506A);
  font-family: inherit;
  font-size: 12px;
  cursor: pointer;
  transition: border-color 0.12s, color 0.12s;
}
.cp-add-btn[data-v-d6cc50bf]:hover {
  border-color: var(--color-primary, #4353FF);
  color: var(--color-primary, #4353FF);
}
.cp-app-icon-btn[data-v-d6cc50bf] {
  border: none;
  background: none;
  padding: 3px 0;
  cursor: pointer;
}
.cp-app-icon-btn[data-v-d6cc50bf]:disabled {
  cursor: default;
  opacity: 0.55;
}
.collapse-btn[data-v-d6cc50bf] {
  width: 24px;
  height: 24px;
  border: 1px solid var(--color-primary, #4353FF);
  border-radius: 6px;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0;
}
.collapse-btn[data-v-d6cc50bf]:hover {
  background: rgba(67, 83, 255, 0.06);
}

/* ── Nav ── */
.sidebar-nav[data-v-d6cc50bf] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 8px;
}
.admin-nav[data-v-d6cc50bf] {
  padding-top: 4px;
}
.sidebar--collapsed .sidebar-nav[data-v-d6cc50bf] {
  padding: 0;
  width: 100%;
  align-items: center;
}
.nav-divider[data-v-d6cc50bf] {
  height: 1px;
  background: var(--color-border-default, #E5E7EF);
  margin: 4px 16px;
}
.admin-heading[data-v-d6cc50bf] {
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--color-text-large-text, #68769C);
  padding: 8px 16px 4px;
}

/* ── Nav item wrapper (enables flyout hover zone) ── */
.nav-item-wrapper[data-v-d6cc50bf] {
  width: 100%;
}
.sidebar--collapsed .nav-item-wrapper[data-v-d6cc50bf] {
  width: auto;
}
.nav-item[data-v-d6cc50bf] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 400;
  color: var(--color-text-label, #47506A);
  width: 100%;
  text-align: left;
  transition: background 0.12s, color 0.12s;
}
.sidebar--collapsed .nav-item[data-v-d6cc50bf] {
  padding: 10px 0;
  justify-content: center;
  gap: 0;
  width: 44px;
}
.nav-item[data-v-d6cc50bf]:hover {
  background: #F5F5F5;
  color: var(--color-primary-dark, #020631);
}
.nav-item.active[data-v-d6cc50bf] {
  background: #F5F5F5;
  color: var(--color-primary-dark, #020631);
}
.nav-indicator[data-v-d6cc50bf] {
  width: 4px;
  height: 20px;
  border-radius: 2px;
  background: transparent;
  flex-shrink: 0;
  transition: background 0.12s;
}
.sidebar--collapsed .nav-indicator[data-v-d6cc50bf] {
  display: none;
}
.nav-item.active .nav-indicator[data-v-d6cc50bf] {
  background: var(--color-primary, #4353FF);
}
.nav-item.signout[data-v-d6cc50bf] {
  color: var(--color-text-helper, #535F7F);
}
.nav-item.signout[data-v-d6cc50bf]:hover {
  color: var(--color-primary-dark, #020631);
  background: #F5F5F5;
}
.nav-icon[data-v-d6cc50bf] {
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  color: inherit;
}
.nav-icon[data-v-d6cc50bf] svg {
  width: 18px;
  height: 18px;
}
.nav-label[data-v-d6cc50bf] {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
}

/* ── Support Centre sections ──────────────────────────────────────────────── */
.nav-count[data-v-d6cc50bf] {
  margin-left: auto;
  font-size: 11px;
  font-weight: 700;
  color: var(--color-primary);
  background: var(--color-primary-lightest, #ECEEFF);
  border-radius: 999px;
  padding: 1px 7px;
  line-height: 16px;
}
.help-sections[data-v-d6cc50bf] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px 0 6px;
}
.help-group-label[data-v-d6cc50bf] {
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text-label);
  padding: 8px 12px 3px 40px;
}
.help-sub-item[data-v-d6cc50bf] {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 12.5px;
  color: var(--color-text-label);
  cursor: pointer;
  padding: 0;
  height: 32px;
  text-align: left;
}

/* 4px indicator, matching .nav-indicator — one active language across the whole sidebar. */
.help-sub-indicator[data-v-d6cc50bf] {
  width: 4px;
  height: 28px;
  border-radius: 0 3px 3px 0;
  background: transparent;
  flex-shrink: 0;
}
.help-sub-label[data-v-d6cc50bf] {
  flex: 1;
  padding-left: 32px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.help-sub-item:hover .help-sub-label[data-v-d6cc50bf] { color: var(--color-primary-dark);
}
.help-sub-item.active .help-sub-indicator[data-v-d6cc50bf] { background: var(--color-primary);
}
.help-sub-item.active .help-sub-label[data-v-d6cc50bf] {
  color: var(--color-primary-dark);
  font-weight: 600;
}
.help-sub-count[data-v-d6cc50bf] {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-primary);
  padding-right: 14px;
}
.nav-chevron-right[data-v-d6cc50bf] {
  margin-left: auto;
  flex-shrink: 0;
  color: var(--color-text-large-text, #68769C);
}

/* ── Bottom sign-out ── */
.sidebar-bottom[data-v-d6cc50bf] {
  margin-top: auto;
  padding: 8px 8px 0;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.sidebar--collapsed .sidebar-bottom[data-v-d6cc50bf] {
  padding: 8px 0 0;
  width: 100%;
  display: flex;
  justify-content: center;
}

.nav-flyout-panel {
  background: #ffffff;
  border: 1px solid #E5E7EF;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(2, 6, 49, 0.1), 0 1px 4px rgba(2, 6, 49, 0.06);
  min-width: 210px;
  max-width: 280px;
  max-height: min(60vh, 420px);
  overflow-y: auto;
  padding: 6px;
  z-index: 9999;
  pointer-events: auto;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.flyout-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 9px 12px;
  border: none;
  background: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 400;
  color: #47506A;
  text-align: left;
  transition: background 0.1s, color 0.1s;
}
.flyout-item:hover {
  background: #F5F5F5;
  color: #020631;
}
.flyout-item-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.flyout-empty {
  padding: 12px 16px;
  font-size: 13px;
  color: #9CA5BE;
  text-align: center;
}

.cp-app-floating-label {
  position: fixed;
  transform: translateY(-50%);
  background: #fff;
  color: #020631;
  font-size: 12.5px;
  font-weight: 400;
  font-family: 'Poppins', sans-serif;
  padding: 4px 10px 4px 12px;
  border-radius: 6px;
  border-left: 3px solid #5E4ED4;
  white-space: nowrap;
  pointer-events: none;
  z-index: 9999;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}

.tour-catcher[data-v-3187a8db] {
  position: fixed;
  inset: 0;
  z-index: 3999;
  background: transparent;
}
.tour-spotlight[data-v-3187a8db] {
  position: fixed;
  z-index: 4000;
  border-radius: 10px;
  pointer-events: none;
  box-shadow: 0 0 0 9999px rgba(2, 6, 49, 0.55);
  transition: top 0.2s ease, left 0.2s ease, width 0.2s ease, height 0.2s ease;
}
.tour-card[data-v-3187a8db] {
  position: fixed;
  z-index: 4001;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  background: var(--color-bg-card, #fff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(2, 6, 49, 0.22);
  padding: 18px 18px 16px;
  box-sizing: border-box;
  transition: top 0.2s ease, left 0.2s ease, opacity 0.2s ease;
}
.tour-count[data-v-3187a8db] {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--color-primary, #4353FF);
}
.tour-title[data-v-3187a8db] {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  margin: 6px 0 8px;
}
.tour-body[data-v-3187a8db] {
  font-size: 13px;
  line-height: 1.55;
  color: var(--color-text-label, #47506A);
  margin: 0 0 16px;
}
.tour-actions[data-v-3187a8db] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.tour-nav[data-v-3187a8db] {
  display: flex;
  gap: 8px;
}
.tour-skip[data-v-3187a8db] {
  border: none;
  background: none;
  padding: 6px 4px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--color-text-label, #47506A);
  cursor: pointer;
}
.tour-skip[data-v-3187a8db]:hover { text-decoration: underline;
}
.tour-btn[data-v-3187a8db] {
  height: 32px;
  padding: 0 14px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.tour-back[data-v-3187a8db] {
  background: var(--color-bg-card, #fff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  color: var(--color-text-label, #47506A);
}
.tour-back[data-v-3187a8db]:disabled { opacity: 0.45; cursor: default;
}
.tour-next[data-v-3187a8db] {
  background: var(--color-primary, #4353FF);
  border: 1px solid var(--color-primary, #4353FF);
  color: #fff;
}
.tour-next[data-v-3187a8db]:hover { opacity: 0.92;
}
.tour-btn[data-v-3187a8db]:focus-visible,
.tour-skip[data-v-3187a8db]:focus-visible {
  outline: 2px solid var(--color-primary, #4353FF);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.tour-spotlight[data-v-3187a8db],
  .tour-card[data-v-3187a8db] { transition: none;
}
}

/* ⚠ `block`, or the SVG sits on the text baseline and adds a few pixels of descender space inside
   every button it appears in — which is why icon buttons drift 2px taller than plain ones. */
.si[data-v-d3daff8e] { display: block; flex: 0 0 auto;
}

/*
 * ⚠ A BAR, NOT A CARD, and the height is the point: it sits over the product the whole time somebody
 * is reproducing a fault, so every pixel it takes is a pixel of the thing they are trying to show us.
 * Nothing in it can grow — no thumbnails, no step list, no draft summary.
 */
.rf[data-v-a868c284] {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1300;
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-card);
  box-shadow: 0 10px 30px rgba(2, 6, 49, 0.18);
  font-size: 12.5px;
  color: var(--color-primary-dark);
  max-width: calc(100vw - 40px);
  /*
   * ⚠ ALWAYS A PILL NOW. It used to switch to a card radius via `:has(.rf-trail)` because the trail was
   * inside it; the trail is its own floating panel above the bar, so the bar's shape never changes — which
   * also means expanding cannot alter its height, and therefore cannot move it.
   */
  border-radius: var(--radius-pill);
}
.rf--dragging[data-v-a868c284] { transition: none; box-shadow: 0 18px 44px rgba(2, 6, 49, 0.26);
}

/* ⚠ `cursor: move` on the bar, but the buttons inside take their own `cursor: pointer` back below. */
.rf-bar[data-v-a868c284] {
  cursor: move;
  user-select: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px 8px 14px;
  flex-wrap: wrap;
}
.rf-dot[data-v-a868c284] {
  width: 9px; height: 9px; flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-semantic-element-red);
  box-shadow: 0 0 0 3px var(--color-semantic-bg-red);
}
@media (prefers-reduced-motion: no-preference) {
.rf-dot[data-v-a868c284] { animation: rf-pulse-a868c284 1.8s ease-in-out infinite;
}
}
@keyframes rf-pulse-a868c284 {
0%, 100% { box-shadow: 0 0 0 3px var(--color-semantic-bg-red);
}
50%      { box-shadow: 0 0 0 5px var(--color-semantic-bg-red);
}
}
/* ⚠ Paused goes GREY and stops pulsing — colour and motion both, because a red dot that has stopped
   collecting is the most misleading thing this bar could show. */
.rf-dot--paused[data-v-a868c284] {
  background: var(--color-semantic-element-grey);
  box-shadow: 0 0 0 3px var(--color-semantic-bg-grey);
  animation: none;
}
.rf-clock[data-v-a868c284] {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  /* Fixed width so the bar does not twitch as the digits change. */
  min-width: 42px;
}

/* ⚠ A `button`, so it needs the browser's own button styling stripped — and a real focus ring, since
   this is now a keyboard-reachable control rather than a label. */
.rf-counts[data-v-a868c284] {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 4px 5px;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  font: inherit;
  color: inherit;
  cursor: pointer;
}
.rf-counts[data-v-a868c284]:hover { background: var(--color-surface-page);
}
.rf-counts[data-v-a868c284]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.rf-chev[data-v-a868c284] { color: var(--color-text-helper);
}
.rf-count[data-v-a868c284] {
  display: inline-flex; align-items: center; gap: 3px;
  font-variant-numeric: tabular-nums;
  color: var(--color-text-helper);
  font-size: 11.5px;
}
.rf-sep[data-v-a868c284] { width: 1px; height: 18px; background: var(--color-border-default);
}
.rf-btn[data-v-a868c284] {
  width: 28px; height: 28px; padding: 0;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--color-text-label);
  display: inline-grid; place-items: center; cursor: pointer;
}
.rf-btn[data-v-a868c284]:hover:not(:disabled) { background: var(--color-surface-page); color: var(--color-primary-dark);
}
.rf-btn[data-v-a868c284]:disabled { opacity: 0.4; cursor: default;
}
.rf-btn[data-v-a868c284]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
/* ⚠ Red only on hover. A permanently red control on a bar somebody is watching reads as an error state. */
.rf-btn--danger[data-v-a868c284]:hover:not(:disabled) {
  background: var(--color-semantic-bg-red);
  color: var(--color-semantic-element-red);
}

/* ⚠ The only primary on the bar. Stop is the one control with a consequence. */
.rf-stop[data-v-a868c284] {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px 6px 10px;
  border: 0; border-radius: var(--radius-pill);
  background: var(--color-primary); color: var(--color-text-white);
  font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.rf-stop[data-v-a868c284]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px;
}
.rf-err[data-v-a868c284] {
  flex: 1 0 100%;
  margin: 2px 0 0;
  font-size: 11px;
  color: var(--color-semantic-text-red);
}

/* ── The captured tail ──────────────────────────────────────────────────────── */

/*
 * ⚠ `position: absolute` against the bar, opening UPWARD from its top edge — see the template note. Out of
 * the flow, so the bar cannot be pushed anywhere by it.
 *
 * ⚠ `right: 0`, so it stays attached to the bar's right edge wherever the bar has been dragged. Anchored
 * left it would hang off the side of a bar sitting near the right of the screen.
 */
.rf-trail[data-v-a868c284] {
  position: absolute;
  bottom: calc(100% + 8px);
  right: 0;
  width: 320px;
  max-width: calc(100vw - 40px);
  padding: 10px 12px 8px;
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-lg);
  background: var(--color-surface-card);
  box-shadow: 0 12px 32px rgba(2, 6, 49, 0.18);
}

/* `.rf-trail-h` deleted with the heading it styled — see the template note. */

/*
 * ⚠ A FIXED HEIGHT, so the bar's position never moves as steps arrive. Without it the panel grows
 * one row at a time while somebody is clicking around the product — the corner creeping upward under
 * their cursor, which is the same growth problem the screenshot thumbnails had.
 */
.rf-trail-list[data-v-a868c284] {
  margin: 0;
  padding: 0;
  list-style: none;
  max-height: 116px;
  overflow-y: auto;
  /*
   * ⚠ BOTH AXES STATED. Setting only `overflow-y` promotes the OTHER axis from `visible` to `auto`, so a
   * long captured step produced a horizontal scrollbar across the bottom of the panel that scrolled a few
   * pixels and looked like a rendering fault. Same one-axis promotion already fixed on the desk's tab
   * strip, `.chart-scroll` and `.presence-list`.
   */
  overflow-x: hidden;
  display: grid;
  gap: 5px;
}
.rf-trail-list li[data-v-a868c284] { display: flex; gap: 7px; align-items: baseline; font-size: 11.5px;
}
.rf-trail-at[data-v-a868c284] { flex: 0 0 auto; color: var(--color-text-helper); font-variant-numeric: tabular-nums;
}

/* ⚠ One line each, clipped. A recorded click on a long control name would otherwise wrap to three
   lines and push the four steps behind it out of the fixed box. */
.rf-trail-what[data-v-a868c284] {
  min-width: 0;
  color: var(--color-primary-dark);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rf-trail-none[data-v-a868c284] { margin: 0; font-size: 11.5px; color: var(--color-text-helper);
}

/*
 * ⚠ A RAIL AGAIN (owner, 2026-08-12). It was a full-width band inside the form for one pass;
 * the band was unmissable but it pushed the form around as the customer typed and sat below the
 * fields it was derived from. Beside the form it is visible the whole time and moves nothing.
 *
 * `max-height` + its own scroller, because it stands next to a form far taller than it is.
 */
.bys[data-v-ea698242] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--color-surface-page);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  padding: 14px 16px;
  min-width: 0;
  max-height: calc(100vh - 220px);
  overflow-y: auto;
}

/*
 * ── Compact: a card under Description, not a rail beside the form ───────────
 *
 * ⚠ `max-height` is DROPPED, not reduced. The rail's cap exists because it is a fixed column that
 * must not run past the viewport; this card sits in a scrolling dialog body, so an inner scroller
 * would be a second scrollbar inside the first — and the reason a customer's eye is on this card is
 * to read the row, which a nested scroller hides half of.
 */
.bys--compact[data-v-ea698242] {
  gap: 8px;
  padding: 11px 12px;
  max-height: none;
  overflow-y: visible;
}
/* ⚠ The excerpt goes, and it is the whole point of the density change: it is the tallest part of
   each row, and every row it lengthens pushes the rest of the form further down the dialog. */
.bys--compact .bys-row-body[data-v-ea698242] { display: none;
}
.bys--compact .bys-row[data-v-ea698242] { padding: 7px 10px;
}
.bys-head[data-v-ea698242] { display: flex; align-items: baseline; gap: 8px;
}
.bys-title[data-v-ea698242] {
  font-size: var(--font-size-12, 12px);
  font-weight: 600;
  color: var(--color-primary-dark);
  margin: 0;
}
.bys-count[data-v-ea698242] {
  font-family: var(--font-family-alt, 'Inter', sans-serif);
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-text-white);
}
.bys-hint[data-v-ea698242] { font-size: 11.5px; line-height: var(--line-height-xs, 18px); color: var(--color-text-helper); margin: 0;
}
.bys-group[data-v-ea698242] { display: flex; flex-direction: column; gap: 6px;
}
.bys-group-title[data-v-ea698242] {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-placeholder);
  margin: 4px 0 0;
}
.bys-row[data-v-ea698242] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
  width: 100%;
  padding: 9px 11px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  font-family: inherit;
  cursor: pointer;
}
.bys-row[data-v-ea698242]:hover { border-color: var(--color-primary);
}
.bys-row[data-v-ea698242]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.bys-row-title[data-v-ea698242] { font-size: var(--font-size-12, 12px); font-weight: 600; color: var(--color-primary-dark);
}
.bys-row-body[data-v-ea698242] { font-size: 11px; line-height: var(--line-height-xs, 18px); color: var(--color-text-helper);
}
.bys-row-meta[data-v-ea698242] { font-size: 10.5px; color: var(--color-text-placeholder);
}
.bys-faq[data-v-ea698242] {
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  padding: 9px 11px;
}
.bys-faq summary[data-v-ea698242] { cursor: pointer;
}
.bys-faq[open] summary[data-v-ea698242] { margin-bottom: 5px;
}
.bys-faq-answer[data-v-ea698242] {
  margin: 0;
  font-size: 11.5px;
  line-height: var(--line-height-s, 20px);
  color: var(--color-text-label);
  white-space: pre-wrap;
}

/*
 * ⚠ Most of this file's CSS is GONE (12 Aug 2026). The page frame, the card, the form rows,
 * the inputs and the buttons all now come from `support.css`, which took its measurements
 * from the desk — so the customer's form and the engineer's form are one design instead of
 * two that happen to look similar. What is left is the handful of things only this screen
 * has: the system-info block, the suggestion strip, the promise and the file picker.
 */

/*
 * ⚠ THE FORM FILLS THE WINDOW, and the action row is pushed to the foot of it.
 *
 * The window is a fixed 620px on every step (owner, 2026-08-13), so a short step left ~180px of blank
 * white under the card with the buttons floating mid-panel — which reads as a rendering fault, not as
 * a roomy form. Flex to the bottom, `margin-top: auto` on `.ht-actions`, and the pair sits on the
 * window's own bottom edge on every step.
 *
 * ⚠ THIS IS NOT STICKY, and that distinction is why it works. Five sticky variants of this row failed
 * (§20.7), the last silently because `.sc-card` sets `overflow: hidden` and an `overflow` ancestor
 * disables `position: sticky`. This is still the card's last row at `position: static` — the card is
 * simply as tall as the window now, so its last row is at the bottom.
 */
/*
 * ⚠ THE SCROLLER IS THIS COMPONENT'S, AND THE FOOTER IS OUTSIDE IT.
 *
 * `.ht-page` is the fixed-height column: the scroller takes what is left and `.ht-foot` keeps its own
 * height, so the buttons sit on the window's bottom edge no matter how long the form gets. `min-height:
 * 0` on both the page and the scroller is what makes that true — without it a flex item's automatic
 * minimum is its CONTENT, so the form pushes the column past the window and neither scroller engages.
 *
 * ⚠ `gap: 0`. The 16px gap belonged to a page that stacked a card and a rail; here it would draw a
 * white band between the scroller and the footer's top border.
 */
/*
 * ⚠ `position: relative` is load-bearing, not tidiness: it is what makes `.ht-ov`'s `inset: 0`
 * resolve against the form instead of escaping to whatever positioned ancestor happens to be next up
 * the tree. Without it the progress card centres on the wrong box — and which box that is depends on
 * the host, so it would look right in one place and wrong in another.
 */
.ht-page[data-v-36851c23] { position: relative; min-width: 0; display: flex; flex-direction: column; flex: 1; min-height: 0;
}
.ht-scroll[data-v-36851c23] { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column;
}

/*
 * ⚠ `flex-shrink: 0`, or a long form squeezes the footer instead of scrolling — the exact defect
 * DEF-R118 records, where a `.tabs` strip with `overflow-x: auto` collapsed to its 1px border on any
 * page taller than the viewport while its buttons still painted.
 */
.ht-foot[data-v-36851c23] {
  flex-shrink: 0;
  border-top: 1px solid var(--color-border-default);
  background: var(--color-surface-card);
}
.ht-head[data-v-36851c23] { align-items: center;
}

/*
 * ⚠ ONE COLUMN. This was `minmax(0, 1fr) 300px` with the matches in the right-hand track;
 * they now sit inside the form at full width, so the grid has nothing to divide. Kept as a
 * grid rather than deleted so `minmax(0, …)` still guards the one failure this layout has
 * had: without a zero minimum a long placeholder or a wide select sets the track's automatic
 * minimum size and the whole card grows past its container instead of the field narrowing.
 */
/*
 * ⚠ `minmax(0, 1fr)` on the form column, not `1fr`. Without the zero minimum a long placeholder
 * or a wide select sets the track's automatic minimum size, the grid grows past its container,
 * and the rail is pushed off the right edge instead of the form narrowing.
 *
 * The rail is a fixed 300px for the same reason the ticket panel is: as a fraction it was 200px
 * on a laptop and 480px on a monitor, and an article title wrapped over four lines at one size
 * and one at the other.
 */
/*
 * ⚠ RESIZABLE (owner, 2026-08-12: "please make these cards resizable, I can resize the right side
 * to get a good view"). The rail was a fixed 300px, chosen because a fraction made it 200px on a
 * laptop and 480px on a monitor — an article title wrapping over four lines at one size and one
 * at the other. A width somebody sets themselves beats either default, and it is remembered.
 *
 * The columns come from `splitStyle`; only `minmax(0, 1fr)` on the form track is fixed here.
 * Without that zero minimum a long placeholder or a wide select sets the track's automatic
 * minimum size and the grid grows past its container instead of the field narrowing.
 */


/*
 * ── Dialog mode ─────────────────────────────────────────────────────────────
 *
 * ⚠ One column, and `gridTemplateColumns` is not merely overridden — the inline `splitStyle` is not
 * bound at all in dialog mode (see the template). A `!important` fight with an inline style is how
 * this kind of switch ends up unmaintainable.
 */


/* The required-fields note, standing in for the card head the dialog's own header replaces. */
.ht-required[data-v-36851c23] {
  /* ⚠ Left, on its own line. Right-aligned it overlapped the window's progress rail. */
  margin: 0 0 2px;
  padding: 0 var(--space-4, 16px);
  font-size: 11px;
  color: var(--color-text-helper);
}

/*
 * ⚠ Indented to the CONTROL column, not the full card width. Aligned to the left edge it reads as a
 * new section of the form; aligned under the textarea it reads as an answer to what was just typed
 * into it, which is what it is.
 */
@media (min-width: 700px) {
}





/*
 * ⚠ STATIC. Not sticky, not fixed, not floating — see the template for the five versions that
 * were, and why each one looked broken. `18px` is `.sc-form-row`'s own horizontal padding, so the
 * buttons line up with every field above them.
 */
/*
 * ── Wizard blocks ───────────────────────────────────────────────────────────
 *
 * ⚠ LABELS ARE BESIDE THEIR FIELDS AGAIN, and the override that stacked them is GONE. It was written
 * for the 396px side panel, where a 190px label column left ~180px of control — narrower than the
 * subject field's own placeholder. At 680px the house layout fits, and it is the denser of the two:
 * every stacked row costs ~19px, which is what pushed the form past a fixed height.
 *
 * ⚠ It survives on NARROW viewports through `support.css`'s own `max-width: 700px` rule, so a phone
 * still stacks. That is inherited rather than restated — a second copy of the breakpoint here is a
 * second thing to keep in step.
 *
 * The sub-label goes inline with its label for the same reason: two lines of label beside a
 * one-line control is 40px of row for 20px of field.
 */
.ht-page[data-v-36851c23] .sc-field-label { flex-direction: row; align-items: baseline; gap: 6px; flex-wrap: wrap;
}
.ht-page[data-v-36851c23] .sc-field-sub { font-size: 11px;
}

/* ── The matches, as a one-line expander ────────────────────────────────────── */
.ht-may[data-v-36851c23] { padding: 0 var(--space-4, 16px) var(--space-3, 12px); display: grid; gap: 8px;
}

/*
 * ⚠ A BUTTON THAT LOOKS LIKE A LINK, not a card. It sits between Description and the classification rows, so
 * anything with a border or a ground here reads as a third field — and a card appearing the moment matches
 * arrive pushes every field below it down while somebody is typing.
 */
.ht-may-toggle[data-v-36851c23] {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 12px;
  color: var(--color-semantic-element-blue);
  cursor: pointer;
  justify-self: start;
}
.ht-may-toggle:hover span[data-v-36851c23] { text-decoration: underline;
}
.ht-may-toggle[data-v-36851c23]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; border-radius: var(--radius-sm);
}

/*
 * ⚠ ONE ROW: a sentence and two buttons on one line where it fits, stacked where it does not. It grew to a
 * bordered card with a heading and two paragraphs and had to come back down — see the template note.
 */
.ht-consent[data-v-36851c23] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 2px var(--space-4, 16px) var(--space-3, 12px);
  padding: 10px 12px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-page);
}
.ht-consent p[data-v-36851c23] { margin: 0; font-size: 12px; line-height: 1.5; color: var(--color-text-label); flex: 1; min-width: 220px;
}
.ht-consent-act[data-v-36851c23] { display: flex; gap: 8px; flex: 0 0 auto;
}
.ht-review[data-v-36851c23] { display: grid; gap: 16px; padding: 0 var(--space-4, 16px) var(--space-4, 16px);
}
.ht-review-block[data-v-36851c23] { display: grid; gap: 7px;
}
.ht-review-h[data-v-36851c23] {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-label);
}
.ht-sum[data-v-36851c23] {
  margin: 0;
  display: grid;
  gap: 7px;
  padding: 11px 12px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
}
.ht-sum-row[data-v-36851c23] { display: flex; gap: 10px; font-size: 12px;
}
.ht-sum-row dt[data-v-36851c23] { color: var(--color-text-helper); flex: 0 0 78px;
}
/* ⚠ `min-width: 0` + wrap: a long subject must wrap rather than push the row wider than the panel. */
.ht-sum-row dd[data-v-36851c23] { margin: 0; font-weight: 600; color: var(--color-primary-dark); min-width: 0; overflow-wrap: anywhere;
}

/*
 * ⚠ CLAMPED, NOT TRUNCATED. The full description stays in the DOM — selectable, and read in full by a
 * screen reader — while the box keeps its height. Cutting the string in JS would make the review show
 * something the ticket does not contain, which is the one thing a review screen must not do.
 */
.ht-sum-long[data-v-36851c23] {
  font-weight: 400 !important;
  white-space: pre-wrap;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ⚠ Sits BEFORE the primary and takes the slack, so Back stays left and the primary stays right. */
/* ── Submit progress, centred over the form ─────────────────────────────────
 *
 * ⚠ `position: absolute` against `.ht-page`, which must therefore be a positioned ancestor. Fixed
 * would centre on the VIEWPORT, which is not where this dialog is — the owner asked for the centre
 * of the dialogue, and on a tall window those are far apart.
 */
.ht-ov[data-v-36851c23] { position: absolute; inset: 0; z-index: 20; display: flex; align-items: center; justify-content: center;
}
.ht-ov-scrim[data-v-36851c23] { position: absolute; inset: 0; background: rgba(255, 255, 255, .82); backdrop-filter: blur(1.5px);
}
.ht-ov-card[data-v-36851c23] {
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  min-width: 240px; max-width: 320px;
  padding: 26px 30px;
  background: #fff;
  border: 1px solid var(--color-neutral-100, #e5e7ef);
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(2, 6, 49, .10);
  text-align: center;
}

/* The ring: a 2px track with one lit arc, rotating. Border-based rather than an SVG so it inherits
   currentColor and needs no extra markup. */
.ht-ov-ring[data-v-36851c23] { width: 34px; height: 34px;
}
.ht-ov-ring > i[data-v-36851c23] {
  display: block; width: 100%; height: 100%;
  border: 2.5px solid var(--color-neutral-100, #e5e7ef);
  border-top-color: var(--color-primary, #4353ff);
  border-radius: 50%;
  animation: ht-ov-spin-36851c23 .8s linear infinite;
}
@keyframes ht-ov-spin-36851c23 {
to { transform: rotate(360deg);
}
}
.ht-ov-t[data-v-36851c23] { margin: 0; font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.ht-ov-bar[data-v-36851c23] { width: 100%; height: 4px; border-radius: 999px; background: var(--color-neutral-100, #e5e7ef); overflow: hidden;
}
.ht-ov-bar > i[data-v-36851c23] {
  display: block; height: 100%; border-radius: 999px;
  background: var(--color-primary, #4353ff);
  transition: width .25s ease;
}
.ht-ov-h[data-v-36851c23] { margin: 0; font-size: 11px; color: var(--color-text-placeholder, #9ca5be);
}

/*
 * ⚠ The ring stops for anyone who asked motion to stop. A permanently spinning element is the single
 * most common vestibular trigger in a UI, and the stage TEXT already carries the whole message — so
 * nothing is lost by holding it still.
 */
@media (prefers-reduced-motion: reduce) {
.ht-ov-ring > i[data-v-36851c23] { animation: none; border-top-color: var(--color-primary, #4353ff);
}
.ht-ov-bar > i[data-v-36851c23] { transition: none;
}
}
.ht-blocked[data-v-36851c23] {
  flex: 1;
  min-width: 0;
  font-size: 11px;
  color: var(--color-text-helper);
  text-align: right;
}
/*
 * ⚠ NO AUTO MARGINS ON EITHER BUTTON. `.ht-go` had `margin-left: auto` and `.ht-discard` had
 * `margin-right: auto`, which between them held the pair apart at opposite ends of the row — 461px on a 682px
 * dialog, measured. The pair sits together on the right now (owner, 2026-08-13), and the stage line or the
 * reply-by is what takes the space, via its own `margin-right: auto`.
 *
 * ⚠ `.ht-blocked + .ht-go { margin-left: 0 }` went with it — it existed only to undo the auto margin when a
 * message was present, so it was correcting a rule that no longer exists.
 */
.ht-actions[data-v-36851c23] {
  /* ⚠ `margin-top: auto` is GONE with the restructure. It pushed this row to the foot of a card that
     filled the window, which only worked while the card was the tall thing — and collapsed to zero the
     moment the content was taller than the window, taking Submit below the fold. The row is in
     `.ht-foot` now, which has its own height by construction. */
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 18px;
  background: var(--color-surface-card);
}

/* ── The submit-time gate ───────────────────────────────────────────────────── */

/*
 * ⚠ A PANEL INSIDE `.ht-ov-card`, not a bordered block in the form.
 *
 * The rule here used to claim it "sits directly above the action row and is visually attached to
 * it" — which the markup could not deliver, because the action row is in `.ht-foot`, a sibling of
 * the scroller the gate was inside. It is an overlay now, so the frame, shadow and centring come
 * from `.ht-ov-card`; this only lays the contents out and gives the excerpts room to be read.
 */
.ht-gate[data-v-36851c23] {
  display: grid;
  gap: 10px;
  align-items: start;
  width: min(520px, 100%);
  max-width: none;
  padding: 18px 20px;
  text-align: left;
}
/* Long match lists scroll INSIDE the panel rather than growing it past the dialog. */
.ht-gate[data-v-36851c23] .bys { max-height: 46vh; overflow-y: auto;
}
.ht-gate-h[data-v-36851c23] {
  margin: 0;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--color-primary-dark);
}
.ht-gate-act[data-v-36851c23] { display: flex; gap: 8px; justify-content: flex-end;
}
.ht-actions-ask[data-v-36851c23] { margin-right: auto; font-size: 12px; color: var(--color-text-label);
}

/*
 * ⚠ HARD LEFT, and neutral until it has asked. Cancel destroys a recording that cannot be made again, so it
 * must not sit next to Send — and a permanently red button on a form somebody is filling in reads as a
 * warning about the form rather than about one control. It turns red only in the confirm state.
 */
.ht-discard[data-v-36851c23] { color: var(--color-text-label);
}
.ht-discard[data-v-36851c23]:hover {
  border-color: var(--color-semantic-element-red);
  color: var(--color-semantic-element-red);
}
@media (max-width: 600px) {
.ht-actions .sc-btn[data-v-36851c23] { flex: 1;
}
}

/*
 * The one-row classification grid is gone; the four fields are ordinary `.sc-form-row`s now, so
 * `support.css` styles them and this file needs no rules of its own for them.
 */

/*
 * ── No rules between the rows ────────────────────────────────────────────────
 * (owner, 2026-08-13: "in raise a ticket dialog, do we need the horizontal lines?")
 *
 * No. `.sc-form-row` draws a `border-bottom` because it is shared with the DESK's setup screens, where a
 * form is a long table of settings and the rules are what stop one row's value reading as the next row's.
 * Here there are eight rows in a 682px dialog, each with its label directly beside its field — the pairing
 * is already unambiguous, and seven full-width rules turn one form into eight stacked bands.
 *
 * ⚠ Scoped to this form rather than changed in `support.css`, which is the setup screens' too. Spacing does
 * the separating instead: the rows keep their 12px padding and no longer need a line to be told apart.
 */
.ht-card[data-v-36851c23] .sc-form-row { border-bottom: 0;
}

/* ── Evidence, in the form under the file picker ────────────────────────────── */

/*
 * ⚠ The label column and the control sit on ONE BASELINE here, unlike every other row: the control
 * is a single button rather than a stack of fields, so `align-items: center` is what puts it beside
 * the label instead of level with the top of it.
 */
.ht-ev-row[data-v-36851c23] { align-items: center;
}
.ht-ev-label[data-v-36851c23] { align-self: center;
}
/*
 * ⚠ `align-items: flex-start`, or the button STRETCHES to the full control column and renders as a
 * 430px-wide slab that reads as a text field with a label inside it. Measured in the browser: a block
 * child of the control column fills it, and a button is the one control here that should not.
 */
.ht-ev-row .ht-control[data-v-36851c23] { display: flex; flex-direction: column; align-items: flex-start;
}

/*
 * ── The recordings list ──────────────────────────────────────────────────────
 *
 * ⚠ NEUTRAL, MATCHING THE FILE ROWS ABOVE IT (owner, 2026-08-13: "you don't have to highlight it in that
 * way"). It was a green affirmative row — the only such thing on the form — which made one optional piece of
 * evidence the loudest element on the screen and looked nothing like the attachments directly above, which
 * are the same kind of thing.
 */
/*
 * ⚠ Deliberately the same shape as `.ht-file-list` above it — margin, gap, cap and both overflow axes. They
 * are two lists of the same kind of thing in one field; if one changes, both should.
 */
/*
 * ⚠ `align-self: stretch`, and it is the whole fix for the short rows (owner, 2026-08-13: "in Show us the
 * problem, the recording > 2 # 3 Remove — please stretch the full right side width like we have for
 * attachments").
 *
 * `.ht-ev-row .ht-control` is `align-items: flex-start`, which exists so the Record BUTTON does not
 * stretch into a 430px slab that reads as a text field. A list in the same column inherited that and
 * hugged its content, so each row ended at "…2  3  Remove" with the column empty to its right — while the
 * attached-file rows directly above, in an ordinary control column, filled it. One line, and the two
 * lists finally look like the two lists of one thing that they are.
 */
.ht-cap-list[data-v-36851c23] {
  list-style: none;
  align-self: stretch;
  margin: 10px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 210px;
  overflow-y: auto;
  /* ⚠ Both axes stated: `overflow-y` alone promotes the other to `auto`, and a long step name then gives the
     list a horizontal scrollbar that scrolls a few pixels and reads as a rendering fault. */
  overflow-x: hidden;
}
.ht-cap[data-v-36851c23] {
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
}
.ht-cap-row[data-v-36851c23] { display: flex; align-items: center; gap: 8px; padding: 6px 9px; font-size: 12px;
}

/*
 * ⚠ An INPUT that does not look like one until it is touched. A bordered field on every row would read as a
 * form to fill in before you can continue, and naming a recording is optional.
 */
.ht-cap-name[data-v-36851c23] {
  flex: 1;
  min-width: 0;
  padding: 3px 5px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  font: inherit;
  font-weight: 500;
  color: var(--color-primary-dark);
  text-overflow: ellipsis;
}
/* ⚠ The placeholder IS the fallback name, so it is nearly as strong as a typed one — it is the row's
   heading, not a hint. */
.ht-cap-name[data-v-36851c23]::placeholder { font-weight: 500; color: var(--color-primary-dark); opacity: 0.72;
}
.ht-cap-name[data-v-36851c23]:hover { border-color: var(--color-border-card);
}
.ht-cap-name[data-v-36851c23]:focus {
  outline: none;
  border-color: var(--color-primary);
  background: var(--color-surface-page);
}
.ht-cap-counts[data-v-36851c23] { display: flex; align-items: center; gap: 9px; flex: 0 0 auto;
}
.ht-cap-counts span[data-v-36851c23] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11.5px;
  color: var(--color-text-helper);
  font-variant-numeric: tabular-nums;
}
.ht-record[data-v-36851c23] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  padding: 13px 15px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  background: var(--color-surface-page);
}
.ht-record-title[data-v-36851c23] { margin: 0; font-size: var(--font-size-12, 12px); font-weight: 600; color: var(--color-primary-dark);
}
.ht-record-body[data-v-36851c23] { margin: 0; font-size: 11px; line-height: 1.5; color: var(--color-text-helper);
}
.ht-record-have[data-v-36851c23] { margin: 0; font-size: 11px; color: var(--color-semantic-text-green, #067647);
}
.ht-form[data-v-36851c23] { display: flex; flex-direction: column; gap: 14px; min-width: 0; flex: 1;
}

/* ⚠ No longer `flex: 1`. The card used to stretch to the window so its last row could be the action
   row; the action row is in `.ht-foot` now, so a stretched card would only add blank space under a
   short form. */
.ht-card[data-v-36851c23] { min-width: 0; display: flex; flex-direction: column;
}

/*
 * ⚠ Below 1100px the rail goes UNDER the form, not away. It is the only thing on the page
 * that can end the visit without a ticket, so hiding it on a laptop would remove the feature
 * from the people most likely to be on one.
 */
/* ⚠ `!important` because the inline `splitStyle` would otherwise win — an inline style is the
   one place a media query cannot reach. Below 1100px the rail stacks under the form. */
@media (max-width: 1100px) {
}
.ht-control[data-v-36851c23] { display: flex; flex-direction: column; min-width: 0;
}

/* ── System info ────────────────────────────────────────────────────────────── */
.ht-sysinfo-preview-wrap[data-v-36851c23] { padding: 14px 18px;
}
.ht-sysinfo-preview[data-v-36851c23] {
  border: 1px dashed var(--color-border-card);
  background: var(--color-surface-page);
  border-radius: var(--radius-md);
  padding: 12px 14px;
}
.ht-sysinfo-preview-title[data-v-36851c23] {
  font-size: var(--font-size-12, 12px);
  font-weight: 600;
  color: var(--color-primary-dark);
  margin-bottom: 8px;
}
.ht-sysinfo-grid[data-v-36851c23] { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px;
}
.ht-sysinfo-row[data-v-36851c23] {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 11.5px;
  border-bottom: 1px dashed var(--color-border-default);
  padding-bottom: 5px;
}
.ht-sysinfo-k[data-v-36851c23] { color: var(--color-text-helper);
}
.ht-sysinfo-v[data-v-36851c23] { color: var(--color-primary-dark); font-weight: 500; text-align: right;
}
.ht-sysinfo-preview-note[data-v-36851c23] { font-size: 11px; color: var(--color-text-helper); margin: 8px 0 0;
}

/* ── Before you send, and the promise ───────────────────────────────────────── */
.ht-promise[data-v-36851c23] {
  border: 1px solid var(--color-border-default);
  border-left: 3px solid var(--color-primary);
  border-radius: var(--radius-md);
  padding: 11px 14px;
  background: var(--color-surface-card);
}
.ht-promise-head[data-v-36851c23] { display: block; font-size: 11px; font-weight: 600; color: var(--color-text-helper); margin-bottom: 5px;
}
.ht-promise-body[data-v-36851c23] { margin: 0; font-size: 11.5px; line-height: var(--line-height-xs, 18px); color: var(--color-text-label);
}
.ht-promise-link[data-v-36851c23] { color: var(--color-semantic-element-blue);
}

/* ── Notices ────────────────────────────────────────────────────────────────── */

/*
 * ⚠ Tokens, not rgba() literals. These were `rgba(220, 38, 38, .25)` and `rgba(22, 163, 74,
 * .06)` — two reds and two greens that exist nowhere else in the product, on the one screen
 * whose error state a customer is most likely to see.
 */
.ht-cs-notice[data-v-36851c23] {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 11px 14px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  font-size: var(--font-size-12, 12px);
  line-height: var(--line-height-s, 20px);
  color: var(--color-text-label);
}
.ht-cs-notice--error[data-v-36851c23] {
  border-color: var(--color-semantic-element-red);
  background: var(--color-semantic-bg-red);
  color: var(--color-semantic-text-red);
}
.ht-cs-notice--error svg[data-v-36851c23] { color: var(--color-semantic-element-red);
}
.ht-cs-notice--success[data-v-36851c23] {
  border-color: var(--color-semantic-element-green);
  background: var(--color-semantic-bg-green);
  color: var(--color-semantic-text-green);
}
.ht-cs-notice--success svg[data-v-36851c23] { color: var(--color-semantic-element-green);
}
.ht-fade-enter-active[data-v-36851c23],
.ht-fade-leave-active[data-v-36851c23] { transition: opacity 0.2s ease, transform 0.2s ease;
}
.ht-fade-enter-from[data-v-36851c23],
.ht-fade-leave-to[data-v-36851c23] { opacity: 0; transform: translateY(-4px);
}

/* ── Attach a file (replaced the diagnostics checkbox) ──────────────────────── */
.ht-file[data-v-36851c23] { display: block; cursor: pointer;
}
.ht-file input[data-v-36851c23] { position: absolute; width: 1px; height: 1px; opacity: 0;
}
.ht-file-cta[data-v-36851c23] {
  display: block;
  border: 1px dashed var(--color-border-card);
  border-radius: var(--radius-md);
  padding: 12px 14px;
  text-align: center;
  font-size: var(--font-size-12, 12px);
  color: var(--color-primary);
  background: var(--color-surface-card);
}
.ht-file:hover .ht-file-cta[data-v-36851c23] { border-color: var(--color-primary);
}
.ht-file input:focus-visible + .ht-file-cta[data-v-36851c23] { outline: 2px solid var(--color-primary); outline-offset: 2px;
}
.ht-file-note[data-v-36851c23] { display: block; font-size: 11px; color: var(--color-text-helper); margin-top: 5px;
}
/*
 * ⚠ CAPPED AND SCROLLABLE (owner, 2026-08-13: "add some scrollers, because as we attach more screenshots,
 * more recordings, the scroller will come handy"). A dozen files pushed Send off the bottom of a
 * fixed-height window; ~4.5 rows visible is deliberate, because a half-row showing is what tells somebody
 * there is more below.
 */
.ht-file-list[data-v-36851c23] {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 132px;
  overflow-y: auto;
  overflow-x: hidden;
}
.ht-file-row[data-v-36851c23] { display: flex; align-items: center; gap: 10px; font-size: 11.5px; color: var(--color-text-label);
}
.ht-file-name[data-v-36851c23] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ht-file-size[data-v-36851c23] { color: var(--color-text-placeholder); font-size: 11px;
}
.ht-file-warn[data-v-36851c23] { font-size: 11.5px; color: var(--color-semantic-text-red); margin: 8px 0 0;
}
@media (max-width: 700px) {
.ht-sysinfo-grid[data-v-36851c23] { grid-template-columns: 1fr;
}
}

/* ══ Panel ═══════════════════════════════════════════════════════════════════
 *
 * ⚠ `position: fixed`, bottom-right, and NO backdrop. A backdrop would re-block the app, which is
 * the whole reason this stopped being a modal. The trade-off is that the panel is non-modal, so it
 * carries `role="dialog"` WITHOUT `aria-modal` — claiming modality while leaving the page operable
 * is a lie a screen reader acts on.
 */
/*
 * ⚠ CENTRED AT 680px, NOT A 396px SIDE PANEL (owner, 2026-08-13, point 3).
 *
 * The panel was my recommendation and it was wrong. 396px forces every label above its field, which
 * doubles each row's height and turns a four-step wizard into a tall thin column — and step 4 had no
 * room to put the summary beside the articles. The panel's one real advantage, not blocking the app,
 * only matters WHILE RECORDING, and the window is minimised then anyway: the floater has the screen.
 *
 * ⚠ RESIZABLE, and the size is remembered (owner: "dialog can be resizable"). `resize: both` on the
 * panel with a `min-`/`max-` box is the whole implementation — a hand-rolled pointer grip would be a
 * second drag implementation to keep working.
 *
 * ⚠ ONE FIXED SIZE FOR EVERY STEP (owner, 2026-08-13: "across all the steps I want the dialog height
 * and width to be the same. It should not get resized, expanded, something like that. We can have a
 * scroll inside it").
 *
 * `height` is set, not `max-height`. The difference is the whole point: with `max-height` the window
 * shrank to its content, so it was a different height on all three steps — and stepping forward moved
 * the footer buttons out from under the cursor that had just pressed Continue. A fixed box with the
 * body scrolling means the header, the rail and the action row never move.
 *
 * ⚠ `height` and `resize: both` COMPOSE rather than conflict, and that is why the earlier ask
 * survives: `resize` writes an inline height, which beats this rule, so a window somebody has dragged
 * keeps the size they gave it — and every step still shares it.
 *
 * ⚠ 620px is under the 640px-tall viewport a 1366×768 laptop has after browser chrome, so the whole
 * window fits without the `max-height` clamp engaging on the machines most customers use.
 */
.sm-scrim[data-v-c2a393f9] {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(2, 6, 49, 0.32);
  display: grid;
  place-items: center;
  padding: 20px;
}
.sm[data-v-c2a393f9] {
  position: relative;
  width: 680px;
  max-width: calc(100vw - 40px);
  min-width: 420px;
  resize: both;
  height: 620px;
  max-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-lg);
  box-shadow: 0 16px 44px rgba(2, 6, 49, 0.17);
  /* ⚠ `clip`, never `hidden`: an `overflow: hidden` ancestor silently disables `position: sticky`
     for everything inside it, which cost four attempts at the form's action row (§20.7). */
  overflow: clip;
}
.sm[data-v-c2a393f9]:focus { outline: none;
}
/* ⚠ Kills the transition while dragging, or the window lags a frame behind the pointer. */
.sm--dragging[data-v-c2a393f9] { transition: none; box-shadow: 0 22px 60px rgba(2, 6, 49, 0.24);
}

/*
 * ⚠ `cursor: move` and `user-select: none` on the handle. Without the second one a drag highlights the
 * title text blue as it goes, which reads as a broken selection rather than a moving window.
 */
.sm-head[data-v-c2a393f9] {
  cursor: move;
  user-select: none;
  display: flex;
  align-items: center;
  gap: 2px;
  /* ⚠ Even padding now the control has gone — it was 10px on the right to sit tight against the button. */
  padding: 11px 16px;
  border-bottom: 1px solid var(--color-border-default);
  flex-shrink: 0;
}
.sm-heading[data-v-c2a393f9] { flex: 1; min-width: 0; display: grid; gap: 1px;
}
.sm-title[data-v-c2a393f9] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary-dark);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sm-sub[data-v-c2a393f9] { font-size: 11.5px; color: var(--color-text-helper);
}

/*
 * ⚠ `.sm-ctl` IS DELETED with the button it styled. It went through four designs in one day — chevron,
 * window-plus-chip, bare bar, bar on a surface — each an attempt to make a 16px glyph explain itself.
 * Clicking away needs neither a glyph nor an explanation; see the template.
 */
.sm-body[data-v-c2a393f9] {
  /* ⚠ A flex COLUMN, so the form inside can fill the fixed-height window and put its action row on
     the bottom edge. As a plain block the card hugged its content and left blank space below it. */
  display: flex;
  flex-direction: column;
  flex: 1;
  /* ⚠ Without this the flex item's automatic minimum is its content, so the form pushes the panel
     past its own `max-height` and the scroller inside it never engages. */
  min-height: 0;
  /*
   * ⚠ NOT A SCROLLER ANY MORE (owner, 2026-08-13: "please make footer sticky"). `HelpTicket` now owns
   * its own scroller with the action row as a SIBLING of it, so the buttons stay on the bottom edge
   * however long the form gets. Left as `overflow: auto` this would be an outer scroller with the
   * footer inside it — two nested scrollbars, and the footer would scroll away again.
   *
   * ⚠ `hidden` rather than `clip` is deliberate here and the opposite of the rule on `.sm`: nothing
   * inside this box is `position: sticky`, and `hidden` is what establishes the scroll container that
   * keeps a wide field from spilling past the window's rounded border.
   */
  overflow: hidden;
}

/* ══ Launcher ════════════════════════════════════════════════════════════════
 *
 * ⚠ ONE control in this corner, in three states. It replaces both the old "Ticket in progress" pill
 * and the floating recorder card, which is what makes the corner offset unnecessary.
 */
.sm-launch[data-v-c2a393f9] {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1190;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  max-width: min(320px, calc(100vw - 40px));
  padding: 10px 15px;
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-pill);
  background: var(--color-surface-card);
  color: var(--color-primary-dark);
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.15);
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
}
.sm-launch[data-v-c2a393f9]:hover { border-color: var(--color-primary);
}
.sm-launch[data-v-c2a393f9]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px;
}

/*
 * ⚠ Only the IDLE launcher is solid primary. With a draft or a recording it goes white with a
 * coloured pip, because at that point the important thing is the STATE, and a solid blue lozenge
 * makes the pip inside it invisible.
 */
.sm-launch--idle[data-v-c2a393f9] {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-white);
}
.sm-launch--idle[data-v-c2a393f9]:hover { border-color: var(--color-primary);
}
.sm-launch-label[data-v-c2a393f9] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sm-launch-meta[data-v-c2a393f9] {
  font-weight: 400;
  color: var(--color-text-helper);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.sm-pip[data-v-c2a393f9] {
  width: 8px; height: 8px; flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-primary);
}

/*
 * ⚠ Red is not the only carrier — the LABEL changes to "Recording" too. A colour-blind customer
 * reads the word, and "is it still recording?" is the question the collapsed state exists to answer.
 */
.sm-live[data-v-c2a393f9] {
  width: 8px; height: 8px; flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-semantic-element-red);
  box-shadow: 0 0 0 3px var(--color-semantic-bg-red);
}
@media (prefers-reduced-motion: no-preference) {
.sm-live[data-v-c2a393f9] { animation: sm-pulse-c2a393f9 1.8s ease-in-out infinite;
}
}
@keyframes sm-pulse-c2a393f9 {
0%, 100% { box-shadow: 0 0 0 3px var(--color-semantic-bg-red);
}
50%      { box-shadow: 0 0 0 5px var(--color-semantic-bg-red);
}
}

/*
 * ⚠ On a phone the panel takes the screen. A 396px card floating in a 375px viewport is not a
 * smaller version of this design, it is a broken one.
 */
/*
 * ⚠ CORRECTED FOR THE CENTRE POSITION. This block still carried `right/bottom/left: 0` from the side
 * panel, which do nothing to a grid-centred child — so on a phone the rule read as a bottom sheet and
 * rendered as a floating card. It is a full-bleed sheet now, and `resize` is turned OFF: a drag
 * handle on a window that already fills the screen can only make it smaller than the viewport.
 */
@media (max-width: 520px) {
.sm-scrim[data-v-c2a393f9] { padding: 0; place-items: stretch;
}
.sm[data-v-c2a393f9] {
    width: 100%;
    min-width: 0;
    max-width: none;
    height: 100%;
    max-height: none;
    resize: none;
    border-radius: 0;
    border: 0;
}
.sm-launch[data-v-c2a393f9] { right: 14px; bottom: 14px;
}
}

/* Overlay */
.cm-overlay[data-v-7a88a42d] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.38);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  animation: cm-fade-in-7a88a42d 0.15s ease;
}
@keyframes cm-fade-in-7a88a42d {
from { opacity: 0
}
to { opacity: 1
}
}

/* Card */
.cm-card[data-v-7a88a42d] {
  background: #fff;
  border-radius: 16px;
  width: 380px;
  max-width: calc(100vw - 32px);
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.18), 0 4px 16px rgba(2, 6, 49, 0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 28px 24px;
  gap: 0;
  animation: cm-slide-up-7a88a42d 0.18s ease;
}
@keyframes cm-slide-up-7a88a42d {
from { opacity: 0; transform: translateY(12px)
}
to   { opacity: 1; transform: translateY(0)
}
}

/* Icon */
.cm-icon-wrap[data-v-7a88a42d] {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  flex-shrink: 0;
}
.cm-icon-wrap--danger[data-v-7a88a42d]  { background: #FEE2E2; color: #DC2626;
}
.cm-icon-wrap--warning[data-v-7a88a42d] { background: #FEF3C7; color: #D97706;
}
.cm-icon-wrap--info[data-v-7a88a42d]    { background: #EFF6FF; color: #2563EB;
}
.cm-icon-wrap--primary[data-v-7a88a42d] { background: #EEF0FF; color: var(--color-primary, #4353FF);
}
.cm-icon-wrap--success[data-v-7a88a42d] { background: #DCFCE7; color: #16A34A;
}
.cm-icon[data-v-7a88a42d] { width: 26px; height: 26px; display: block;
}

/* Body */
.cm-body[data-v-7a88a42d] {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 24px;
}
.cm-title[data-v-7a88a42d] {
  font: 600 16px/22px 'Poppins', sans-serif;
  color: #020631;
  margin: 0;
}
.cm-message[data-v-7a88a42d] {
  font: 400 14px/22px 'Poppins', sans-serif;
  color: #47506A;
  margin: 0;
}

/* Footer */
.cm-footer[data-v-7a88a42d] {
  display: flex;
  gap: 10px;
  width: 100%;
}
.cm-btn-cancel[data-v-7a88a42d] {
  flex: 1;
  height: 40px;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  background: #fff;
  font: 500 14px/20px 'Poppins', sans-serif;
  color: #47506A;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
}
.cm-btn-cancel[data-v-7a88a42d]:hover:not(:disabled) { background: #F5F6FA; border-color: #C8CCDB;
}
.cm-btn-cancel[data-v-7a88a42d]:disabled { opacity: 0.5; cursor: not-allowed;
}
.cm-btn-confirm[data-v-7a88a42d] {
  flex: 1;
  height: 40px;
  border: none;
  border-radius: 8px;
  font: 600 14px/20px 'Poppins', sans-serif;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: opacity 0.12s;
}
.cm-btn-confirm[data-v-7a88a42d]:hover:not(:disabled) { opacity: 0.88;
}
.cm-btn-confirm[data-v-7a88a42d]:disabled { opacity: 0.55; cursor: not-allowed;
}
.cm-btn-confirm--danger[data-v-7a88a42d]  { background: #DC2626;
}
.cm-btn-confirm--warning[data-v-7a88a42d] { background: #D97706;
}
.cm-btn-confirm--info[data-v-7a88a42d]    { background: #2563EB;
}
.cm-btn-confirm--primary[data-v-7a88a42d] { background: var(--color-primary, #4353FF);
}
.cm-btn-confirm--success[data-v-7a88a42d] { background: #16A34A;
}

/* Spinner */
.cm-spinner[data-v-7a88a42d] {
  width: 16px;
  height: 16px;
  animation: cm-spin-7a88a42d 0.8s linear infinite;
  flex-shrink: 0;
}
@keyframes cm-spin-7a88a42d {
to { transform: rotate(360deg)
}
}

.process-indicator[data-v-3958d1df] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 4px;
  width: 100%;
}
.pi-value-row[data-v-3958d1df] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.pi-value[data-v-3958d1df] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px;
  line-height: var(--line-height-s, 20px);
  color: var(--color-primary-dark, #020631);
  white-space: nowrap;
}
.pi-value-main[data-v-3958d1df] {
  font-weight: 600;
}
.pi-value-suffix[data-v-3958d1df] {
  font-weight: 400;
}
.pi-track[data-v-3958d1df] {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  height: 6px;
  padding: 1px;
  border-radius: var(--radius-sm, 4px);
  box-sizing: border-box;
}
.pi-track--blue[data-v-3958d1df] {
  background: var(--color-semantic-bg-blue, #E9F2FF);
}
.pi-track--green[data-v-3958d1df] {
  background: var(--color-semantic-bg-green, #DCFFF1);
}
.pi-track--orange[data-v-3958d1df] {
  background: var(--color-semantic-bg-orange, #FFF3EB);
}
.pi-fill[data-v-3958d1df] {
  position: absolute;
  left: 0;
  top: 0;
  height: 6px;
  border-radius: var(--radius-sm, 4px);
}
.pi-fill[data-v-3958d1df]::after {
  content: '';
  position: absolute;
  right: -5.5px;
  top: 50%;
  transform: translateY(-50%);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 2px solid #ffffff;
  box-sizing: border-box;
}
.pi-fill--blue[data-v-3958d1df]::after {
  background: #4353FF;
}
.pi-fill--green[data-v-3958d1df]::after {
  background: #16A34A;
}
.pi-fill--orange[data-v-3958d1df]::after {
  background: #F97316;
}
.pi-fill--blue[data-v-3958d1df] {
  background: #4353FF;
}
.pi-fill--green[data-v-3958d1df] {
  background: #16A34A;
}
.pi-fill--orange[data-v-3958d1df] {
  background: #F97316;
}
.pi-marker[data-v-3958d1df] {
  display: none;
}
.pi-label-row[data-v-3958d1df] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  padding: 4px 0;
}
.pi-label[data-v-3958d1df] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: var(--font-size-12, 12px);
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-label, #47506A);
  white-space: nowrap;
}

.status-tag[data-v-ac851325] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: var(--radius-pill, 32px);
  border: 1px solid transparent;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: var(--font-size-12, 12px);
  line-height: var(--line-height-xs, 18px);
  white-space: nowrap;
}
.status-tag--green[data-v-ac851325] {
  background: var(--color-semantic-bg-green, #DCFFF1);
  border-color: var(--color-indicator-accent-11, #00C882);
  color: var(--color-semantic-text-green, #008516);
}
.status-tag--blue[data-v-ac851325] {
  background: var(--color-semantic-bg-blue, #E9F2FF);
  border-color: var(--color-indicator-accent-7, #0075FF);
  color: var(--color-primary, #4353FF);
}

.alert-card[data-v-228d1db9] {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 360px;
  height: 152px;
  padding: var(--space-4, 16px);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-lg, 12px);
  box-sizing: border-box;
}
.alert-card--orange[data-v-228d1db9] {
  background: var(--color-semantic-bg-orange, #FFF3EB);
}
.alert-card--purple[data-v-228d1db9] {
  background: var(--color-semantic-bg-purple, #F5EEFB);
}
.alert-card--blue[data-v-228d1db9] {
  background: var(--color-semantic-bg-blue, #E9F2FF);
}
.alert-card--plain[data-v-228d1db9] {
  background: var(--color-bg-card, #ffffff);
}
.alert-card-content[data-v-228d1db9] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
}
.alert-card-header[data-v-228d1db9] {
  display: flex;
  align-items: center;
  gap: var(--space-3, 12px);
}
.alert-card-icon[data-v-228d1db9] {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: block;
}
.alert-card-title[data-v-228d1db9] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 600;
  font-size: 14.5px;
  line-height: var(--line-height-s, 20px);
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.alert-card-body[data-v-228d1db9] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 400;
  font-size: 13px;
  line-height: 18px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}
.alert-card-cta[data-v-228d1db9] {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  gap: 4px;
  padding: 4px 8px;
  border: none;
  border-radius: var(--radius-sm, 4px);
  background: none;
  cursor: pointer;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 600;
  font-size: var(--font-size-14, 14px);
  line-height: var(--line-height-s, 20px);
  color: var(--color-primary, #4353FF);
}
.alert-card-cta-icon[data-v-228d1db9] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  display: block;
}

.quick-action-tile[data-v-1c98909d] {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 8px;
  flex: 1 1 206px;
  min-width: 160px;
  height: 108px;
  padding: 14px;
  border: none;
  border-radius: var(--radius-lg, 12px);
  background-image: linear-gradient(136deg, #1E1A8E 27%, #6B4FE0 62%, #9B7AE8 100%);
  cursor: pointer;
  text-align: left;
  box-sizing: border-box;
  overflow: hidden;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.quick-action-tile[data-v-1c98909d]:hover {
  box-shadow: 0 6px 20px rgba(30, 26, 142, 0.35);
  transform: translateY(-2px);
}
.quick-action-tile[data-v-1c98909d]:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(30, 26, 142, 0.2);
}
.new-badge[data-v-1c98909d] {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(255, 255, 255, 0.22);
  color: #FFFFFF;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.6px;
  line-height: 1;
  padding: 3px 6px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.35);
}
.quick-action-icon-wrap[data-v-1c98909d] {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.quick-action-icon[data-v-1c98909d] {
  width: 26px;
  height: 26px;
  display: block;
  flex-shrink: 0;
  color: #FFFFFF;
}
.quick-action-label[data-v-1c98909d] {
  display: flex;
  flex-direction: column;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 600;
  font-size: 12px;
  line-height: 17px;
  color: var(--color-text-white, #FFFFFF);
  margin: 0;
  white-space: nowrap;
}
.quick-action-label-line[data-v-1c98909d] {
  display: block;
}

.lc-badge[data-v-36b51e5f] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: Poppins, Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid transparent;
  white-space: nowrap;
}
.lc-dot[data-v-36b51e5f] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex: none;
}
.lc-date[data-v-36b51e5f] {
  font-weight: 500;
  opacity: 0.85;
}

/* Tones are semantic, not decorative: warn = needs attention but still working,
   danger = access has stopped, neutral = terminal, purple = needs a human. */
.lc-badge--warn[data-v-36b51e5f]    { background: #FEF6E7; border-color: #F6D08A; color: #8A5A00;
}
.lc-badge--danger[data-v-36b51e5f]  { background: #FDECEC; border-color: #F3B4B4; color: #A31515;
}
.lc-badge--neutral[data-v-36b51e5f] { background: #F1F2F6; border-color: #D9DCE6; color: #5B6178;
}
.lc-badge--purple[data-v-36b51e5f]  { background: #F3EEFD; border-color: #C9B6F2; color: #5B2BB0;
}
.lc-badge--ok[data-v-36b51e5f]      { background: #ECFAF1; border-color: #A8E0C0; color: #1A7A45;
}

/* The tile variant must be able to wrap; the inline one must not.
   .lc-badge is display:inline-flex, so its children sit on one line regardless of white-space —
   flex-wrap is what actually lets the label and the date break. Measured on a 191px tile:
   "Cancelling · access ends 1 Sep 2026" rendered 231px wide and overflowed the card by 40px.
   Wrapping keeps the date, which is the half the reader needs; truncating with an ellipsis would
   cut exactly that. max-width bounds it to whatever the tile gives it, and line-height has to
   leave 1 behind or the two lines collide. */
.lc-badge--chip[data-v-36b51e5f] {
  white-space: normal;
  flex-wrap: wrap;
  row-gap: 2px;
  line-height: 1.35;
  min-width: 0;
  max-width: 100%;
}

/* Deliberately NOT wrapped: a table row or a detail line has the width, and a badge that grows to
   two lines there would push the row height around for no gain. */
.lc-badge--inline[data-v-36b51e5f] { font-size: 12px; padding: 5px 10px;
}
.lc-cta[data-v-36b51e5f] {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
  padding: 0 0 0 2px;
}
.lc-cta[data-v-36b51e5f]:hover { opacity: 0.75;
}
.lc-cta[data-v-36b51e5f]:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; border-radius: 3px;
}

.tile-lifecycle[data-v-2a5a53be] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  /* Same reason as .tile-bottom above — without this the badge cannot shrink to the tile. */
  min-width: 0;
}

/* ── Full card — matches AppMarketplaceView's .app-card tile ── */
.app-card[data-v-2a5a53be] {
  position: relative;
  overflow: hidden;
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: 0 2px 6px rgba(2, 6, 49, 0.10), 0 10px 28px rgba(2, 6, 49, 0.12);
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  box-sizing: border-box;
}
.app-card[data-v-2a5a53be]:hover {
  box-shadow: 0 6px 14px rgba(2, 6, 49, 0.12), 0 18px 44px rgba(2, 6, 49, 0.18);
  transform: translateY(-2px);
  border-color: #C7CEF0;
}
.app-card--clickable[data-v-2a5a53be] { cursor: pointer;
}
.app-card-top[data-v-2a5a53be] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.app-card-title-block[data-v-2a5a53be] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.app-card-name-row[data-v-2a5a53be] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
}
.app-name[data-v-2a5a53be] {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  line-height: 18px;
  margin: 0;
}
.app-card-cat[data-v-2a5a53be] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}
.star-btn[data-v-2a5a53be] {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.12s;
  flex-shrink: 0;
}
.star-btn[data-v-2a5a53be]:hover { background: var(--color-border-default, #E5E7EF);
}
.app-desc[data-v-2a5a53be] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  line-height: 16px;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.card-footer[data-v-2a5a53be] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: auto;
}
.enabled-chip[data-v-2a5a53be] {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 11px;
  background: #DCFFF1;
  color: #008516;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.3px;
  white-space: nowrap;
}
.enabled-chip--sm[data-v-2a5a53be] {
  height: 20px;
  font-size: 10px;
  border-radius: 10px;
  flex-shrink: 0;
}
.suite-chip[data-v-2a5a53be] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 22px;
  padding: 0 8px;
  border-radius: 11px;
  background: #EDE9FE;
  color: #5B21B6;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2px;
  white-space: nowrap;
}
.suite-chip-icon[data-v-2a5a53be] { font-size: 12px;
}
.footer-pipe[data-v-2a5a53be] {
  color: var(--color-border-default, #E5E7EF);
  font-size: 14px;
  user-select: none;
}
.footer-usage[data-v-2a5a53be] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
}

/* ── Premium Tile (GCP Design System node 6167:325) ── */
.app-card-tile[data-v-2a5a53be] {
  width: 191px;
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 14px 16px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  position: relative;
  box-shadow: 0 2px 6px rgba(2, 6, 49, 0.10), 0 10px 28px rgba(2, 6, 49, 0.12);
  transition: box-shadow 0.15s, transform 0.15s, border-color 0.15s;
}
.app-card-tile--clickable[data-v-2a5a53be] { cursor: pointer;
}
.app-card-tile--clickable[data-v-2a5a53be]:hover {
  box-shadow: 0 6px 14px rgba(2, 6, 49, 0.12), 0 18px 44px rgba(2, 6, 49, 0.18);
  transform: translateY(-2px);
  border-color: #C7CEF0;
}
.tile-headings[data-v-2a5a53be] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
}
.tile-icon-slot[data-v-2a5a53be] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
}
.tile-name[data-v-2a5a53be] {
  font: 600 16px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  text-align: center;
  margin: 0;
  min-height: 42px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}

/* min-width: 0 is load-bearing, not tidiness. A flex item defaults to min-width: auto, which
   refuses to shrink below its content — so a lifecycle badge wider than the tile pushed straight
   out of the card instead of wrapping inside it. Measured on a 191px tile: a "Cancelling · access
   ends 1 Sep 2026" badge rendered 231px and spilled 37px out of each side, because nothing in the
   chain clipped or allowed a shrink. */
.tile-bottom[data-v-2a5a53be] { width: 100%; display: flex; justify-content: center; min-height: 18px; min-width: 0;
}
.tile-caption[data-v-2a5a53be] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  text-align: center;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tile-caption-not-entitled[data-v-2a5a53be] { color: #92400E;
}

.cs-overlay[data-v-4de98600] {
  position: absolute;
  inset: 0;
  backdrop-filter: blur(14px) saturate(1.8);
  -webkit-backdrop-filter: blur(14px) saturate(1.8);
  background: rgba(249, 249, 252, 0.52);
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.cs-overlay--with-subtitle[data-v-4de98600] {
  flex-direction: column;
  gap: 10px;
}
.cs-badge[data-v-4de98600] {
  padding: 6px 18px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(67, 83, 255, 0.18);
  box-shadow: 0 2px 12px rgba(67, 83, 255, 0.1);
  color: var(--color-primary, #4353FF);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3px;
  backdrop-filter: blur(4px);
}
.cs-sub[data-v-4de98600] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  text-align: center;
  max-width: 260px;
  margin: 0;
}

.eas[data-v-d41abac0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 12px 18px;
  border-radius: 10px;
  /* DS Blue 10 / primary — informational, not a warning. */
  background: #ECEEFF;
  border: 1px solid #C4CBDD;
  color: #1E1A8E;
  font-family: Poppins, Arial, sans-serif;
  margin-bottom: 16px;
}
.eas-body[data-v-d41abac0] { min-width: 0;
}
.eas-title[data-v-d41abac0] {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}
.eas-meta[data-v-d41abac0] {
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 19px;
  font-weight: 500;
}
.eas-detail[data-v-d41abac0] {
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 19px;
  opacity: 0.85;
}
.eas-keep[data-v-d41abac0] {
  margin: 0;
  font-size: 13px;
  line-height: 19px;
  font-weight: 500;
  opacity: 0.85;
}

.overview[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.overview-status[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-bg-card, #ffffff);
  border-radius: var(--radius-lg, 12px);
  padding: 18px;
}
.overview-status--error[data-v-46bc7c99] {
  border-color: #F5C2C7;
  background: #FFF7F7;
}
.overview-status-title[data-v-46bc7c99] {
  margin: 0;
  font-size: var(--font-size-14, 14px);
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.overview-status-sub[data-v-46bc7c99] {
  margin: 0;
  font-size: var(--font-size-12, 12px);
  line-height: 18px;
  color: var(--color-text-large-text, #68769C);
}
.overview-skeleton[data-v-46bc7c99] {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 2px;
}
.skeleton-row[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.skeleton-row--meta[data-v-46bc7c99] {
  width: 100%;
}
.skeleton-kpi-grid[data-v-46bc7c99] {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.skeleton-kpi-card[data-v-46bc7c99] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  background: #FBFCFF;
  padding: 10px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.skeleton-kpi-copy[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  flex: 1;
}
.skeleton-block[data-v-46bc7c99] {
  display: inline-block;
  border-radius: 8px;
  background: #E8EDF8;
}
.skeleton-block--icon[data-v-46bc7c99] {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  flex-shrink: 0;
}
.skeleton-block--label[data-v-46bc7c99] {
  width: 62%;
  height: 10px;
}
.skeleton-block--value[data-v-46bc7c99] {
  width: 46%;
  height: 18px;
}
.skeleton-block--line-lg[data-v-46bc7c99] {
  width: 44%;
  height: 12px;
}
.skeleton-block--line-sm[data-v-46bc7c99] {
  width: 34%;
  height: 10px;
}
.shimmer[data-v-46bc7c99] {
  position: relative;
  overflow: hidden;
}
.shimmer[data-v-46bc7c99]::after {
  content: '';
  position: absolute;
  top: 0;
  left: -140%;
  width: 80%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.72) 50%, transparent 100%);
  animation: shimmer-sweep-46bc7c99 1.15s ease-in-out infinite;
}
@keyframes shimmer-sweep-46bc7c99 {
100% { left: 160%;
}
}
@media (max-width: 1080px) {
.skeleton-kpi-grid[data-v-46bc7c99] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.skeleton-kpi-grid[data-v-46bc7c99] {
    grid-template-columns: 1fr;
}
}
.overview-retry-btn[data-v-46bc7c99] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #E7B7BE;
  background: #FFFFFF;
  border-radius: 8px;
  color: #8E1E2D;
  font-size: var(--font-size-12, 12px);
  font-weight: 600;
  font-family: inherit;
  padding: 8px 12px;
  cursor: pointer;
}
.overview-retry-icon[data-v-46bc7c99] {
  width: 15px;
  height: 15px;
}
.greeting-section[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 4px;
}
.greeting[data-v-46bc7c99] {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary-dark, #020631);
  line-height: 24px;
  margin: 0;
}
.greeting-meta[data-v-46bc7c99] {
  font-size: var(--font-size-12, 12px);
  font-weight: 400;
  color: var(--color-text-large-text, #68769C);
  line-height: 16px;
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
}
.meta-dot[data-v-46bc7c99] {
  color: var(--color-text-large-text, #68769C);
  font-weight: 700;
  margin: 0 8px;
}

/* KPI row */
.kpi-row[data-v-46bc7c99] {
  display: grid;
  /* 3 columns — was 4; the analysis-run KPI is hidden. Bump back to 4 if it returns. */
  grid-template-columns: repeat(3, 1fr);
  overflow: hidden;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-lg, 12px);
  background: var(--color-bg-card, #ffffff);
}
.kpi-card[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  min-width: 0;
  border-right: 1px solid var(--color-border-default, #E5E7EF);
}
.kpi-card[data-v-46bc7c99]:last-child {
  border-right: none;
}
.kpi-icon[data-v-46bc7c99] {
  position: relative;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
.kpi-icon-bg[data-v-46bc7c99] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.kpi-icon-fg[data-v-46bc7c99] {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22px;
  height: 22px;
  transform: translate(-50%, -50%);
  display: block;
}
.kpi-body[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.kpi-label[data-v-46bc7c99] {
  font-size: var(--font-size-12, 12px);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.kpi-placeholder-chip[data-v-46bc7c99] {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  color: #7C5C00;
  background: #FFF4CC;
  border: 1px solid #F6DF9A;
  border-radius: 999px;
  padding: 3px 6px;
  margin: 2px 0 2px;
  white-space: nowrap;
}
.kpi-value[data-v-46bc7c99] {
  font-size: 26px; /* intentional display size — no 26px token */
  font-weight: 700;
  line-height: var(--line-height-m, 30px);
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.kpi-sub[data-v-46bc7c99] {
  font-size: var(--font-size-12, 12px);
  font-weight: 400;
  color: var(--color-text-large-text, #68769C);
  margin: 0;
}

/* Quick Actions */
.quick-actions-section[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.quick-actions-row[data-v-46bc7c99] {
  display: flex;
  gap: var(--space-6, 24px);
}

/* AI banner */
.ai-banner[data-v-46bc7c99] {
  background: linear-gradient(98deg, rgba(191, 197, 255, 0.22) 14%, rgba(207, 133, 226, 0.18) 55%, rgba(207, 133, 226, 0.14) 93%);
  border: 1px solid rgba(191, 197, 255, 0.35);
  border-radius: var(--radius-lg, 12px);
  padding: 16px var(--space-6, 24px);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ai-banner-btns[data-v-46bc7c99] {
  display: flex;
  gap: var(--space-3, 12px);
}
.ai-badge-row[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  gap: var(--space-2, 8px);
}
.ai-icon[data-v-46bc7c99] {
  width: 27.618px;
  height: 24px;
  flex-shrink: 0;
  display: block;
}
.ai-badge[data-v-46bc7c99] {
  font-size: var(--font-size-12, 12px);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--color-primary, #4353FF);
}
.ai-title[data-v-46bc7c99] {
  font-size: var(--font-size-20, 20px);
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  line-height: 24px;
  margin: 0;
}
.ai-desc[data-v-46bc7c99] {
  font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A);
  line-height: 20px;
  max-width: 720px;
  margin: 0;
}
.ai-action-btn[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 8px;
  border: none;
  font-family: inherit;
  font-size: var(--font-size-14, 14px);
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ai-action-btn[data-v-46bc7c99]:hover { opacity: 0.85;
}
.ai-action-btn--primary[data-v-46bc7c99] {
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
}
.ai-action-btn--secondary[data-v-46bc7c99] {
  background: var(--color-bg-card, #ffffff);
  border: 1.5px solid var(--color-primary, #4353FF);
  color: var(--color-primary, #4353FF);
}
.ai-action-icon[data-v-46bc7c99] {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  display: block;
}

/* Apps section */
.apps-section[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.section-header[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.section-title[data-v-46bc7c99] {
  font-size: var(--font-size-20, 20px);
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  line-height: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.count-chip[data-v-46bc7c99] {
  font-size: 14px;
  font-weight: 400;
  color: var(--color-primary-dark, #020631);
}
.apps-grid[data-v-46bc7c99] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

/* Two-column lower section */
.lower-section[data-v-46bc7c99] {
  display: flex;
  gap: var(--space-6, 24px);
  align-items: flex-start;
}
.lower-column[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.lower-column--left[data-v-46bc7c99] {
  flex: 1;
}
.lower-column--right[data-v-46bc7c99] {
  width: 360px;
  flex-shrink: 0;
}

/* Pinned Projects */
.pinned-projects-section[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pinned-projects-card[data-v-46bc7c99] {
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-lg, 12px);
  padding: 0 16px;
}
.pinned-project-row[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4, 16px);
  padding: 16px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.pinned-project-row[data-v-46bc7c99]:last-child {
  border-bottom: none;
}
.pinned-project-main[data-v-46bc7c99] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pinned-project-header[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.pinned-project-title[data-v-46bc7c99] {
  font-size: var(--font-size-14, 14px);
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.pinned-project-desc[data-v-46bc7c99] {
  font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A);
  line-height: 18px;
  margin: 0;
}
.pinned-project-indicator[data-v-46bc7c99] {
  min-width: 175px;
  flex-shrink: 0;
}

/* Recent activity */
.section-card[data-v-46bc7c99] {
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 16px;
}
.activity-list[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
}
.activity-row[data-v-46bc7c99] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3, 12px);
  padding: 16px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.activity-row[data-v-46bc7c99]:last-child {
  border-bottom: none;
}
.activity-avatar[data-v-46bc7c99] {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-12, 12px);
  font-weight: 700;
  flex-shrink: 0;
}
.activity-content[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.activity-text[data-v-46bc7c99] {
  font-size: var(--font-size-14, 14px);
  color: var(--color-primary-dark, #020631);
  margin: 0;
  line-height: 22px;
}
.activity-meta-row[data-v-46bc7c99] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.activity-meta[data-v-46bc7c99] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}
.activity-tag[data-v-46bc7c99] {
  display: inline-block;
  background: var(--color-semantic-bg-blue, #E8EAFF);
  color: var(--color-primary, #4353FF);
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 6px;
  line-height: 16px;
  white-space: nowrap;
}
.section-empty[data-v-46bc7c99] {
  margin: 0;
  padding: 16px 0;
  font-size: 13px;
  color: var(--color-text-label, #47506A);
}

/* Coming-soon wrapper (matches the pattern used across ws/*Tab.vue) */
.ws-coming-soon-wrap[data-v-46bc7c99] {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}
.ws-coming-soon-content[data-v-46bc7c99] {
  pointer-events: none;
  user-select: none;
}

/* Needs your attention */
.needs-attention-section[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* This Month Usage */
.usage-section[data-v-46bc7c99] {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.usage-card[data-v-46bc7c99] {
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-lg, 12px);
  padding: 16px;
  display: flex;
  flex-direction: column;
}
.usage-row[data-v-46bc7c99] {
  padding: 16px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.usage-row[data-v-46bc7c99]:last-child {
  border-bottom: none;
}

.modal-overlay[data-v-7e0c43c2] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.modal-card[data-v-7e0c43c2] {
  background: #fff;
  border-radius: 12px;
  width: 460px;
  box-shadow: 0 8px 32px rgba(2, 6, 49, 0.16);
}
.modal-header[data-v-7e0c43c2] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 0;
}
.modal-title[data-v-7e0c43c2] { font-size: 16px; font-weight: 600; color: #020631;
}
.modal-close[data-v-7e0c43c2] {
  background: none;
  border: none;
  font-size: 16px;
  color: #9CA5BE;
  cursor: pointer;
  padding: 4px;
}
.modal-close[data-v-7e0c43c2]:hover { color: #020631;
}
.modal-body[data-v-7e0c43c2] { padding: 20px 24px; display: flex; flex-direction: column; gap: 16px;
}
.modal-footer[data-v-7e0c43c2] {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 0 24px 20px;
}
.field[data-v-7e0c43c2] { display: flex; flex-direction: column; gap: 6px;
}
.field-label[data-v-7e0c43c2] { font-size: 13px; font-weight: 500; color: #020631;
}
.field-input[data-v-7e0c43c2] {
  height: 40px;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  padding: 0 12px;
  font-size: 14px;
  color: #020631;
  outline: none;
  font-family: inherit;
  background: #fff;
}
.field-input[data-v-7e0c43c2]:focus { border-color: #4353FF;
}
.field-input--error[data-v-7e0c43c2] { border-color: #D60000;
}
.field-error[data-v-7e0c43c2] { font-size: 12px; color: #D60000;
}
.submit-error[data-v-7e0c43c2] {
  font-size: 12px;
  color: #D60000;
  background: #FFF0F0;
  border-radius: 8px;
  padding: 10px 12px;
}
.btn-ghost[data-v-7e0c43c2] {
  height: 36px;
  padding: 0 16px;
  background: none;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #020631;
  cursor: pointer;
}
.btn-ghost[data-v-7e0c43c2]:hover { background: #F9F9FC;
}
.btn-primary[data-v-7e0c43c2] {
  height: 36px;
  padding: 0 20px;
  background: #4353FF;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.btn-primary[data-v-7e0c43c2]:hover:not(:disabled) { background: #3342ee;
}
.btn-primary[data-v-7e0c43c2]:disabled { opacity: 0.5; cursor: not-allowed;
}

/* Role dropdown */
.role-dropdown[data-v-7e0c43c2] { position: relative;
}
.role-trigger[data-v-7e0c43c2] { width: 100%; height: 40px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border: 1px solid #E5E7EF; border-radius: 8px; background: #fff; font-size: 14px; color: #020631; cursor: pointer; font-family: inherit; text-align: left; transition: border-color 0.15s;
}
.role-trigger[data-v-7e0c43c2]:hover, .role-dropdown--open .role-trigger[data-v-7e0c43c2] { border-color: #4353FF;
}
.role-trigger--placeholder[data-v-7e0c43c2] { color: #9CA5BE;
}
.role-menu[data-v-7e0c43c2] { position: absolute; top: calc(100% + 4px); left: 0; right: 0; background: #fff; border: 1px solid #E5E7EF; border-radius: 10px; box-shadow: 0 4px 20px rgba(2,6,49,0.12); z-index: 50; overflow: hidden;
}
.role-menu-item[data-v-7e0c43c2] { width: 100%; padding: 10px 14px; background: none; border: none; cursor: pointer; text-align: left; font-family: inherit; display: flex; flex-direction: column; gap: 2px; border-bottom: 1px solid #F0F1F7; transition: background 0.12s;
}
.role-menu-item[data-v-7e0c43c2]:last-child { border-bottom: none;
}
.role-menu-item[data-v-7e0c43c2]:hover { background: #F5F6FF;
}
.role-menu-item--active[data-v-7e0c43c2] { background: #EEF0FF;
}
.role-menu-name[data-v-7e0c43c2] { font-size: 13px; font-weight: 600; color: #020631;
}
.role-menu-desc[data-v-7e0c43c2] { font-size: 12px; color: #9CA5BE; line-height: 1.3;
}

.rpm-overlay[data-v-e9da2c35] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.38);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  padding: 24px;
  animation: rpm-fade-e9da2c35 0.15s ease;
}
@keyframes rpm-fade-e9da2c35 {
from { opacity: 0
}
to { opacity: 1
}
}
.rpm-card[data-v-e9da2c35] {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.18), 0 4px 16px rgba(2, 6, 49, 0.08);
  width: 100%;
  max-width: 980px;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: rpm-slide-e9da2c35 0.18s ease;
}
@keyframes rpm-slide-e9da2c35 {
from { opacity: 0; transform: translateY(12px)
}
to   { opacity: 1; transform: translateY(0)
}
}

/* Header */
.rpm-header[data-v-e9da2c35] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid #E5E7EF;
  flex-shrink: 0;
}
.rpm-title[data-v-e9da2c35] {
  font: 600 15px/22px 'Poppins', sans-serif;
  color: #020631;
  margin: 0;
}
.rpm-close[data-v-e9da2c35] {
  background: none;
  border: none;
  cursor: pointer;
  color: #9CA5BE;
  padding: 4px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.12s, color 0.12s;
}
.rpm-close[data-v-e9da2c35]:hover { background: #F3F4F8; color: #020631;
}

/* Loading */
.rpm-loading[data-v-e9da2c35] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px;
}
.rpm-spinner[data-v-e9da2c35] {
  width: 26px;
  height: 26px;
  border: 2.5px solid #E5E7EF;
  border-top-color: #4353FF;
  border-radius: 50%;
  animation: rpm-spin-e9da2c35 0.7s linear infinite;
}
@keyframes rpm-spin-e9da2c35 {
to { transform: rotate(360deg);
}
}

/* Error */
.rpm-error[data-v-e9da2c35] {
  padding: 32px 20px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #D60000;
  text-align: center;
}

/* Table wrapper */
.rpm-table-wrap[data-v-e9da2c35] {
  overflow: auto;
  flex: 1;
}

/* Table — mirrors ws-layout.css ws-table tokens */
.rpm-table[data-v-e9da2c35] {
  width: 100%;
  border-collapse: collapse;
}
.rpm-table th[data-v-e9da2c35] {
  text-align: center;
  position: relative;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: #9CA5BE;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 14px;
  background: #FAFAFB;
  border-bottom: 1px solid #E5E7EF;
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 1;
}
/*
 * ⚠ THE ROLE COLUMN IS PINNED. Scroll right to reach "Manage billing" and the row labels used to
 * leave with it, so you were reading a line of ticks with no idea whose line it was. It is sticky
 * on BOTH axes in the header cell (left AND top), or the corner cell slides under the headings.
 *
 * z-index order matters and is deliberate: header corner (3) over header row (2) over body role
 * cells (1) over ordinary cells. Anything less and the pinned column draws over its own heading.
 */
.rpm-table th.col-role[data-v-e9da2c35] {
  text-align: left;
  min-width: 190px;
  position: sticky;
  left: 0;
  z-index: 3;
  background: #FAFAFB;
}

/* The seam that tells you the column is pinned and there is more to the right. */
.rpm-table th.col-role[data-v-e9da2c35]::after,
.rpm-table td.col-role[data-v-e9da2c35]::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  background: #E5E7EF;
}

/* Data rows */
.rpm-row td[data-v-e9da2c35] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #47506A;
  padding: 11px 14px;
  border-top: 1px solid #E5E7EF;
  vertical-align: middle;
}
.rpm-row:hover td[data-v-e9da2c35] { background: #FAFAFB;
}

/*
 * Role name cell — pinned with the header above it.
 *
 * ⚠ WRITTEN AS `.rpm-row td.col-role`, not `.col-role`, and that is the whole point. The blanket
 * `.rpm-row td` rule below/above outranks a single class, so the plain version computed
 * `position: relative` and the column scrolled away while its HEADER stayed pinned — the header
 * said "Role" over a blank gap. Measured in Chrome: the cell moved from x=156 to x=-258.
 */
.col-role[data-v-e9da2c35] { min-width: 190px;
}
.rpm-table th.col-role[data-v-e9da2c35],
.rpm-row td.col-role[data-v-e9da2c35] {
  position: sticky;
  left: 0;
  background: #fff;
}
.rpm-row td.col-role[data-v-e9da2c35] { z-index: 1;
}
/* The hover tint has to follow the pinned cell too, or the row splits in two under the cursor. */
.rpm-row:hover td.col-role[data-v-e9da2c35] { background: #FAFAFB;
}
.role-name[data-v-e9da2c35] {
  display: block;
  font: 500 13px/20px 'Poppins', sans-serif;
  color: #020631;
}
.role-desc[data-v-e9da2c35] {
  display: block;
  font: 400 11px/17px 'Poppins', sans-serif;
  color: #9CA5BE;
  margin-top: 2px;
}

/* Permission cells — wide enough for a sentence, because each heading now carries one. */
.col-perm[data-v-e9da2c35] { text-align: center; width: 172px; min-width: 172px;
}
.perm-name[data-v-e9da2c35] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: #47506A;
  text-transform: none;
  letter-spacing: 0.2px;
}
.perm-hint[data-v-e9da2c35] {
  display: block;
  margin-top: 3px;
  font: 400 10px/14px 'Poppins', sans-serif;
  color: #9CA5BE;
  text-transform: none;
  letter-spacing: 0;
  white-space: normal;
}
.check[data-v-e9da2c35] { font: 700 14px/1 'Poppins', sans-serif; color: #059669;
}
.dash[data-v-e9da2c35]  { font: 400 14px/1 'Poppins', sans-serif; color: #D1D5E8;
}

/* Notes */
.rpm-notes[data-v-e9da2c35] {
  padding: 10px 20px 14px;
  border-top: 1px solid #E5E7EF;
  flex-shrink: 0;
}
.rpm-notes p[data-v-e9da2c35] {
  font: 400 11px/18px 'Poppins', sans-serif;
  color: #9CA5BE;
  margin: 0 0 3px;
}
.rpm-notes p[data-v-e9da2c35]:last-child { margin-bottom: 0;
}
.rpm-scroll-hint[data-v-e9da2c35] { color: #68769C;
}

/* A wider card: seven columns that each carry a sentence need the room. */


/* Overlay */
.erm-overlay[data-v-3c365542] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.38);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  animation: erm-fade-3c365542 0.15s ease;
}
@keyframes erm-fade-3c365542 {
from { opacity: 0
}
to { opacity: 1
}
}

/* Card */
.erm-card[data-v-3c365542] {
  background: #fff;
  border-radius: 14px;
  width: 420px;
  max-width: calc(100vw - 32px);
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.16), 0 4px 16px rgba(2, 6, 49, 0.08);
  display: flex;
  flex-direction: column;
  animation: erm-up-3c365542 0.18s ease;
  overflow: hidden;
}
@keyframes erm-up-3c365542 {
from { opacity: 0; transform: translateY(10px)
}
to   { opacity: 1; transform: translateY(0)
}
}

/* Header */
.erm-header[data-v-3c365542] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 24px 16px;
}
.erm-header-text[data-v-3c365542] { display: flex; flex-direction: column; gap: 3px;
}
.erm-title[data-v-3c365542] {
  font: 600 16px/24px 'Poppins', sans-serif;
  color: #020631;
  margin: 0;
}
.erm-subtitle[data-v-3c365542] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #9CA5BE;
  margin: 0;
}
.erm-close[data-v-3c365542] {
  width: 28px; height: 28px; border-radius: 6px;
  border: none; background: none;
  display: flex; align-items: center; justify-content: center;
  color: #9CA5BE; cursor: pointer; flex-shrink: 0; margin-top: 2px;
  transition: background 0.12s, color 0.12s;
}
.erm-close[data-v-3c365542]:hover:not(:disabled) { background: #F3F4F8; color: #47506A;
}
.erm-close[data-v-3c365542]:disabled { opacity: 0.4; cursor: not-allowed;
}
.erm-divider[data-v-3c365542] { height: 1px; background: #E5E7EF;
}

/* Body */
.erm-body[data-v-3c365542] {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.erm-field[data-v-3c365542] { display: flex; flex-direction: column; gap: 6px;
}
.erm-label[data-v-3c365542] {
  font: 500 13px/18px 'Poppins', sans-serif;
  color: #020631;
}
.erm-select-wrap[data-v-3c365542] { position: relative;
}
.erm-select[data-v-3c365542] {
  width: 100%;
  height: 42px;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  padding: 0 36px 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: #020631;
  background: #fff;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.12s;
}
.erm-select[data-v-3c365542]:focus { outline: none; border-color: #4353FF;
}
.erm-select-chevron[data-v-3c365542] {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  pointer-events: none;
}

/* Error */
.erm-error[data-v-3c365542] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #D60000;
  background: #FEF2F2;
  border: 1px solid #FECDD3;
  border-radius: 8px;
  padding: 10px 12px;
}

/* Footer */
.erm-footer[data-v-3c365542] {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 0 24px 20px;
}
.erm-btn-cancel[data-v-3c365542] {
  height: 40px; padding: 0 18px; border-radius: 8px;
  border: 1px solid #E5E7EF; background: #fff;
  font: 500 14px/20px 'Poppins', sans-serif; color: #47506A;
  cursor: pointer; transition: background 0.12s;
}
.erm-btn-cancel[data-v-3c365542]:hover:not(:disabled) { background: #F5F6FA;
}
.erm-btn-cancel[data-v-3c365542]:disabled { opacity: 0.5; cursor: not-allowed;
}
.erm-btn-save[data-v-3c365542] {
  height: 40px; padding: 0 22px; border-radius: 8px;
  border: none; background: #4353FF;
  font: 600 14px/20px 'Poppins', sans-serif; color: #fff;
  cursor: pointer;
  display: flex; align-items: center; gap: 7px;
  transition: opacity 0.12s;
}
.erm-btn-save[data-v-3c365542]:hover:not(:disabled) { opacity: 0.88;
}
.erm-btn-save[data-v-3c365542]:disabled { opacity: 0.5; cursor: not-allowed;
}

/* Spinner */
.erm-spinner[data-v-3c365542] {
  width: 15px; height: 15px; flex-shrink: 0;
  animation: erm-spin-3c365542 0.8s linear infinite;
}
@keyframes erm-spin-3c365542 {
to { transform: rotate(360deg)
}
}

.members-section[data-v-3f8927e4] { position: relative;
}
.section-card[data-v-3f8927e4] {
  background: #fff;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  overflow: hidden;
}

/* Section header — matches ProjectMembersTab exactly so both member lists look the same */
.section-header[data-v-3f8927e4] {
  display: flex; justify-content: space-between; align-items: center;
  min-height: 56px; padding: 12px 20px; gap: 12px;
}
.header-left[data-v-3f8927e4] { display: flex; flex-direction: column; gap: 2px;
}
.section-title[data-v-3f8927e4] { font: 600 14px/21px 'Poppins', sans-serif; color: #020631;
}
.members-meta[data-v-3f8927e4] { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A; display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.roles-info-btn[data-v-3f8927e4] {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: none;
  border: 1px solid #D1D5E8;
  border-radius: 4px;
  padding: 1px 7px;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: #4353FF;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, border-color 0.12s;
}
.roles-info-btn[data-v-3f8927e4]:hover { background: #ECEEFF; border-color: #4353FF;
}
.header-right[data-v-3f8927e4] { display: flex; align-items: center; gap: 10px;
}
.member-search-input[data-v-3f8927e4] {
  height: 32px; width: 200px; padding: 0 10px;
  border: 1px solid #E5E7EF; border-radius: 6px;
  font: 400 13px/18px 'Poppins', sans-serif; color: #020631;
  outline: none; background: #fff;
}
.member-search-input[data-v-3f8927e4]:focus { border-color: #4353FF;
}
.section-divider[data-v-3f8927e4] { height: 1px; background: #E5E7EF;
}
.btn-primary-sm[data-v-3f8927e4] {
  height: 36px; padding: 0 20px; border-radius: 6px;
  background: #4353FF; border: none; color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif; cursor: pointer; white-space: nowrap;
}
.btn-primary-sm[data-v-3f8927e4]:hover { opacity: 0.9;
}

/* Table — scrolls both ways instead of overflowing the card/page */
.table-scroll[data-v-3f8927e4] {
  overflow-x: auto;
  overflow-y: auto;
  max-height: 60vh;
}
.data-table[data-v-3f8927e4] {
  width: 100%;
  min-width: 780px;
  border-collapse: collapse;
  font-size: 14px;
}
.data-table th[data-v-3f8927e4] {
  text-align: left;
  font-size: 11px;
  font-weight: 600;
  color: #9CA5BE;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  padding: 10px 20px;
  border-bottom: 1px solid #E5E7EF;
}
.col-member[data-v-3f8927e4]   { width: 240px;
}
.col-role[data-v-3f8927e4]     { width: 160px;
}
.col-projects[data-v-3f8927e4] { width: 130px;
}
.col-last[data-v-3f8927e4]     { width: 150px;
}
.col-actions[data-v-3f8927e4]  { width: 100px;
}
.sr-only[data-v-3f8927e4] {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.member-row td[data-v-3f8927e4] {
  padding: 12px 20px;
  border-bottom: 1px solid #F0F1F7;
  vertical-align: middle;
  color: #020631;
}
.member-row:last-child td[data-v-3f8927e4] { border-bottom: none;
}
.member-row:hover td[data-v-3f8927e4] { background: #F9F9FC;
}
.invite-row td[data-v-3f8927e4] { background: #FAFAFA;
}
.invite-row:hover td[data-v-3f8927e4] { background: #F5F5F8;
}
.member-cell[data-v-3f8927e4] { display: flex; align-items: center; gap: 10px;
}
.member-info[data-v-3f8927e4] { display: flex; flex-direction: column;
}
.member-name[data-v-3f8927e4] { font-size: 14px; font-weight: 500; color: #020631;
}
.member-email[data-v-3f8927e4] { font-size: 12px; color: #9CA5BE;
}
.avatar[data-v-3f8927e4] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #fff;
  font-weight: 700;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.avatar-pending[data-v-3f8927e4] {
  background: #E5E7EF;
  color: #9CA5BE;
}
.role-badge[data-v-3f8927e4] {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.2px;
}
.role-cell[data-v-3f8927e4] { display: flex; flex-direction: column; align-items: flex-start; gap: 5px;
}
.invite-status[data-v-3f8927e4] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.invite-status-dot[data-v-3f8927e4] { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
}
.invite-status--pending[data-v-3f8927e4] { color: #856404;
}
.invite-status--pending .invite-status-dot[data-v-3f8927e4] { background: #856404;
}
.invite-status--declined[data-v-3f8927e4] { color: #991B1B;
}
.invite-status--declined .invite-status-dot[data-v-3f8927e4] { background: #991B1B;
}
/* Not delivered — same red as declined: both mean this person is not getting in, and the row's
   Resend is what separates "try again" from "they said no". */
.invite-status--failed[data-v-3f8927e4] { color: #991B1B;
}
.invite-status--failed .invite-status-dot[data-v-3f8927e4] { background: #991B1B;
}
.text-muted[data-v-3f8927e4] { color: #9CA5BE;
}
.kebab-wrap[data-v-3f8927e4] { position: relative;
}
.kebab-btn[data-v-3f8927e4] {
  width: 24px; height: 24px; border: none; background: none;
  cursor: pointer; color: #9CA5BE; font-size: 16px; display: flex; align-items: center; justify-content: center;
  border-radius: 6px;
}
.kebab-btn[data-v-3f8927e4]:hover { background: #F3F4F8; color: #47506A;
}
.member-menu[data-v-3f8927e4] {
  position: fixed; z-index: 1000;
  background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.12);
  min-width: 160px; padding: 6px; display: flex; flex-direction: column; gap: 2px;
}
.member-menu-item[data-v-3f8927e4] {
  text-align: left; border: none; background: none; cursor: pointer;
  padding: 8px 10px; border-radius: 6px;
  font: 400 13px/18px 'Poppins', sans-serif; color: #020631;
}
.member-menu-item[data-v-3f8927e4]:hover { background: #F5F6FA;
}
.member-menu-item--danger[data-v-3f8927e4] { color: #D60000;
}
.member-menu-item--danger[data-v-3f8927e4]:hover { background: #FEF2F2;
}
.remove-confirm-error[data-v-3f8927e4] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #D60000;
  background: #FEF2F2;
  border: 1px solid #FECDD3;
  border-radius: 8px;
  padding: 10px 12px;
  margin: 0;
  text-align: left;
}
.hover-actions[data-v-3f8927e4] { display: flex; gap: 6px; align-items: center;
}
.action-btn[data-v-3f8927e4] {
  height: 28px;
  padding: 0 10px;
  background: #fff;
  border: 1px solid #E5E7EF;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #020631;
  cursor: pointer;
  white-space: nowrap;
}
.action-btn[data-v-3f8927e4]:hover:not(:disabled) { border-color: #4353FF; color: #4353FF;
}
.action-btn[data-v-3f8927e4]:disabled { opacity: 0.5; cursor: not-allowed;
}
.action-btn--danger[data-v-3f8927e4] { color: #991B1B;
}
.action-btn--danger[data-v-3f8927e4]:hover:not(:disabled) { border-color: #991B1B; color: #991B1B;
}

/* Empty */
.empty-state[data-v-3f8927e4] {
  padding: 32px;
  text-align: center;
  font-size: 14px;
  color: #9CA5BE;
}

/* Toast */
.toast[data-v-3f8927e4] {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: #020631;
  color: #fff;
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 13px;
  z-index: 999;
  pointer-events: none;
  animation: fadeUp-3f8927e4 0.2s ease;
}
@keyframes fadeUp-3f8927e4 {
from { opacity: 0; transform: translateX(-50%) translateY(8px);
}
to   { opacity: 1; transform: translateX(-50%) translateY(0);
}
}

/* Skeleton */
.skeleton-rows[data-v-3f8927e4] { padding: 12px 20px; display: flex; flex-direction: column; gap: 12px;
}
.skeleton-row-item[data-v-3f8927e4] { display: flex; align-items: center; gap: 10px;
}
.members-error[data-v-3f8927e4] { padding: 24px 16px; color: var(--color-danger, #D94F4F); font-size: 14px;
}
.skeleton[data-v-3f8927e4] {
  background: linear-gradient(90deg, #E5E7EF 25%, #F3F4F6 50%, #E5E7EF 75%);
  background-size: 200% 100%;
  animation: shimmer-3f8927e4 1.4s infinite;
  border-radius: 6px;
}
.s-avatar[data-v-3f8927e4]  { width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
}
.s-name[data-v-3f8927e4]    { height: 14px; width: 160px;
}
.s-badge[data-v-3f8927e4]   { height: 18px; width: 60px; border-radius: 20px; margin-left: auto;
}
@keyframes shimmer-3f8927e4 {
0%   { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}

/* ── Seat limit ─────────────────────────────────────────────────────────── */
.seat-count[data-v-3f8927e4] { font-weight: 500;
}
.seat-count--lastSeat[data-v-3f8927e4] { color: #8A5A00;
}
.seat-count--atCap[data-v-3f8927e4],
.seat-count--singleSeat[data-v-3f8927e4] { color: #A31515;
}
.seat-notice[data-v-3f8927e4] {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  margin: 16px 0 4px;
  padding: 14px 16px;
  border: 1px solid #F3B4B4;
  border-radius: 10px;
  background: #FDECEC;
  /* min-width:0 on the text so a long owner address wraps inside the notice instead of pushing the
     button out of it — the same flex-item default that let a lifecycle badge break out of its tile. */
}
.seat-notice-text[data-v-3f8927e4] {
  margin: 0;
  flex: 1 1 320px;
  min-width: 0;
  font: 400 13px/1.55 'Poppins', sans-serif;
  color: #7A1010;
}
.seat-notice-text b[data-v-3f8927e4] { font-weight: 600;
}
.seat-notice-actions[data-v-3f8927e4] { flex: 0 0 auto;
}
.btn-secondary-sm[data-v-3f8927e4] {
  font: 500 13px/1 'Poppins', sans-serif;
  padding: 9px 15px;
  border-radius: 8px;
  border: 1px solid #F3B4B4;
  background: #fff;
  color: #7A1010;
  cursor: pointer;
}
.btn-secondary-sm[data-v-3f8927e4]:disabled { opacity: .65; cursor: default;
}

.ps-backdrop[data-v-7a87c8b2] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.35);
  z-index: 500;
}
.ps-modal[data-v-7a87c8b2] {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 480px;
  max-width: calc(100vw - 32px);
  max-height: 80vh;
  background: var(--color-surface-card, #FFFFFF);
  border-radius: var(--radius-lg, 16px);
  box-shadow: 0 24px 60px rgba(2, 6, 49, 0.2), 0 2px 8px rgba(2, 6, 49, 0.08);
  z-index: 501;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: popIn-7a87c8b2 0.18s ease;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
@keyframes popIn-7a87c8b2 {
from { transform: translate(-50%, -48%); opacity: 0.6;
}
to   { transform: translate(-50%, -50%); opacity: 1;
}
}
.ps-hd[data-v-7a87c8b2] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 24px 24px 16px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  flex-shrink: 0;
  gap: 12px;
}
.ps-title[data-v-7a87c8b2] { font-size: var(--font-size-18, 18px); font-weight: 700; color: var(--color-primary-dark, #020631); margin: 0;
}
.ps-sub[data-v-7a87c8b2]   { font-size: var(--font-size-14, 14px); color: var(--color-text-label, #47506A); margin: 4px 0 0;
}
.ps-sub strong[data-v-7a87c8b2] { color: var(--color-primary-dark, #020631);
}
.ps-close[data-v-7a87c8b2] {
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  color: var(--color-text-label, #47506A);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.12s, color 0.12s;
}
.ps-close[data-v-7a87c8b2]:hover { background: var(--color-surface-page, #F9F9FC); color: var(--color-primary-dark, #020631);
}
.ps-body[data-v-7a87c8b2] {
  flex: 1;
  overflow-y: auto;
  padding: 12px 12px 0;
}
.ps-state[data-v-7a87c8b2] {
  padding: 24px 12px;
  font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A);
  text-align: center;
}
.ps-empty[data-v-7a87c8b2] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.ps-empty p[data-v-7a87c8b2] { margin: 0;
}
.ps-list[data-v-7a87c8b2] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-bottom: 12px;
}
.ps-item[data-v-7a87c8b2] {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
  background: var(--color-surface-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: border-color 0.12s, background 0.12s;
}
.ps-item[data-v-7a87c8b2]:hover:not(:disabled) { border-color: var(--color-primary, #4353FF); background: #F5F6FF;
}
.ps-item[data-v-7a87c8b2]:disabled { cursor: not-allowed; opacity: 0.7;
}
.ps-item--active[data-v-7a87c8b2] { border-color: var(--color-primary, #4353FF); background: #F5F6FF;
}
.ps-item-icon[data-v-7a87c8b2] {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, #5E4ED4, #4353FF);
  color: var(--color-text-white, #FFFFFF);
  font-size: var(--font-size-12, 12px);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ps-item-body[data-v-7a87c8b2] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ps-item-name[data-v-7a87c8b2] { font-size: var(--font-size-14, 14px); font-weight: 600; color: var(--color-primary-dark, #020631);
}
.ps-item-desc[data-v-7a87c8b2] { font-size: var(--font-size-12, 12px); color: var(--color-text-label, #47506A); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ps-badge[data-v-7a87c8b2] {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--color-surface-page, #F9F9FC);
  color: var(--color-text-label, #47506A);
  flex-shrink: 0;
}
.ps-spinner[data-v-7a87c8b2] {
  font-size: var(--font-size-12, 12px);
  color: var(--color-primary, #4353FF);
  flex-shrink: 0;
}
.ps-item-arrow[data-v-7a87c8b2] {
  flex-shrink: 0;
  color: var(--color-text-placeholder, #9CA5BE);
  transition: color 0.12s;
}
.ps-item:hover:not(:disabled) .ps-item-arrow[data-v-7a87c8b2] { color: var(--color-primary, #4353FF);
}
.ps-ft[data-v-7a87c8b2] {
  padding: 12px 20px 16px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  flex-shrink: 0;
}
.ps-btn-new[data-v-7a87c8b2],
.ps-btn-new-sm[data-v-7a87c8b2] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  background: none;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--font-size-13, 13px);
  font-weight: 500;
  color: var(--color-text-label, #47506A);
  transition: border-color 0.12s, color 0.12s;
}
.ps-btn-new[data-v-7a87c8b2]:hover,
.ps-btn-new-sm[data-v-7a87c8b2]:hover { border-color: var(--color-primary, #4353FF); color: var(--color-primary, #4353FF);
}

.remote-loading[data-v-8998ac7f] {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 42px;
  min-height: 240px;
  padding: 40px;
}
.remote-loading-art[data-v-8998ac7f] {
  width: 140px;
  height: 122px;
  flex-shrink: 0;
}
.remote-loading-art img[data-v-8998ac7f] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  mix-blend-mode: multiply;
  pointer-events: none;
}
.remote-loading-progress[data-v-8998ac7f] {
  width: 100%;
  max-width: 404px;
}
.remote-loading-track[data-v-8998ac7f] {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 8px;
  width: 100%;
  padding: 1px;
  border-radius: var(--radius-sm, 4px);
  background: var(--color-semantic-bg-blue, #E9F2FF);
  box-sizing: border-box;
  overflow: hidden;
}
.remote-loading-fill[data-v-8998ac7f] {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 0;
  border-radius: var(--radius-sm, 4px);
  background: var(--color-primary, #4353FF);
  /*
   * A DETERMINATE bar: the fill only ever grows, decelerating toward 92%, and
   * `forwards` holds it there. It never loops and never shrinks.
   *
   * Two earlier versions both read as the bar moving backwards — one oscillated
   * the width 4% ↔ 92%, the other swept a segment off the right edge and
   * restarted it at the left. Either way the eye sees progress being undone,
   * which on a slow remote reads as a failed load being retried.
   *
   * ⚠ It stops at 92% ON PURPOSE. We cannot measure a dynamic import's real
   * progress, so this is a time-based estimate — and an estimate must never
   * paint 100%, because 100% means "loaded" and only the remote resolving can
   * say that. Suspense unmounts this component at that moment, so the bar
   * disappears at completion rather than claiming it early.
   */
  animation: remote-loading-fill-8998ac7f 15s cubic-bezier(0, 0.6, 0.25, 1) forwards;
}
@keyframes remote-loading-fill-8998ac7f {
0%   { width: 0;
}
100% { width: 92%;
}
}
.remote-loading-dot[data-v-8998ac7f] {
  position: relative;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--color-primary, #4353FF);
  z-index: 1;
}
.remote-loading-label[data-v-8998ac7f] {
  margin: 0;
  width: 100%;
  max-width: 404px;
  text-align: center;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 400;
  font-size: 16px;
  line-height: var(--line-height-sm, 24px);
  color: var(--color-neutral-400, #68769C);
}

.ffs-view[data-v-140902e4] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.base-materials-view[data-v-6bd1b0de] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.asset-360-view[data-v-30b32cd4] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.risk-adaptable-model-view[data-v-3f3567e2] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.risk-adaptable-model-view[data-v-955d83e3] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.codelist-builder-view[data-v-a8f68b86] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.characteristic-configuration-view[data-v-4f827b94] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.risk-matrix-view[data-v-f180c3b7] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.asset-inspection-view[data-v-20d3af50] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.asset-inspection-adaptable-model-view[data-v-1a61e345] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.picklist-configuration-view[data-v-6b62aa51] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.workflow-builder-view[data-v-b7b575d8] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.cmls-view[data-v-019b158e] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.cml-adaptable-model-view[data-v-15ec7c69] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.asset-strategy-development-view[data-v-430cfc92] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.recommendation-workbench-view[data-v-3f0b838b] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.edge-connect-view[data-v-85ff9b56] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.document-intelligence-view[data-v-200e12bc] {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.status-pill[data-v-0b886f12] {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.status-pill--active[data-v-0b886f12] {
  background: #ECFDF5;
  color: #059669;
}
.status-pill--archived[data-v-0b886f12] {
  background: #F3F4F6;
  color: #6B7280;
}

.projects-root[data-v-bcfc4806] {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* ── Access denied banner ── */
.access-denied-banner[data-v-bcfc4806] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid #FCA5A5;
  border-radius: var(--radius-md, 8px);
  background: #FEF2F2;
  font-size: 13px;
  font-weight: 500;
  color: #DC2626;
  flex-shrink: 0;
}
.access-denied-close[data-v-bcfc4806] {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: var(--radius-sm, 4px);
  background: none;
  cursor: pointer;
  color: #DC2626;
  transition: background 0.12s;
}
.access-denied-close[data-v-bcfc4806]:hover { background: rgba(220, 38, 38, 0.1);
}

/* ── Page header ── */
.projects-page-header[data-v-bcfc4806] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-shrink: 0;
}
.projects-page-header-left[data-v-bcfc4806] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.projects-page-title[data-v-bcfc4806] {
  font-size: 28px;
  font-weight: 700;
  color: var(--color-primary-dark, #020631);
  line-height: 1.2;
}
.projects-page-subtitle[data-v-bcfc4806] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
}
.btn-primary[data-v-bcfc4806] {
  height: 36px;
  padding: 0 18px;
  background: var(--color-primary, #4353FF);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: opacity 0.15s;
}
.btn-primary[data-v-bcfc4806]:hover { opacity: 0.88;
}
.btn-outline[data-v-bcfc4806] {
  height: 34px;
  padding: 0 16px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1.5px solid var(--color-primary, #4353FF);
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.btn-outline[data-v-bcfc4806]:hover { background: #eceeff;
}

/* ── List card ── */
.projects-list-card[data-v-bcfc4806] {
  background: #fff;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* ── Loading ── */
.projects-loading[data-v-bcfc4806] {
  flex: 1;
  padding: 16px 20px;
}
.projects-skeleton[data-v-bcfc4806] {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.projects-skeleton-header[data-v-bcfc4806],
.projects-skeleton-row[data-v-bcfc4806] {
  display: grid;
  /*
   * ⚠ `minmax(0, …)` on every track, not a bare `fr`. An `fr` track's automatic minimum is
   *   `auto`, so a long project description could not be shrunk below its own text: the first
   *   column grew to fit it and pushed Status, Applications, Members, Storage and Created off
   *   to the right, out of line with their own headers.
   *
   *   `.row-desc` already declared `text-overflow: ellipsis` and it could never fire — the text
   *   was not overflowing anything, the column was growing instead. Same shape as the desk's
   *   truncated-subject defect: an ellipsis that is computed and never drawn.
   */
  grid-template-columns: minmax(0, 3fr) minmax(0, 1.3fr) minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1.3fr) minmax(0, 1.9fr) 32px;
  align-items: center;
  gap: 12px;
}
.projects-skeleton-header[data-v-bcfc4806] {
  padding: 8px 0 6px;
}
.projects-skeleton-row[data-v-bcfc4806] {
  min-height: 52px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  padding: 0 12px;
  background: #FBFCFF;
}
.skeleton-block[data-v-bcfc4806] {
  display: inline-block;
  border-radius: 999px;
  background: #E8EDF8;
  height: 10px;
}
.skeleton-block--title[data-v-bcfc4806] { width: 42%; height: 12px;
}
.skeleton-block--meta[data-v-bcfc4806] { width: 30%;
}
.skeleton-block--name[data-v-bcfc4806] { width: 72%;
}
.skeleton-block--status[data-v-bcfc4806] { width: 80%;
}
.skeleton-block--apps[data-v-bcfc4806] { width: 88%;
}
.skeleton-block--members[data-v-bcfc4806] { width: 70%;
}
.skeleton-block--storage[data-v-bcfc4806] { width: 76%;
}
.skeleton-block--created[data-v-bcfc4806] { width: 82%;
}
.skeleton-block--arrow[data-v-bcfc4806] { width: 14px; height: 14px; border-radius: 50%; justify-self: center;
}
.shimmer[data-v-bcfc4806] {
  position: relative;
  overflow: hidden;
}
.shimmer[data-v-bcfc4806]::after {
  content: '';
  position: absolute;
  top: 0;
  left: -140%;
  width: 80%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.75) 50%, transparent 100%);
  animation: shimmer-sweep-bcfc4806 1.15s ease-in-out infinite;
}
@keyframes shimmer-sweep-bcfc4806 {
100% { left: 160%;
}
}

/* ── Error ── */
.projects-error[data-v-bcfc4806] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 48px;
}
.projects-error-msg[data-v-bcfc4806] {
  font-size: 14px;
  color: #DC2626;
}

/* ── Section header ── */
.projects-section-header[data-v-bcfc4806] {
  padding: 16px 20px 12px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.projects-section-title[data-v-bcfc4806] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  margin-bottom: 2px;
}
.projects-section-sub[data-v-bcfc4806] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
}

/* ── Empty state ── */
.projects-empty[data-v-bcfc4806] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 56px 24px;
}
.projects-empty-icon[data-v-bcfc4806] { width: 48px; height: 48px;
}
.projects-empty-text[data-v-bcfc4806] {
  font-size: 14px;
  color: var(--color-text-placeholder, #9CA5BE);
  text-align: center;
  max-width: 320px;
}

/* ── Table grid columns ── */
.projects-table-header[data-v-bcfc4806],
.projects-row[data-v-bcfc4806] {
  display: grid;
  /*
   * ⚠ `minmax(0, …)` on every track, not a bare `fr`. An `fr` track's automatic minimum is
   *   `auto`, so a long project description could not be shrunk below its own text: the first
   *   column grew to fit it and pushed Status, Applications, Members, Storage and Created off
   *   to the right, out of line with their own headers.
   *
   *   `.row-desc` already declared `text-overflow: ellipsis` and it could never fire — the text
   *   was not overflowing anything, the column was growing instead. Same shape as the desk's
   *   truncated-subject defect: an ellipsis that is computed and never drawn.
   */
  grid-template-columns: minmax(0, 3fr) minmax(0, 1.3fr) minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1.3fr) minmax(0, 1.9fr) 32px;
  align-items: center;
  gap: 0;
}

/* ── Column headers ── */
.projects-table-header[data-v-bcfc4806] {
  padding: 0 20px;
  height: 40px;
  background: #FAFAFA;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.projects-table-header span[data-v-bcfc4806] {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-text-label, #47506A);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ── Data rows ── */
.projects-row[data-v-bcfc4806] {
  padding: 0 20px;
  min-height: 68px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  background: transparent;
  border-left: none;
  border-right: none;
  border-top: none;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s;
  width: 100%;
  box-sizing: border-box;
}
.projects-row[data-v-bcfc4806]:last-child { border-bottom: none;
}
.projects-row[data-v-bcfc4806]:hover { background: #F9F9FC;
}
.projects-row[data-v-bcfc4806]:focus-visible {
  outline: 2px solid var(--color-primary, #4353FF);
  outline-offset: -2px;
}

/* ── Cell content ── */
.col-project[data-v-bcfc4806] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-right: 12px;
  /*
   * ⚠ Needed as well as the `minmax(0, …)` above, not instead of it. A grid item's own automatic
   *   minimum is also `auto`, so without this the item refuses to shrink even inside a track that
   *   can — and the ellipsis on its children still never fires.
   */
  min-width: 0;
}
.row-name[data-v-bcfc4806] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.row-desc[data-v-bcfc4806] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.row-meta[data-v-bcfc4806] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
}
.col-status[data-v-bcfc4806],
.col-apps[data-v-bcfc4806],
.col-members[data-v-bcfc4806],
.col-storage[data-v-bcfc4806],
.col-created[data-v-bcfc4806] {
  padding-right: 12px;
}
.col-arrow[data-v-bcfc4806] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: #9CA5BE;
}

.step1[data-v-9292fff0] { display: flex; flex-direction: column; gap: 20px;
}
.step-title[data-v-9292fff0] { font: 600 16px/24px 'Poppins', sans-serif; color: #020631; margin: 0;
}
.step-sub[data-v-9292fff0]   { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A; margin: 0;
}
.field-group[data-v-9292fff0] { display: flex; flex-direction: column; gap: 6px;
}
.field-label[data-v-9292fff0] { font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
}
.required[data-v-9292fff0] { color: #D60000;
}
.field-input[data-v-9292fff0], .field-select[data-v-9292fff0] {
  width: 100%; height: 48px; border: 1px solid #E5E7EF; border-radius: 8px;
  padding: 0 14px; font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
  background: #fff; box-sizing: border-box;
}
.field-input[data-v-9292fff0]:focus, .field-select[data-v-9292fff0]:focus { outline: none; border-color: #4353FF;
}
.field-textarea[data-v-9292fff0] {
  width: 100%; border: 1px solid #E5E7EF; border-radius: 8px;
  padding: 12px 14px; font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
  background: #fff; resize: vertical; box-sizing: border-box;
}
.field-textarea[data-v-9292fff0]:focus { outline: none; border-color: #4353FF;
}
.select-wrap[data-v-9292fff0] { position: relative;
}
.field-select[data-v-9292fff0] { appearance: none; cursor: pointer; padding-right: 36px;
}
.select-wrap[data-v-9292fff0]::after {
  content: '▾'; position: absolute; right: 14px; top: 50%;
  transform: translateY(-50%); pointer-events: none; color: #47506A;
}
.region-locked[data-v-9292fff0] { display: flex; flex-direction: column; gap: 4px;
}
.region-value[data-v-9292fff0] {
  display: inline-flex; align-items: center; height: 48px; padding: 0 14px;
  border: 1px solid #E5E7EF; border-radius: 8px; background: #F9F9FC;
  font: 400 14px/20px 'Poppins', sans-serif; color: #47506A;
  width: 100%; box-sizing: border-box;
}
.region-note[data-v-9292fff0] { font: 400 12px/17px 'Poppins', sans-serif; color: #9CA5BE; margin: 0;
}
.step-footer[data-v-9292fff0] { display: flex; justify-content: flex-end; gap: 10px; padding-top: 8px;
}
.btn-ghost-md[data-v-9292fff0] {
  height: 44px; padding: 0 24px; border-radius: 8px;
  border: 1px solid #E5E7EF; background: #fff; color: #020631;
  font: 400 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-ghost-md[data-v-9292fff0]:hover { background: #F9F9FC;
}
.btn-primary-md[data-v-9292fff0] {
  height: 44px; padding: 0 24px; border-radius: 8px;
  background: #4353FF; border: none; color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-primary-md[data-v-9292fff0]:disabled { opacity: 0.5; cursor: not-allowed;
}
.btn-primary-md[data-v-9292fff0]:not(:disabled):hover { opacity: 0.9;
}

.member-avatar[data-v-3933b1a6] {
  border-radius: 50%;
  color: #fff;
  font: 700 12px/17px 'Poppins', sans-serif;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  user-select: none;
}

.step2[data-v-ee44c8a0] { display: flex; flex-direction: column; gap: 20px;
}
.step-title[data-v-ee44c8a0] { font: 600 16px/24px 'Poppins', sans-serif; color: #020631; margin: 0;
}
.step-sub[data-v-ee44c8a0]   { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A; margin: 0;
}
.add-row[data-v-ee44c8a0] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
}
.select-wrap[data-v-ee44c8a0] { position: relative;
}
.member-select-wrap[data-v-ee44c8a0] { flex: 0 0 360px; max-width: 100%;
}
.role-select-wrap[data-v-ee44c8a0] { flex: 0 0 140px;
}
.field-select[data-v-ee44c8a0] {
  display: block;
  width: 100% !important;
  box-sizing: border-box;
  height: 44px;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: #020631;
  background: #fff;
  cursor: pointer;
  min-width: 140px;
}
.field-select[data-v-ee44c8a0]:disabled { background: #F9F9FC; color: #9CA5BE; cursor: not-allowed;
}
.field-select[data-v-ee44c8a0]:focus { outline: none; border-color: #4353FF;
}
.btn-add[data-v-ee44c8a0] {
  height: 44px; padding: 0 20px; border-radius: 8px; background: #4353FF;
  border: none; color: #fff; font: 600 14px/20px 'Poppins', sans-serif; cursor: pointer; white-space: nowrap;
}
.btn-add[data-v-ee44c8a0]:disabled { opacity: 0.5; cursor: not-allowed;
}
.btn-add[data-v-ee44c8a0]:not(:disabled):hover { opacity: 0.9;
}
.empty-hint-text[data-v-ee44c8a0] { font: 400 13px/18px 'Poppins', sans-serif; color: #9CA5BE; margin: 0;
}
.member-list[data-v-ee44c8a0] { display: flex; flex-direction: column; gap: 0; border: 1px solid #E5E7EF; border-radius: 8px; overflow: hidden;
}
.member-row[data-v-ee44c8a0] {
  display: flex; align-items: center; gap: 10px; padding: 10px 16px;
  background: #fff; border-top: 1px solid #E5E7EF;
}
.member-row[data-v-ee44c8a0]:first-child { border-top: none;
}
.member-name[data-v-ee44c8a0] { font: 600 13px/20px 'Poppins', sans-serif; color: #020631;
}
.member-email-sub[data-v-ee44c8a0] { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A; flex: 1;
}
.role-pill[data-v-ee44c8a0] {
  display: inline-flex; align-items: center; height: 22px; padding: 0 10px;
  border-radius: 11px; border: 1px solid #E5E7EF; color: #47506A;
  font: 400 12px/17px 'Poppins', sans-serif;
}
.btn-remove[data-v-ee44c8a0] {
  width: 24px; height: 24px; border: none; background: none;
  color: #9CA5BE; cursor: pointer; font-size: 12px;
}
.btn-remove[data-v-ee44c8a0]:hover { color: #D60000;
}
.empty-hint[data-v-ee44c8a0] {
  border: 1px dashed #E5E7EF; border-radius: 8px; padding: 24px;
  text-align: center; color: #9CA5BE; font: 400 14px/20px 'Poppins', sans-serif;
}
.step-footer[data-v-ee44c8a0] { display: flex; justify-content: flex-end; gap: 10px; padding-top: 8px;
}
.btn-ghost-md[data-v-ee44c8a0] {
  height: 44px; padding: 0 24px; border-radius: 8px;
  border: 1px solid #E5E7EF; background: #fff; color: #020631;
  font: 400 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-ghost-md[data-v-ee44c8a0]:hover { background: #F9F9FC;
}
.btn-skip[data-v-ee44c8a0] {
  height: 44px; padding: 0 20px; border-radius: 8px;
  border: none; background: none; color: #47506A;
  font: 400 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-skip[data-v-ee44c8a0]:hover { color: #020631;
}
.btn-primary-md[data-v-ee44c8a0] {
  height: 44px; padding: 0 24px; border-radius: 8px;
  background: #4353FF; border: none; color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-primary-md[data-v-ee44c8a0]:hover { opacity: 0.9;
}
@media (max-width: 900px) {
.member-select-wrap[data-v-ee44c8a0],
  .role-select-wrap[data-v-ee44c8a0],
  .btn-add[data-v-ee44c8a0] {
    flex: 1 1 100%;
}
}

.step3[data-v-127d1297] { display: flex; flex-direction: column; gap: 20px;
}
.step-title[data-v-127d1297] { font: 600 16px/24px 'Poppins', sans-serif; color: #020631; margin: 0;
}
.step-sub[data-v-127d1297]   { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A; margin: 0;
}
.review-card[data-v-127d1297] { border: 1px solid #E5E7EF; border-radius: 8px; overflow: hidden;
}
.review-divider[data-v-127d1297] { height: 1px; background: #E5E7EF;
}
.review-row[data-v-127d1297] {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 14px 20px; gap: 16px;
}
.review-row--col[data-v-127d1297] { flex-direction: column; gap: 10px;
}
.review-label[data-v-127d1297] { font: 600 13px/20px 'Poppins', sans-serif; color: #020631; flex-shrink: 0;
}
.review-value[data-v-127d1297] { font: 400 14px/20px 'Poppins', sans-serif; color: #020631; text-align: right; flex: 1;
}
.review-value--secondary[data-v-127d1297] { color: #47506A;
}
.member-chips[data-v-127d1297] { display: flex; flex-direction: column; gap: 6px;
}
.member-chip[data-v-127d1297] {
  display: flex; align-items: center; gap: 8px;
  font: 400 13px/20px 'Poppins', sans-serif; color: #020631;
}
.chip-role[data-v-127d1297] {
  font: 400 12px/17px 'Poppins', sans-serif; color: #47506A;
  border: 1px solid #E5E7EF; border-radius: 11px; padding: 0 8px; height: 20px; display: flex; align-items: center;
}
.error-msg[data-v-127d1297] { font: 400 14px/20px 'Poppins', sans-serif; color: #D60000; margin: 0;
}
.step-footer[data-v-127d1297] { display: flex; justify-content: flex-end; gap: 10px; padding-top: 8px;
}
.btn-ghost-md[data-v-127d1297] {
  height: 44px; padding: 0 24px; border-radius: 8px;
  border: 1px solid #E5E7EF; background: #fff; color: #020631;
  font: 400 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-ghost-md[data-v-127d1297]:disabled { opacity: 0.5; cursor: not-allowed;
}
.btn-ghost-md[data-v-127d1297]:not(:disabled):hover { background: #F9F9FC;
}
.btn-primary-md[data-v-127d1297] {
  height: 44px; padding: 0 24px; border-radius: 8px;
  background: #4353FF; border: none; color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-primary-md[data-v-127d1297]:disabled { opacity: 0.5; cursor: not-allowed;
}
.btn-primary-md[data-v-127d1297]:not(:disabled):hover { opacity: 0.9;
}

.new-project[data-v-26fc443c] { display: flex; flex-direction: column; gap: 4px;
}
.breadcrumb[data-v-26fc443c] {
  display: flex; gap: 8px; align-items: center;
  font: 400 14px/18px 'Poppins', sans-serif; color: #47506A;
}
.breadcrumb-link[data-v-26fc443c] {
  background: none; border: none; padding: 0; cursor: pointer;
  font: 400 14px/18px 'Poppins', sans-serif; color: #47506A;
}
.breadcrumb-link[data-v-26fc443c]:hover { color: #4353FF;
}
.breadcrumb-sep[data-v-26fc443c] { color: #C4CBDD;
}
.breadcrumb-current[data-v-26fc443c] { color: #020631;
}
.page-title[data-v-26fc443c] { font: 700 28px/42px 'Poppins', sans-serif; color: #020631; margin: 0 0 24px;
}
.wizard-wrap[data-v-26fc443c] { display: flex; justify-content: center;
}
.wizard-card[data-v-26fc443c] {
  width: 680px;
  background: #fff;
  border: 1px solid #E5E7EF;
  border-radius: 12px;
  padding: 32px;
}
.wizard-steps-row[data-v-26fc443c] {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  margin-bottom: 24px;
}
.wizard-step-wrap[data-v-26fc443c] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.wizard-circle[data-v-26fc443c] {
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font: 400 14px/20px 'Poppins', sans-serif;
}
.wizard-circle.active[data-v-26fc443c], .wizard-circle.completed[data-v-26fc443c] {
  background: #4353FF; color: #fff;
}
.wizard-circle.idle[data-v-26fc443c] { border: 1px solid #E5E7EF; color: #47506A;
}
.wizard-connector[data-v-26fc443c] {
  width: 150px; height: 2px; background: #E5E7EF;
  margin: 16px 0 0; align-self: flex-start;
}
.wizard-connector.done[data-v-26fc443c] { background: #4353FF;
}
.wizard-step-label[data-v-26fc443c] { font: 400 12px/18px 'Poppins', sans-serif; color: #47506A;
}
.wizard-divider[data-v-26fc443c] { height: 1px; background: #E5E7EF; margin: 0 -32px 24px;
}

.detail-header[data-v-fa95efc8] {
  padding: 0 0 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.header-top[data-v-fa95efc8] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.title-row[data-v-fa95efc8] {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.project-name[data-v-fa95efc8] {
  font: 700 28px/33px 'Poppins', sans-serif;
  color: #020631;
  margin: 0;
}
.project-desc[data-v-fa95efc8] {
  font: 400 14px/18px 'Poppins', sans-serif;
  color: #47506A;
  margin: 0;
}
.header-actions[data-v-fa95efc8] {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.meta-row[data-v-fa95efc8] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.meta-pill[data-v-fa95efc8] {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid #E5E7EF;
  color: #47506A;
  font: 400 12px/17px 'Poppins', sans-serif;
  white-space: nowrap;
}
.btn-outline-sm[data-v-fa95efc8] {
  height: 36px;
  padding: 0 20px;
  border-radius: 6px;
  border: 1px solid #E5E7EF;
  background: #fff;
  color: #020631;
  font: 400 14px/20px 'Poppins', sans-serif;
  cursor: pointer;
}
.btn-outline-sm[data-v-fa95efc8]:hover { background: #F9F9FC;
}
.btn-primary-sm[data-v-fa95efc8] {
  height: 36px;
  padding: 0 20px;
  border-radius: 6px;
  background: #4353FF;
  border: none;
  color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif;
  cursor: pointer;
}
.btn-primary-sm[data-v-fa95efc8]:hover { opacity: 0.9;
}

.tab-bar[data-v-37677d0a] {
  display: flex;
  border-bottom: 1px solid #E5E7EF;
  padding: 0;
  gap: 0;
}
.tab-item[data-v-37677d0a] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: #47506A;
  padding: 12px 0;
  margin-right: 32px;
  cursor: pointer;
  position: relative;
  background: none;
  border: none;
  white-space: nowrap;
  transition: color 0.15s;
}
.tab-item.active[data-v-37677d0a] {
  color: #020631;
  font-weight: 600;
}
.tab-item.active[data-v-37677d0a]::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: #4353FF;
}
.tab-item[data-v-37677d0a]:hover:not(.active) { color: #020631;
}

/* Overlay */
.apa-overlay[data-v-c88689f9] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.38);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  animation: apa-fade-c88689f9 0.15s ease;
}
@keyframes apa-fade-c88689f9 {
from { opacity: 0
}
to { opacity: 1
}
}

/* Card */
.apa-card[data-v-c88689f9] {
  background: #fff;
  border-radius: 14px;
  width: 480px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 80px);
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.16), 0 4px 16px rgba(2, 6, 49, 0.08);
  display: flex;
  flex-direction: column;
  animation: apa-up-c88689f9 0.18s ease;
  overflow: hidden;
}
@keyframes apa-up-c88689f9 {
from { opacity: 0; transform: translateY(10px)
}
to   { opacity: 1; transform: translateY(0)
}
}

/* Header */
.apa-header[data-v-c88689f9] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 24px 16px;
  flex-shrink: 0;
}
.apa-header-text[data-v-c88689f9] { display: flex; flex-direction: column; gap: 3px;
}
.apa-title[data-v-c88689f9] {
  font: 600 16px/24px 'Poppins', sans-serif;
  color: #020631; margin: 0;
}
.apa-subtitle[data-v-c88689f9] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #9CA5BE; margin: 0;
}
.apa-close[data-v-c88689f9] {
  width: 28px; height: 28px; border-radius: 6px;
  border: none; background: none;
  display: flex; align-items: center; justify-content: center;
  color: #9CA5BE; cursor: pointer; flex-shrink: 0; margin-top: 2px;
  transition: background 0.12s, color 0.12s;
}
.apa-close[data-v-c88689f9]:hover:not(:disabled) { background: #F3F4F8; color: #47506A;
}
.apa-close[data-v-c88689f9]:disabled { opacity: 0.4; cursor: not-allowed;
}
.apa-divider[data-v-c88689f9] { height: 1px; background: #E5E7EF; flex-shrink: 0;
}

/* Body — scrollable */
.apa-body[data-v-c88689f9] {
  flex: 1;
  overflow-y: auto;
  padding: 8px 0;
  display: flex;
  flex-direction: column;
}

/* App list */
.apa-list[data-v-c88689f9] { display: flex; flex-direction: column;
}
.apa-row[data-v-c88689f9] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 24px;
  transition: background 0.1s;
}
.apa-row[data-v-c88689f9]:hover { background: #FAFBFF;
}
.apa-row--loading[data-v-c88689f9] { background: #F8F9FF;
}
.apa-app-icon[data-v-c88689f9] {
  width: 34px; height: 34px; border-radius: 8px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.apa-app-initials[data-v-c88689f9] {
  font: 700 11px/1 'Poppins', sans-serif;
  color: #fff; letter-spacing: 0.3px; user-select: none;
}
.apa-app-text[data-v-c88689f9] {
  flex: 1;
  min-width: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.apa-app-name[data-v-c88689f9] {
  font: 500 14px/20px 'Poppins', sans-serif;
  color: #020631; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.apa-app-cat[data-v-c88689f9] {
  font: 400 12px/17px 'Poppins', sans-serif;
  color: #9CA5BE;
}
.apa-btn-add[data-v-c88689f9] {
  flex-shrink: 0;
  height: 32px; padding: 0 14px; border-radius: 6px;
  border: 1px solid #C7CDED; background: #fff;
  font: 600 13px/20px 'Poppins', sans-serif; color: #4353FF;
  cursor: pointer;
  display: flex; align-items: center; gap: 5px;
  transition: background 0.12s, border-color 0.12s, opacity 0.12s;
  white-space: nowrap;
}
.apa-btn-add[data-v-c88689f9]:hover:not(:disabled) { background: #EEF0FF; border-color: #4353FF;
}
.apa-btn-add[data-v-c88689f9]:disabled { opacity: 0.5; cursor: not-allowed;
}
.apa-btn-add[data-v-c88689f9]:disabled:not(.apa-row--loading *) { color: #9CA5BE; border-color: #E5E7EF;
}

/* Spinner */
.apa-spinner[data-v-c88689f9] {
  width: 13px; height: 13px; flex-shrink: 0;
  animation: apa-spin-c88689f9 0.8s linear infinite;
}
@keyframes apa-spin-c88689f9 {
to { transform: rotate(360deg)
}
}

/* Empty */
.apa-empty[data-v-c88689f9] {
  display: flex; flex-direction: column; align-items: center;
  gap: 12px; padding: 32px 24px;
}
.apa-empty-text[data-v-c88689f9] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: #9CA5BE; margin: 0; text-align: center;
}

/* Error */
.apa-error[data-v-c88689f9] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #D60000;
  background: #FEF2F2;
  border: 1px solid #FECDD3;
  border-radius: 8px;
  padding: 10px 12px;
  margin: 4px 24px 8px;
}

/* Footer */
.apa-footer[data-v-c88689f9] {
  flex-shrink: 0;
  padding: 12px 24px 16px;
  border-top: 1px solid #E5E7EF;
  display: flex;
  justify-content: flex-end;
}
.apa-btn-done[data-v-c88689f9] {
  height: 40px; padding: 0 24px; border-radius: 8px;
  border: 1px solid #E5E7EF; background: #fff;
  font: 500 14px/20px 'Poppins', sans-serif; color: #47506A;
  cursor: pointer; transition: background 0.12s;
}
.apa-btn-done[data-v-c88689f9]:hover:not(:disabled) { background: #F5F6FA;
}
.apa-btn-done[data-v-c88689f9]:disabled { opacity: 0.5; cursor: not-allowed;
}

.apps-tab[data-v-a0a0c513] { display: flex; flex-direction: column; gap: 16px;
}
.section-card[data-v-a0a0c513] { background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
}
.section-header[data-v-a0a0c513] {
  display: flex; justify-content: space-between; align-items: center;
  height: 56px; padding: 0 20px;
}
.section-title[data-v-a0a0c513] { font: 600 14px/21px 'Poppins', sans-serif; color: #020631;
}
.header-actions[data-v-a0a0c513] { display: flex; align-items: center; gap: 8px;
}
.view-toggle[data-v-a0a0c513] {
  display: flex; align-items: center; gap: 2px;
  background: #F0F1F7; border-radius: 6px; padding: 3px;
}
.toggle-btn[data-v-a0a0c513] {
  width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
  border: none; border-radius: 4px; cursor: pointer; background: transparent;
  color: #9CA5BE; transition: background 0.12s, color 0.12s;
}
.toggle-btn--active[data-v-a0a0c513] { background: #eceeff; color: #4353FF;
}
.toggle-btn[data-v-a0a0c513]:hover:not(.toggle-btn--active) { background: #E5E7EF; color: #47506A;
}
.section-divider[data-v-a0a0c513] { height: 1px; background: #E5E7EF;
}

/* Empty state */
.empty-state[data-v-a0a0c513] {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 40px 20px; gap: 12px;
}
.empty-icon[data-v-a0a0c513]  { width: 48px; height: 48px;
}
.empty-text[data-v-a0a0c513]  { font: 400 14px/20px 'Poppins', sans-serif; color: #9CA5BE; text-align: center; margin: 0;
}
.btn-settings-link[data-v-a0a0c513] {
  height: 34px; padding: 0 16px; border-radius: 6px;
  border: 1px solid #D1D5E8; background: #fff; color: #4353FF;
  font: 500 13px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-settings-link[data-v-a0a0c513]:hover { background: #F3F4FF;
}

/* Table view */
.col-header-row[data-v-a0a0c513] { display: flex; align-items: center; height: 40px; padding: 0 20px; gap: 16px;
}
.col-header-text[data-v-a0a0c513] { font: 400 11px/15px 'Poppins', sans-serif; color: #47506A; text-transform: uppercase; letter-spacing: 0.5px;
}
.table-row[data-v-a0a0c513] { display: flex; align-items: center; min-height: 64px; padding: 12px 20px; gap: 16px;
}
.table-row--clickable[data-v-a0a0c513] { cursor: pointer;
}
.table-row--clickable[data-v-a0a0c513]:hover { background: #F9F9FC;
}
.table-row--launchable:hover .app-name[data-v-a0a0c513] { color: #4353FF;
}
.table-row--clickable[data-v-a0a0c513]:focus-visible { outline: 2px solid #4353FF; outline-offset: -2px;
}
.table-row--not-entitled[data-v-a0a0c513] { cursor: default; opacity: 0.7;
}
.table-row--not-entitled[data-v-a0a0c513]:hover { background: transparent;
}
.app-identity[data-v-a0a0c513] { display: flex; align-items: center; gap: 10px;
}
.app-text[data-v-a0a0c513] { display: flex; flex-direction: column; gap: 2px;
}
.app-name[data-v-a0a0c513] { font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
}
.app-name--dimmed[data-v-a0a0c513] { color: #9CA5BE;
}
.app-not-entitled-label[data-v-a0a0c513] { font: 400 11px/15px 'Poppins', sans-serif; color: #F59E0B;
}
.app-lifecycle-reason[data-v-a0a0c513] { font: 400 11px/15px 'Poppins', sans-serif; color: #A31515;
}
.cell-text[data-v-a0a0c513] { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A;
}
.pill-app-active[data-v-a0a0c513] {
  display: inline-flex; align-items: center; height: 22px; padding: 0 13px;
  border-radius: 11px; background: #ECFDF5; color: #059669;
  font: 400 12px/17px 'Poppins', sans-serif;
}
.pill-app-not-entitled[data-v-a0a0c513] {
  display: inline-flex; align-items: center; height: 22px; padding: 0 13px;
  border-radius: 11px; background: #FEF3C7; color: #92400E;
  font: 400 12px/17px 'Poppins', sans-serif;
}

/* Card grid — Premium Tile is a fixed 191px card, so fit as many per row as space allows */
.card-grid[data-v-a0a0c513] { display: flex; flex-wrap: wrap; gap: 14px; padding: 0 20px 16px;
}
.group-heading[data-v-a0a0c513] {
  font: 600 12px/18px 'Poppins', sans-serif; color: #47506A;
  text-transform: uppercase; letter-spacing: 0.4px;
  margin: 16px 20px 8px;
}

/* Buttons */
.btn-primary-sm[data-v-a0a0c513] {
  height: 36px; padding: 0 20px; border-radius: 6px;
  background: #4353FF; border: none; color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif; cursor: pointer;
}
.btn-primary-sm[data-v-a0a0c513]:hover { opacity: 0.9;
}

/* Transient warning strip */
.apm-toast[data-v-f0a6652c] {
  margin: 14px 20px 0;
  padding: 10px 14px;
  border-radius: 8px;
  background: #FFF7E8;
  border: 1px solid #F0C77A;
  color: #6B4B00;
  font: 400 12px/18px 'Poppins', sans-serif;
}
.apm-toast-enter-active[data-v-f0a6652c], .apm-toast-leave-active[data-v-f0a6652c] { transition: opacity 0.18s ease, transform 0.18s ease;
}
.apm-toast-enter-from[data-v-f0a6652c], .apm-toast-leave-to[data-v-f0a6652c] { opacity: 0; transform: translateY(-4px);
}

/* Overlay */
.apm-overlay[data-v-f0a6652c] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.38);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  animation: apm-fade-f0a6652c 0.15s ease;
}
@keyframes apm-fade-f0a6652c {
from { opacity: 0
}
to { opacity: 1
}
}

/* Card */
.apm-card[data-v-f0a6652c] {
  background: #fff;
  border-radius: 14px;
  width: 480px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 64px);
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.16), 0 4px 16px rgba(2, 6, 49, 0.08);
  display: flex;
  flex-direction: column;
  animation: apm-up-f0a6652c 0.18s ease;
  overflow: hidden;
}
@keyframes apm-up-f0a6652c {
from { opacity: 0; transform: translateY(10px)
}
to   { opacity: 1; transform: translateY(0)
}
}

/* Header */
.apm-header[data-v-f0a6652c] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 24px 16px;
}
.apm-header-text[data-v-f0a6652c] { display: flex; flex-direction: column; gap: 3px;
}
.apm-title[data-v-f0a6652c] {
  font: 600 16px/24px 'Poppins', sans-serif;
  color: #020631;
  margin: 0;
}
.apm-subtitle[data-v-f0a6652c] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #9CA5BE;
  margin: 0;
}
.apm-close[data-v-f0a6652c] {
  width: 28px; height: 28px; border-radius: 6px;
  border: none; background: none;
  display: flex; align-items: center; justify-content: center;
  color: #9CA5BE; cursor: pointer; flex-shrink: 0; margin-top: 2px;
  transition: background 0.12s, color 0.12s;
}
.apm-close[data-v-f0a6652c]:hover:not(:disabled) { background: #F3F4F8; color: #47506A;
}
.apm-close[data-v-f0a6652c]:disabled { opacity: 0.4; cursor: not-allowed;
}
.apm-divider[data-v-f0a6652c] { height: 1px; background: #E5E7EF;
}

/* Body */
.apm-body[data-v-f0a6652c] {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow-y: auto;
  flex: 1;
}
.apm-field[data-v-f0a6652c] { display: flex; flex-direction: column; gap: 6px;
}
.apm-label[data-v-f0a6652c] {
  font: 500 13px/18px 'Poppins', sans-serif;
  color: #020631;
}
.apm-select-wrap[data-v-f0a6652c] { position: relative;
}
.apm-select[data-v-f0a6652c] {
  width: 100%;
  height: 42px;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  padding: 0 36px 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: #020631;
  background: #fff;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.12s;
}
.apm-select[data-v-f0a6652c]:focus { outline: none; border-color: #4353FF;
}
.apm-select-chevron[data-v-f0a6652c] {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  pointer-events: none;
}
.apm-role-hint[data-v-f0a6652c] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: #9CA5BE;
  margin: 0;
}

/* App Access section label */
.apm-section-label[data-v-f0a6652c] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: #020631;
  margin: 0 0 2px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  display: flex; align-items: center; gap: 8px;
}
/* Toggle matrix */
.apm-matrix[data-v-f0a6652c] { display: flex; flex-direction: column; gap: 2px;
}
.apm-matrix-row[data-v-f0a6652c] {
  display: flex; flex-direction: column; gap: 8px;
  padding: 10px 0; border-bottom: 1px solid #F3F4F8;
}
.apm-matrix-row[data-v-f0a6652c]:last-child { border-bottom: none;
}
.apm-matrix-app[data-v-f0a6652c] { display: flex; align-items: center; gap: 8px;
}
.apm-matrix-app-init[data-v-f0a6652c] {
  width: 26px; height: 26px; border-radius: 6px;
  background: #ECEEFF; color: #4353FF;
  font: 600 10px/26px 'Poppins', sans-serif;
  text-align: center; flex-shrink: 0;
}
.apm-matrix-app-name[data-v-f0a6652c] {
  font: 600 12px/16px 'Poppins', sans-serif; color: #020631;
}
.apm-matrix-roles[data-v-f0a6652c] { display: flex; flex-wrap: wrap; gap: 6px; padding-left: 34px;
}
.apm-matrix-btn[data-v-f0a6652c] {
  height: 28px; padding: 0 12px; border-radius: 6px;
  border: 1px solid #E5E7EF; background: #fff; color: #47506A;
  font: 500 12px/16px 'Poppins', sans-serif;
  cursor: pointer; transition: all 0.12s; white-space: nowrap;
}
.apm-matrix-btn[data-v-f0a6652c]:not(.apm-matrix-btn--on):hover { border-color: #4353FF; color: #4353FF;
}
.apm-matrix-btn--on[data-v-f0a6652c] { background: #4353FF; color: #fff; border-color: #4353FF;
}

/* Empty */
.apm-empty[data-v-f0a6652c] {
  display: flex; flex-direction: column; align-items: center;
  gap: 10px; padding: 12px 0;
}
.apm-empty-text[data-v-f0a6652c] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: #9CA5BE; margin: 0;
}

/* Error */
.apm-error[data-v-f0a6652c] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #D60000;
  background: #FEF2F2;
  border: 1px solid #FECDD3;
  border-radius: 8px;
  padding: 10px 12px;
}

/* Footer */
.apm-footer[data-v-f0a6652c] {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px 20px;
  border-top: 1px solid #E5E7EF;
  flex-shrink: 0;
}
.apm-btn-cancel[data-v-f0a6652c] {
  height: 40px; padding: 0 18px; border-radius: 8px;
  border: 1px solid #E5E7EF; background: #fff;
  font: 500 14px/20px 'Poppins', sans-serif; color: #47506A;
  cursor: pointer; transition: background 0.12s;
}
.apm-btn-cancel[data-v-f0a6652c]:hover:not(:disabled) { background: #F5F6FA;
}
.apm-btn-cancel[data-v-f0a6652c]:disabled { opacity: 0.5; cursor: not-allowed;
}
.apm-btn-add[data-v-f0a6652c] {
  height: 40px; padding: 0 22px; border-radius: 8px;
  border: none; background: #4353FF;
  font: 600 14px/20px 'Poppins', sans-serif; color: #fff;
  cursor: pointer;
  display: flex; align-items: center; gap: 7px;
  transition: opacity 0.12s;
}
.apm-btn-add[data-v-f0a6652c]:hover:not(:disabled) { opacity: 0.88;
}
.apm-btn-add[data-v-f0a6652c]:disabled,
.apm-btn-add.is-blocked[data-v-f0a6652c] { opacity: 0.5; cursor: not-allowed;
}
.apm-btn-add.is-blocked[data-v-f0a6652c]:hover { opacity: 0.5;
}

/* Spinner */
.apm-spinner[data-v-f0a6652c] {
  width: 15px; height: 15px; flex-shrink: 0;
  animation: apm-spin-f0a6652c 0.8s linear infinite;
}
@keyframes apm-spin-f0a6652c {
to { transform: rotate(360deg)
}
}

/* ── Seat limit ─────────────────────────────────────────────────────────── */
.apm-seat[data-v-f0a6652c] {
  display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap;
  margin: 14px 20px 0; padding: 13px 15px; border-radius: 10px; border: 1px solid;
}
.apm-seat--blocked[data-v-f0a6652c] { background: #FDECEC; border-color: #F3B4B4;
}
.apm-seat--room[data-v-f0a6652c]    { background: #FEF6E7; border-color: #F6D08A;
}
/* min-width:0 so a long owner address wraps inside the notice rather than pushing the button out
   of it — the flex-item default that let a lifecycle badge break out of its tile. */
.apm-seat-text[data-v-f0a6652c] { margin: 0; flex: 1 1 260px; min-width: 0; font: 400 13px/1.55 'Poppins', sans-serif;
}
.apm-seat--blocked .apm-seat-text[data-v-f0a6652c] { color: #7A1010;
}
.apm-seat--room    .apm-seat-text[data-v-f0a6652c] { color: #6E4700;
}
.apm-seat-text b[data-v-f0a6652c] { font-weight: 600;
}
.apm-seat-actions[data-v-f0a6652c] { flex: 0 0 auto;
}
.apm-seat-btn[data-v-f0a6652c] {
  font: 500 13px/1 'Poppins', sans-serif; padding: 9px 15px; border-radius: 8px;
  border: 1px solid #D9DCE6; background: #fff; color: #47506A; cursor: pointer;
}
.apm-seat-btn--primary[data-v-f0a6652c] { background: #4353FF; border-color: #4353FF; color: #fff;
}
.apm-seat-btn[data-v-f0a6652c]:disabled { opacity: .65; cursor: default;
}

.eaa-overlay[data-v-938a84aa] {
  position: fixed; inset: 0;
  background: rgba(2, 6, 49, 0.38);
  display: flex; align-items: center; justify-content: center;
  z-index: 1100;
  animation: eaa-fade-938a84aa 0.15s ease;
}
@keyframes eaa-fade-938a84aa {
from { opacity: 0
}
to { opacity: 1
}
}
.eaa-card[data-v-938a84aa] {
  background: #fff; border-radius: 14px;
  width: 500px; max-width: calc(100vw - 32px);
  max-height: calc(100vh - 64px);
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.16), 0 4px 16px rgba(2, 6, 49, 0.08);
  display: flex; flex-direction: column;
  animation: eaa-up-938a84aa 0.18s ease; overflow: hidden;
}
@keyframes eaa-up-938a84aa {
from { opacity: 0; transform: translateY(10px)
}
to   { opacity: 1; transform: translateY(0)
}
}
.eaa-header[data-v-938a84aa] {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; padding: 20px 24px 16px;
}
.eaa-header-text[data-v-938a84aa] { display: flex; flex-direction: column; gap: 3px;
}
.eaa-title[data-v-938a84aa] { font: 600 16px/24px 'Poppins', sans-serif; color: #020631; margin: 0;
}
.eaa-subtitle[data-v-938a84aa] { font: 400 13px/18px 'Poppins', sans-serif; color: #9CA5BE; margin: 0;
}
.eaa-close[data-v-938a84aa] {
  width: 28px; height: 28px; border-radius: 6px;
  border: none; background: none;
  display: flex; align-items: center; justify-content: center;
  color: #9CA5BE; cursor: pointer; flex-shrink: 0; margin-top: 2px;
  transition: background 0.12s, color 0.12s;
}
.eaa-close[data-v-938a84aa]:hover:not(:disabled) { background: #F3F4F8; color: #47506A;
}
.eaa-close[data-v-938a84aa]:disabled { opacity: 0.4; cursor: not-allowed;
}
.eaa-divider[data-v-938a84aa] { height: 1px; background: #E5E7EF;
}
.eaa-body[data-v-938a84aa] {
  padding: 20px 24px; display: flex; flex-direction: column;
  gap: 12px; overflow-y: auto; flex: 1;
}
.eaa-field[data-v-938a84aa] { display: flex; flex-direction: column; gap: 6px;
}
.eaa-label[data-v-938a84aa] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: #020631; text-transform: uppercase; letter-spacing: 0.4px;
}
.eaa-section-label[data-v-938a84aa] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: #020631; margin: 0;
  text-transform: uppercase; letter-spacing: 0.4px;
}
.eaa-section-opt[data-v-938a84aa] { color: #9CA5BE; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 11px;
}

/* Member display (read-only) */
.eaa-member-display[data-v-938a84aa] {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border: 1px solid #E5E7EF;
  border-radius: 8px; background: #FAFAFB;
}
.eaa-member-avatar[data-v-938a84aa] {
  width: 32px; height: 32px; border-radius: 50%;
  background: #ECEEFF; color: #4353FF;
  font: 600 13px/32px 'Poppins', sans-serif;
  text-align: center; flex-shrink: 0;
}
.eaa-member-info[data-v-938a84aa] { display: flex; flex-direction: column; gap: 1px;
}
.eaa-member-name[data-v-938a84aa] { font: 500 14px/18px 'Poppins', sans-serif; color: #020631;
}
.eaa-member-email[data-v-938a84aa] { font: 400 12px/16px 'Poppins', sans-serif; color: #9CA5BE;
}

/* Role select */
.eaa-select-wrap[data-v-938a84aa] {
  position: relative; display: flex; align-items: center;
}
.eaa-select[data-v-938a84aa] {
  width: 100%; height: 42px;
  border: 1px solid #E5E7EF; border-radius: 8px;
  padding: 0 36px 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
  background: #fff; cursor: pointer; appearance: none;
  box-sizing: border-box; outline: none;
  transition: border-color 0.12s;
}
.eaa-select[data-v-938a84aa]:focus { border-color: #4353FF;
}
.eaa-select-chevron[data-v-938a84aa] {
  position: absolute; right: 12px; pointer-events: none;
}

/* Toggle matrix */
.eaa-matrix[data-v-938a84aa] { display: flex; flex-direction: column; gap: 2px;
}
.eaa-matrix-empty[data-v-938a84aa] { font: 400 13px/18px 'Poppins', sans-serif; color: #9CA5BE; margin: 0;
}
.eaa-matrix-row[data-v-938a84aa] {
  display: flex; flex-direction: column; gap: 8px;
  padding: 10px 0; border-bottom: 1px solid #F3F4F8;
}
.eaa-matrix-row[data-v-938a84aa]:last-child { border-bottom: none;
}
.eaa-matrix-app[data-v-938a84aa] { display: flex; align-items: center; gap: 8px;
}
.eaa-matrix-app-init[data-v-938a84aa] {
  width: 26px; height: 26px; border-radius: 6px;
  background: #ECEEFF; color: #4353FF;
  font: 600 10px/26px 'Poppins', sans-serif;
  text-align: center; flex-shrink: 0;
}
.eaa-matrix-app-name[data-v-938a84aa] {
  font: 600 12px/16px 'Poppins', sans-serif; color: #020631;
}
.eaa-matrix-roles[data-v-938a84aa] { display: flex; flex-wrap: wrap; gap: 6px; padding-left: 34px;
}
.eaa-matrix-btn[data-v-938a84aa] {
  height: 28px; padding: 0 12px; border-radius: 6px;
  border: 1px solid #E5E7EF; background: #fff; color: #47506A;
  font: 500 12px/16px 'Poppins', sans-serif;
  cursor: pointer; transition: all 0.12s; white-space: nowrap;
}
.eaa-matrix-btn[data-v-938a84aa]:not(.eaa-matrix-btn--on):hover { border-color: #4353FF; color: #4353FF;
}
.eaa-matrix-btn--on[data-v-938a84aa] { background: #4353FF; color: #fff; border-color: #4353FF;
}
.eaa-matrix-btn--readonly[data-v-938a84aa] { cursor: default;
}
.eaa-matrix-btn--readonly[data-v-938a84aa]:not(.eaa-matrix-btn--on):hover { border-color: #E5E7EF; color: #47506A;
}
.eaa-role-readonly[data-v-938a84aa] {
  height: 42px; padding: 0 12px;
  border: 1px solid #E5E7EF; border-radius: 8px;
  background: #FAFAFB; color: #020631;
  font: 400 14px/42px 'Poppins', sans-serif;
}
.eaa-error[data-v-938a84aa] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #D60000; background: #FEF2F2;
  border: 1px solid #FECDD3; border-radius: 8px;
  padding: 10px 12px; margin-top: 8px;
}
.eaa-footer[data-v-938a84aa] {
  display: flex; justify-content: flex-end; gap: 10px;
  padding: 16px 24px 20px; border-top: 1px solid #E5E7EF;
}
.eaa-btn-cancel[data-v-938a84aa] {
  height: 38px; padding: 0 18px; border-radius: 8px;
  border: 1px solid #E5E7EF; background: #fff;
  font: 500 14px/20px 'Poppins', sans-serif; color: #47506A;
  cursor: pointer; transition: background 0.12s;
}
.eaa-btn-cancel[data-v-938a84aa]:hover:not(:disabled) { background: #F5F6FA;
}
.eaa-btn-cancel[data-v-938a84aa]:disabled { opacity: 0.5; cursor: not-allowed;
}
.eaa-btn-save[data-v-938a84aa] {
  height: 38px; padding: 0 20px; border-radius: 8px;
  border: none; background: #4353FF; color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif;
  cursor: pointer; display: flex; align-items: center; gap: 8px;
  transition: opacity 0.12s;
}
.eaa-btn-save[data-v-938a84aa]:hover:not(:disabled) { opacity: 0.9;
}
.eaa-btn-save[data-v-938a84aa]:disabled { opacity: 0.45; cursor: not-allowed;
}
.eaa-spinner[data-v-938a84aa] {
  width: 16px; height: 16px;
  animation: eaa-spin-938a84aa 0.8s linear infinite;
}
@keyframes eaa-spin-938a84aa {
to { transform: rotate(360deg)
}
}

.members-tab[data-v-6bdd142c] { display: flex; flex-direction: column; gap: 16px;
}
.section-card[data-v-6bdd142c] { background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
}
.section-header[data-v-6bdd142c] {
  display: flex; justify-content: space-between; align-items: center;
  min-height: 56px; padding: 12px 20px; gap: 12px;
}
.header-left[data-v-6bdd142c] { display: flex; flex-direction: column; gap: 2px;
}
.section-title[data-v-6bdd142c] { font: 600 14px/21px 'Poppins', sans-serif; color: #020631;
}
.member-count[data-v-6bdd142c] { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A;
}
.members-meta[data-v-6bdd142c] { display: flex; align-items: center; gap: 6px;
}
.roles-info-btn[data-v-6bdd142c] {
  display: inline-flex; align-items: center; gap: 3px;
  background: none; border: 1px solid #D1D5E8; border-radius: 4px;
  padding: 1px 7px; font: 400 11px/16px 'Poppins', sans-serif;
  color: #4353FF; cursor: pointer; white-space: nowrap;
  transition: background 0.12s, border-color 0.12s;
}
.roles-info-btn[data-v-6bdd142c]:hover { background: #ECEEFF; border-color: #4353FF;
}
.header-right[data-v-6bdd142c] { display: flex; align-items: center; gap: 10px;
}
.member-search-input[data-v-6bdd142c] {
  height: 32px; width: 200px; padding: 0 10px;
  border: 1px solid #E5E7EF; border-radius: 6px;
  font: 400 13px/18px 'Poppins', sans-serif; color: #020631;
  outline: none; background: #fff;
}
.member-search-input[data-v-6bdd142c]:focus { border-color: #4353FF;
}
.section-divider[data-v-6bdd142c] { height: 1px; background: #E5E7EF;
}

/* Empty state */
.empty-state[data-v-6bdd142c] {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 40px 20px; gap: 12px;
}
.empty-icon[data-v-6bdd142c] { width: 48px; height: 48px;
}
.empty-text[data-v-6bdd142c] { font: 400 14px/20px 'Poppins', sans-serif; color: #9CA5BE; text-align: center; margin: 0;
}

/* Table — mirrors WorkspaceMembersView's data-table so both member lists match */
.table-scroll[data-v-6bdd142c] { overflow-x: auto; overflow-y: auto; max-height: 60vh;
}
.data-table[data-v-6bdd142c] { width: 100%; min-width: 794px; border-collapse: collapse; font-size: 14px;
}
.data-table th[data-v-6bdd142c] {
  text-align: left; font: 600 11px/16px 'Poppins', sans-serif; color: #9CA5BE;
  text-transform: uppercase; letter-spacing: 0.4px; padding: 10px 20px;
  border-bottom: 1px solid #E5E7EF;
}
.col-member[data-v-6bdd142c] { width: 240px;
}
.col-role[data-v-6bdd142c]   { width: 140px;
}
.col-apps[data-v-6bdd142c]   { width: 200px;
}
.col-last[data-v-6bdd142c]   { width: 130px;
}
.col-actions[data-v-6bdd142c]{ width: 64px;
}
.member-row td.col-actions[data-v-6bdd142c] { padding: 12px 8px;
}
.member-row td[data-v-6bdd142c] { padding: 12px 20px; border-bottom: 1px solid #F0F1F7; vertical-align: middle; color: #020631;
}
.member-row:last-child td[data-v-6bdd142c] { border-bottom: none;
}
.member-row:hover td[data-v-6bdd142c] { background: #F9F9FC;
}
.member-row--clickable[data-v-6bdd142c] { cursor: pointer;
}
.member-cell[data-v-6bdd142c] { display: flex; align-items: center; gap: 10px;
}
.member-info[data-v-6bdd142c] { display: flex; flex-direction: column; gap: 2px;
}
.member-name[data-v-6bdd142c] { font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
}
.member-email[data-v-6bdd142c] { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A;
}
.text-muted[data-v-6bdd142c] { font: 400 14px/20px 'Poppins', sans-serif; color: #9CA5BE;
}
.role-pill[data-v-6bdd142c] {
  display: inline-flex; align-items: center; height: 22px; padding: 0 10px;
  border-radius: 11px; border: 1px solid #E5E7EF;
  color: #47506A; font: 400 12px/17px 'Poppins', sans-serif;
  white-space: nowrap;
}
.kebab-wrap[data-v-6bdd142c] { position: relative;
}
.kebab-btn[data-v-6bdd142c] {
  width: 24px; height: 24px; border: none; background: none;
  cursor: pointer; color: #9CA5BE; font-size: 16px; display: flex; align-items: center; justify-content: center;
  border-radius: 6px;
}
.kebab-btn[data-v-6bdd142c]:hover { background: #F3F4F8; color: #47506A;
}
.member-menu[data-v-6bdd142c] {
  position: fixed; z-index: 1000;
  background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.12);
  min-width: 160px; padding: 6px; display: flex; flex-direction: column; gap: 2px;
}
.member-menu-item[data-v-6bdd142c] {
  text-align: left; border: none; background: none; cursor: pointer;
  padding: 8px 10px; border-radius: 6px;
  font: 400 13px/18px 'Poppins', sans-serif; color: #020631;
}
.member-menu-item[data-v-6bdd142c]:hover { background: #F5F6FA;
}
.member-menu-item--danger[data-v-6bdd142c] { color: #D60000;
}
.member-menu-item--danger[data-v-6bdd142c]:hover { background: #FEF2F2;
}
.remove-confirm-error[data-v-6bdd142c] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #D60000;
  background: #FEF2F2;
  border: 1px solid #FECDD3;
  border-radius: 8px;
  padding: 10px 12px;
  margin: 0;
  text-align: left;
}
.btn-primary-sm[data-v-6bdd142c] {
  height: 36px; padding: 0 20px; border-radius: 6px;
  background: #4353FF; border: none; color: #fff;
  font: 600 14px/20px 'Poppins', sans-serif; cursor: pointer; white-space: nowrap;
}
.btn-primary-sm[data-v-6bdd142c]:hover { opacity: 0.9;
}

/* App Access inline column */
.app-access-cell[data-v-6bdd142c] { display: flex; flex-wrap: wrap; gap: 4px; align-items: center;
}
.app-role-tag[data-v-6bdd142c] {
  display: inline-flex; align-items: center;
  height: 20px; padding: 0 8px;
  border-radius: 10px; border: 1px solid #C7D0FF;
  background: #ECEEFF;
  color: #4353FF; font: 500 11px/16px 'Poppins', sans-serif;
  white-space: nowrap; cursor: default;
}
.app-role-more[data-v-6bdd142c] {
  display: inline-flex; align-items: center;
  height: 20px; padding: 0 7px;
  border-radius: 10px; border: 1px solid #E5E7EF;
  background: #F5F6FA;
  color: #47506A; font: 500 11px/16px 'Poppins', sans-serif;
  cursor: default;
}


.bar-track[data-v-39ea08c0] {
  background: #F0F1F7;
  border-radius: 4px;
  overflow: hidden;
  flex-shrink: 0;
}
.bar-fill[data-v-39ea08c0] {
  background: #4353FF;
  border-radius: 4px;
}

.storage-tab[data-v-b01c796c] { display: flex; flex-direction: column; gap: 16px;
}
.empty-card[data-v-b01c796c] {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 48px 20px; gap: 10px;
  background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
}
.empty-icon[data-v-b01c796c] { width: 48px; height: 48px;
}
.empty-text[data-v-b01c796c] { font: 600 14px/21px 'Poppins', sans-serif; color: #47506A; margin: 0;
}
.empty-sub[data-v-b01c796c]  { font: 400 13px/18px 'Poppins', sans-serif; color: #9CA5BE; margin: 0; text-align: center;
}
.stat-row[data-v-b01c796c] { display: flex; gap: 16px; flex-wrap: wrap;
}
.stat-card[data-v-b01c796c] {
  flex: 1; min-width: 160px;
  background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
  padding: 16px; display: flex; flex-direction: column; gap: 4px;
}
.stat-label[data-v-b01c796c] { font: 400 11px/15px 'Poppins', sans-serif; color: #47506A; text-transform: uppercase; letter-spacing: 0.5px;
}
.stat-value[data-v-b01c796c] { font: 700 22px/28px 'Poppins', sans-serif; color: #020631;
}
.stat-sub[data-v-b01c796c]   { font: 400 12px/17px 'Poppins', sans-serif; color: #9CA5BE;
}
.section-card[data-v-b01c796c] { background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
}
.section-header[data-v-b01c796c] {
  display: flex; justify-content: space-between; align-items: center;
  height: 56px; padding: 0 20px;
}
.section-title[data-v-b01c796c] { font: 600 14px/21px 'Poppins', sans-serif; color: #020631;
}
.section-meta[data-v-b01c796c]  { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A;
}
.section-divider[data-v-b01c796c] { height: 1px; background: #E5E7EF;
}
.breakdown-row[data-v-b01c796c] {
  display: flex; align-items: center; gap: 16px;
  min-height: 48px; padding: 0 20px;
}
.breakdown-label[data-v-b01c796c] { font: 400 14px/20px 'Poppins', sans-serif; color: #020631; flex: 1;
}
.breakdown-size[data-v-b01c796c]  { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A; width: 70px; text-align: right;
}
.pool-body[data-v-b01c796c] { padding: 16px 20px; display: flex; flex-direction: column; gap: 10px;
}
.pool-used[data-v-b01c796c] { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A; margin: 0;
}

.activity-tab[data-v-f5f039a0] { display: flex; flex-direction: column; gap: 16px;
}
.section-card[data-v-f5f039a0] { background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
}
.section-header[data-v-f5f039a0] {
  display: flex; justify-content: space-between; align-items: center;
  height: 56px; padding: 0 20px; flex-wrap: wrap; gap: 8px;
}
.section-title[data-v-f5f039a0] { font: 600 14px/21px 'Poppins', sans-serif; color: #020631;
}
.section-meta[data-v-f5f039a0]  { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A;
}
.section-divider[data-v-f5f039a0] { height: 1px; background: #E5E7EF;
}
.empty-state[data-v-f5f039a0] {
  padding: 24px;
  text-align: center;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #47506A;
}
.event-row[data-v-f5f039a0] {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 16px 20px; min-height: 64px;
}
.event-dot[data-v-f5f039a0] {
  width: 8px; height: 8px; border-radius: 50%;
  background: #4353FF; flex-shrink: 0; margin-top: 6px;
}
.event-body[data-v-f5f039a0] { display: flex; flex-direction: column; gap: 4px; flex: 1;
}
.event-title[data-v-f5f039a0] { font: 400 14px/20px 'Poppins', sans-serif; color: #020631; margin: 0;
}
.event-meta[data-v-f5f039a0]  { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A; margin: 0;
}
.event-code[data-v-f5f039a0] {
  font-size: 11px;
  font-family: 'Menlo', 'Consolas', monospace;
  color: #47506A;
  background: #F9F9FC;
  padding: 1px 5px;
  border-radius: 4px;
}

.otp-wrapper[data-v-6d22a799] { display: flex; gap: 10px;
}
.otp-box[data-v-6d22a799] {
  width: 54px;
  height: 54px;
  border: 1.5px solid var(--color-border-card);
  border-radius: var(--radius-md);
  background: white;
  text-align: center;
  font-family: var(--font-family-body);
  font-size: var(--font-size-20);
  font-weight: 600;
  color: var(--color-primary-dark);
  outline: none;
  transition: border-color 0.15s ease;
  caret-color: var(--color-primary);
}
.otp-box[data-v-6d22a799]:focus  { border-color: var(--color-primary);
}
.otp-box.filled[data-v-6d22a799] { border-color: var(--color-primary);
}
.otp-box.error[data-v-6d22a799]  { border-color: var(--color-error);
}
.otp-box[data-v-6d22a799]:disabled { background: var(--color-surface-page); cursor: not-allowed;
}

.confirm-panel[data-v-63f9f931] {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #F3C7BE;
  border-radius: var(--radius-md, 8px);
  background: var(--color-semantic-bg-red, #FFECEB);
}

/*
 * Design-system tokens only, and the sizes the settings pages already use:
 *   - label / description: the type of the "Archive project" row it sits beside (14px/600 dark,
 *     12px regular label-grey), so the two rows of one danger zone read as a pair;
 *   - select: the 40px, 8px-radius field `.ws-input` defines;
 *   - buttons: the 34px, 8px-radius height of `.ws-btn-*`;
 *   - the code: <OtpInput>, the six-box entry customers already use at sign-up;
 *   - "Send a new code": the text-action link from the verify-email screen, blue, not red —
 *     it is a harmless action and should not look like the destructive one.
 */
.xfer[data-v-7e556101] { display: flex; flex-direction: column; gap: 12px; font-family: var(--font-family-body);
}
.xfer-title[data-v-7e556101] {
  margin: 0;
  font-size: var(--font-size-14); font-weight: 600; line-height: var(--line-height-s);
  color: var(--color-primary-dark);
}
.xfer-body[data-v-7e556101] {
  margin: -8px 0 0;
  font-size: var(--font-size-12); line-height: 17px;
  color: var(--color-text-label);
  max-width: 62ch;
}
.xfer-empty[data-v-7e556101] { margin: 0; font-size: var(--font-size-12); color: var(--color-text-placeholder);
}
.xfer-field[data-v-7e556101] { display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
}
/* Inside the panel the steps stack on the card's own 12px rhythm; the panel supplies its own top gap. */
.xfer-panel[data-v-7e556101] { margin-top: 0; display: flex; flex-direction: column; gap: 12px;
}
.xfer-label[data-v-7e556101] {
  font-size: var(--font-size-14); font-weight: 400; line-height: var(--line-height-s);
  color: var(--color-text-label);
}
.xfer-select[data-v-7e556101] {
  width: 100%; max-width: 400px; height: 40px; padding: 0 12px;
  border: 1px solid var(--color-border-default); border-radius: var(--radius-md);
  background: var(--color-surface-card);
  font-family: inherit; font-size: var(--font-size-14); color: var(--color-primary-dark);
}
.xfer-select[data-v-7e556101]:focus { outline: none; border-color: var(--color-primary);
}
.xfer-select[data-v-7e556101]:disabled { background: var(--color-surface-page); cursor: not-allowed;
}
.xfer-hint[data-v-7e556101] {
  margin: 0;
  font-size: var(--font-size-12); line-height: 17px;
  color: var(--color-text-helper);
}
.xfer-link[data-v-7e556101] {
  padding: 0; border: 0; background: none; cursor: pointer;
  font-family: inherit; font-size: var(--font-size-14); line-height: var(--line-height-s);
  color: var(--color-primary-link);
}
.xfer-link[data-v-7e556101]:not(:disabled):hover { text-decoration: underline;
}
.xfer-link[data-v-7e556101]:disabled { color: var(--color-text-helper); cursor: not-allowed;
}
.xfer-link[data-v-7e556101]:focus-visible { outline: 2px solid var(--color-primary-link); outline-offset: 2px; border-radius: 3px;
}
.xfer-btn-outline[data-v-7e556101],
.xfer-btn-danger[data-v-7e556101] {
  align-self: flex-start;
  height: 34px; padding: 0 16px; border-radius: var(--radius-md);
  font-family: inherit; font-size: var(--font-size-14); font-weight: 600; line-height: var(--line-height-s);
  cursor: pointer; white-space: nowrap;
}
.xfer-btn-outline[data-v-7e556101] {
  background: var(--color-surface-card);
  color: var(--color-semantic-element-red);
  border: 1px solid var(--color-semantic-element-red);
}
.xfer-btn-outline[data-v-7e556101]:hover:not(:disabled) { background: var(--color-semantic-bg-red);
}
.xfer-btn-danger[data-v-7e556101] {
  background: var(--color-semantic-element-red);
  color: var(--color-text-white);
  border: 1px solid var(--color-semantic-element-red);
}
.xfer-btn-outline[data-v-7e556101]:disabled,
.xfer-btn-danger[data-v-7e556101]:disabled { opacity: .45; cursor: not-allowed;
}
.xfer-error[data-v-7e556101] { margin: 0; font-size: var(--font-size-12); line-height: 17px; color: var(--color-error);
}
.xfer-done[data-v-7e556101] {
  margin: 0; padding: 10px 14px; border-radius: var(--radius-md);
  background: var(--color-semantic-bg-green);
  color: var(--color-semantic-text-green);
  font-size: 13px; font-weight: 600; line-height: 18px;
}

.dz[data-v-51bebd9b] {
  background: var(--color-surface-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-lg, 12px);
  overflow: hidden;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.dz-title[data-v-51bebd9b] {
  margin: 0;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  font-size: var(--font-size-14, 14px);
  font-weight: 600;
  line-height: var(--line-height-s, 20px);
  color: var(--color-semantic-element-red, #D60000);
}
.dz-rows[data-v-51bebd9b] { display: flex; flex-direction: column;
}
.dz-rows > *[data-v-51bebd9b-s] { padding: 16px 20px; margin: 0;
}
.dz-rows > *[data-v-51bebd9b-s]:not(:first-child) { border-top: 1px solid var(--color-border-default, #E5E7EF);
}

.settings-tab[data-v-6fdef807] { display: flex; flex-direction: column; gap: 16px;
}

/* Archived banner */
.archived-banner[data-v-6fdef807] {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 14px 16px; border-radius: 8px;
  background: #FFFBEB; border: 1px solid #FDE68A;
  color: #92400E;
}
.banner-icon[data-v-6fdef807] { width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px; fill: #D97706;
}
.banner-title[data-v-6fdef807] { font: 600 14px/21px 'Poppins', sans-serif; margin: 0 0 2px;
}
.banner-desc[data-v-6fdef807]  { font: 400 13px/19px 'Poppins', sans-serif; margin: 0;
}
.section-card[data-v-6fdef807] { background: #fff; border: 1px solid #E5E7EF; border-radius: 8px;
}
.section-divider[data-v-6fdef807] { height: 1px; background: #E5E7EF;
}
.settings-row[data-v-6fdef807] {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 16px 20px; gap: 16px; min-height: 64px;
}
.settings-field[data-v-6fdef807] { display: flex; flex-direction: column; gap: 4px; flex: 1;
}
.field-label[data-v-6fdef807] { font: 600 14px/21px 'Poppins', sans-serif; color: #020631;
}
.field-value[data-v-6fdef807] { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A;
}
.field-input[data-v-6fdef807] {
  height: 40px; border: 1px solid #E5E7EF; border-radius: 8px;
  padding: 0 12px; font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
  width: 100%; max-width: 400px; box-sizing: border-box;
}
.field-textarea[data-v-6fdef807] {
  border: 1px solid #E5E7EF; border-radius: 8px; padding: 8px 12px;
  font: 400 14px/20px 'Poppins', sans-serif; color: #020631;
  width: 100%; max-width: 400px; resize: vertical; box-sizing: border-box;
}
.row-actions[data-v-6fdef807] { display: flex; gap: 8px; align-items: center; flex-shrink: 0; padding-top: 2px;
}
.meta-pill[data-v-6fdef807] {
  display: inline-flex; align-items: center; height: 24px; padding: 0 12px;
  border-radius: 12px; border: 1px solid #E5E7EF;
  color: #47506A; font: 400 12px/17px 'Poppins', sans-serif;
}
.inline-error[data-v-6fdef807] { font: 400 12px/17px 'Poppins', sans-serif; color: #D60000; margin-top: 4px;
}

/* Danger zone */
.danger-row[data-v-6fdef807] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
}
.danger-row-label[data-v-6fdef807] { font: 600 14px/20px 'Poppins', sans-serif; color: #020631; margin: 0;
}
.danger-row-desc[data-v-6fdef807]  { font: 400 12px/17px 'Poppins', sans-serif; color: #47506A; margin: 2px 0 0;
}

/* Buttons */
.btn-outline-sm[data-v-6fdef807] {
  height: 34px; padding: 0 16px; border-radius: 6px; border: 1px solid #E5E7EF;
  background: #fff; color: #020631; font: 400 14px/18px 'Poppins', sans-serif; cursor: pointer; white-space: nowrap;
}
.btn-outline-sm[data-v-6fdef807]:hover { background: #F9F9FC;
}
.btn-primary-sm[data-v-6fdef807] {
  height: 34px; padding: 0 16px; border-radius: 6px; background: #4353FF;
  border: none; color: #fff; font: 600 14px/18px 'Poppins', sans-serif; cursor: pointer;
}
.btn-primary-sm[data-v-6fdef807]:hover { opacity: 0.9;
}
/*
 * The zone's destructive outline — identical to the handover row's button, so one danger zone has
 * ONE button style. It was 6px-radius, 400-weight, with a #FCA5A5 border that exists in no token
 * file, sitting two rows above a button drawn from the tokens.
 */
.btn-destructive[data-v-6fdef807] {
  height: 34px; padding: 0 16px; border-radius: var(--radius-md, 8px);
  border: 1px solid var(--color-semantic-element-red, #D60000);
  background: var(--color-surface-card, #fff); color: var(--color-semantic-element-red, #D60000);
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: var(--font-size-14, 14px); font-weight: 600; line-height: var(--line-height-s, 20px);
  cursor: pointer; white-space: nowrap; flex-shrink: 0;
}
.btn-destructive[data-v-6fdef807]:hover { background: var(--color-semantic-bg-red, #FFECEB);
}
.btn-destructive-solid[data-v-6fdef807] {
  height: 34px; padding: 0 22px; border-radius: 6px; border: none;
  background: #DC2626; color: #fff; font: 600 14px/18px 'Poppins', sans-serif; cursor: pointer; white-space: nowrap; flex-shrink: 0;
}
.btn-destructive-solid[data-v-6fdef807]:hover { background: #B91C1C;
}

/* Slot content for archive ConfirmModal */
.archive-warn-list[data-v-6fdef807] {
  margin: 0; padding: 10px 14px 10px 26px;
  background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 8px;
  list-style: disc; display: flex; flex-direction: column; gap: 5px;
  text-align: left;
}
.archive-warn-list li[data-v-6fdef807] { font: 400 13px/20px 'Poppins', sans-serif; color: #78350F;
}
.archive-warn-list strong[data-v-6fdef807] { font-weight: 600;
}
.archive-warn-desc[data-v-6fdef807] {
  font: 400 13px/20px 'Poppins', sans-serif; color: #47506A;
  margin: 0; text-align: center;
}

.detail-view[data-v-f1b85551] {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
  overflow: hidden;
}
.tab-content[data-v-f1b85551] {
  flex: 1;
  overflow-y: auto;
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.loading-state[data-v-f1b85551] {
  display: flex; justify-content: center; padding: 40px;
}
.denied-state[data-v-f1b85551] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 56px 24px;
}
.denied-text[data-v-f1b85551] {
  font-size: 14px;
  color: #47506A;
  text-align: center;
  max-width: 360px;
}
.btn-outline[data-v-f1b85551] {
  height: 34px;
  padding: 0 16px;
  background: transparent;
  color: #4353FF;
  border: 1.5px solid #4353FF;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.btn-outline[data-v-f1b85551]:hover { background: #eceeff;
}
.spinner[data-v-f1b85551] {
  width: 28px; height: 28px; border: 3px solid #E5E7EF;
  border-top-color: #4353FF; border-radius: 50%;
  animation: spin-f1b85551 0.7s linear infinite;
}
@keyframes spin-f1b85551 {
to { transform: rotate(360deg);
}
}

.ea-catalogue[data-v-b72d3564] { display: flex; flex-direction: column;
}
.section-heading[data-v-b72d3564] {
  margin: 0 0 4px;
  font: 600 15px/22px Poppins, Arial, sans-serif;
  color: #1B1F2F;
}
.ea-ni-sub[data-v-b72d3564] {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 19px;
  color: #5B6178;
}
.app-grid[data-v-b72d3564] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
}

/* Deliberately quieter than a real AppCard: no shadow, no hover, no pin, no cursor change. It must
   not look like something you can open, because you cannot. */
.ea-ni-card[data-v-b72d3564] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  border: 1px dashed #C4CBDD;
  border-radius: 12px;
  background: #FAFBFF;
}
.ea-ni-top[data-v-b72d3564] { display: flex; align-items: center; gap: 12px;
}
.ea-ni-titles[data-v-b72d3564] { min-width: 0;
}
.ea-ni-name[data-v-b72d3564] {
  margin: 0;
  font: 600 14px/20px Poppins, Arial, sans-serif;
  color: #1B1F2F;
}
.ea-ni-cat[data-v-b72d3564] {
  margin: 2px 0 0;
  font-size: 12px;
  line-height: 17px;
  color: #5B6178;
}
.ea-ni-desc[data-v-b72d3564] {
  margin: 0;
  font-size: 13px;
  line-height: 19px;
  color: #5B6178;
}
.ea-ni-chip[data-v-b72d3564] {
  align-self: flex-start;
  padding: 4px 10px;
  border-radius: 999px;
  background: #ECEEFF;
  color: #1E1A8E;
  font: 500 12px/16px Poppins, Arial, sans-serif;
}

.wbb[data-v-150a8e03] {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  border-radius: 12px;
  border: 1px solid transparent;
  font-family: Poppins, Arial, sans-serif;
}
.wbb-text[data-v-150a8e03] { flex: 1; min-width: 0;
}
.wbb-title[data-v-150a8e03] { font: 600 14px/20px 'Poppins', sans-serif; margin: 0;
}
.wbb-body[data-v-150a8e03] { font: 400 13px/19px 'Poppins', sans-serif; margin: 2px 0 0; opacity: 0.9;
}
.wbb--warn[data-v-150a8e03]   { background: #FEF6E7; border-color: #F6D08A; color: #8A5A00;
}
.wbb--danger[data-v-150a8e03] { background: #FDECEC; border-color: #F3B4B4; color: #A31515;
}
.wbb--purple[data-v-150a8e03] { background: #F3EEFD; border-color: #C9B6F2; color: #5B2BB0;
}
.wbb-cta[data-v-150a8e03] {
  appearance: none;
  flex: none;
  border: 1px solid currentColor;
  background: rgba(255, 255, 255, 0.6);
  color: inherit;
  font: 500 13px/18px 'Poppins', sans-serif;
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
}
.wbb-cta[data-v-150a8e03]:hover { background: #fff;
}
.wbb-cta[data-v-150a8e03]:focus-visible { outline: 2px solid currentColor; outline-offset: 2px;
}

/* No role on this app anywhere in the workspace. Frosted rather than removed — the catalogue still
   says the workspace owns it, which is the question this page answers. */
.app-card--no-access[data-v-aabddba1] {
  opacity: 0.45;
  filter: grayscale(1);
  cursor: not-allowed;
}
/* The pin control sits inside the card and stays usable: pinning is a personal shortcut, and
   somebody who is about to be granted access can still arrange their own page. */
.app-card--no-access[data-v-aabddba1] .pin-btn {
  opacity: 1;
  filter: none;
  cursor: pointer;
}
.applications-view[data-v-aabddba1] {
  display: flex;
  flex-direction: column;
  gap: 20px;
}


/* Skeleton */
.apps-loading[data-v-aabddba1] { width: 100%;
}
.apps-skeleton[data-v-aabddba1] { display: flex; flex-direction: column; gap: 14px;
}
.apps-skeleton-tabs[data-v-aabddba1] {
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 2px solid #E5E7EF;
  padding-bottom: 8px;
}
.apps-skeleton-grid[data-v-aabddba1] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}
.apps-skeleton-card[data-v-aabddba1] {
  border: 1px solid #E5E7EF;
  border-radius: 12px;
  background: #FBFCFF;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 140px;
}
.skeleton-block[data-v-aabddba1] {
  display: inline-block;
  border-radius: 999px;
  background: #E8EDF8;
  height: 10px;
}
.skeleton-block--tab[data-v-aabddba1]       { width: 84px;
}
.skeleton-block--card-title[data-v-aabddba1] { width: 56%; height: 13px;
}
.skeleton-block--card-line[data-v-aabddba1]  { width: 92%;
}
.skeleton-block--card-meta[data-v-aabddba1]  { margin-top: auto; width: 48%;
}
.shimmer[data-v-aabddba1] { position: relative; overflow: hidden;
}
.shimmer[data-v-aabddba1]::after {
  content: '';
  position: absolute; top: 0; left: -140%;
  width: 80%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.75) 50%, transparent 100%);
  animation: shimmer-sweep-aabddba1 1.15s ease-in-out infinite;
}
@keyframes shimmer-sweep-aabddba1 {
100% { left: 160%;
}
}

/* Header */
.page-header[data-v-aabddba1] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.page-header-left[data-v-aabddba1] { display: flex; flex-direction: column; gap: 4px;
}
.page-title[data-v-aabddba1] {
  font-size: 28px;
  font-weight: 700;
  color: #020631;
  margin: 0;
  line-height: 36px;
}
.page-subtitle[data-v-aabddba1] { font-size: 14px; color: #47506A; margin: 0;
}
.btn-browse[data-v-aabddba1] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 18px;
  background: #4353FF;
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
  flex-shrink: 0;
}
.btn-browse[data-v-aabddba1]:hover { opacity: 0.9;
}
.btn-browse--secondary[data-v-aabddba1] {
  background: #fff; color: #4353FF;
  border: 1px solid #D1D5E8;
}
.btn-browse--secondary[data-v-aabddba1]:hover { background: #F3F4FF; opacity: 1;
}
.empty-state-actions[data-v-aabddba1] { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
}

/* Tabs */
.tabs-bar[data-v-aabddba1] {
  display: flex;
  align-items: flex-end;
  border-bottom: 2px solid #E5E7EF;
}
.tab-btn[data-v-aabddba1] {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  padding: 10px 16px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  color: #47506A;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s;
}
.tab-btn[data-v-aabddba1]:hover:not(.tab-btn--active) { color: #020631;
}
.tab-btn--active[data-v-aabddba1] {
  color: #4353FF;
  font-weight: 600;
  border-bottom-color: #4353FF;
}

/* Empty state */
.empty-state[data-v-aabddba1] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 60px 20px;
  text-align: center;
}
.empty-state-title[data-v-aabddba1] { font-size: 16px; font-weight: 600; color: #020631; margin: 0;
}
.empty-state-sub[data-v-aabddba1]   { font-size: 14px; color: #47506A; margin: 0 0 8px;
}

/* Sections */
.app-section[data-v-aabddba1] { display: flex; flex-direction: column; gap: 12px;
}
.section-heading[data-v-aabddba1] { font-size: 14px; font-weight: 600; color: #020631; margin: 0;
}

/* Grid — fluid auto-fill (matches /marketplace: reflows 4→3→2→1 by width) */
.app-grid[data-v-aabddba1] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

/* ── PLAN-074 §6 — subscription-ended dialog ── */
.lc-block-overlay[data-v-aabddba1] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.lc-block-modal[data-v-aabddba1] {
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  max-width: 420px;
  width: calc(100% - 32px);
  box-shadow: 0 18px 44px rgba(2, 6, 49, 0.28);
}
.lc-block-title[data-v-aabddba1] { font: 600 18px/24px 'Poppins', sans-serif; color: #020631; margin: 0 0 8px;
}
.lc-block-reason[data-v-aabddba1] { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A; margin: 0 0 8px;
}
.lc-block-note[data-v-aabddba1] { font: 400 13px/18px 'Poppins', sans-serif; color: #6B7280; margin: 0 0 16px;
}
.lc-block-actions[data-v-aabddba1] { display: flex; gap: 10px; justify-content: flex-end;
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-048d9dd7] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-048d9dd7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-048d9dd7] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-048d9dd7] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-048d9dd7] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-048d9dd7] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-048d9dd7] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-048d9dd7] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-048d9dd7] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-048d9dd7] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-048d9dd7] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-048d9dd7] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-048d9dd7]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-048d9dd7]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-048d9dd7] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-048d9dd7]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-048d9dd7] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-048d9dd7] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-048d9dd7] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-048d9dd7] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-048d9dd7] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-048d9dd7] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-048d9dd7] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-048d9dd7]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-048d9dd7] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-048d9dd7]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-048d9dd7] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-048d9dd7] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-048d9dd7] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-048d9dd7]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-048d9dd7]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-048d9dd7] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-048d9dd7] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-048d9dd7] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-048d9dd7] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-048d9dd7] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-048d9dd7] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-048d9dd7] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-048d9dd7] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-048d9dd7] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-048d9dd7] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-048d9dd7] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-048d9dd7] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-048d9dd7]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-048d9dd7]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-048d9dd7]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-048d9dd7] { margin-bottom: 16px;
}
.ws-field[data-v-048d9dd7]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-048d9dd7] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-048d9dd7] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-048d9dd7] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-048d9dd7]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-048d9dd7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-048d9dd7]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-048d9dd7] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-048d9dd7] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-048d9dd7] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-048d9dd7] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-048d9dd7] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-048d9dd7] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-048d9dd7] { color: #B45309;
}

/* ── Entitlements summary card ── */
.ov-link-btn[data-v-048d9dd7] {
  height: 30px; padding: 0 14px; border-radius: 6px;
  border: 1px solid #D1D5E8; background: #fff;
  font: 500 12px/17px 'Poppins', sans-serif; color: #4353FF;
  cursor: pointer; white-space: nowrap; flex-shrink: 0;
}
.ov-link-btn[data-v-048d9dd7]:hover { background: #F3F4FF;
}
.ov-ent-divider[data-v-048d9dd7] { height: 1px; background: #E5E7EF;
}
.ov-ent-row[data-v-048d9dd7] {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 20px;
}
.ov-app-icon[data-v-048d9dd7] {
  width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
  background: linear-gradient(135deg, #5E4ED4 0%, #4353FF 100%);
  display: flex; align-items: center; justify-content: center;
}
.ov-app-initials[data-v-048d9dd7] { font: 700 10px/1 'Poppins', sans-serif; color: #fff;
}
.ov-app-name[data-v-048d9dd7] { font: 500 13px/20px 'Poppins', sans-serif; color: #020631; flex: 1; min-width: 0;
}
.ov-badge[data-v-048d9dd7] {
  display: inline-flex; align-items: center; height: 20px; padding: 0 8px;
  border-radius: 10px; font: 400 11px/16px 'Poppins', sans-serif; flex-shrink: 0;
}
.ov-badge--enabled[data-v-048d9dd7]  { background: #ECFDF5; color: #059669;
}
.ov-badge--disabled[data-v-048d9dd7] { background: #F3F4F8; color: #9CA5BE;
}
.ov-ent-more[data-v-048d9dd7] {
  padding: 8px 20px;
  font: 400 12px/18px 'Poppins', sans-serif; color: #9CA5BE;
}
.ov-inline-link[data-v-048d9dd7] {
  background: none; border: none; padding: 0;
  font: 500 12px/18px 'Poppins', sans-serif; color: #4353FF;
  cursor: pointer;
}
.ov-inline-link[data-v-048d9dd7]:hover { text-decoration: underline;
}

/* ── Skeleton ── */
.ov-skeleton[data-v-048d9dd7] {
  background: #E5E7EF; border-radius: 4px;
  animation: ov-pulse-048d9dd7 1.4s ease-in-out infinite;
}
@keyframes ov-pulse-048d9dd7 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.5;
}
}
.ov-skeleton--icon[data-v-048d9dd7] { width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
}
.ov-skeleton--text[data-v-048d9dd7] { flex: 1; height: 13px;
}
.ov-skeleton--pill[data-v-048d9dd7] { width: 60px; height: 20px; border-radius: 10px;
}

/* ── Empty state ── */
.ws-empty-state[data-v-048d9dd7] {
  padding: 24px 20px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-align: center;
}

.srw-overlay[data-v-d016ede3] {
  position: fixed; inset: 0;
  background: rgba(2, 6, 49, 0.4);
  display: flex; align-items: center; justify-content: center;
  z-index: 1100;
  animation: srw-fade-in-d016ede3 0.15s ease;
}
@keyframes srw-fade-in-d016ede3 {
from { opacity: 0
}
to { opacity: 1
}
}
.srw-card[data-v-d016ede3] {
  background: #fff;
  border-radius: 16px;
  width: 440px;
  max-width: calc(100vw - 32px);
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.15), 0 4px 16px rgba(2, 6, 49, 0.08);
  display: flex; flex-direction: column;
  padding: 0;
  overflow: hidden;
  animation: srw-slide-up-d016ede3 0.18s ease;
}
@keyframes srw-slide-up-d016ede3 {
from { opacity: 0; transform: translateY(10px)
}
to   { opacity: 1; transform: translateY(0)
}
}

/* Header */
.srw-header[data-v-d016ede3] {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 20px 20px 16px;
  border-bottom: 1px solid #E5E7EF;
}
.srw-header-icon[data-v-d016ede3] {
  width: 36px; height: 36px; border-radius: 8px;
  background: #FEF3C7; color: #D97706;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.srw-header-text[data-v-d016ede3] { flex: 1; min-width: 0;
}
.srw-title[data-v-d016ede3] {
  font: 600 15px/20px 'Poppins', sans-serif;
  color: #020631; margin: 0 0 2px;
}
.srw-subtitle[data-v-d016ede3] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: #47506A; margin: 0;
}
.srw-close[data-v-d016ede3] {
  background: none; border: none; cursor: pointer;
  color: #9CA5BE; font-size: 16px; padding: 0; line-height: 1;
  flex-shrink: 0;
}
.srw-close[data-v-d016ede3]:hover { color: #47506A;
}

/* Context */
.srw-message[data-v-d016ede3] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #47506A;
  padding: 14px 20px 0;
  margin: 0;
}

/* Pricing block */
.srw-pricing-block[data-v-d016ede3] {
  margin: 12px 20px 0;
  border: 1px solid #E5E7EF;
  border-radius: 10px;
  overflow: hidden;
}
.srw-pricing-label[data-v-d016ede3] {
  font: 600 10px/14px 'Poppins', sans-serif;
  letter-spacing: 0.4px; text-transform: uppercase;
  color: #9CA5BE;
  padding: 8px 12px 6px;
  background: #F9F9FC;
  margin: 0;
  border-bottom: 1px solid #E5E7EF;
}
.srw-app-row[data-v-d016ede3] {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid #F0F1F6;
}
.srw-app-row[data-v-d016ede3]:last-child { border-bottom: none;
}
.srw-app-row--removing[data-v-d016ede3] { background: #FFF7F7;
}
.srw-app-name[data-v-d016ede3] {
  font: 500 13px/18px 'Poppins', sans-serif;
  color: #020631; flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.srw-app-row--removing .srw-app-name[data-v-d016ede3] { color: #DC2626;
}
.srw-app-price[data-v-d016ede3] {
  font: 600 13px/18px 'Poppins', sans-serif;
  color: #47506A; flex-shrink: 0;
}
.srw-removing-tag[data-v-d016ede3] {
  font: 600 10px/14px 'Poppins', sans-serif;
  background: #FEE2E2; color: #DC2626;
  border-radius: 20px; padding: 2px 8px;
  white-space: nowrap;
}

/* Footer */
.srw-footer[data-v-d016ede3] {
  display: flex; flex-direction: column; gap: 8px;
  padding: 16px 20px 20px;
}
.srw-btn[data-v-d016ede3] {
  width: 100%; padding: 10px 14px;
  border-radius: 8px;
  font: 600 13px/18px 'Poppins', sans-serif;
  cursor: pointer; border: none;
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 2px;
  transition: opacity 0.12s, background 0.12s;
}
.srw-btn[data-v-d016ede3]:disabled { opacity: 0.55; cursor: not-allowed;
}
.srw-btn-sub[data-v-d016ede3] {
  font: 400 11px/14px 'Poppins', sans-serif;
  opacity: 0.75;
}
.srw-btn--keep[data-v-d016ede3] { background: #020631; color: #fff;
}
.srw-btn--keep[data-v-d016ede3]:hover:not(:disabled) { background: #0F1542;
}
.srw-btn--remove-all[data-v-d016ede3] { background: #FEE2E2; color: #DC2626;
}
.srw-btn--remove-all[data-v-d016ede3]:hover:not(:disabled) { background: #FECACA;
}
.srw-btn--remove-all .srw-btn-sub[data-v-d016ede3] { color: #DC2626;
}
.srw-btn--cancel[data-v-d016ede3] {
  background: #F5F6FA; color: #47506A;
  border: 1px solid #E5E7EF;
  font-weight: 500;
  align-items: center; flex-direction: row;
}
.srw-btn--cancel[data-v-d016ede3]:hover:not(:disabled) { background: #ECEEF6;
}

.ppm-backdrop[data-v-ceff9cb5] {
  position: fixed; inset: 0; z-index: 1200;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  background: rgba(2, 6, 49, 0.55);
}
.ppm-panel[data-v-ceff9cb5] {
  width: 100%; max-width: 420px;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 32px 28px;
  text-align: center;
  background: var(--color-surface-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(2, 6, 49, 0.18);
}
.ppm-spinner[data-v-ceff9cb5] {
  width: 34px; height: 34px; margin-bottom: 4px;
  border: 3px solid var(--color-border-default, #E5E7EF);
  border-top-color: var(--color-primary, #4353FF);
  border-radius: 50%;
  animation: ppm-spin-ceff9cb5 0.9s linear infinite;
}
@keyframes ppm-spin-ceff9cb5 {
to { transform: rotate(360deg);
}
}
/* The text carries the meaning; the spin is decoration, so slow it rather than freezing it. */
@media (prefers-reduced-motion: reduce) {
.ppm-spinner[data-v-ceff9cb5] { animation-duration: 2.4s;
}
}
.ppm-title[data-v-ceff9cb5] {
  margin: 0;
  font: 600 17px/24px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ppm-body[data-v-ceff9cb5] {
  margin: 0;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ppm-note[data-v-ceff9cb5] {
  margin: 2px 0 0;
  font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
}

.subm[data-v-76539a7b] { display: flex; flex-direction: column; gap: 20px;
}

/* ── Header ── */
.subm-head[data-v-76539a7b] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
}
.subm-title[data-v-76539a7b] { font: 700 26px/32px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); margin: 0 0 6px;
}
.subm-subtitle[data-v-76539a7b] { font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-label, #47506A); margin: 0; max-width: 620px;
}
.subm-loading[data-v-76539a7b] { padding: 40px 0; text-align: center; font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
}

/* ── Per-line billing schedule ──
   Weight 500 against the meta line's 400, and a label-strength colour rather than the placeholder grey:
   when this line renews is a commitment, not metadata, so it should out-rank the category/purchased text
   directly above it without competing with the price.

   The stat-tile rules that used to sit here went with the tiles. Worth noting they were also the last
   remaining user of `--color-bg-card`, which does not exist in tokens.css — it rendered only because of
   the #FFFFFF fallback beside it. */
.subm-item-sched[data-v-76539a7b] {
  margin-top: 2px;
  font: 500 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  font-variant-numeric: tabular-nums;
}

/* ── Payment method ── */
.subm-pay[data-v-76539a7b] {
  display: flex; align-items: center; gap: 14px;
  background: #FAFBFF; border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px; padding: 14px 18px; flex-wrap: wrap;
}
.subm-pay-glyph[data-v-76539a7b] { flex-shrink: 0; display: flex;
}
.subm-pay-lines[data-v-76539a7b] { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1;
}
.subm-pay-main[data-v-76539a7b] { font: 600 14px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); letter-spacing: 0.02em;
}
.subm-pay-sub[data-v-76539a7b] { font: 400 11px/16px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
}
.subm-autopay[data-v-76539a7b] { flex-shrink: 0; background: #E7F7EE; color: #15803D; border-radius: 20px; padding: 3px 10px; font: 600 11px/16px 'Poppins', sans-serif; white-space: nowrap;
}
.subm-manage[data-v-76539a7b] {
  flex-shrink: 0; background: none; border: none; padding: 0; cursor: pointer;
  font: 600 12px/20px 'Poppins', sans-serif; color: var(--color-primary, #4353FF); white-space: nowrap;
}
.subm-manage[data-v-76539a7b]:hover:not(:disabled) { text-decoration: underline;
}
.subm-manage[data-v-76539a7b]:disabled { opacity: 0.6; cursor: not-allowed;
}

/* ── Item cards ── */
.subm-list[data-v-76539a7b] { display: flex; flex-direction: column; gap: 12px;
}
.subm-item[data-v-76539a7b] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px; padding: 16px 18px;
}
.subm-item--muted[data-v-76539a7b] { background: #FAFBFF;
}
.subm-item-row[data-v-76539a7b] { display: flex; align-items: center; gap: 14px;
}
.subm-item-info[data-v-76539a7b] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px;
}
.subm-item-name-row[data-v-76539a7b] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.subm-item-name[data-v-76539a7b] { font: 600 15px/22px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
.subm-item-meta[data-v-76539a7b] { font: 400 12px/16px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
}
/* Replaces the amount for a paid-through cancellation. Amber, matching the "Cancels <date>" chip and
   the scheduled-change panel, so the two read as one story rather than as a warning next to a price. */
.subm-paid-note[data-v-76539a7b] {
  margin-top: 3px; font: 400 12px/17px 'Poppins', sans-serif; color: #92400E;
}
.subm-item-right[data-v-76539a7b] { display: flex; align-items: center; gap: 12px; flex-shrink: 0;
}
.subm-item-price[data-v-76539a7b] { font: 700 16px/22px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); white-space: nowrap;
}

/* ── Chips ── */
.subm-chip[data-v-76539a7b] {
  display: inline-flex; align-items: center; height: 20px; padding: 0 8px;
  border-radius: 4px; font: 600 11px/20px 'Poppins', sans-serif; white-space: nowrap;
  background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}
.subm-chip--brand[data-v-76539a7b] { background: #E9F2FF; color: var(--color-primary, #4353FF);
}
.subm-chip--save[data-v-76539a7b] { background: #E7F7EE; color: #15803D;
}
.subm-chip--free[data-v-76539a7b] { background: #D4EDDA; color: #1B5E20;
}
.subm-chip--pending[data-v-76539a7b] { background: #FFF3CD; color: #856404;
}

/* ── Per-row action menu ──
   Replaces the always-on red bordered Cancel button that used to sit on every row.
   The row's right edge is now price + status; the destructive action is one click in.
   Recovery ("Keep this app") deliberately stays outside the menu. */
.subm-menu[data-v-76539a7b] { position: relative; flex: none;
}
.subm-menu-trigger[data-v-76539a7b] {
  width: 30px; height: 30px; border-radius: 8px; background: none;
  border: 1px solid transparent; color: #5B6584; cursor: pointer;
  font: 600 15px/1 'Poppins', sans-serif; letter-spacing: 0.08em;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.15s, border-color 0.15s;
}
.subm-menu-trigger[data-v-76539a7b]:hover,
.subm-menu-trigger[aria-expanded="true"][data-v-76539a7b] {
  background: #F1F2F7; border-color: var(--color-border-default, #E5E7EF);
}
.subm-menu-pop[data-v-76539a7b] {
  position: absolute; right: 0; top: 34px; z-index: 20; min-width: 168px;
  background: #fff; border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px; box-shadow: 0 8px 24px rgba(2, 6, 49, 0.13); padding: 5px;
}
.subm-menu-item[data-v-76539a7b] {
  display: block; width: 100%; text-align: left; background: none; border: none;
  cursor: pointer; padding: 8px 10px; border-radius: 6px;
  font: 500 12.5px/1.2 'Poppins', sans-serif; color: var(--color-text-secondary, #47506A);
}
.subm-menu-item[data-v-76539a7b]:hover:not(:disabled) { background: #F4F5FF; color: var(--color-primary, #4353FF);
}
.subm-menu-item[data-v-76539a7b]:disabled { opacity: 0.5; cursor: not-allowed;
}
.subm-menu-item--danger[data-v-76539a7b] { color: var(--color-error, #D60000);
}
.subm-menu-item--danger[data-v-76539a7b]:hover:not(:disabled) { background: #FFF5F5; color: var(--color-error, #D60000);
}

/* ── Suite expand + members ── */
.subm-expand[data-v-76539a7b] {
  margin-top: 12px; background: none; border: none; padding: 0; cursor: pointer;
  font: 600 12px/16px 'Poppins', sans-serif; color: var(--color-primary, #4353FF);
  display: inline-flex; align-items: center; gap: 4px;
}
.subm-expand[data-v-76539a7b]:hover { text-decoration: underline;
}
.subm-expand-caret[data-v-76539a7b] { transition: transform 0.15s; display: inline-block;
}
.subm-expand-caret--open[data-v-76539a7b] { transform: rotate(180deg);
}
.subm-members[data-v-76539a7b] { display: flex; flex-direction: column; gap: 2px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.subm-member[data-v-76539a7b] { display: flex; align-items: center; gap: 10px; padding: 6px 0;
}
.subm-member-name[data-v-76539a7b] { flex: 1; min-width: 0; font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
.subm-member-price[data-v-76539a7b] { font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); white-space: nowrap;
}
.subm-strike[data-v-76539a7b] { color: var(--color-text-placeholder, #9CA5BE); text-decoration: line-through; font-size: 11px; margin-right: 4px;
}

/* ── Included ── */
.subm-included-head[data-v-76539a7b] { font: 400 11px/16px 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-text-placeholder, #9CA5BE); margin-bottom: 8px;
}
.subm-included-row[data-v-76539a7b] { display: flex; align-items: center; gap: 10px; padding: 6px 0;
}

/* ── Upcoming (post-removal) bill banner ── */
.subm-upcoming[data-v-76539a7b] {
  display: flex; align-items: flex-start; gap: 12px;
  background: #FFFBEB; border: 1px solid #FDE9C8; border-radius: 12px; padding: 14px 16px;
}
.subm-upcoming-icon[data-v-76539a7b] { flex-shrink: 0; margin-top: 1px;
}
.subm-upcoming-text[data-v-76539a7b] { display: flex; flex-direction: column; gap: 2px;
}
.subm-upcoming-title[data-v-76539a7b] { font: 600 13px/20px 'Poppins', sans-serif; color: #92400E;
}
.subm-upcoming-sub[data-v-76539a7b] { font: 400 12px/18px 'Poppins', sans-serif; color: #92400E;
}
.subm-upcoming-sub strong[data-v-76539a7b] { font-weight: 700;
}

/* ── Total ── */
.subm-total[data-v-76539a7b] {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  background: var(--color-primary-dark, #020631); border-radius: 12px; padding: 18px 22px;
}
.subm-total-info[data-v-76539a7b] { display: flex; flex-direction: column; gap: 2px;
}
.subm-total-label[data-v-76539a7b] { font: 600 14px/20px 'Poppins', sans-serif; color: #FFFFFF;
}
.subm-total-save[data-v-76539a7b] { font: 400 12px/16px 'Poppins', sans-serif; color: #A9E7C4;
}
.subm-total-val[data-v-76539a7b] { font: 700 26px/30px 'Poppins', sans-serif; color: #FFFFFF; white-space: nowrap;
}

/* ── Confirm modal ── */
.subm-overlay[data-v-76539a7b] { position: fixed; inset: 0; background: rgba(2,6,49,0.4); display: flex; align-items: center; justify-content: center; z-index: 1100;
}
.subm-modal[data-v-76539a7b] { background: #fff; border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 12px; width: 400px; max-width: calc(100vw - 32px); padding: 22px;
}
.subm-modal-title[data-v-76539a7b] { font: 600 16px/24px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); margin: 0 0 8px;
}
.subm-modal-body[data-v-76539a7b] { font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-label, #47506A); margin: 0 0 18px;
}
.subm-modal-foot[data-v-76539a7b] { display: flex; justify-content: flex-end; gap: 10px;
}
.subm-btn-cancel[data-v-76539a7b] {
  height: 34px; padding: 0 14px; background: transparent;
  color: var(--color-primary, #4353FF); border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px; font: 600 13px/20px 'Poppins', sans-serif; cursor: pointer;
}
.subm-btn-cancel[data-v-76539a7b]:hover:not(:disabled) { background: var(--color-bg-page, #F9F9FC);
}
.subm-btn-danger[data-v-76539a7b] {
  height: 34px; padding: 0 18px; background: var(--color-error, #D60000);
  color: #fff; border: none; border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif; cursor: pointer;
}
.subm-btn-danger[data-v-76539a7b]:disabled, .subm-btn-cancel[data-v-76539a7b]:disabled { opacity: 0.6; cursor: not-allowed;
}

/* ── PLAN-074 — cancellation confirm + restore ── */
.subm-modal-note[data-v-76539a7b] { font: 400 12px/18px 'Poppins', sans-serif; color: #47506A; margin: 8px 0 0;
}
.subm-modal-warn[data-v-76539a7b] { font: 500 12px/18px 'Poppins', sans-serif; color: #8A5A00; background: #FEF6E7; border: 1px solid #F6D08A; border-radius: 8px; padding: 8px 10px; margin: 10px 0 0;
}
.subm-modal-error[data-v-76539a7b] { font: 500 12px/18px 'Poppins', sans-serif; color: #A31515; margin: 10px 0 0;
}
.subm-restore[data-v-76539a7b] {
  appearance: none; border: 1px solid #4353FF; background: #fff; color: #4353FF;
  font: 500 12px/16px 'Poppins', sans-serif; padding: 6px 12px; border-radius: 8px; cursor: pointer;
}
.subm-restore[data-v-76539a7b]:hover:not(:disabled) { background: #F4F5FF;
}
.subm-restore[data-v-76539a7b]:disabled { opacity: 0.6; cursor: default;
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-4b22f3e1] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-4b22f3e1] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-4b22f3e1] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-4b22f3e1] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-4b22f3e1] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-4b22f3e1] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-4b22f3e1] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-4b22f3e1] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-4b22f3e1] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-4b22f3e1] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-4b22f3e1] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-4b22f3e1] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-4b22f3e1]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-4b22f3e1]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-4b22f3e1] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-4b22f3e1]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-4b22f3e1] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-4b22f3e1] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-4b22f3e1] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-4b22f3e1] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-4b22f3e1] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-4b22f3e1] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-4b22f3e1] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-4b22f3e1]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-4b22f3e1] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-4b22f3e1]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-4b22f3e1] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-4b22f3e1] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-4b22f3e1] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-4b22f3e1]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-4b22f3e1]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-4b22f3e1] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-4b22f3e1] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-4b22f3e1] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-4b22f3e1] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-4b22f3e1] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-4b22f3e1] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-4b22f3e1] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-4b22f3e1] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-4b22f3e1] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-4b22f3e1] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-4b22f3e1] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-4b22f3e1] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-4b22f3e1]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-4b22f3e1]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-4b22f3e1]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-4b22f3e1] { margin-bottom: 16px;
}
.ws-field[data-v-4b22f3e1]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-4b22f3e1] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-4b22f3e1] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-4b22f3e1] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-4b22f3e1]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-4b22f3e1] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-4b22f3e1]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-4b22f3e1] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-4b22f3e1] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-4b22f3e1] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-4b22f3e1] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-4b22f3e1] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-4b22f3e1] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-4b22f3e1] { color: #B45309;
}

/* Typography and colour follow the workspace design system, NOT ad-hoc values.
 *
 * The first cut of this file set no font-family at all and sized everything in rem with raw hex
 * colours, so the dialog rendered in the browser's default serif/system face at the wrong scale
 * while every other surface used Poppins — visibly a different product. Two rules here:
 *   * font-family is inherited from .tcd-modal, which takes it from --font-family-body;
 *   * every size is px on the 10/11/12/13/16/18 scale ws-layout.css uses, and every colour is a
 *     var(--color-*) with the same literal fallback its siblings use.
 * Mirrors the .cyc-* block in WsBillingTab.vue deliberately: these two dialogs must not look like
 * they came from different apps. */
.tcd-overlay[data-v-4b22f3e1] {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(2, 6, 49, 0.45);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.tcd-modal[data-v-4b22f3e1] {
  background: var(--color-bg-card, #FFFFFF);
  border-radius: 12px; padding: 24px;
  width: 100%; max-width: 680px; max-height: 86vh; overflow-y: auto;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.tcd-title[data-v-4b22f3e1] { font: 600 16px/24px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); margin: 0 0 6px;
}
.tcd-lead[data-v-4b22f3e1]  { font: 400 12px/18px 'Poppins', sans-serif; color: var(--color-text-label, #47506A); margin: 0 0 16px;
}
.tcd-muted[data-v-4b22f3e1] { font: 400 11px/17px 'Poppins', sans-serif; color: var(--color-text-label, #47506A); margin: 6px 0 0;
}
.tcd-warn[data-v-4b22f3e1]  { font: 400 11px/17px 'Poppins', sans-serif; color: #B45309; margin: 0 0 12px;
}

/* ── Step 1: pick a plan ─────────────────────────────────────────────────── */
.tcd-section-title[data-v-4b22f3e1] {
  font: 600 11px/16px 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-label, #47506A); margin: 0 0 8px;
}
.tcd-tiers[data-v-4b22f3e1] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px;
}
.tcd-tier[data-v-4b22f3e1] {
  flex: 1 1 150px; text-align: left; cursor: pointer;
  padding: 10px 12px; border-radius: 8px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-bg-card, #FFFFFF);
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.tcd-tier[data-v-4b22f3e1]:hover { background: var(--color-bg-page, #F9F9FC);
}
.tcd-tier--on[data-v-4b22f3e1] { border-color: var(--color-primary, #4353FF); background: #F4F6FF;
}
.tcd-tier-name[data-v-4b22f3e1]  { display: block; font: 600 13px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
.tcd-tier-price[data-v-4b22f3e1] { display: block; font: 400 11px/16px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
.tcd-tier-caps[data-v-4b22f3e1]  { display: block; font: 400 10px/15px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
}

/* Segmented control — ONE border on the track, none on the segments.
   Previously each segment carried its own 1px border and the last one dropped its left edge to avoid
   a doubled divider. That collapses badly the moment a segment is selected: the active segment
   recolours its border to primary, but its neighbour's adjoining edge is either missing or still
   grey, so the highlight reads as a broken rectangle. Bordering the TRACK instead means the segments
   cannot disagree about a shared edge. #ECEEFF is GCP DS Blue 10 (primary @10% on white); the old
   #F4F6FF was not a design-system value. PLAN-085 F-11. */
.tcd-cycle[data-v-4b22f3e1] {
  display: flex; gap: 4px; margin-bottom: 14px; padding: 3px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  background: var(--color-bg-card, #FFFFFF);
}
.tcd-cycle-btn[data-v-4b22f3e1] {
  flex: 1; cursor: pointer; padding: 8px 12px;
  border: none; border-radius: 7px; background: transparent;
  font: 600 12px/18px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
  transition: background 0.12s, color 0.12s;
}
.tcd-cycle-btn[data-v-4b22f3e1]:hover:not(:disabled):not(.tcd-cycle-btn--on) { background: #F5F6FA;
}
.tcd-cycle-btn[data-v-4b22f3e1]:disabled { opacity: 0.55; cursor: not-allowed;
}
.tcd-cycle-btn--on[data-v-4b22f3e1] { background: #ECEEFF; color: var(--color-primary, #4353FF);
}
/* The saving is the reason to pick yearly, so it is a badge rather than fine print. */
.tcd-cycle-hint[data-v-4b22f3e1] {
  display: inline-block; margin-top: 4px; padding: 1px 6px; border-radius: 999px;
  background: #DCFCE7; color: #15803D;
  font: 600 10px/15px 'Poppins', sans-serif;
}
/* Stated, not offered — reads as a fact about the plan rather than a disabled control the customer
   might try to enable. */
.tcd-cycle-fixed[data-v-4b22f3e1] {
  margin: 14px 0 0;
  font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* ── Refusal ─────────────────────────────────────────────────────────────── */
.tcd-blocked[data-v-4b22f3e1] {
  margin: 0 0 14px; padding: 12px; border-radius: 8px;
  background: #FEF2F2; font: 400 12px/18px 'Poppins', sans-serif; color: #991B1B;
}
.tcd-blocked-title[data-v-4b22f3e1] { font-weight: 600; margin: 0 0 4px;
}
.tcd-blocked ul[data-v-4b22f3e1] { margin: 6px 0; padding-left: 18px;
}

/* ── Money table ─────────────────────────────────────────────────────────── */
.tcd-table[data-v-4b22f3e1] { border: 1px solid var(--color-border-subtle, #E6E8F0); border-radius: 8px; overflow: hidden;
}
.tcd-row[data-v-4b22f3e1] {
  display: grid; grid-template-columns: 1fr auto auto; gap: 14px;
  padding: 9px 12px; font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-body, #1F2439);
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
}
.tcd-row[data-v-4b22f3e1]:first-child { border-top: none;
}
.tcd-row--head[data-v-4b22f3e1] {
  background: var(--color-bg-subtle, #F7F8FC);
  font: 600 10px/16px 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-label, #47506A);
}
.tcd-row--suite[data-v-4b22f3e1]  { background: #F4F6FF; font-weight: 600;
}
.tcd-row--member span[data-v-4b22f3e1]:first-child { padding-left: 14px; color: var(--color-text-label, #47506A);
}
.tcd-row--total[data-v-4b22f3e1]  { background: var(--color-bg-subtle, #F7F8FC); font-weight: 600;
}
.tcd-row span[data-v-4b22f3e1]:nth-child(2), .tcd-row span[data-v-4b22f3e1]:nth-child(3) { text-align: right; min-width: 92px;
}
.tcd-new[data-v-4b22f3e1]    { color: var(--color-primary, #4353FF); font-weight: 600;
}
.tcd-was[data-v-4b22f3e1]    { color: var(--color-text-placeholder, #9CA5BE); text-decoration: line-through; margin-right: 6px; font-weight: 400;
}
.tcd-toggle[data-v-4b22f3e1] {
  background: none; border: none; padding: 0; cursor: pointer;
  font: 600 12px/18px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
.tcd-caret[data-v-4b22f3e1] { display: inline-block; transition: transform 0.15s; margin-right: 4px;
}
.tcd-caret--open[data-v-4b22f3e1] { transform: rotate(90deg);
}
.tcd-tag[data-v-4b22f3e1] { display: block; font-style: normal; font: 400 10px/15px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
.tcd-tax-note[data-v-4b22f3e1] { font: 400 11px/16px 'Poppins', sans-serif; color: var(--color-text-label, #47506A); margin: 8px 0 0; cursor: help;
}

/* ── Saving / caps / unlocks ─────────────────────────────────────────────── */
.tcd-save[data-v-4b22f3e1] {
  margin-top: 12px; padding: 10px 12px; border-radius: 8px;
  background: #ECFDF5; color: #065F46; font: 400 11px/17px 'Poppins', sans-serif;
}
.tcd-caps[data-v-4b22f3e1] { margin-top: 12px; border: 1px solid var(--color-border-subtle, #E6E8F0); border-radius: 8px; overflow: hidden;
}
.tcd-cap-row[data-v-4b22f3e1] {
  display: grid; grid-template-columns: 1fr auto auto; gap: 14px;
  padding: 8px 12px; font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-body, #1F2439);
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
}
.tcd-cap-row[data-v-4b22f3e1]:first-child { border-top: none;
}
.tcd-cap-row--head[data-v-4b22f3e1] {
  background: var(--color-bg-subtle, #F7F8FC);
  font: 600 10px/16px 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-label, #47506A);
}
.tcd-cap-row span[data-v-4b22f3e1]:nth-child(2), .tcd-cap-row span[data-v-4b22f3e1]:nth-child(3) { text-align: right; min-width: 92px;
}
.tcd-cap-up[data-v-4b22f3e1] { color: #065F46; font-weight: 600;
}
.tcd-unlocks[data-v-4b22f3e1] { margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: #ECFDF5;
}
.tcd-unlocks-title[data-v-4b22f3e1] { font: 600 11px/16px 'Poppins', sans-serif; color: #065F46; margin: 0 0 4px;
}
.tcd-unlocks p[data-v-4b22f3e1] { font: 400 11px/17px 'Poppins', sans-serif; color: #065F46; margin: 0;
}
.tcd-ending[data-v-4b22f3e1] { margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: var(--color-bg-subtle, #F7F8FC);
}
.tcd-ending-title[data-v-4b22f3e1] { font: 400 11px/16px 'Poppins', sans-serif; color: var(--color-text-label, #47506A); margin: 0 0 4px;
}
.tcd-ending-row[data-v-4b22f3e1] {
  display: flex; justify-content: space-between;
  font: 400 11px/17px 'Poppins', sans-serif; color: var(--color-text-label, #47506A); padding: 2px 0;
}

/* ── Dates + charge ──────────────────────────────────────────────────────── */
.tcd-facts[data-v-4b22f3e1] { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px;
}
.tcd-fact[data-v-4b22f3e1] {
  flex: 1 1 150px; padding: 9px 12px; border-radius: 8px;
  background: var(--color-bg-subtle, #F7F8FC);
  display: flex; flex-direction: column; gap: 2px;
}
.tcd-fact span[data-v-4b22f3e1]   { font: 400 10px/15px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
.tcd-fact strong[data-v-4b22f3e1] { font: 600 12px/18px 'Poppins', sans-serif; color: var(--color-text-body, #1F2439);
}
.tcd-fact--warn[data-v-4b22f3e1]  { background: #FFF7ED;
}
.tcd-fact--warn strong[data-v-4b22f3e1] { color: #B45309;
}
.tcd-charge[data-v-4b22f3e1] {
  margin-top: 14px; padding: 12px;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
}
.tcd-calc[data-v-4b22f3e1] { display: flex; flex-direction: column; gap: 2px;
}
.tcd-calc-row[data-v-4b22f3e1] {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  font: 400 12px/18px 'Poppins', sans-serif; padding: 3px 0;
  color: var(--color-text-body, #1F2439);
}
.tcd-calc-row--sum[data-v-4b22f3e1] {
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
  margin-top: 6px; padding-top: 8px;
}
.tcd-calc-row--sum span[data-v-4b22f3e1]   { font: 400 12px/18px 'Poppins', sans-serif;
}
.tcd-calc-row--sum strong[data-v-4b22f3e1] { font: 600 18px/26px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
.tcd-calc-row--sub[data-v-4b22f3e1] {
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
  margin-top: 6px; padding-top: 8px; font-weight: 600;
}
.tcd-minus[data-v-4b22f3e1] { color: #065F46;
}
.tcd-then[data-v-4b22f3e1] { display: flex; flex-direction: column; gap: 2px; margin-top: 6px;
}
.tcd-then span[data-v-4b22f3e1] { font: 400 11px/17px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
.tcd-unknown[data-v-4b22f3e1] { font: 600 13px/20px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
.tcd-calc-toggle[data-v-4b22f3e1] {
  background: none; border: none; padding: 6px 0 0; cursor: pointer;
  font: 600 11px/16px 'Poppins', sans-serif; color: var(--color-primary, #4353FF);
}
.tcd-foot[data-v-4b22f3e1] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px;
}
@media (max-width: 560px) {
.tcd-row[data-v-4b22f3e1], .tcd-cap-row[data-v-4b22f3e1] { grid-template-columns: 1fr auto;
}
.tcd-row > span[data-v-4b22f3e1]:nth-child(2), .tcd-cap-row > span[data-v-4b22f3e1]:nth-child(2) { display: none;
}
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-c7e07e14] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-c7e07e14] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-c7e07e14] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-c7e07e14] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-c7e07e14] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-c7e07e14] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-c7e07e14] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-c7e07e14] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-c7e07e14] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-c7e07e14] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-c7e07e14] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-c7e07e14] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-c7e07e14]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-c7e07e14]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-c7e07e14] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-c7e07e14]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-c7e07e14] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-c7e07e14] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-c7e07e14] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-c7e07e14] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-c7e07e14] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-c7e07e14] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-c7e07e14]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-c7e07e14] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-c7e07e14]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-c7e07e14] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-c7e07e14] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-c7e07e14] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-c7e07e14]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-c7e07e14]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-c7e07e14] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-c7e07e14] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-c7e07e14] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-c7e07e14] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-c7e07e14] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-c7e07e14] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-c7e07e14] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-c7e07e14] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-c7e07e14] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-c7e07e14] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-c7e07e14] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-c7e07e14]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-c7e07e14]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-c7e07e14]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-c7e07e14] { margin-bottom: 16px;
}
.ws-field[data-v-c7e07e14]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-c7e07e14] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-c7e07e14] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-c7e07e14] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-c7e07e14]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-c7e07e14] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-c7e07e14]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-c7e07e14] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-c7e07e14] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-c7e07e14] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-c7e07e14] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-c7e07e14] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-c7e07e14] { color: #B45309;
}
.close-moved[data-v-c7e07e14] {
  margin: 4px 0 0; font: 400 12px/18px var(--font-family-body, 'Poppins', sans-serif);
  color: var(--color-text-label, #47506A);
}
.close-moved-link[data-v-c7e07e14] { color: var(--color-primary-link, #4353FF); text-decoration: none; font-weight: 500;
}
.close-moved-link[data-v-c7e07e14]:hover { text-decoration: underline;
}

/* ── Cycle-change breakdown dialog (PLAN-073 C-new-7) ── */
.cyc-overlay[data-v-c7e07e14] {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(2, 6, 49, 0.45);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.cyc-modal[data-v-c7e07e14] {
  background: var(--color-bg-card, #FFFFFF);
  border-radius: 12px; padding: 24px;
  width: 100%; max-width: 680px; max-height: 86vh; overflow-y: auto;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.cyc-title[data-v-c7e07e14] { font-size: 16px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 6px;
}
.cyc-lead[data-v-c7e07e14]  { font-size: 12px; color: var(--color-text-label, #47506A); margin: 0 0 16px; line-height: 1.5;
}
.cyc-muted[data-v-c7e07e14] { font-size: 11px; color: var(--color-text-label, #47506A); margin: 6px 0 0; line-height: 1.5;
}
/* Applies to the whole comparison table above it, so it sits under the table rather than inside a
   cell — repeating "excluding tax" in every money cell would drown the figures being compared. */
.cyc-tax-note[data-v-c7e07e14] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  margin: 8px 0 0;
  cursor: help;
}
.cyc-warn[data-v-c7e07e14]  { font-size: 11px; color: #B45309; margin: 6px 0 0; line-height: 1.5;
}
.cyc-table[data-v-c7e07e14] { border: 1px solid var(--color-border-subtle, #E6E8F0); border-radius: 8px; overflow: hidden;
}
.cyc-row[data-v-c7e07e14] {
  display: grid; grid-template-columns: 1fr auto auto auto; gap: 14px;
  padding: 9px 12px; font-size: 12px; color: var(--color-text-body, #1F2439);
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
}
.cyc-row[data-v-c7e07e14]:first-child { border-top: none;
}
.cyc-row--head[data-v-c7e07e14] {
  background: var(--color-bg-subtle, #F7F8FC);
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-label, #47506A);
}
.cyc-row--total[data-v-c7e07e14] { font-weight: 600; background: var(--color-bg-subtle, #F7F8FC);
}
.cyc-row span[data-v-c7e07e14]:nth-child(2), .cyc-row span[data-v-c7e07e14]:nth-child(3),
.cyc-row span[data-v-c7e07e14]:nth-child(4) { text-align: right; min-width: 96px;
}
.cyc-new[data-v-c7e07e14] { color: var(--color-primary, #4353FF);
}
.cyc-suite[data-v-c7e07e14] { display: block; font-style: normal; font-size: 10px; color: var(--color-text-label, #47506A);
}
.cyc-save[data-v-c7e07e14] {
  margin-top: 12px; padding: 10px 12px; border-radius: 8px;
  background: #ECFDF5; color: #065F46; font-size: 11px; line-height: 1.6;
}
.cyc-facts[data-v-c7e07e14] { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px;
}
.cyc-fact[data-v-c7e07e14] {
  flex: 1 1 150px; padding: 9px 12px; border-radius: 8px;
  background: var(--color-bg-subtle, #F7F8FC);
  display: flex; flex-direction: column; gap: 2px;
}
.cyc-fact span[data-v-c7e07e14]   { font-size: 10px; color: var(--color-text-label, #47506A);
}
.cyc-fact strong[data-v-c7e07e14] { font-size: 12px; color: var(--color-text-body, #1F2439);
}
.cyc-charge[data-v-c7e07e14] {
  margin-top: 14px; padding: 12px;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
}
.cyc-charge-row[data-v-c7e07e14] { display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
}
.cyc-charge-row span[data-v-c7e07e14]   { font-size: 12px; color: var(--color-text-body, #1F2439);
}
.cyc-charge-row strong[data-v-c7e07e14] { font-size: 18px; color: var(--color-primary-dark, #020631);
}
.cyc-row--suite[data-v-c7e07e14] { background: #F4F6FF; font-weight: 600;
}
.cyc-row--member span[data-v-c7e07e14]:first-child { padding-left: 14px; color: var(--color-text-label, #47506A);
}
.cyc-row--saving[data-v-c7e07e14] { background: #ECFDF5;
}
.cyc-row--saving span[data-v-c7e07e14]:first-child { color: #065F46; font-size: 11px;
}
.cyc-strike[data-v-c7e07e14] { text-decoration: line-through; opacity: 0.5; margin-right: 6px; font-weight: 400;
}
.cyc-minus[data-v-c7e07e14] { color: #065F46;
}
/* The "if nothing changes" figure. Struck AND muted, because here it is genuinely the price being
   replaced rather than a second live amount — which is what made the earlier strikethrough misleading
   when it sat next to the current monthly rate in the same column. */
.cyc-was[data-v-c7e07e14] { color: var(--color-text-placeholder, #9CA5BE); text-decoration: line-through;
}
.cyc-tag--save[data-v-c7e07e14] { color: #065F46;
}
.cyc-unknown[data-v-c7e07e14] { font-size: 13px !important; color: var(--color-text-label, #47506A);
}
.cyc-calc-row--muted span[data-v-c7e07e14] { color: var(--color-text-label, #47506A); font-size: 11px;
}
.cyc-tag[data-v-c7e07e14] { display: block; font-style: normal; font-size: 10px; font-weight: 400; color: var(--color-text-label, #47506A);
}
.cyc-calc[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 2px;
}
.cyc-calc-row[data-v-c7e07e14] { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 12px; padding: 3px 0;
}
.cyc-calc-row--sum[data-v-c7e07e14] {
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
  margin-top: 6px; padding-top: 8px;
}
.cyc-calc-row--sum strong[data-v-c7e07e14] { font-size: 18px; color: var(--color-primary-dark, #020631);
}
.cyc-then[data-v-c7e07e14] {
  margin-top: 10px; padding: 8px 10px; border-radius: 6px;
  background: var(--color-bg-subtle, #F7F8FC); font-size: 11px;
  display: flex; flex-direction: column; gap: 2px;
}
.cyc-toggle[data-v-c7e07e14] {
  background: none; border: none; padding: 0; cursor: pointer;
  font: inherit; color: inherit; display: inline-flex; align-items: center; gap: 6px;
}
.cyc-caret[data-v-c7e07e14] { display: inline-block; transition: transform 0.15s; color: var(--color-text-label, #47506A);
}
.cyc-caret--open[data-v-c7e07e14] { transform: rotate(90deg);
}
.cyc-calc-toggle[data-v-c7e07e14] {
  background: none; border: none; padding: 0; margin: 10px 0 0; cursor: pointer;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: var(--color-primary, #4353FF); text-decoration: underline;
}
.cyc-calc-toggle[data-v-c7e07e14]:hover { opacity: 0.8;
}
.cyc-calc-row--sub[data-v-c7e07e14] {
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
  margin-top: 4px; padding-top: 6px; font-weight: 600;
}
.cyc-ending[data-v-c7e07e14] {
  margin-top: 12px; padding: 10px 12px; border-radius: 8px;
  background: var(--color-bg-subtle, #F7F8FC);
  border: 1px dashed var(--color-border-default, #E5E7EF);
}
.cyc-ending-title[data-v-c7e07e14] { font-size: 11px; font-weight: 600; color: var(--color-text-label, #47506A); margin: 0 0 6px;
}
.cyc-ending-row[data-v-c7e07e14] {
  display: flex; justify-content: space-between; gap: 12px;
  font-size: 11px; color: var(--color-text-placeholder, #9CA5BE); padding: 2px 0;
}
.cyc-ending-row span[data-v-c7e07e14]:first-child { text-decoration: line-through;
}
.cyc-foot[data-v-c7e07e14] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px;
}


/* Billing-cycle switch row */
.cycle-row[data-v-c7e07e14] {
  margin-top: 18px; padding-top: 16px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.cycle-note[data-v-c7e07e14] {
  flex: 1; min-width: 240px; margin: 0;
  font: 400 12px/18px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
/* Savings badge beside the switch button (PLAN-085 F-11).
   Green rather than the primary blue: the button is the action and must stay the strongest element
   on the row, so the badge reads as a reward attached to it, not a second control competing with it.
   Wrapped in .cycle-cta so the two stay on one line and wrap together on narrow widths. */
.cycle-cta[data-v-c7e07e14] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.cycle-save[data-v-c7e07e14] {
  display: inline-flex; align-items: baseline; gap: 6px;
  padding: 4px 10px; border-radius: 999px;
  background: #DCFCE7; color: #15803D;
  font: 600 12px/18px 'Poppins', sans-serif; white-space: nowrap;
}
.cycle-save-amt[data-v-c7e07e14] { font-weight: 400; opacity: 0.85;
}
.cycle-save--hold[data-v-c7e07e14] { margin-right: 6px;
}
.cycle-hold[data-v-c7e07e14] {
  margin: 8px 0 0; font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.cycle-hold strong[data-v-c7e07e14] { font-weight: 600; color: var(--color-primary-dark, #020631);
}
.cycle-error[data-v-c7e07e14] {
  margin: 10px 0 0; font: 400 12px/18px 'Poppins', sans-serif; color: #C62828;
}
/* Tier upgrade row (PLAN-079). Same shape as the cycle row it sits under; the lighter divider keeps
   the two from reading as unrelated cards stacked in one body. `a.ws-btn-ghost` because the
   contact-sales affordance is a mailto link, not a button. */
.tier-row[data-v-c7e07e14] { border-top-style: dashed;
}
.tier-row a.ws-btn-ghost[data-v-c7e07e14] { text-decoration: none; display: inline-flex; align-items: center;
}
.plan-head[data-v-c7e07e14] { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; flex-wrap: wrap;
}
.plan-name[data-v-c7e07e14] { font: 600 18px/28px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
.plan-facts[data-v-c7e07e14] { display: flex; flex-wrap: wrap; gap: 28px;
}
.plan-fact[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 2px;
}
.plan-fact-k[data-v-c7e07e14] {
  font: 400 12px/16px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase; letter-spacing: .04em;
}
.plan-fact-v[data-v-c7e07e14] { font: 600 14px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
/* Deliberately quiet and NOT a badge: it qualifies the amount it sits beside, it is not a status.
   Sized down so the figure stays the thing the eye lands on, but never hidden behind a hover —
   an exclusive-tax disclosure has to be readable without interaction. The title attribute carries
   the longer explanation for anyone who wants it. */
.plan-fact-tax[data-v-c7e07e14] {
  display: block;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  cursor: help;
}

/* History — expandable transaction records (GCP DS tokens throughout) */
.hist-list[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 10px;
}
.hist-rec[data-v-c7e07e14] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;                 /* DS small radius */
  overflow: hidden;
  background: var(--color-bg-card, #FFFFFF);
}
.hist-rec-head[data-v-c7e07e14] {
  width: 100%; display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; background: none; border: none; cursor: pointer; text-align: left;
  font-family: 'Poppins', sans-serif;
}
.hist-rec-head[data-v-c7e07e14]:hover { background: #F5F5F5;
}   /* DS semantic-bg/grey */
.hist-rec-caret[data-v-c7e07e14] { color: #9CA5BE; flex: none; display: flex; transition: transform .15s;
}
.hist-rec-caret.open[data-v-c7e07e14] { transform: rotate(90deg);
}

/* Transaction-type chip */
.hist-tx-chip[data-v-c7e07e14] {
  font: 600 10px/16px 'Poppins', sans-serif; letter-spacing: .03em; text-transform: uppercase;
  border-radius: 4px; padding: 2px 8px; flex: none; white-space: nowrap;
}
.hist-tx-chip--buy[data-v-c7e07e14]  { background: #ECEEFF; color: #4353FF;
}   /* DS Blue 10 / primary */
.hist-tx-chip--pay[data-v-c7e07e14]  { background: #E8F5E9; color: #2E7D32;
}   /* DS success family */
.hist-tx-chip--rem[data-v-c7e07e14]  { background: #FDECEA; color: #C62828;
}   /* DS error family */
.hist-tx-chip--info[data-v-c7e07e14] { background: #F5F5F5; color: #47506A;
}   /* DS grey / label */
.hist-rec-main[data-v-c7e07e14] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.hist-rec-summary[data-v-c7e07e14] { font: 500 14px/20px 'Poppins', sans-serif; color: #020631;
}
.hist-rec-when[data-v-c7e07e14] { font: 400 12px/16px 'Poppins', sans-serif; color: #535F7F;
}
.hist-rec-right[data-v-c7e07e14] { display: flex; align-items: center; gap: 10px; flex: none;
}
.hist-rec-amount[data-v-c7e07e14] { font: 600 14px/20px 'Poppins', sans-serif; color: #020631;
}
.hist-rec-pdf-hint[data-v-c7e07e14] {
  font: 500 11px/16px 'Poppins', sans-serif; color: #4353FF;
  background: #ECEEFF; border-radius: 4px; padding: 1px 7px;      /* DS Blue 10 */
}
/* This period / Next period — two equal columns that stack on a narrow content well. The Billing tab
   sits in a ~745px column, so 420px is the point below which two columns of money lines stop being
   readable. */
/* Second-level segmented control. Same tokens as the marketplace view toggle so the two second-level
   navigations in the product look like one pattern; `align-self: start` keeps it hugging its labels
   instead of stretching to the panel width. */
.bsub-bar[data-v-c7e07e14] {
  display: flex; align-self: flex-start; gap: 2px; padding: 3px;
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
}
.bsub-btn[data-v-c7e07e14] {
  background: none; border: none; border-radius: 6px; padding: 6px 14px;
  font: 400 13px/18px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
  cursor: pointer; white-space: nowrap; transition: background .15s, color .15s;
}
.bsub-btn[data-v-c7e07e14]:hover:not(.bsub-btn--active) { color: var(--color-primary-dark, #020631);
}
.bsub-btn--active[data-v-c7e07e14] {
  background: var(--color-bg-card, #FFFFFF);
  color: var(--color-primary-dark, #020631);
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(2, 6, 49, 0.08);
}
/* At 500px the three labels overflowed the container and the last one was clipped. A segmented control
   should not wrap — it stops reading as one control — so it stretches to the full width instead and the
   buttons share it. */
@media (max-width: 620px) {
.bsub-bar[data-v-c7e07e14] { align-self: stretch;
}
.bsub-btn[data-v-c7e07e14] { flex: 1; padding: 7px 6px; font-size: 12px; text-align: center;
}
}

/* Stacked collapsible panels. The header is the button: caret, title + range, then the headline figure
   right-aligned so it survives the panel being shut. */
.per-card[data-v-c7e07e14] { display: flex; flex-direction: column;
}
/* Recessed against the two live panels: this is a closed term, and it should not compete with the
   period the customer is actually in. Muted ground and label-weight heading rather than a smaller
   card, so the amount stays as legible as the others. */
.per-card--prev[data-v-c7e07e14] { background: var(--color-surface-page, #F9F9FC);
}
.per-card--prev .ws-card-title[data-v-c7e07e14] { color: var(--color-text-label, #47506A);
}
.per-card--prev .per-amount[data-v-c7e07e14] { color: var(--color-text-label, #47506A);
}
/* Padding lives on the header and body, not the card: .ws-card itself has none — its inner
   .ws-card-header (14px 20px) and .ws-card-body (20px) supply it, and these mirror those so the panels
   line up with every other card on the tab. */
.per-head[data-v-c7e07e14] {
  display: flex; align-items: center; gap: 12px; width: 100%;
  background: none; border: none; padding: 14px 20px; cursor: pointer; text-align: left; font: inherit;
}
.per-head[data-v-c7e07e14]:hover { background: #FAFAFB;
}
.per-caret[data-v-c7e07e14] { display: inline-flex; color: #7A8399; transition: transform .18s; flex: none;
}
.per-caret.open[data-v-c7e07e14] { transform: rotate(90deg);
}
.per-head-main[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0;
}
.per-head-amt[data-v-c7e07e14] { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; flex: none;
}
.per-body[data-v-c7e07e14] {
  padding: 14px 20px 18px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.per-range[data-v-c7e07e14] { font: 400 12px/16px 'Poppins', sans-serif; color: #7A8399;
}
.per-amount[data-v-c7e07e14] { font: 600 22px/28px 'Poppins', sans-serif; color: #020631; letter-spacing: -0.01em; white-space: nowrap;
}
.per-amount-k[data-v-c7e07e14] { font: 400 11px/15px 'Poppins', sans-serif; color: #7A8399; white-space: nowrap;
}
.per-sub[data-v-c7e07e14] { margin: 0 0 4px; font: 400 12px/16px 'Poppins', sans-serif; color: #7A8399;
}
@media (max-width: 560px) {
  /* Below this the amount and the title fight for the same row, so let the header wrap. */
.per-head[data-v-c7e07e14] { flex-wrap: wrap;
}
.per-head-amt[data-v-c7e07e14] { align-items: flex-start; width: 100%; padding-left: 24px;
}
}
.per-callout[data-v-c7e07e14] {
  margin: 10px 0 0; font: 400 12px/17px 'Poppins', sans-serif; color: #92400E;
  background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 8px; padding: 8px 10px;
}
.per-lines[data-v-c7e07e14] { margin-top: 12px; display: flex; flex-direction: column;
}
.per-line[data-v-c7e07e14] {
  display: flex; align-items: center; gap: 10px; padding: 7px 0;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.per-line[data-v-c7e07e14]:first-child { border-top: none;
}
.per-line-date[data-v-c7e07e14] { font: 400 12px/16px 'Poppins', sans-serif; color: #7A8399; flex: none; min-width: 46px;
}
.per-line-name[data-v-c7e07e14] {
  font: 400 13px/18px 'Poppins', sans-serif; color: #020631; flex: 1; min-width: 0;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.per-line-amt[data-v-c7e07e14] { font: 500 13px/18px 'Poppins', sans-serif; color: #020631; flex: none; white-space: nowrap;
}
.per-line-link[data-v-c7e07e14] { font: 500 11px/16px 'Poppins', sans-serif; color: #4353FF; flex: none; text-decoration: none;
}
.per-line-link[data-v-c7e07e14]:hover { text-decoration: underline;
}
/* List price shown before the billed amount, struck through (PLAN-085 F-08). Muted and lighter so
   the amount actually being charged stays the one the eye lands on. */
.per-line-was[data-v-c7e07e14] { color: #7A8399; font-weight: 400; margin-right: 6px; text-decoration: line-through;
}
.per-line--savings .per-line-name[data-v-c7e07e14], .per-line--savings .per-line-amt[data-v-c7e07e14] { color: #1F9254;
}
.per-line--total[data-v-c7e07e14] { border-top: 1px solid #C9CFDD; margin-top: 2px; padding-top: 10px;
}
.per-line--total .per-line-name[data-v-c7e07e14], .per-line--total .per-line-amt[data-v-c7e07e14] { font-weight: 600;
}
.per-tag[data-v-c7e07e14] {
  font: 500 10px/14px 'Poppins', sans-serif; font-style: normal; color: #535F7F;
  background: #F2F4F8; border-radius: 4px; padding: 1px 6px; white-space: nowrap;
}
.per-tag--suite[data-v-c7e07e14] { color: #4353FF; background: #ECEEFF;
}
.per-empty[data-v-c7e07e14] { margin: 10px 0 0; font: 400 12px/17px 'Poppins', sans-serif; color: #7A8399;
}
.per-ending[data-v-c7e07e14] {
  margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--color-border-default, #E5E7EF);
  display: flex; flex-direction: column; gap: 3px;
}
.per-ending-title[data-v-c7e07e14] {
  font: 500 10px/14px 'Poppins', sans-serif; color: #7A8399;
  text-transform: uppercase; letter-spacing: .04em;
}
.per-ending-line[data-v-c7e07e14] { font: 400 12px/17px 'Poppins', sans-serif; color: #92400E;
}

/* History search — sits in the card header, right-aligned against the title. */
.hist-search[data-v-c7e07e14] {
  display: flex; align-items: center; gap: 6px; flex: none;
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px; padding: 5px 10px; min-width: 210px;
}
.hist-search[data-v-c7e07e14]:focus-within { border-color: var(--color-primary, #4353FF);
}
.hist-search-icon[data-v-c7e07e14] { color: #9CA5BE; flex: none;
}
.hist-search-input[data-v-c7e07e14] {
  border: none; background: none; outline: none; flex: 1; min-width: 0;
  font: 400 13px/18px 'Poppins', sans-serif; color: #020631;
}
.hist-search-input[data-v-c7e07e14]::placeholder { color: #9CA5BE;
}
/* The stock control renders a second, differently-styled clear affordance next to ours. */
.hist-search-input[data-v-c7e07e14]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none;
}
.hist-search-clear[data-v-c7e07e14] {
  border: none; background: none; cursor: pointer; color: #7A8399; flex: none;
  font: 400 16px/16px 'Poppins', sans-serif; padding: 0 2px;
}
.hist-search-clear[data-v-c7e07e14]:hover { color: #020631;
}
.hist-inline-link[data-v-c7e07e14] {
  border: none; background: none; padding: 0 0 0 4px; cursor: pointer;
  font: 500 12px/17px 'Poppins', sans-serif; color: #4353FF;
}
.hist-inline-link[data-v-c7e07e14]:hover { text-decoration: underline;
}
.hist-more[data-v-c7e07e14] { display: flex; justify-content: center; padding: 14px 0 4px;
}
.hist-more-count[data-v-c7e07e14] {
  margin-left: 8px; font: 400 11px/16px 'Poppins', sans-serif; color: #7A8399;
}
.hist-rec-nocharge[data-v-c7e07e14] {
  font: 500 11px/16px 'Poppins', sans-serif; color: #535F7F;
  background: #F2F4F8; border-radius: 4px; padding: 1px 7px; white-space: nowrap;
}
.hist-rec-body[data-v-c7e07e14] {
  padding: 6px 16px 14px 44px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  display: flex; flex-direction: column; gap: 4px;
}
/* Invoice facts — service period and settlement status, the two things on a record that come
   straight off the invoice. Laid out as label-over-value pairs so they read as reference data,
   not as another money row competing with Total charged. */
.hist-facts[data-v-c7e07e14] { display: flex; flex-wrap: wrap; gap: 8px 28px; padding: 8px 0 4px;
}
.hist-fact[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 1px;
}
.hist-fact-k[data-v-c7e07e14] {
  font: 500 10px/14px 'Poppins', sans-serif; color: #7A8399;
  text-transform: uppercase; letter-spacing: .04em;
}
.hist-fact-v[data-v-c7e07e14] { font: 400 12px/18px 'Poppins', sans-serif; color: #020631;
}
.hist-fact-v--ok[data-v-c7e07e14] { color: #2E7D32; text-transform: capitalize;
}
.hist-note[data-v-c7e07e14] {
  margin: 4px 0 0; font: 400 12px/17px 'Poppins', sans-serif; color: #535F7F;
  background: #F7F8FB; border-left: 2px solid #C9CFDD; border-radius: 0 4px 4px 0; padding: 7px 10px;
}
.hist-change[data-v-c7e07e14] { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0;
}
.hist-change-text[data-v-c7e07e14] { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.hist-change-action[data-v-c7e07e14] {
  font: 500 13px/18px 'Poppins', sans-serif; color: #020631; text-transform: capitalize;
}
.hist-change-detail[data-v-c7e07e14] { font: 400 12px/18px 'Poppins', sans-serif; color: #535F7F; word-break: break-word;
}
.hist-line[data-v-c7e07e14] { display: flex; align-items: center; gap: 10px; padding: 6px 0;
}
/* Subtotal + tax rows. Separated from the app lines above but visually lighter than the
   Total-charged row below, so the block reads as arithmetic building to the total rather than as
   three competing amounts. */
.hist-line--sub[data-v-c7e07e14] { margin-top: 4px; padding-top: 6px;
}
.hist-line--sub[data-v-c7e07e14]:first-of-type { border-top: 1px dashed var(--color-border-default, #E5E7EF); padding-top: 12px;
}
.hist-line--sub .hist-line-charged-amt[data-v-c7e07e14] { font-weight: 500; color: var(--color-text-label, #47506A);
}
.hist-line--pay[data-v-c7e07e14] { border-top: 1px solid var(--color-border-default, #E5E7EF); margin-top: 4px; padding-top: 12px;
}
.hist-line-badge[data-v-c7e07e14] {
  font: 600 10px/16px 'Poppins', sans-serif; border-radius: 4px; padding: 1px 8px;
  text-transform: uppercase; letter-spacing: .03em; flex: none;
}
.hist-line-badge--add[data-v-c7e07e14]  { background: #E8F5E9; color: #2E7D32;
}   /* DS success */
.hist-line-badge--rem[data-v-c7e07e14]  { background: #FDECEA; color: #C62828;
}   /* DS error */
.hist-line-badge--info[data-v-c7e07e14] { background: #ECEEFF; color: #4353FF;
}
.hist-line-name[data-v-c7e07e14] {
  font: 400 13px/18px 'Poppins', sans-serif; color: #020631; flex: 1; min-width: 0;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.hist-line-suite[data-v-c7e07e14] {
  font: 500 11px/16px 'Poppins', sans-serif; color: #4353FF;      /* DS primary */
  background: #ECEEFF; border-radius: 4px; padding: 1px 7px; flex: none; white-space: nowrap;  /* DS Blue 10 */
}
.hist-line-price[data-v-c7e07e14] { font: 600 13px/20px 'Poppins', sans-serif; color: #020631; flex: none; white-space: nowrap;
}
.hist-line-charged[data-v-c7e07e14] { font: 500 13px/20px 'Poppins', sans-serif; color: #47506A; flex: 1;
}
.hist-line-charged-amt[data-v-c7e07e14] { font: 700 14px/20px 'Poppins', sans-serif; color: #020631; flex: none;
}

/* Section labels + suite panels (mirror the purchase receipt) */
.hist-sec-label[data-v-c7e07e14] {
  font: 600 10px/16px 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: .05em;
  margin: 8px 0 2px;
}
.hist-sec-label--add[data-v-c7e07e14] { color: #2E7D32;
}
.hist-sec-label--rem[data-v-c7e07e14] { color: #C62828;
}
.hist-suite[data-v-c7e07e14] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px; margin: 4px 0; overflow: hidden;
}
.hist-suite-head[data-v-c7e07e14] {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; background: #F5F5F5;              /* DS semantic-bg/grey */
}
.hist-suite-name[data-v-c7e07e14] { font: 600 13px/18px 'Poppins', sans-serif; color: #020631;
}
.hist-suite-count[data-v-c7e07e14] { font: 400 11px/16px 'Poppins', sans-serif; color: #47506A;
}
.hist-suite-save[data-v-c7e07e14] {
  font: 600 10px/16px 'Poppins', sans-serif; color: #2E7D32;
  background: #E8F5E9; border-radius: 4px; padding: 1px 7px;
}
.hist-suite-total[data-v-c7e07e14] { margin-left: auto; font: 700 13px/18px 'Poppins', sans-serif; color: #020631;
}
.hist-suite-body[data-v-c7e07e14] { padding: 4px 10px 8px; display: flex; flex-direction: column;
}
.hist-member[data-v-c7e07e14] { display: flex; align-items: center; gap: 8px; padding: 5px 0;
}
.hist-member-name[data-v-c7e07e14] { flex: 1; min-width: 0; font: 400 12px/18px 'Poppins', sans-serif; color: #47506A;
}
.hist-strike[data-v-c7e07e14] { font: 400 11px/16px 'Poppins', sans-serif; color: #9CA5BE; text-decoration: line-through;
}
.hist-member-price[data-v-c7e07e14] { font: 600 12px/18px 'Poppins', sans-serif; color: #020631; flex: none;
}
.hist-member--save[data-v-c7e07e14] { border-top: 1px dashed var(--color-border-default, #E5E7EF); margin-top: 2px; padding-top: 7px;
}
.hist-member--save .hist-member-name[data-v-c7e07e14] { color: #2E7D32; font-weight: 500;
}
.hist-save-amt[data-v-c7e07e14] { font: 600 12px/18px 'Poppins', sans-serif; color: #2E7D32; flex: none;
}
.hist-pdf-btn[data-v-c7e07e14] { height: 28px; padding: 0 10px; font-size: 12px; display: inline-flex; align-items: center; text-decoration: none; flex: none;
}
.hist-more[data-v-c7e07e14] {
  width: 100%; margin-top: 4px; height: 36px; background: none; cursor: pointer;
  border: 1px dashed var(--color-border-default, #E5E7EF); border-radius: 9px;
  font: 600 12px/1 'Poppins', sans-serif; color: var(--color-primary, #4353FF);
  transition: background 0.15s, border-color 0.15s;
}
.hist-more[data-v-c7e07e14]:hover { background: #F4F5FF; border-color: var(--color-primary, #4353FF);
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-0f53b5ed] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-0f53b5ed] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-0f53b5ed] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-0f53b5ed] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-0f53b5ed] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-0f53b5ed] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-0f53b5ed] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-0f53b5ed] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-0f53b5ed] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-0f53b5ed] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-0f53b5ed] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-0f53b5ed] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-0f53b5ed]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-0f53b5ed]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-0f53b5ed] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-0f53b5ed]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-0f53b5ed] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-0f53b5ed] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-0f53b5ed] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-0f53b5ed] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-0f53b5ed] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-0f53b5ed] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-0f53b5ed] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-0f53b5ed]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-0f53b5ed] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-0f53b5ed]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-0f53b5ed] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-0f53b5ed] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-0f53b5ed] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-0f53b5ed]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-0f53b5ed]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-0f53b5ed] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-0f53b5ed] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-0f53b5ed] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-0f53b5ed] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-0f53b5ed] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-0f53b5ed] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-0f53b5ed] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-0f53b5ed] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-0f53b5ed] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-0f53b5ed] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-0f53b5ed] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-0f53b5ed] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-0f53b5ed]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-0f53b5ed]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-0f53b5ed]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-0f53b5ed] { margin-bottom: 16px;
}
.ws-field[data-v-0f53b5ed]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-0f53b5ed] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-0f53b5ed] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-0f53b5ed] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-0f53b5ed]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-0f53b5ed] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-0f53b5ed]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-0f53b5ed] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-0f53b5ed] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-0f53b5ed] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-0f53b5ed] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-0f53b5ed] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-0f53b5ed] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-0f53b5ed] { color: #B45309;
}
.ws-coming-soon-wrap[data-v-0f53b5ed] {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}
.ws-coming-soon-content[data-v-0f53b5ed] {
  pointer-events: none;
  user-select: none;
}
.int-desc[data-v-0f53b5ed] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin-top: 2px;
}
.wh-url[data-v-0f53b5ed] {
  font-size: 12px;
  font-family: 'Menlo', 'Consolas', monospace;
  color: var(--color-text-helper, #535F7F);
  background: var(--color-bg-page, #F9F9FC);
  padding: 2px 6px;
  border-radius: 4px;
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-8d189231] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-8d189231] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-8d189231] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-8d189231] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-8d189231] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-8d189231] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-8d189231] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-8d189231] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-8d189231] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-8d189231] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-8d189231] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-8d189231] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-8d189231]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-8d189231]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-8d189231] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-8d189231]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-8d189231] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-8d189231] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-8d189231] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-8d189231] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-8d189231] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-8d189231] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-8d189231] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-8d189231]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-8d189231] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-8d189231]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-8d189231] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-8d189231] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-8d189231] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-8d189231]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-8d189231]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-8d189231] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-8d189231] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-8d189231] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-8d189231] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-8d189231] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-8d189231] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-8d189231] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-8d189231] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-8d189231] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-8d189231] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-8d189231] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-8d189231] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-8d189231]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-8d189231]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-8d189231]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-8d189231] { margin-bottom: 16px;
}
.ws-field[data-v-8d189231]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-8d189231] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-8d189231] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-8d189231] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-8d189231]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-8d189231] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-8d189231]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-8d189231] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-8d189231] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-8d189231] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-8d189231] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-8d189231] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-8d189231] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-8d189231] { color: #B45309;
}
.ws-coming-soon-wrap[data-v-8d189231] {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}
.ws-coming-soon-content[data-v-8d189231] {
  pointer-events: none;
  user-select: none;
}
.policy-grid[data-v-8d189231] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 32px;
}
.mono[data-v-8d189231] { font-family: 'Menlo','Consolas',monospace; font-size: 12px;
}
.domain-chips[data-v-8d189231] { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px;
}
.domain-chip[data-v-8d189231] {
  padding: 2px 10px;
  background: #E9F2FF; /* local */
  color: var(--color-primary, #4353FF);
  border-radius: 12px;
  font: 600 12px/20px 'Poppins', sans-serif;
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-96d44b16] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-96d44b16] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-96d44b16] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-96d44b16] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-96d44b16] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-96d44b16] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-96d44b16] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-96d44b16] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-96d44b16] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-96d44b16] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-96d44b16] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-96d44b16] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-96d44b16]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-96d44b16]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-96d44b16] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-96d44b16]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-96d44b16] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-96d44b16] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-96d44b16] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-96d44b16] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-96d44b16] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-96d44b16] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-96d44b16] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-96d44b16]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-96d44b16] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-96d44b16]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-96d44b16] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-96d44b16] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-96d44b16] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-96d44b16]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-96d44b16]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-96d44b16] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-96d44b16] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-96d44b16] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-96d44b16] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-96d44b16] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-96d44b16] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-96d44b16] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-96d44b16] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-96d44b16] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-96d44b16] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-96d44b16] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-96d44b16] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-96d44b16]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-96d44b16]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-96d44b16]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-96d44b16] { margin-bottom: 16px;
}
.ws-field[data-v-96d44b16]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-96d44b16] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-96d44b16] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-96d44b16] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-96d44b16]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-96d44b16] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-96d44b16]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-96d44b16] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-96d44b16] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-96d44b16] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-96d44b16] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-96d44b16] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-96d44b16] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-96d44b16] { color: #B45309;
}

/* Layout */
.ent-divider[data-v-96d44b16] { height: 1px; background: #E5E7EF;
}
.ent-col-header[data-v-96d44b16] {
  display: flex; align-items: center;
  padding: 0 20px; height: 36px; gap: 12px;
}
.ent-col-label[data-v-96d44b16] {
  font: 400 11px/15px 'Poppins', sans-serif;
  color: #47506A; text-transform: uppercase; letter-spacing: 0.4px;
}
.ent-row[data-v-96d44b16] {
  display: flex; align-items: center;
  padding: 14px 20px; gap: 12px;
  transition: background 0.1s;
}
.ent-row--disabled[data-v-96d44b16] { opacity: 0.6;
}
.ent-row[data-v-96d44b16]:hover { background: #FAFBFF;
}

/* App identity */
/* min-width: 0 so a long app name truncates inside its own column instead of widening it and shoving
   Status into the action buttons — the same overflow the Status column had, one column earlier. */
.ent-app-col[data-v-96d44b16] { display: flex; align-items: center; gap: 10px; min-width: 0;
}
.ent-app-icon[data-v-96d44b16] {
  width: 32px; height: 32px; border-radius: 6px; flex-shrink: 0;
  background: linear-gradient(135deg, #5E4ED4 0%, #4353FF 100%);
  display: flex; align-items: center; justify-content: center;
}
.ent-app-initials[data-v-96d44b16] { font: 700 11px/1 'Poppins', sans-serif; color: #fff; letter-spacing: 0.3px;
}
.ent-app-text[data-v-96d44b16] { display: flex; flex-direction: column; gap: 2px;
}
.ent-app-name[data-v-96d44b16] { font: 500 14px/20px 'Poppins', sans-serif; color: #020631;
}
.ent-app-cat[data-v-96d44b16]  { font: 400 12px/16px 'Poppins', sans-serif; color: #9CA5BE;
}
.ent-cell[data-v-96d44b16] { font: 400 14px/20px 'Poppins', sans-serif; color: #47506A;
}

/* Badges */
.ent-badge[data-v-96d44b16] {
  display: inline-flex; align-items: center; height: 22px; padding: 0 10px;
  border-radius: 11px; font: 400 12px/17px 'Poppins', sans-serif;
}
.ent-badge--enabled[data-v-96d44b16]  { background: #ECFDF5; color: #059669;
}
.ent-badge--disabled[data-v-96d44b16] { background: #F3F4F8; color: #9CA5BE;
}

/* Status column — badge, then any secondary line beneath it.
   A COLUMN, not a wrapping row. As a centred wrap-row the badge and its reason line were laid out
   side-by-side until they ran out of width, then spilled past the column edge and under the action
   buttons. Stacking makes the height grow instead of the width, which is what the content actually
   needs, and left-aligns both lines under the STATUS header. */
.ent-status-col[data-v-96d44b16] {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  min-width: 0;   /* lets the reason line wrap rather than force the column wider */
}

/* Pills (mirrors platform-admin-ui's AdminMarketplaceView "Default" pill) */
.pill[data-v-96d44b16] {
  display: inline-block; font-size: 11px; font-weight: 600;
  padding: 3px 10px; border-radius: 20px; letter-spacing: 0.2px; white-space: nowrap;
}
.pill--purple[data-v-96d44b16] { background: #EDE9FE; color: #5B21B6;
}

/* Action buttons.
   flex-shrink: 0 and a width that actually fits the content. It was 180px while the content needs 211
   (Disable 75 + gap 8 + "Manage subscription" 128), and with justify-content: flex-end the 31px of
   overflow spilled LEFTWARD into the status column — so the status text appeared to slide under the
   buttons. The status column was never too wide; the buttons were reaching back into it. */
.ent-actions[data-v-96d44b16] {
  display: flex; align-items: center; gap: 8px; justify-content: flex-end;
  flex-shrink: 0;
}
.ent-btn-toggle[data-v-96d44b16] {
  height: 30px; padding: 0 14px; border-radius: 6px;
  border: 1px solid #D1D5E8; background: #fff;
  font: 500 12px/17px 'Poppins', sans-serif; color: #47506A;
  cursor: pointer; white-space: nowrap;
}
.ent-btn-toggle[data-v-96d44b16]:hover:not(:disabled) { background: #F3F4F8;
}
.ent-btn-toggle[data-v-96d44b16]:disabled { opacity: 0.5; cursor: not-allowed;
}
.ent-btn-link[data-v-96d44b16] {
  appearance: none; border: 0; background: transparent;
  font: 500 12px/17px 'Poppins', sans-serif; color: #4353FF;
  text-decoration: underline; cursor: pointer; white-space: nowrap; padding: 0;
}
.ent-btn-link[data-v-96d44b16]:hover { opacity: 0.75;
}
.ent-suite-badge[data-v-96d44b16] { background: #EDE9FE; color: #5B21B6;
}

/* Error banner */
.ws-banner-error[data-v-96d44b16] {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; border-radius: 8px;
  background: #FEF2F2; border: 1px solid #FECDD3;
  font: 400 13px/20px 'Poppins', sans-serif; color: #DC2626;
}

/* Loading skeletons */
.ent-skeleton[data-v-96d44b16] {
  background: #E5E7EF; border-radius: 4px;
  animation: ent-pulse-96d44b16 1.4s ease-in-out infinite;
}
@keyframes ent-pulse-96d44b16 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.5;
}
}
.ent-skeleton--icon[data-v-96d44b16]   { width: 32px; height: 32px; border-radius: 6px; flex-shrink: 0;
}
.ent-skeleton--text[data-v-96d44b16]   { width: 120px; height: 14px;
}
.ent-skeleton--badge[data-v-96d44b16]  { width: 70px;  height: 22px; border-radius: 11px;
}
.ent-skeleton--pill[data-v-96d44b16]   { width: 60px;  height: 22px; border-radius: 11px;
}
.ent-skeleton--sm[data-v-96d44b16]     { width: 100px; height: 30px; border-radius: 6px;
}

/* Empty state */
.ent-empty[data-v-96d44b16] {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 48px 20px; gap: 12px;
}
.ent-empty-icon[data-v-96d44b16]  { width: 48px; height: 48px;
}
.ent-empty-text[data-v-96d44b16]  { font: 400 14px/20px 'Poppins', sans-serif; color: #9CA5BE; margin: 0;
}

/* ── PLAN-074 — lifecycle on the entitlements row ── */
/* Secondary, not alarming. Was #A31515 — an error red — for a plain statement of fact the customer
   themselves requested ("Cancels 1 Sep 2026 · requested by …"). A scheduled cancellation is not a
   failure, and colouring it like one makes a normal billing action read as something gone wrong.
   #9CA5BE is the muted tone this file already uses for secondary text (.ent-app-cat). */
.ent-lifecycle-reason[data-v-96d44b16] {
  font: 400 11px/15px 'Poppins', sans-serif; color: #9CA5BE;
  display: block; max-width: 100%;
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-07a4c604] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-07a4c604] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-07a4c604] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-07a4c604] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-07a4c604] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-07a4c604] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-07a4c604] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-07a4c604] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-07a4c604] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-07a4c604] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-07a4c604] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-07a4c604] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-07a4c604]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-07a4c604]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-07a4c604] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-07a4c604]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-07a4c604] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-07a4c604] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-07a4c604] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-07a4c604] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-07a4c604] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-07a4c604] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-07a4c604] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-07a4c604]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-07a4c604] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-07a4c604]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-07a4c604] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-07a4c604] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-07a4c604] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-07a4c604]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-07a4c604]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-07a4c604] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-07a4c604] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-07a4c604] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-07a4c604] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-07a4c604] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-07a4c604] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-07a4c604] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-07a4c604] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-07a4c604] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-07a4c604] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-07a4c604] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-07a4c604] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-07a4c604]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-07a4c604]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-07a4c604]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-07a4c604] { margin-bottom: 16px;
}
.ws-field[data-v-07a4c604]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-07a4c604] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-07a4c604] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-07a4c604] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-07a4c604]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-07a4c604] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-07a4c604]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-07a4c604] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-07a4c604] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-07a4c604] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-07a4c604] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-07a4c604] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-07a4c604] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-07a4c604] { color: #B45309;
}
.quota-meta[data-v-07a4c604] { display: flex; align-items: baseline; gap: 6px;
}
.quota-used[data-v-07a4c604] { font: 600 20px/28px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
.quota-total[data-v-07a4c604] { font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-helper, #535F7F);
}
.quota-pct[data-v-07a4c604] { font: 400 12px/16px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
}
.ws-loading[data-v-07a4c604], .ws-empty[data-v-07a4c604] { font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-helper, #535F7F); padding: 20px;
}
.ws-error[data-v-07a4c604] { font: 400 13px/20px 'Poppins', sans-serif; color: #CC5F0C; padding: 20px;
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-a93700a4] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-a93700a4] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-a93700a4] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-a93700a4] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-a93700a4] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-a93700a4] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-a93700a4] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-a93700a4] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-a93700a4] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-a93700a4] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-a93700a4] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-a93700a4] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-a93700a4]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-a93700a4]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-a93700a4] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-a93700a4]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-a93700a4] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-a93700a4] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-a93700a4] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-a93700a4] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-a93700a4] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-a93700a4] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-a93700a4] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-a93700a4]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-a93700a4] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-a93700a4]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-a93700a4] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-a93700a4] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-a93700a4] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-a93700a4]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-a93700a4]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-a93700a4] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-a93700a4] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-a93700a4] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-a93700a4] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-a93700a4] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-a93700a4] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-a93700a4] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-a93700a4] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-a93700a4] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-a93700a4] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-a93700a4] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-a93700a4] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-a93700a4]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-a93700a4]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-a93700a4]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-a93700a4] { margin-bottom: 16px;
}
.ws-field[data-v-a93700a4]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-a93700a4] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-a93700a4] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-a93700a4] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-a93700a4]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-a93700a4] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-a93700a4]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-a93700a4] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-a93700a4] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-a93700a4] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-a93700a4] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-a93700a4] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-a93700a4] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-a93700a4] { color: #B45309;
}
.ea-converted[data-v-a93700a4] { align-items: center; justify-content: space-between;
}

/* Two to four facts, so they wrap rather than stretching to the full card width. */
.ea-facts[data-v-a93700a4] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 20px;
}
.ea-note[data-v-a93700a4] {
  font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 16px 0 0;
}
.ea-error[data-v-a93700a4] {
  font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-error, #D60000);
  margin: 0;
}
.ea-cycle[data-v-a93700a4] { display: flex; gap: 4px; padding: 3px; background: var(--color-bg-page, #F9F9FC); border-radius: 8px;
}
.ea-cycle-btn[data-v-a93700a4] {
  font: 500 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  padding: 5px 14px;
  border: none;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
}
.ea-cycle-btn--on[data-v-a93700a4] { background: var(--color-bg-card, #FFFFFF); color: var(--color-primary-dark, #020631); box-shadow: 0 1px 2px rgba(2, 6, 49, 0.08);
}
.ea-cycle-btn[data-v-a93700a4]:disabled { opacity: 0.45; cursor: not-allowed;
}

/* Cards rather than full-bleed rows — as rows the price sits a metre from the name it belongs to. */
.ea-tiers[data-v-a93700a4] {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px;
}
.ea-tier[data-v-a93700a4] {
  display: flex; flex-direction: column; gap: 6px;
  height: 100%;
  padding: 14px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
}
.ea-tier--on[data-v-a93700a4]  { border-color: var(--color-primary, #4353FF); background: #F7F8FF;
}
.ea-tier--off[data-v-a93700a4] { cursor: not-allowed; opacity: 0.55;
}
.ea-tier-top[data-v-a93700a4]  { display: flex; align-items: center; gap: 8px;
}
.ea-tier-name[data-v-a93700a4] { font: 500 13px/18px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631);
}
.ea-tier-price[data-v-a93700a4] {
  font: 600 20px/26px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  font-variant-numeric: tabular-nums;
}
.ea-tier-tag[data-v-a93700a4] {
  align-self: flex-start;
  font: 500 11px/16px 'Poppins', sans-serif;
  color: var(--color-primary, #4353FF);
}
.ea-tier-why[data-v-a93700a4] { font: 400 11px/15px 'Poppins', sans-serif; color: var(--color-text-helper, #535F7F);
}
.ea-foot[data-v-a93700a4] {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: 20px; padding-top: 16px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.ea-foot .ws-btn-primary[data-v-a93700a4] { flex-shrink: 0;
}
.ea-foot .ea-note[data-v-a93700a4] { margin: 0;
}
.ea-more[data-v-a93700a4] { display: block;
}

/* Frozen alongside the rest of the card: reads as disabled, not as a missing feature. */
.ea-link--off[data-v-a93700a4] {
  color: var(--color-text-helper, #8A93AD);
  text-decoration: none;
  cursor: not-allowed;
}
.ea-link--off[data-v-a93700a4]:hover { text-decoration: none;
}
.ea-link[data-v-a93700a4] {
  font: 500 12px/18px 'Poppins', sans-serif;
  color: var(--color-primary, #4353FF);
  background: none; border: none; padding: 0; margin-right: 6px;
  cursor: pointer; text-decoration: underline;
}

/* ⚠ Scrim is fixed to the viewport, so it sits above the floating chat widget that made a
   bottom-right primary unclickable on this very card. */
.ea-scrim[data-v-a93700a4] {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  background: rgba(2, 6, 49, 0.45);
}
.ea-modal[data-v-a93700a4] {
  width: min(560px, 100%);
  max-height: 80vh;
  display: flex; flex-direction: column;
  background: var(--color-bg-card, #FFFFFF);
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(2, 6, 49, 0.22);
}
.ea-modal-head[data-v-a93700a4] {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ea-modal-head .ea-link[data-v-a93700a4] { margin: 0;
}
/* Scrolls INSIDE the dialog, so a workspace with many apps cannot push the total off-screen. */
.ea-modal-body[data-v-a93700a4] { padding: 18px 20px; overflow-y: auto;
}
.ea-bd[data-v-a93700a4] { width: 100%; border-collapse: collapse;
}
.ea-bd th[data-v-a93700a4], .ea-bd td[data-v-a93700a4] {
  font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  text-align: left;
  padding: 9px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ea-bd thead th[data-v-a93700a4] { font-weight: 500; color: var(--color-text-helper, #535F7F);
}
.ea-bd-num[data-v-a93700a4] { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap;
}
.ea-bd-note[data-v-a93700a4] { display: block; font-size: 11px; color: var(--color-text-helper, #535F7F);
}
.ea-bd tfoot th[data-v-a93700a4], .ea-bd tfoot td[data-v-a93700a4] { border-bottom: none; font-weight: 600; padding-top: 12px;
}
.ea-bd-total[data-v-a93700a4] { font: 600 16px/22px 'Poppins', sans-serif;
}

.cpm-overlay[data-v-ac6d7560] {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(2, 6, 49, 0.55);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.cpm[data-v-ac6d7560] {
  background: #fff; border-radius: 14px; padding: 28px;
  width: 100%; max-width: 560px; max-height: 88vh; overflow-y: auto;
  font-family: Poppins, Arial, sans-serif;
  box-shadow: 0 18px 48px rgba(2, 6, 49, 0.28);
}
.cpm-title[data-v-ac6d7560] { margin: 0 0 10px; font-size: 20px; font-weight: 600; color: #020631;
}
.cpm-lede[data-v-ac6d7560]  { margin: 0 0 20px; font-size: 13px; line-height: 20px; color: #47506A;
}
.cpm-loading[data-v-ac6d7560] { font-size: 13px; color: #9CA5BE; padding: 12px 0;
}
.cpm-dates[data-v-ac6d7560] { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 10px;
}
.cpm-dates li[data-v-ac6d7560] {
  display: grid; grid-template-columns: 108px auto; gap: 2px 12px;
  padding: 10px 12px; border-radius: 8px; background: #F7F8FC;
}
.cpm-date-label[data-v-ac6d7560] { font-size: 12px; font-weight: 600; color: #47506A;
}
.cpm-date-value[data-v-ac6d7560] { font-size: 13px; font-weight: 600; color: #020631;
}
.cpm-date-note[data-v-ac6d7560]  { grid-column: 2; font-size: 11px; color: #9CA5BE;
}
.cpm-warn[data-v-ac6d7560] {
  margin: 0 0 18px; padding: 10px 12px; border-radius: 8px;
  background: #FEF6E7; border: 1px solid #F6D08A; color: #8A5A00;
  font-size: 12px; line-height: 18px;
}
.cpm-section[data-v-ac6d7560] { margin-bottom: 16px;
}
.cpm-section-title[data-v-ac6d7560] { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: #020631;
}
.cpm-apps[data-v-ac6d7560] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px;
}
.cpm-apps li[data-v-ac6d7560] {
  display: flex; justify-content: space-between; gap: 12px;
  font-size: 13px; color: #47506A;
}
.cpm-app-price[data-v-ac6d7560]    { font-variant-numeric: tabular-nums; color: #020631;
}
.cpm-app--free[data-v-ac6d7560]    { color: #6B7594;
}
.cpm-app-included[data-v-ac6d7560] { font-size: 11px; color: #9CA5BE;
}
.cpm-members[data-v-ac6d7560] { margin: 0 0 18px; font-size: 12px; color: #A31515;
}
.cpm-field[data-v-ac6d7560] { margin-bottom: 14px;
}
/* The panel's own padding frames the field, so the last field inside drops its bottom margin. */
.cpm-panel[data-v-ac6d7560] { margin: 0 0 14px;
}
.cpm-panel .cpm-field[data-v-ac6d7560] { margin-bottom: 0;
}
/* The verify-email screen's text action: blue, not red — resending a code is harmless. */
.cpm-link[data-v-ac6d7560] {
  display: block; margin-top: 8px; padding: 0; border: 0; background: none; cursor: pointer;
  font-family: inherit; font-size: 14px; line-height: 20px; color: var(--color-primary-link, #0055D4);
}
.cpm-link[data-v-ac6d7560]:not(:disabled):hover { text-decoration: underline;
}
.cpm-link[data-v-ac6d7560]:disabled { color: var(--color-text-helper, #535F7F); cursor: not-allowed;
}
.cpm-label[data-v-ac6d7560] { display: block; margin-bottom: 6px; font-size: 12px; color: #47506A;
}
.cpm-input[data-v-ac6d7560] {
  width: 100%; box-sizing: border-box; height: 38px; padding: 0 12px;
  border: 1px solid #D1D5E8; border-radius: 8px;
  font: 400 13px/1 Poppins, Arial, sans-serif; color: #020631;
}
.cpm-input[data-v-ac6d7560]:focus { outline: 2px solid #4353FF; outline-offset: -1px; border-color: #4353FF;
}
.cpm-error[data-v-ac6d7560] {
  margin: 0 0 12px; font-size: 12px; color: #DC2626;
}
.cpm-actions[data-v-ac6d7560] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px;
}
.cpm-btn[data-v-ac6d7560] {
  height: 38px; padding: 0 16px; border-radius: 8px;
  border: 1px solid #D1D5E8; background: #fff;
  font: 500 13px/1 Poppins, Arial, sans-serif; color: #47506A; cursor: pointer;
}
.cpm-btn[data-v-ac6d7560]:hover:not(:disabled) { background: #F3F4F8;
}
.cpm-btn--danger[data-v-ac6d7560] { background: #DC2626; border-color: #DC2626; color: #fff;
}
.cpm-btn--danger[data-v-ac6d7560]:hover:not(:disabled) { background: #B91C1C;
}
/* The send-code button inside the red panel — the same red outline the transfer and deletion panels use. */
.cpm-btn--outline-danger[data-v-ac6d7560] {
  border-color: var(--color-semantic-element-red, #D60000); color: var(--color-semantic-element-red, #D60000);
  font-weight: 600;
}
.cpm-btn--outline-danger[data-v-ac6d7560]:hover:not(:disabled) { background: var(--color-semantic-bg-red, #FFECEB);
}
.cpm-btn[data-v-ac6d7560]:disabled { opacity: 0.5; cursor: not-allowed;
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-a99d67fb] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-a99d67fb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-a99d67fb] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-a99d67fb] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-a99d67fb] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-a99d67fb] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-a99d67fb] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-a99d67fb] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-a99d67fb] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-a99d67fb] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-a99d67fb] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-a99d67fb] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-a99d67fb]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-a99d67fb]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-a99d67fb] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-a99d67fb]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-a99d67fb] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-a99d67fb] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-a99d67fb] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-a99d67fb] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-a99d67fb] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-a99d67fb] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-a99d67fb] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-a99d67fb]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-a99d67fb] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-a99d67fb]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-a99d67fb] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-a99d67fb] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-a99d67fb] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-a99d67fb]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-a99d67fb]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-a99d67fb] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-a99d67fb] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-a99d67fb] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-a99d67fb] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-a99d67fb] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-a99d67fb] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-a99d67fb] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-a99d67fb] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-a99d67fb] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-a99d67fb] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-a99d67fb] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-a99d67fb] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-a99d67fb]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-a99d67fb]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-a99d67fb]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-a99d67fb] { margin-bottom: 16px;
}
.ws-field[data-v-a99d67fb]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-a99d67fb] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-a99d67fb] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-a99d67fb] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-a99d67fb]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-a99d67fb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-a99d67fb]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-a99d67fb] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-a99d67fb] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-a99d67fb] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-a99d67fb] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-a99d67fb] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-a99d67fb] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-a99d67fb] { color: #B45309;
}
/* Same type and button as the project "Archive project" row, so every Danger zone row reads alike. */
.cw[data-v-a99d67fb] { display: flex; flex-direction: column; gap: 12px; font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.cw-row[data-v-a99d67fb] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
}
.cw-label[data-v-a99d67fb] {
  margin: 0; font-size: var(--font-size-14, 14px); font-weight: 600; line-height: var(--line-height-s, 20px);
  color: var(--color-primary-dark, #020631);
}
.cw-desc[data-v-a99d67fb] {
  margin: 2px 0 0; font-size: var(--font-size-12, 12px); line-height: 17px;
  color: var(--color-text-label, #47506A);
}
.cw-btn-danger[data-v-a99d67fb] {
  height: 34px; padding: 0 16px; border-radius: var(--radius-md, 8px);
  border: 1px solid var(--color-semantic-element-red, #D60000);
  background: var(--color-surface-card, #fff); color: var(--color-semantic-element-red, #D60000);
  font-family: inherit; font-size: var(--font-size-14, 14px); font-weight: 600; line-height: var(--line-height-s, 20px);
  cursor: pointer; white-space: nowrap; flex-shrink: 0;
}
.cw-btn-danger[data-v-a99d67fb]:hover:not(:disabled) { background: var(--color-semantic-bg-red, #FFECEB);
}
.cw-btn-danger[data-v-a99d67fb]:disabled { opacity: 0.5; cursor: not-allowed;
}
.cw-what[data-v-a99d67fb] {
  margin: 0; padding: 0; list-style: none; max-width: 70ch;
  font-size: var(--font-size-12, 12px); line-height: 19px; color: var(--color-text-label, #47506A);
}
.cw-what li[data-v-a99d67fb] { padding-left: 16px; position: relative;
}
.cw-what li[data-v-a99d67fb]::before {
  content: ''; position: absolute; left: 4px; top: 8px;
  width: 4px; height: 4px; border-radius: 50%; background: var(--color-semantic-element-red, #D60000);
}

/* Pending stays AMBER: it is reversible until the restore date, and red would say it is already gone. */
.cw-pending[data-v-a99d67fb] {
  padding: 16px; background: #FFFBEB; border: 1px solid #FDE68A; border-radius: var(--radius-md, 8px);
  display: flex; flex-direction: column; align-items: flex-start; gap: 12px;
}
.cw-pending-title[data-v-a99d67fb] { margin: 0; font-size: 13px; font-weight: 500; line-height: 19px; color: #8A5A00;
}
.cw-clocks[data-v-a99d67fb] {
  display: flex; flex-wrap: wrap; align-self: stretch; background: #fff;
  border: 1px solid #FDE68A; border-radius: var(--radius-md, 8px); overflow: hidden;
}
.cw-clock[data-v-a99d67fb] { flex: 1 1 150px; padding: 11px 14px; border-right: 1px solid #FDE68A;
}
.cw-clock[data-v-a99d67fb]:last-child { border-right: none;
}
.cw-clock-k[data-v-a99d67fb] {
  display: block; margin-bottom: 3px; font-size: 10px; line-height: 14px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-text-placeholder, #9CA5BE);
}
.cw-clock-v[data-v-a99d67fb] { font-size: 13px; font-weight: 600; line-height: 18px; color: var(--color-primary-dark, #020631);
}
/* Only the irreversible date is red. */
.cw-clock--last .cw-clock-v[data-v-a99d67fb] { color: #991B1B;
}
.cw-closed[data-v-a99d67fb] {
  margin: 0; padding: 12px 16px; border-radius: var(--radius-md, 8px);
  background: var(--color-semantic-bg-red, #FFECEB);
  font-size: 13px; line-height: 20px; color: #991B1B;
}
.cw-error[data-v-a99d67fb] { margin: 0; font-size: var(--font-size-12, 12px); color: var(--color-semantic-text-red, #B30000);
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-9d2b1ce2] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-9d2b1ce2] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-9d2b1ce2] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-9d2b1ce2] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-9d2b1ce2] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-9d2b1ce2] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-9d2b1ce2] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-9d2b1ce2] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-9d2b1ce2] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-9d2b1ce2] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-9d2b1ce2] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-9d2b1ce2] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-9d2b1ce2]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-9d2b1ce2]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-9d2b1ce2] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-9d2b1ce2]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-9d2b1ce2] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-9d2b1ce2] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-9d2b1ce2] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-9d2b1ce2] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-9d2b1ce2] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-9d2b1ce2] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-9d2b1ce2] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-9d2b1ce2]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-9d2b1ce2] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-9d2b1ce2]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-9d2b1ce2] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-9d2b1ce2] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-9d2b1ce2] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-9d2b1ce2]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-9d2b1ce2]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-9d2b1ce2] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-9d2b1ce2] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-9d2b1ce2] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-9d2b1ce2] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-9d2b1ce2] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-9d2b1ce2] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-9d2b1ce2] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-9d2b1ce2] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-9d2b1ce2] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-9d2b1ce2] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-9d2b1ce2] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-9d2b1ce2] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-9d2b1ce2]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-9d2b1ce2]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-9d2b1ce2]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-9d2b1ce2] { margin-bottom: 16px;
}
.ws-field[data-v-9d2b1ce2]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-9d2b1ce2] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-9d2b1ce2] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-9d2b1ce2] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-9d2b1ce2]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-9d2b1ce2] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-9d2b1ce2]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-9d2b1ce2] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-9d2b1ce2] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-9d2b1ce2] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-9d2b1ce2] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-9d2b1ce2] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-9d2b1ce2] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-9d2b1ce2] { color: #B45309;
}
.settings-grid[data-v-9d2b1ce2] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 32px;
}
.settings-note[data-v-9d2b1ce2] {
  margin-top: 16px;
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  font-style: italic;
}
.notif-scope[data-v-9d2b1ce2] {
  margin: 0 0 4px;
  font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  max-width: 70ch;
}
.notif-actions[data-v-9d2b1ce2] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.notif-saved[data-v-9d2b1ce2] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-semantic-text-green, #008516);
}
.notif-error[data-v-9d2b1ce2] {
  margin: 12px 0 0;
  font: 400 12px/18px 'Poppins', sans-serif;
  color: var(--color-semantic-text-red, #B30000);
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-31a8c69c] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-31a8c69c] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-31a8c69c] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-31a8c69c] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-31a8c69c] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-31a8c69c] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-31a8c69c] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-31a8c69c] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-31a8c69c] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-31a8c69c] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-31a8c69c] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-31a8c69c] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-31a8c69c]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-31a8c69c]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-31a8c69c] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-31a8c69c]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-31a8c69c] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-31a8c69c] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-31a8c69c] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-31a8c69c] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-31a8c69c] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-31a8c69c] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-31a8c69c] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-31a8c69c]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-31a8c69c] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-31a8c69c]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-31a8c69c] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-31a8c69c] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-31a8c69c] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-31a8c69c]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-31a8c69c]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-31a8c69c] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-31a8c69c] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-31a8c69c] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-31a8c69c] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-31a8c69c] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-31a8c69c] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-31a8c69c] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-31a8c69c] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-31a8c69c] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-31a8c69c] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-31a8c69c] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-31a8c69c] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-31a8c69c]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-31a8c69c]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-31a8c69c]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-31a8c69c] { margin-bottom: 16px;
}
.ws-field[data-v-31a8c69c]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-31a8c69c] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-31a8c69c] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-31a8c69c] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-31a8c69c]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-31a8c69c] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-31a8c69c]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-31a8c69c] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-31a8c69c] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-31a8c69c] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-31a8c69c] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-31a8c69c] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-31a8c69c] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-31a8c69c] { color: #B45309;
}
.ws-coming-soon-wrap[data-v-31a8c69c] {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}
.ws-coming-soon-content[data-v-31a8c69c] {
  pointer-events: none;
  user-select: none;
}
.provider-list[data-v-31a8c69c] { display: flex; flex-direction: column; gap: 10px; margin-top: 4px;
}
.provider-option[data-v-31a8c69c] {
  display: flex;
  align-items: center;
  gap: 10px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  cursor: pointer;
}
.provider-option input[type="radio"][data-v-31a8c69c] { accent-color: var(--color-primary, #4353FF); width: 16px; height: 16px;
}
.ws-textarea[data-v-31a8c69c] {
  width: 100%;
  max-width: 480px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 10px 12px;
  font: 400 12px/18px 'Menlo', 'Consolas', monospace;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  resize: vertical;
  outline: none;
}
.callback-url[data-v-31a8c69c] {
  display: inline-block;
  font-size: 13px;
  font-family: 'Menlo', 'Consolas', monospace;
  color: var(--color-text-helper, #535F7F);
  background: var(--color-bg-page, #F9F9FC);
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid var(--color-border-default, #E5E7EF);
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-5b0b2007] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-5b0b2007] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-5b0b2007] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-5b0b2007] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-5b0b2007] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-5b0b2007] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-5b0b2007] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-5b0b2007] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-5b0b2007] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-5b0b2007] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-5b0b2007] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-5b0b2007] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-5b0b2007]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-5b0b2007]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-5b0b2007] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-5b0b2007]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-5b0b2007] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-5b0b2007] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-5b0b2007] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-5b0b2007] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-5b0b2007] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-5b0b2007] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-5b0b2007] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-5b0b2007]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-5b0b2007] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-5b0b2007]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-5b0b2007] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-5b0b2007] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-5b0b2007] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-5b0b2007]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-5b0b2007]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-5b0b2007] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-5b0b2007] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-5b0b2007] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-5b0b2007] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-5b0b2007] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-5b0b2007] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-5b0b2007] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-5b0b2007] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-5b0b2007] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-5b0b2007] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-5b0b2007] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-5b0b2007] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-5b0b2007]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-5b0b2007]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-5b0b2007]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-5b0b2007] { margin-bottom: 16px;
}
.ws-field[data-v-5b0b2007]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-5b0b2007] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-5b0b2007] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-5b0b2007] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-5b0b2007]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-5b0b2007] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-5b0b2007]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-5b0b2007] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-5b0b2007] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-5b0b2007] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-5b0b2007] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-5b0b2007] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-5b0b2007] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-5b0b2007] { color: #B45309;
}

/* ── Intro ────────────────────────────────────────────────────────────────── */
.rol-intro[data-v-5b0b2007] {
  padding: 2px 0 4px;
}
.rol-intro-text[data-v-5b0b2007] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #47506A;
  margin: 0;
}

/* ── Banner ───────────────────────────────────────────────────────────────── */
.ws-banner-error[data-v-5b0b2007] {
  background: #FEF2F2;
  border: 1px solid #FECDD3;
  border-radius: 8px;
  padding: 10px 14px;
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #D60000;
}
.ws-banner-success[data-v-5b0b2007] {
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 8px;
  padding: 10px 14px;
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #15803D;
}

/* ── App icon ─────────────────────────────────────────────────────────────── */
.rol-app-icon[data-v-5b0b2007] {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: linear-gradient(135deg, #5E4ED4 0%, #4353FF 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 700 11px/1 'Poppins', sans-serif;
  flex-shrink: 0;
  letter-spacing: 0.5px;
}

/* ── Section label ────────────────────────────────────────────────────────── */
.rol-section[data-v-5b0b2007] {
  border-top: 1px solid #E5E7EF;
  padding: 12px 0;
}
.rol-section--custom[data-v-5b0b2007] { padding-top: 0;
}
.rol-section-label[data-v-5b0b2007] {
  font: 500 11px/16px 'Poppins', sans-serif;
  color: #9CA5BE;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px 8px;
}
.rol-system-badge[data-v-5b0b2007] { margin-left: auto; flex-shrink: 0;
}

/* ── Role row ─────────────────────────────────────────────────────────────── */
.rol-row[data-v-5b0b2007] {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 20px;
  gap: 12px;
  transition: background 0.12s;
}
.rol-row[data-v-5b0b2007]:hover { background: #FAFAFB;
}
.rol-name[data-v-5b0b2007] {
  font: 500 13px/18px 'Poppins', sans-serif;
  color: #020631;
  min-width: 140px;
}
.rol-perm-list[data-v-5b0b2007] {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  flex: 1;
}
.rol-perm-chip[data-v-5b0b2007] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 10px;
  background: #E9F2FF;
  color: #4353FF;
  font: 500 11px/16px 'Poppins', sans-serif;
  white-space: nowrap;
}
.rol-perm-chip--custom[data-v-5b0b2007] {
  background: #F3F4F8;
  color: #47506A;
}
.rol-row-actions[data-v-5b0b2007] {
  display: flex;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
}
.rol-action-btn[data-v-5b0b2007] {
  height: 28px;
  padding: 0 12px;
  border-radius: 6px;
  border: 1px solid #E5E7EF;
  background: #fff;
  font: 500 12px/16px 'Poppins', sans-serif;
  color: #47506A;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
}
.rol-action-btn[data-v-5b0b2007]:hover { background: #F3F4F8; border-color: #C0C6D8;
}
.rol-action-btn--danger[data-v-5b0b2007] { color: #D60000; border-color: #FECDD3;
}
.rol-action-btn--danger[data-v-5b0b2007]:hover { background: #FEF2F2; border-color: #D60000;
}
.rol-action-btn[data-v-5b0b2007]:disabled { opacity: 0.6; cursor: not-allowed;
}

/* ── Delete-confirm modal ─────────────────────────────────────────────────── */
.rol-modal-backdrop[data-v-5b0b2007] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.35);
  z-index: 300;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rol-modal[data-v-5b0b2007] {
  width: 440px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 64px);
  overflow-y: auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(2, 6, 49, 0.2);
  padding: 20px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.rol-modal-title[data-v-5b0b2007] {
  font: 700 16px/22px 'Poppins', sans-serif;
  color: #020631;
  margin: 0;
}
.rol-modal-text[data-v-5b0b2007] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #47506A;
  margin: 0;
}
.rol-usage-list[data-v-5b0b2007] {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  max-height: 220px;
  overflow-y: auto;
}
.rol-usage-row[data-v-5b0b2007] {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border-bottom: 1px solid #F0F1F7;
  font: 400 12px/18px 'Poppins', sans-serif;
}
.rol-usage-row[data-v-5b0b2007]:last-child { border-bottom: none;
}
.rol-usage-email[data-v-5b0b2007] { color: #020631; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rol-usage-project[data-v-5b0b2007] { color: #9CA5BE; flex-shrink: 0;
}
.rol-modal-actions[data-v-5b0b2007] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 4px;
}
.rol-modal-danger[data-v-5b0b2007] { background: #D60000; border-color: #D60000;
}
.rol-modal-danger[data-v-5b0b2007]:hover:not(:disabled) { background: #B30000;
}

/* ── Inline form ──────────────────────────────────────────────────────────── */
.rol-form[data-v-5b0b2007] {
  padding: 16px 20px 20px;
  background: #FAFAFB;
  border-top: 1px solid #E5E7EF;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.rol-form-field[data-v-5b0b2007] { display: flex; flex-direction: column; gap: 6px;
}
.rol-form-label[data-v-5b0b2007] {
  font: 500 12px/16px 'Poppins', sans-serif;
  color: #020631;
}
.rol-form-hint[data-v-5b0b2007] {
  font-weight: 400;
  color: #9CA5BE;
}
.rol-input[data-v-5b0b2007] {
  height: 38px;
  border: 1px solid #E5E7EF;
  border-radius: 8px;
  padding: 0 12px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #020631;
  background: #fff;
  transition: border-color 0.12s;
  box-sizing: border-box;
  max-width: 360px;
}
.rol-input[data-v-5b0b2007]:focus { outline: none; border-color: #4353FF;
}
.rol-input[data-v-5b0b2007]:disabled { opacity: 0.6; cursor: not-allowed;
}
.rol-check-grid[data-v-5b0b2007] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.rol-check-label[data-v-5b0b2007] {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
}
.rol-checkbox[data-v-5b0b2007] {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: #4353FF;
  cursor: pointer;
}
.rol-checkbox[data-v-5b0b2007]:disabled { opacity: 0.5; cursor: not-allowed;
}
.rol-check-text[data-v-5b0b2007] {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.rol-check-text strong[data-v-5b0b2007] {
  font: 500 13px/18px 'Poppins', sans-serif;
  color: #020631;
}
.rol-check-desc[data-v-5b0b2007] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: #9CA5BE;
}
.rol-form-error[data-v-5b0b2007] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: #D60000;
  background: #FEF2F2;
  border: 1px solid #FECDD3;
  border-radius: 6px;
  padding: 8px 12px;
}
.rol-form-actions[data-v-5b0b2007] {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Spinner ──────────────────────────────────────────────────────────────── */
.rol-spinner[data-v-5b0b2007] {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  animation: rol-spin-5b0b2007 0.8s linear infinite;
}
@keyframes rol-spin-5b0b2007 {
to { transform: rotate(360deg)
}
}

/* ── Loading skeletons ────────────────────────────────────────────────────── */
.rol-skeleton[data-v-5b0b2007] { border-radius: 4px; background: #E5E7EF; animation: rol-pulse-5b0b2007 1.4s ease-in-out infinite;
}
@keyframes rol-pulse-5b0b2007 {
0%, 100% { opacity: 1
}
50% { opacity: 0.5
}
}
.rol-skeleton--title[data-v-5b0b2007] { height: 18px; width: 160px;
}
.rol-skeleton-row[data-v-5b0b2007] { height: 44px; margin: 0 20px 8px; border-radius: 8px; background: #F3F4F8; animation: rol-pulse-5b0b2007 1.4s ease-in-out infinite;
}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.rol-empty[data-v-5b0b2007] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 40px 20px;
}
.rol-empty-title[data-v-5b0b2007] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: #020631;
  margin: 0;
}
.rol-empty-sub[data-v-5b0b2007] {
  font: 400 13px/18px 'Poppins', sans-serif;
  color: #9CA5BE;
  margin: 0;
  text-align: center;
}

/* ── Shared body padding hack (used before section dividers exist) ──────── */
.rol-body[data-v-5b0b2007] { padding: 12px 20px; display: flex; flex-direction: column; gap: 8px;
}

.ws-settings[data-v-ee06626c] {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
}
.ws-header[data-v-ee06626c] {
  margin-bottom: 20px;
}
.ws-title[data-v-ee06626c] {
  font: 600 20px/28px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-sub[data-v-ee06626c] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}

/* Wrap rather than scroll: 10 tabs overflow a ~745px content column, and a
   scrolling strip with its scrollbar hidden leaves mouse users no way to
   reach the overflow at all. Wrapping is a no-op while they fit. */
.ws-tab-bar[data-v-ee06626c] {
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  gap: 0;
}
.ws-tab[data-v-ee06626c] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 0;
  margin-right: 28px;
  cursor: pointer;
  position: relative;
  background: none;
  border: none;
  white-space: nowrap;
  transition: color 0.15s;
  flex-shrink: 0;
}

/* Reads as unavailable rather than as a missing feature — see the isDisabled comment above. */
.ws-tab--disabled[data-v-ee06626c] {
  color: var(--color-text-disabled, #9AA0B4);
  cursor: not-allowed;
}
.ws-tab--active[data-v-ee06626c] {
  color: var(--color-primary-dark, #020631);
  font-weight: 600;
}
.ws-tab--active[data-v-ee06626c]::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-primary, #4353FF);
}
.ws-tab[data-v-ee06626c]:hover:not(.ws-tab--active) {
  color: var(--color-primary-dark, #020631);
}
.ws-panel[data-v-ee06626c] {
  padding-top: 24px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}

.bar[data-v-853751f8] {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  padding: 13px 20px; border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  background: #FAFAFB;
}
.bar-label[data-v-853751f8] {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.06em; color: #9CA5BE; margin-right: 2px;
}
.fbtn[data-v-853751f8] {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  background: #fff; color: var(--color-text-label, #47506A);
  padding: 6px 11px; font: inherit; font-size: 12.5px; cursor: pointer;
}
.fbtn[data-v-853751f8]:hover { border-color: #C4CBDD; color: var(--color-primary-dark, #020631);
}
.fbtn.is-on[data-v-853751f8] {
  border-color: var(--color-primary, #4353FF); background: #EEF0FF;
  color: var(--color-primary, #4353FF); font-weight: 500;
}
.fbtn .chev[data-v-853751f8] { color: #9CA5BE;
}
.fbtn.is-on .chev[data-v-853751f8] { color: var(--color-primary, #4353FF);
}
.fbtn-n[data-v-853751f8] {
  min-width: 17px; padding: 0 5px; border-radius: 20px;
  background: var(--color-primary, #4353FF); color: #fff;
  font-size: 10.5px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.bar-sep[data-v-853751f8] { width: 1px; height: 20px; background: var(--color-border-default, #E5E7EF); margin: 0 3px;
}
.toggle[data-v-853751f8] {
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 20px;
  background: #fff; color: var(--color-text-label, #47506A);
  padding: 6px 12px; font: inherit; font-size: 12px; cursor: pointer;
}
.toggle:hover[aria-pressed='false'][data-v-853751f8] { border-color: #C4CBDD; color: var(--color-primary-dark, #020631);
}
.toggle[aria-pressed='true'][data-v-853751f8] {
  border-color: var(--color-primary, #4353FF); background: #EEF0FF;
  color: var(--color-primary, #4353FF); font-weight: 500;
}
.bar-search[data-v-853751f8] {
  margin-left: auto; width: 210px; background: #fff;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  padding: 7px 11px; font: inherit; font-size: 12.5px;
}
.chips[data-v-853751f8] {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 11px 20px; background: #FBFBFE;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.chip[data-v-853751f8] {
  display: inline-flex; align-items: center; gap: 5px;
  border: 1px solid var(--color-primary, #4353FF); background: #EEF0FF;
  color: var(--color-primary, #4353FF); border-radius: 20px;
  padding: 4px 5px 4px 11px; font-size: 12px;
}
.chip b[data-v-853751f8] { font-weight: 600;
}
.chip button[data-v-853751f8] {
  border: none; background: none; cursor: pointer; color: inherit;
  font: inherit; font-size: 14px; line-height: 1; padding: 0 4px;
}
.chips-clear[data-v-853751f8] {
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  background: #fff; color: var(--color-text-label, #47506A);
  padding: 4px 10px; font: inherit; font-size: 12px; cursor: pointer;
}
.pop[data-v-853751f8] {
  position: fixed; z-index: 60; width: 272px;
  border: 1px solid #C4CBDD; border-radius: 11px; background: #fff;
  box-shadow: 0 4px 10px rgba(2, 6, 49, 0.08), 0 18px 44px rgba(2, 6, 49, 0.16);
  padding: 11px 12px 12px;
}
.pop-title[data-v-853751f8] {
  margin: 0 0 8px; font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.06em; color: #9CA5BE;
}
.pop-search[data-v-853751f8], .date-row input[data-v-853751f8] {
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 7px;
  padding: 6px 9px; font: inherit; font-size: 12.5px;
}
.pop-search[data-v-853751f8] { width: 100%; margin-bottom: 8px;
}
.pop-tools[data-v-853751f8] { display: flex; gap: 10px; margin-bottom: 6px;
}
.pop-link[data-v-853751f8] {
  border: none; background: none; padding: 0; cursor: pointer; font: inherit;
  font-size: 11.5px; color: var(--color-primary, #4353FF); text-decoration: underline;
}
.pop-list[data-v-853751f8] { max-height: 204px; overflow-y: auto; margin: 0 -4px;
}
.opt[data-v-853751f8] {
  display: flex; align-items: center; gap: 8px; padding: 5px 6px;
  border-radius: 6px; font-size: 12.5px; cursor: pointer;
}
.opt[data-v-853751f8]:hover { background: var(--color-surface-page, #F9F9FC);
}
.opt input[data-v-853751f8] { accent-color: var(--color-primary, #4353FF); margin: 0; flex: 0 0 auto;
}
.opt-label[data-v-853751f8] { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.opt-n[data-v-853751f8] { color: #9CA5BE; font-size: 11px; font-variant-numeric: tabular-nums;
}
.opt-n--zero[data-v-853751f8] { color: #C4CBDD;
}
.pop-empty[data-v-853751f8] { margin: 8px 6px; font-size: 12px; color: #9CA5BE;
}
.presets[data-v-853751f8] { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px;
}
.preset[data-v-853751f8] {
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 20px;
  background: #fff; color: var(--color-text-label, #47506A);
  padding: 4px 10px; font: inherit; font-size: 11.5px; cursor: pointer;
}
.preset[data-v-853751f8]:hover { border-color: #C4CBDD; color: var(--color-primary-dark, #020631);
}
.date-row[data-v-853751f8] {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
  font-size: 12px; color: var(--color-text-label, #47506A);
}
.date-row input[data-v-853751f8] { flex: 1 1 auto;
}
.pop-scope[data-v-853751f8] { margin: 9px 0 0; font-size: 11px; color: #9CA5BE;
}
.pop-foot[data-v-853751f8] {
  display: flex; justify-content: flex-end; gap: 7px;
  margin-top: 9px; padding-top: 9px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.btn[data-v-853751f8] {
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  background: #fff; color: var(--color-text-label, #47506A);
  padding: 6px 12px; font: inherit; font-size: 12px; cursor: pointer;
}
.btn--primary[data-v-853751f8] {
  background: var(--color-primary, #4353FF); border-color: var(--color-primary, #4353FF); color: #fff;
}

.density[data-v-932d9fad] { padding: 14px 20px 0;
}
.density-head[data-v-932d9fad] {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 10px; margin-bottom: 7px; flex-wrap: wrap;
}
.density-title[data-v-932d9fad] {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.06em; color: #9CA5BE;
}
.density-legend[data-v-932d9fad] { display: flex; gap: 11px; font-size: 11px; color: var(--color-text-label, #47506A);
}
.dot[data-v-932d9fad] { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 4px;
}
.dot--info[data-v-932d9fad] { background: #0055D4;
}
.dot--warn[data-v-932d9fad] { background: #EC6E0E;
}
.dot--crit[data-v-932d9fad] { background: #DC2626;
}
.bars[data-v-932d9fad] { display: flex; align-items: flex-end; gap: 2px; height: 60px;
}
.bar[data-v-932d9fad] {
  flex: 1 1 0; min-width: 0; height: 100%;
  display: flex; flex-direction: column; justify-content: flex-end;
  border: none; background: none; padding: 0; cursor: pointer;
  border-radius: 3px 3px 0 0; overflow: hidden;
}
.bar[data-v-932d9fad]:hover { background: #EEF0FF;
}
.bar[aria-pressed='true'][data-v-932d9fad] { background: #EEF0FF; outline: 1px solid var(--color-primary, #4353FF);
}
.seg[data-v-932d9fad] { width: 100%;
}
.seg--info[data-v-932d9fad] { background: #0055D4;
}
.seg--warn[data-v-932d9fad] { background: #EC6E0E;
}
.seg--crit[data-v-932d9fad] { background: #DC2626;
}
.seg-empty[data-v-932d9fad] { width: 100%; height: 2px; background: var(--color-border-default, #E5E7EF); border-radius: 2px;
}
.axis[data-v-932d9fad] {
  display: flex; justify-content: space-between; padding-top: 6px;
  font-size: 10.5px; color: #9CA5BE; font-variant-numeric: tabular-nums;
}

.ev[data-v-18399eeb] { position: relative; padding: 8px 0 8px 28px;
}
.ev[data-v-18399eeb]::before {
  content: ''; position: absolute; left: 6px; top: 0; bottom: 0;
  width: 2px; background: var(--color-border-default, #E5E7EF);
}
.ev[data-v-18399eeb]:first-child::before { top: 15px;
}
.ev[data-v-18399eeb]:last-child::before { bottom: calc(100% - 15px);
}
.ev-dot[data-v-18399eeb] {
  position: absolute; left: 1px; top: 11px; width: 12px; height: 12px;
  border-radius: 50%; border: 2.5px solid #fff; background: #0055D4;
}
.ev-dot--warn[data-v-18399eeb] { background: #EC6E0E;
}
.ev-dot--crit[data-v-18399eeb] { background: #DC2626;
}
.ev-row[data-v-18399eeb] {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  width: 100%; text-align: left; border: none; background: none;
  font: inherit; padding: 0; cursor: pointer;
}
.ev-time[data-v-18399eeb] {
  flex: 0 0 48px; font-size: 11.5px; color: #9CA5BE;
  font-variant-numeric: tabular-nums;
}
.ev-text[data-v-18399eeb] { flex: 1 1 auto; font-size: 13px; color: var(--color-primary-dark, #020631);
}
.ev-res[data-v-18399eeb] {
  display: inline-block; padding: 1px 7px; border-radius: 6px;
  background: var(--color-surface-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF); font-size: 12px;
}
.ev-aside[data-v-18399eeb] {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px; color: #9CA5BE;
}
.ev-detail[data-v-18399eeb] {
  margin-top: 8px; padding: 11px 12px; border-radius: 9px;
  background: var(--color-surface-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
}
.ev-facts[data-v-18399eeb] { display: grid; grid-template-columns: 104px 1fr; gap: 5px 12px; margin: 0; font-size: 12px;
}
.ev-facts dt[data-v-18399eeb] { color: #9CA5BE;
}
.ev-facts dd[data-v-18399eeb] { margin: 0; word-break: break-word; color: var(--color-primary-dark, #020631);
}
.ev-facts code[data-v-18399eeb] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px;
}
.ev-change[data-v-18399eeb] { display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
}
.was[data-v-18399eeb] { color: var(--color-text-label, #47506A); text-decoration: line-through; text-decoration-color: #9CA5BE;
}
.arrow[data-v-18399eeb] { color: #9CA5BE;
}
.now[data-v-18399eeb] { font-weight: 600;
}

.day[data-v-a07dff13] { margin-bottom: 24px;
}
.day[data-v-a07dff13]:last-child { margin-bottom: 0;
}
.day-head[data-v-a07dff13] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px;
}
.day-label[data-v-a07dff13] { font-size: 12.5px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.day-rule[data-v-a07dff13] { flex: 1 1 auto; height: 1px; background: var(--color-border-default, #E5E7EF);
}
.day-count[data-v-a07dff13] { font-size: 11.5px; color: #9CA5BE; font-variant-numeric: tabular-nums;
}
.session[data-v-a07dff13] {
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 12px;
  background: #fff; margin-bottom: 10px; overflow: hidden;
}
.session[data-v-a07dff13]:last-child { margin-bottom: 0;
}
.session--crit[data-v-a07dff13] { border-color: #F3B4AE;
}
.session-head[data-v-a07dff13] {
  display: flex; align-items: center; gap: 11px; width: 100%; text-align: left;
  border: none; background: none; font: inherit; padding: 11px 14px; cursor: pointer;
}
.session-head[data-v-a07dff13]:hover { background: var(--color-surface-page, #F9F9FC);
}
.avatar[data-v-a07dff13] {
  width: 30px; height: 30px; border-radius: 9px; flex: 0 0 auto;
  display: grid; place-items: center; font-size: 11px; font-weight: 600;
  background: #EEF0FF; color: var(--color-primary, #4353FF);
}
.session-who[data-v-a07dff13] { flex: 1 1 auto; min-width: 0;
}
.session-name[data-v-a07dff13] { display: block; font-size: 13px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.session-meta[data-v-a07dff13] { display: block; font-size: 11.5px; color: #9CA5BE; font-variant-numeric: tabular-nums;
}
.session-tags[data-v-a07dff13] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.tag[data-v-a07dff13] {
  font-size: 10px; font-weight: 700; letter-spacing: 0.03em;
  padding: 3px 8px; border-radius: 20px; white-space: nowrap;
}
.tag--warn[data-v-a07dff13] { background: #FFF3EB; color: #B45309;
}
.tag--crit[data-v-a07dff13] { background: #FEE2E2; color: #B42318;
}
.tag--plain[data-v-a07dff13] {
  background: var(--color-surface-page, #F9F9FC); color: var(--color-text-label, #47506A);
  border: 1px solid var(--color-border-default, #E5E7EF);
}
.caret[data-v-a07dff13] { color: #9CA5BE; flex: 0 0 auto; transition: transform 0.15s;
}
.caret.open[data-v-a07dff13] { transform: rotate(90deg);
}
.session-events[data-v-a07dff13] { border-top: 1px solid var(--color-border-default, #E5E7EF); padding: 6px 14px 10px;
}

.trails[data-v-70317a63] { display: grid; grid-template-columns: minmax(220px, 280px) 1fr; gap: 18px; align-items: start;
}
@media (max-width: 900px) {
.trails[data-v-70317a63] { grid-template-columns: 1fr;
}
}
.picker-filter[data-v-70317a63] {
  width: 100%; margin-bottom: 12px;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  padding: 7px 11px; font: inherit; font-size: 12.5px;
}
.picker-empty[data-v-70317a63] { margin: 8px 2px; font-size: 12.5px; color: #9CA5BE;
}
.picker-group[data-v-70317a63] { margin-bottom: 14px;
}
.picker-type[data-v-70317a63] {
  margin: 0 0 6px; font-size: 10.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.07em; color: #9CA5BE;
}
.picker-btn[data-v-70317a63] {
  display: flex; align-items: center; gap: 8px; width: 100%; text-align: left;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 9px;
  background: #fff; font: inherit; font-size: 12.5px; padding: 8px 10px;
  cursor: pointer; margin-bottom: 5px;
}
.picker-btn[data-v-70317a63]:hover:not([aria-pressed='true']) { background: var(--color-surface-page, #F9F9FC);
}
.picker-btn[aria-pressed='true'][data-v-70317a63] {
  border-color: var(--color-primary, #4353FF); background: #EEF0FF; font-weight: 600;
}
.picker-name[data-v-70317a63] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.picker-n[data-v-70317a63] { margin-left: auto; font-size: 11px; color: #9CA5BE; font-variant-numeric: tabular-nums;
}
.picker-btn[aria-pressed='true'] .picker-n[data-v-70317a63] { color: var(--color-primary, #4353FF);
}
.panel[data-v-70317a63] {
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 12px;
  background: #fff; padding: 18px 20px 20px;
}
.panel-title[data-v-70317a63] { margin: 0; font-size: 16px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.panel-sub[data-v-70317a63] { margin: 2px 0 0; font-size: 12px; color: var(--color-text-label, #47506A);
}
.panel-sub code[data-v-70317a63] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.lifespan[data-v-70317a63] { display: flex; gap: 18px; margin: 14px 0 16px; flex-wrap: wrap;
}
.life[data-v-70317a63] { font-size: 12px;
}
.life-k[data-v-70317a63] {
  display: block; font-size: 10.5px; text-transform: uppercase;
  letter-spacing: 0.06em; color: #9CA5BE;
}
.life-v[data-v-70317a63] { font-variant-numeric: tabular-nums; color: var(--color-primary-dark, #020631);
}

.grid-scroll[data-v-c9486b80] { overflow-x: auto;
}
.heat[data-v-c9486b80] { border-collapse: separate; border-spacing: 3px; font-size: 12px;
}
.heat th[data-v-c9486b80] {
  font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  color: #9CA5BE; text-align: left; padding: 0 4px 4px; white-space: nowrap;
}
.heat th.num[data-v-c9486b80] { text-align: center;
}
.who[data-v-c9486b80] {
  color: var(--color-primary-dark, #020631); white-space: nowrap;
  padding-right: 6px; font-size: 12.5px;
}
.cell[data-v-c9486b80] {
  width: 52px; height: 30px; text-align: center; border-radius: 6px;
  font-variant-numeric: tabular-nums; color: var(--color-primary-dark, #020631);
  background: var(--color-surface-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
}
.cell--zero[data-v-c9486b80] { color: #C4CBDD;
}
.cell--crit[data-v-c9486b80] { outline: 1.5px solid #DC2626;
}
.cell--total[data-v-c9486b80] { font-weight: 600; background: var(--color-surface-page, #F9F9FC);
}
.hint[data-v-c9486b80] {
  margin: 14px 0 0; font-size: 12px; max-width: 70ch;
  color: var(--color-text-label, #47506A);
}
/* Shared layout tokens for all Workspace Settings tab components.
   Imported via @import in each \3c style scoped> block. */

/* ── Cards ── */
.ws-card[data-v-e320c246] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  overflow: hidden;
}
.ws-card-header[data-v-e320c246] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-card-header-left[data-v-e320c246] { display: flex; align-items: baseline; gap: 8px;
}
.ws-card-title[data-v-e320c246] {
  font: 600 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0;
}
.ws-card-sub[data-v-e320c246] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 0;
}
.ws-card-body[data-v-e320c246] { padding: 20px;
}

/* ── Table ── */
.ws-table[data-v-e320c246] { width: 100%; border-collapse: collapse;
}
.ws-table th[data-v-e320c246] {
  text-align: left;
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  background: #FAFAFB; /* local — no token */
  white-space: nowrap;
}
.ws-table td[data-v-e320c246] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
  padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  vertical-align: middle;
}
.ws-table tr:nth-child(even) td[data-v-e320c246] { background: #FAFAFB; /* local — no token */
}
.ws-table td strong[data-v-e320c246] {
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}

/* ── Badges ── */
.ws-badge[data-v-e320c246] {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 4px;
  font: 600 11px/20px 'Poppins', sans-serif;
  white-space: nowrap;
}
.ws-badge--active[data-v-e320c246]  { background: #D4EDDA; color: #1B5E20;
}
.ws-badge--error[data-v-e320c246]   { background: #FFE5E5; color: var(--color-error, #D60000);
}
.ws-badge--pending[data-v-e320c246] { background: #FFF3CD; color: #856404;
}
.ws-badge--info[data-v-e320c246]    { background: #E9F2FF; color: var(--color-primary, #4353FF);
} /* #E9F2FF local */
.ws-badge--neutral[data-v-e320c246] { background: var(--color-border-default, #E5E7EF); color: var(--color-text-helper, #535F7F);
}

/* ── Banners ── */
.ws-banner-info[data-v-e320c246] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  background: #ECEEFF; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-banner-warn[data-v-e320c246] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  background: #FFFBEB; /* local — no token */
  border-radius: 8px;
  font: 400 13px/20px 'Poppins', sans-serif;
  color: #92400E; /* local — no token */
}
.ws-banner-icon[data-v-e320c246] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}
.ws-banner-text[data-v-e320c246] { display: flex; flex-direction: column; gap: 2px;
}
.ws-banner-title[data-v-e320c246] { font-weight: 600;
}

/* ── Buttons ── */
.ws-btn-primary[data-v-e320c246] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.ws-btn-primary[data-v-e320c246]:hover { opacity: 0.88;
}
.ws-btn-ghost[data-v-e320c246] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-primary, #4353FF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.ws-btn-ghost[data-v-e320c246]:hover { background: var(--color-bg-page, #F9F9FC);
}
.ws-btn-danger[data-v-e320c246] {
  height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--color-error, #D60000);
  border: 1px solid var(--color-error, #D60000);
  border-radius: 8px;
  font: 600 13px/20px 'Poppins', sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

/* ── Layout helpers ── */
.ws-grid-2[data-v-e320c246] { display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
.ws-grid-4[data-v-e320c246] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.ws-stack[data-v-e320c246]  { display: flex; flex-direction: column; gap: 20px;
}
.ws-row[data-v-e320c246]    { display: flex; align-items: center; gap: 12px;
}

/* ── Stat card ── */
.ws-stat-card[data-v-e320c246] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.ws-stat-value[data-v-e320c246] {
  font: 600 24px/32px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.ws-stat-label[data-v-e320c246] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
  margin: 0;
}
.ws-stat-sub[data-v-e320c246] {
  font: 400 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  margin: 4px 0 0;
}

/* ── Progress bar ── */
.ws-progress-wrap[data-v-e320c246] { display: flex; flex-direction: column; gap: 6px;
}
.ws-progress-meta[data-v-e320c246] { display: flex; justify-content: space-between; align-items: center;
}
.ws-progress-meta-label[data-v-e320c246] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-text-label, #47506A);
}
.ws-progress-meta-value[data-v-e320c246] {
  font: 600 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}
.ws-progress[data-v-e320c246] {
  width: 100%;
  height: 6px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 3px;
  overflow: hidden;
}
.ws-progress-fill[data-v-e320c246] {
  height: 100%;
  background: var(--color-primary, #4353FF);
  border-radius: 3px;
}
.ws-progress-fill--warn[data-v-e320c246] { background: #CC5F0C; /* local — no token */
}

/* ── Toggle ── */
.ws-toggle[data-v-e320c246] {
  appearance: none;
  -webkit-appearance: none;
  width: 36px;
  height: 20px;
  background: var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  cursor: pointer;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.ws-toggle[data-v-e320c246]:checked { background: var(--color-primary, #4353FF);
}
.ws-toggle[data-v-e320c246]::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background: white;
  border-radius: 50%;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ws-toggle[data-v-e320c246]:checked::after { left: 18px;
}

/* ── Form fields ── */
.ws-field[data-v-e320c246] { margin-bottom: 16px;
}
.ws-field[data-v-e320c246]:last-child { margin-bottom: 0;
}
.ws-field-label[data-v-e320c246] {
  display: block;
  font: 600 11px/16px 'Poppins', sans-serif;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.ws-field-value[data-v-e320c246] {
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-input[data-v-e320c246] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font: 400 14px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #FFFFFF);
  box-sizing: border-box;
  outline: none;
}
.ws-input[data-v-e320c246]:focus { border-color: var(--color-primary, #4353FF);
}

/* ── Toggle row (settings) ── */
.ws-toggle-row[data-v-e320c246] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-toggle-row[data-v-e320c246]:last-child { border-bottom: none;
}
.ws-toggle-info[data-v-e320c246] { display: flex; flex-direction: column; gap: 2px;
}
.ws-toggle-title[data-v-e320c246] {
  font: 400 13px/20px 'Poppins', sans-serif;
  color: var(--color-primary-dark, #020631);
}
.ws-toggle-desc[data-v-e320c246] {
  font: 400 12px/16px 'Poppins', sans-serif;
  color: var(--color-text-helper, #535F7F);
}

/* Cycle change refused because an app is pending removal (owner decision 2026-07-31).
   Deliberately not styled as an error: nothing has gone wrong, the customer simply has to
   wait for a date. Informational weight, not alarm. */
.cyc-blocked[data-v-e320c246] {
  border: 1px solid #FDE68A;
  background: #FFFBEB;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 4px;
}
.cyc-blocked-title[data-v-e320c246] {
  margin: 0 0 6px;
  font-size: 0.95rem;
  font-weight: 600;
  color: #92400E;
}
.cyc-blocked-body[data-v-e320c246] {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #78350F;
}
/* The yearly discount being surrendered on a downgrade. */
.cyc-calc-row--giveup strong[data-v-e320c246] { color: #B45309;
}
.audit-header-right[data-v-e320c246] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.audit-views[data-v-e320c246] {
  display: inline-flex; padding: 3px; gap: 2px;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 9px;
  background: var(--color-surface-page, #F9F9FC);
}
.audit-view[data-v-e320c246] {
  border: none; background: none; font: inherit; font-size: 12.5px;
  color: var(--color-text-label, #47506A);
  padding: 6px 13px; border-radius: 7px; cursor: pointer;
}
.audit-view[data-v-e320c246]:hover:not([aria-pressed='true']) { color: var(--color-primary-dark, #020631);
}
.audit-view[aria-pressed='true'][data-v-e320c246] {
  background: #fff; color: var(--color-primary-dark, #020631); font-weight: 600;
  box-shadow: 0 1px 2px rgba(2, 6, 49, 0.08);
}

/* The category tabs, severity select, date inputs and quick chips all moved into
   AuditFilterBar; their styles went with them rather than lingering here. */
.audit-active[data-v-e320c246] {
  display: flex; align-items: center; gap: 10px; padding: 10px 20px;
  background: #EEF0FF; font-size: 12.5px; color: var(--color-primary-dark, #020631);
}
.audit-active button[data-v-e320c246] {
  border: none; background: none; font: inherit; font-size: 12px;
  color: var(--color-primary, #4353FF); text-decoration: underline; cursor: pointer; padding: 0;
}
.audit-body[data-v-e320c246] { padding: 16px 20px 18px;
}
.audit-th[data-v-e320c246] { padding: 0;
}
.audit-sort[data-v-e320c246] {
  display: inline-flex; align-items: center; gap: 5px; width: 100%;
  border: none; background: none; font: inherit; cursor: pointer; padding: 9px 12px;
  font-size: 10.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.05em; color: #9CA5BE;
}
.audit-sort[data-v-e320c246]:hover { color: var(--color-primary-dark, #020631);
}
.audit-sort--on[data-v-e320c246] { color: var(--color-primary-dark, #020631);
}
.audit-arrow[data-v-e320c246] { opacity: 0; font-size: 8px;
}
.audit-sort--on .audit-arrow[data-v-e320c246] { opacity: 1;
}
.audit-blank[data-v-e320c246] { padding: 52px 20px 60px; text-align: center;
}
.audit-blank-title[data-v-e320c246] {
  margin: 0 0 6px; font-size: 15px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.audit-blank-sub[data-v-e320c246] {
  margin: 0 auto 16px; max-width: 48ch; font-size: 13px; color: var(--color-text-label, #47506A);
}
.audit-foot[data-v-e320c246] {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  flex-wrap: wrap; padding: 12px 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.audit-foot-count[data-v-e320c246] { font-size: 12px; color: #9CA5BE; font-variant-numeric: tabular-nums;
}

/*
 * One border around a searchable code picker and a number input, so it reads as a single control.
 * Every value is a design token, matching WorkspaceSetupView's own .field-input — 44px, 14px,
 * --font-family-body, --color-primary-dark.
 */
.phone-input-wrap[data-v-9751313b] {
  display: flex; align-items: center; height: 44px;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  background: var(--color-bg-card, #FFFFFF); transition: border-color 0.15s;
}
.phone-input-wrap[data-v-9751313b]:focus-within { border-color: var(--color-primary, #4353FF);
}
.phone-input-wrap--disabled[data-v-9751313b] { background: var(--color-bg-page, #F9F9FC);
}
.pf-picker[data-v-9751313b] { position: relative; width: 176px; flex-shrink: 0; height: 100%;
}
.pf-trigger[data-v-9751313b] {
  width: 100%; height: 100%; display: flex; align-items: center; gap: 6px;
  padding: 0 8px 0 12px; border: none; background: transparent; cursor: pointer;
  font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631); text-align: left;
}
.pf-trigger[data-v-9751313b]:disabled { cursor: not-allowed; color: var(--color-text-placeholder, #9CA5BE);
}
/* Truncates from the right, so the dial code — which is first — always stays visible. */
.pf-trigger-text[data-v-9751313b] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pf-chev[data-v-9751313b] { flex-shrink: 0; color: var(--color-text-label, #47506A); transition: transform 0.15s;
}
.pf-chev--open[data-v-9751313b] { transform: rotate(180deg);
}
.pf-panel[data-v-9751313b] {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 60;
  width: 300px; background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.14); overflow: hidden;
}
.pf-search-wrap[data-v-9751313b] {
  display: flex; align-items: center; gap: 8px; padding: 10px 12px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.pf-search-icon[data-v-9751313b] { flex-shrink: 0; color: var(--color-text-placeholder, #9CA5BE);
}
.pf-search[data-v-9751313b] {
  flex: 1; min-width: 0; border: none; outline: none; background: transparent;
  font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
}
.pf-search[data-v-9751313b]::placeholder { color: var(--color-text-placeholder, #9CA5BE);
}
.pf-list[data-v-9751313b] { list-style: none; margin: 0; padding: 4px; max-height: 240px; overflow-y: auto;
}
.pf-option[data-v-9751313b] {
  display: flex; align-items: baseline; gap: 8px; padding: 8px 10px; border-radius: 6px;
  cursor: pointer; font-family: var(--font-family-body); font-size: var(--font-size-14);
}
/* Highlight is keyboard AND hover, so the two cannot disagree about what Enter will commit. */
.pf-option--hl[data-v-9751313b] { background: #F5F6FF;
}
.pf-option--sel[data-v-9751313b] { background: #ECEEFF;
}
.pf-opt-code[data-v-9751313b] { color: var(--color-text-label, #47506A); min-width: 46px; flex-shrink: 0;
}
.pf-opt-name[data-v-9751313b] { color: var(--color-primary-dark, #020631); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pf-empty[data-v-9751313b] {
  padding: 14px 12px; font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-text-helper, #535F7F); text-align: center;
}
.phone-sep[data-v-9751313b] { width: 1px; height: 24px; background: var(--color-border-default, #E5E7EF); flex-shrink: 0;
}
.pf-number[data-v-9751313b] {
  flex: 1; min-width: 0; height: 100%; border: none; outline: none; background: transparent;
  padding: 0 12px; font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
}
.pf-number[data-v-9751313b]::placeholder { color: var(--color-text-placeholder, #9CA5BE);
}
.pf-number[data-v-9751313b]:disabled { cursor: not-allowed; color: var(--color-text-placeholder, #9CA5BE);
}

.profile-tab[data-v-c8034f0b] { display: flex; flex-direction: column; gap: 20px;
}
.loading-msg[data-v-c8034f0b] {
  padding: 32px;
  text-align: center;
  color: var(--color-text-label, #47506A);
  font-size: 14px;
}
.error-banner[data-v-c8034f0b] {
  padding: 12px 16px;
  background: #fee2e2;
  color: #dc2626;
  border-radius: 8px;
  font-size: 13px;
}
.card[data-v-c8034f0b] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.card-title[data-v-c8034f0b] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 16px 0;
}
.field-grid[data-v-c8034f0b] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.field-group[data-v-c8034f0b] { display: flex; flex-direction: column; gap: 4px;
}
.field-group--full[data-v-c8034f0b] { grid-column: 1 / -1;
}
.field-label[data-v-c8034f0b] {
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text-label, #47506A);
}
.field-input[data-v-c8034f0b] {
  height: 38px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #ffffff);
  font-family: inherit;
  transition: border-color 0.12s;
}
.field-input[data-v-c8034f0b]:focus {
  outline: none;
  border-color: var(--color-primary, #4353FF);
}
.field-textarea[data-v-c8034f0b] {
  height: auto;
  padding: 10px 12px;
  resize: vertical;
}
.field-hint[data-v-c8034f0b] {
  font-size: 11px;
  color: var(--color-text-placeholder, #9CA5BE);
  text-align: right;
}

/* ── Phone composite input ── */






/* ── Footer ── */
.card-footer[data-v-c8034f0b] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.save-success[data-v-c8034f0b] { font-size: 13px; color: #065f46;
}
.save-error[data-v-c8034f0b]   { font-size: 13px; color: #dc2626;
}
.btn-primary[data-v-c8034f0b] {
  height: 36px;
  padding: 0 20px;
  background: var(--color-primary, #4353FF);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.btn-primary[data-v-c8034f0b]:hover:not(:disabled) { opacity: 0.9;
}
.btn-primary[data-v-c8034f0b]:disabled { opacity: 0.45; cursor: not-allowed;
}

/* ── Read-only rows ── */
.readonly-rows[data-v-c8034f0b] { display: flex; flex-direction: column; gap: 10px;
}
.readonly-row[data-v-c8034f0b] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.readonly-row[data-v-c8034f0b]:last-child { border-bottom: none;
}
.readonly-label[data-v-c8034f0b] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
  font-weight: 500;
}
.readonly-value[data-v-c8034f0b] {
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
}

.prefs-tab[data-v-7b200b13] { display: flex; flex-direction: column; gap: 20px;
}
.loading-msg[data-v-7b200b13] { padding: 32px; text-align: center; color: var(--color-text-label, #47506A); font-size: 14px;
}
.error-banner[data-v-7b200b13] { padding: 12px 16px; background: #fee2e2; color: #dc2626; border-radius: 8px; font-size: 13px;
}
.card[data-v-7b200b13] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.card-title[data-v-7b200b13] { font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 16px 0;
}
.field-grid[data-v-7b200b13] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.field-group[data-v-7b200b13] { display: flex; flex-direction: column; gap: 4px;
}
.field-group--full[data-v-7b200b13] { grid-column: 1 / -1;
}
.field-label[data-v-7b200b13] { font-size: 11px; font-weight: 600; color: var(--color-text-label, #47506A); text-transform: uppercase; letter-spacing: 0.4px;
}
.field-select[data-v-7b200b13] {
  height: 38px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #ffffff);
  font-family: inherit;
  cursor: pointer;
}
.field-select[data-v-7b200b13]:focus { outline: none; border-color: var(--color-primary, #4353FF);
}

/*
 * ComboBox styling, restated here rather than inherited.
 *
 * `@asint-edge/ui-library` styles its components with SCOPED blocks inside each SFC, which compile
 * into `dist/asint-ui.css` — and platform-ui imports the library's JS but has never imported that
 * stylesheet. So every library component used here renders unstyled, this one included: without the
 * rules below the input keeps its 2px UA border at an intrinsic ~140px, the flex row collapses to
 * `display: block`, and the chevron drops outside the box.
 *
 * That is pre-existing and wider than this field — `Button`, `Loading` and `ProfileThumbnail` are
 * used in platform-ui and are equally unstyled. The global fix is to import
 * `@asint-edge/ui-library/style.css` once, and it is deliberately NOT done here: that file also
 * carries a `*, *::before, *::after { box-sizing: border-box }` reset which platform-ui does not
 * currently have, so switching it on would move layouts across every screen. That belongs in its own
 * change, measured, not smuggled in behind a timezone picker.
 *
 * Values below are matched to the neighbouring `.field-select` (38px, 8px radius, 13px, app border
 * token) rather than copied from the library's own 40px/4px/#9CA5BE, so the control reads as one of
 * this form's fields. Keep in sync with `asint_edge_ui_library/src/components/ComboBox.vue` if its
 * markup changes.
 */
.field-combo[data-v-7b200b13] .combobox {
  position: relative;
  width: 100%;
}
.field-combo[data-v-7b200b13] .combobox-input-row {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  background: var(--color-bg-card, #ffffff);
  /* ⚠ pointer, not text: closed, this is the same kind of control as the three <select>s beside
     it, and a text cursor was the thing that made it read as a free-text box. */
  cursor: pointer;
  transition: border-color 0.15s ease;
}

/* Match the sibling selects exactly — same size, same type, so the row reads as one set. */
.field-combo[data-v-7b200b13] .combobox-input {
  font-size: 13px;
  line-height: 36px;
  color: var(--color-primary-dark, #020631);
}
.field-combo[data-v-7b200b13] .combobox-input-row:focus-within {
  border-color: var(--color-primary, #4353FF);
}
.field-combo[data-v-7b200b13] .combobox-input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  background: transparent;
  font-family: inherit;
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
}
.field-combo[data-v-7b200b13] .combobox-input::placeholder {
  color: var(--color-text-muted, #9CA5BE);
}
.field-combo[data-v-7b200b13] .combobox-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-left: 4px;
  cursor: pointer;
  transition: transform 0.2s ease;
}
.field-combo[data-v-7b200b13] .combobox-arrow.open {
  transform: rotate(180deg);
}
.radio-group[data-v-7b200b13] { display: flex; gap: 8px; flex-wrap: wrap;
}
.radio-option[data-v-7b200b13] {
  padding: 6px 14px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  color: var(--color-text-label, #47506A);
  cursor: pointer;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
  user-select: none;
}
.radio-option--active[data-v-7b200b13] {
  background: var(--color-primary, #4353FF);
  color: #fff;
  border-color: var(--color-primary, #4353FF);
}
.sr-only[data-v-7b200b13] { position: absolute; width: 1px; height: 1px; clip: rect(0,0,0,0); overflow: hidden;
}

/* Toggle */
.toggle-row[data-v-7b200b13] { display: flex; align-items: center; gap: 12px; cursor: pointer;
}
.toggle-label[data-v-7b200b13] { font-size: 13px; font-weight: 500; color: var(--color-primary-dark, #020631);
}
.toggle-desc[data-v-7b200b13] { font-size: 12px; color: var(--color-text-label, #47506A); flex: 1;
}
.toggle-switch[data-v-7b200b13] {
  width: 40px;
  height: 22px;
  border-radius: 11px;
  background: #D1D5DB;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
  cursor: pointer;
}
.toggle-switch[data-v-7b200b13]::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.2s;
}
.toggle-switch--on[data-v-7b200b13] { background: var(--color-primary, #4353FF);
}
.toggle-switch--on[data-v-7b200b13]::after { transform: translateX(18px);
}

/* Save footer */
.save-footer[data-v-7b200b13] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
.save-success[data-v-7b200b13] { font-size: 13px; color: #065f46;
}
.save-error[data-v-7b200b13]   { font-size: 13px; color: #dc2626;
}
.btn-primary[data-v-7b200b13] {
  height: 36px;
  padding: 0 20px;
  background: var(--color-primary, #4353FF);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.btn-primary[data-v-7b200b13]:hover:not(:disabled) { opacity: 0.9;
}
.btn-primary[data-v-7b200b13]:disabled { opacity: 0.45; cursor: not-allowed;
}

/* ── Coming soon overlay ── */
.cs-wrap[data-v-7b200b13] { position: relative; overflow: hidden;
}

.combobox-list {
  list-style: none;
  margin: 0;
  padding: 6px 0;
  box-sizing: border-box;
  /*
   * font-family must be declared, not inherited. This list is teleported to <body>, and `body`
   * itself resolves to the UA default — the app applies Poppins to inner containers instead — so an
   * un-styled dropdown renders in Times next to a Poppins form. Measured: `getComputedStyle(body)
   * .fontFamily === "Times"`.
   */
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  border: 1px solid #d0d5e8;
  border-radius: 8px;
  background: #ffffff;
  overflow-y: auto;
  z-index: 8000;
  box-shadow: 0 4px 12px rgba(2, 6, 49, 0.1);
}
.combobox-item {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 34px;
  padding: 8px 12px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
  cursor: pointer;
  transition: background 0.1s ease;
}
.combobox-item:hover,
.combobox-item.active,
.combobox-item.highlighted {
  background: #f2f4ff;
}
.combobox-item.active {
  color: var(--color-primary, #4353ff);
  font-weight: 500;
}
.combobox-empty {
  padding: 12px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px;
  color: var(--color-text-muted, #9CA5BE);
  text-align: center;
  cursor: default;
  pointer-events: none;
}

.modal-backdrop[data-v-d2ec5245] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.modal-panel[data-v-d2ec5245] {
  background: #fff;
  border-radius: 16px;
  width: 420px;
  max-width: calc(100vw - 32px);
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.2);
}
.modal-header[data-v-d2ec5245] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 20px 0;
}
.modal-title[data-v-d2ec5245] { font-size: 16px; font-weight: 700; color: var(--color-primary-dark, #020631); margin: 0;
}
.modal-close[data-v-d2ec5245] {
  width: 28px; height: 28px;
  border: none; background: none; cursor: pointer;
  border-radius: 6px; display: flex; align-items: center; justify-content: center;
  color: var(--color-text-label, #47506A);
}
.modal-close[data-v-d2ec5245]:hover { background: var(--color-bg-page, #F9F9FC);
}
.modal-body[data-v-d2ec5245] {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.field-group[data-v-d2ec5245] { display: flex; flex-direction: column; gap: 4px;
}
.field-label[data-v-d2ec5245] { font-size: 11px; font-weight: 600; color: var(--color-text-label, #47506A); text-transform: uppercase; letter-spacing: 0.4px;
}
.pwd-row[data-v-d2ec5245] { display: flex; align-items: center; gap: 0; position: relative;
}
.field-input[data-v-d2ec5245] {
  flex: 1;
  height: 38px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 40px 0 12px;
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #ffffff);
  font-family: inherit;
  transition: border-color 0.12s;
}
.field-input[data-v-d2ec5245]:focus { outline: none; border-color: var(--color-primary, #4353FF);
}
.field-input--error[data-v-d2ec5245] { border-color: #dc2626;
}
.eye-btn[data-v-d2ec5245] {
  position: absolute;
  right: 10px;
  width: 22px; height: 22px;
  border: none; background: none; cursor: pointer;
  color: var(--color-text-placeholder, #9CA5BE);
  display: flex; align-items: center; justify-content: center;
  padding: 0;
}
.eye-btn[data-v-d2ec5245]:hover { color: var(--color-text-label, #47506A);
}
.field-error[data-v-d2ec5245] { font-size: 11px; color: #dc2626;
}
.modal-footer[data-v-d2ec5245] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 0 20px 20px;
}
.btn-secondary[data-v-d2ec5245] {
  height: 36px; padding: 0 16px;
  background: none;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font-family: inherit; font-size: 13px; font-weight: 500;
  color: var(--color-text-label, #47506A);
  cursor: pointer;
  transition: background 0.12s;
}
.btn-secondary[data-v-d2ec5245]:hover { background: var(--color-bg-page, #F9F9FC);
}
.btn-primary[data-v-d2ec5245] {
  height: 36px; padding: 0 20px;
  background: var(--color-primary, #4353FF); color: #fff;
  border: none; border-radius: 8px;
  font-family: inherit; font-size: 13px; font-weight: 600;
  cursor: pointer; transition: opacity 0.15s;
}
.btn-primary[data-v-d2ec5245]:hover:not(:disabled) { opacity: 0.9;
}
.btn-primary[data-v-d2ec5245]:disabled { opacity: 0.45; cursor: not-allowed;
}

.modal-backdrop[data-v-d4202cc2] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.modal-panel[data-v-d4202cc2] {
  background: #fff;
  border-radius: 16px;
  width: 380px;
  max-width: calc(100vw - 32px);
  padding: 28px 24px 24px;
  box-shadow: 0 20px 60px rgba(2, 6, 49, 0.2);
  text-align: center;
}
.modal-icon[data-v-d4202cc2] { margin-bottom: 14px; display: flex; justify-content: center;
}
.modal-title[data-v-d4202cc2] { font-size: 16px; font-weight: 700; color: var(--color-primary-dark, #020631); margin: 0 0 8px;
}
.modal-body[data-v-d4202cc2] { font-size: 13px; color: var(--color-text-label, #47506A); margin: 0 0 24px; line-height: 1.6;
}
.modal-footer[data-v-d4202cc2] { display: flex; justify-content: center; gap: 10px;
}
.btn-secondary[data-v-d4202cc2] {
  height: 36px; padding: 0 20px;
  background: none;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font-family: inherit; font-size: 13px; font-weight: 500;
  color: var(--color-text-label, #47506A);
  cursor: pointer;
}
.btn-secondary[data-v-d4202cc2]:hover { background: var(--color-bg-page, #F9F9FC);
}
.btn-danger[data-v-d4202cc2] {
  height: 36px; padding: 0 20px;
  background: #dc2626; color: #fff;
  border: none; border-radius: 8px;
  font-family: inherit; font-size: 13px; font-weight: 600;
  cursor: pointer; transition: opacity 0.15s;
}
.btn-danger[data-v-d4202cc2]:hover { opacity: 0.88;
}

/*
 * ⚠ Design-system tokens, not literals.
 *
 * Every rule here used to hardcode `'Poppins', sans-serif` inside a `font:` shorthand and pick its
 * own greys (#303A5C, #D3DADD) — neither of which is in tokens.css. The card therefore sat in the
 * Security tab in a slightly different type colour and border grey from every card around it, and a
 * theme change would have moved its neighbours and left it behind. The reds WERE right by luck
 * (#B30000 is --color-semantic-text-red); they are now named, so they stay right on purpose.
 *
 * Sizes and radii match the sibling cards in SecurityTab: 12px radius on the card, 8px inside,
 * 34px control height, 12–14px text. Every danger zone in this app follows the same rules, because
 * looking different is what makes two screens read as two different products.
 */
.del-card[data-v-0650b066] {
  border: 1px solid #F3C7BE;
  border-radius: 12px;
  padding: 20px;
  background: var(--color-surface-card, #fff);
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.del-title[data-v-0650b066] {
  margin: 0 0 8px;
  font-size: 14px; font-weight: 600; line-height: var(--line-height-s, 20px);
  color: var(--color-semantic-text-red, #B30000);
}
.del-body[data-v-0650b066] {
  margin: 0 0 16px;
  font-size: var(--font-size-12, 12px); line-height: var(--line-height-s, 20px);
  color: var(--color-text-helper, #535F7F);
  max-width: 62ch;
}
.del-effects[data-v-0650b066] { margin: 0 0 16px; padding-left: 18px;
}
.del-effects li[data-v-0650b066] {
  font-size: var(--font-size-12, 12px); line-height: 22px;
  color: var(--color-primary-dark, #020631);
}
.del-effect-keep[data-v-0650b066]  { color: var(--color-semantic-text-green, #008516);
}
.del-effect-final[data-v-0650b066] { font-weight: 600; color: var(--color-semantic-text-red, #B30000);
}
.del-loading[data-v-0650b066] {
  font-size: var(--font-size-12, 12px); line-height: var(--line-height-s, 20px);
  color: var(--color-text-helper, #535F7F);
}
.del-blockers-title[data-v-0650b066] {
  margin: 0 0 8px;
  font-size: 13px; font-weight: 500; line-height: var(--line-height-xs, 18px);
  color: var(--color-primary-dark, #020631);
}
.del-blockers[data-v-0650b066] { list-style: none; margin: 0 0 12px; padding: 0;
}
.del-blocker[data-v-0650b066] {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 10px 12px;
  border: 1px solid #F3C7BE; border-radius: 8px; margin-bottom: 8px;
  font-size: var(--font-size-12, 12px); line-height: var(--line-height-xs, 18px);
  color: var(--color-primary-dark, #020631);
}
/* A button, because it navigates in-app — but it still has to read as the link it replaced. */
.del-blocker-link[data-v-0650b066] {
  padding: 0; border: 0; background: none;
  font-family: inherit; font-size: inherit;
  color: var(--color-semantic-text-red, #B30000);
  font-weight: 600; white-space: nowrap;
  text-decoration: underline; cursor: pointer;
}
.del-recheck[data-v-0650b066] {
  margin: 0 0 10px;
  font-size: var(--font-size-12, 12px); line-height: var(--line-height-xs, 18px);
  color: var(--color-text-helper, #535F7F);
}
.del-send-intro[data-v-0650b066] {
  margin: 0 0 12px;
  font-size: var(--font-size-12, 12px); line-height: var(--line-height-s, 20px);
  color: var(--color-primary-dark, #020631);
}
.del-label[data-v-0650b066] {
  display: block; margin-bottom: 8px;
  font-size: var(--font-size-14, 14px); font-weight: 400; line-height: var(--line-height-s, 20px);
  color: var(--color-text-label, #47506A);
}
/* The verify-email screen's text action: blue, not red — resending a code is harmless. */
.del-link-btn[data-v-0650b066] {
  display: block; margin-top: 8px; padding: 0; border: 0; background: none; cursor: pointer;
  font-family: inherit; font-size: var(--font-size-14, 14px); line-height: var(--line-height-s, 20px);
  color: var(--color-primary-link, #0055D4);
}
.del-link-btn[data-v-0650b066]:not(:disabled):hover { text-decoration: underline;
}
.del-link-btn[data-v-0650b066]:disabled { color: var(--color-text-helper, #535F7F); cursor: not-allowed;
}
.del-link-btn[data-v-0650b066]:focus-visible { outline: 2px solid var(--color-primary-link, #0055D4); outline-offset: 2px; border-radius: 3px;
}
.del-ack[data-v-0650b066] {
  display: flex; align-items: flex-start; gap: 8px; margin-top: 12px;
  font-size: var(--font-size-12, 12px); line-height: var(--line-height-xs, 18px);
  color: var(--color-primary-dark, #020631); cursor: pointer;
}
.del-ack input[data-v-0650b066] { margin-top: 2px;
}
.del-btn-ghost[data-v-0650b066] {
  margin-top: 4px;
  height: 34px; padding: 0 16px;
  border: 1px solid var(--color-semantic-text-red, #B30000); border-radius: 8px;
  background: var(--color-surface-card, #fff);
  color: var(--color-semantic-text-red, #B30000);
  font-family: inherit; font-size: var(--font-size-12, 12px); font-weight: 500;
  cursor: pointer; white-space: nowrap;
  transition: background 0.12s;
}
.del-btn-ghost[data-v-0650b066]:hover:not(:disabled) { background: var(--color-semantic-bg-red, #FFECEB);
}
.del-btn-ghost[data-v-0650b066]:disabled { opacity: .45; cursor: not-allowed;
}
.del-btn-danger[data-v-0650b066] {
  display: block; margin-top: 14px;
  height: 34px; padding: 0 16px;
  border: 1px solid var(--color-semantic-text-red, #B30000); border-radius: 8px;
  background: var(--color-semantic-text-red, #B30000);
  color: var(--color-text-white, #fff);
  font-family: inherit; font-size: var(--font-size-12, 12px); font-weight: 600;
  cursor: pointer; white-space: nowrap;
}
.del-btn-danger[data-v-0650b066]:disabled { opacity: .45; cursor: not-allowed;
}
.del-error[data-v-0650b066] {
  margin: 12px 0 0;
  font-size: var(--font-size-12, 12px); line-height: var(--line-height-xs, 18px);
  color: var(--color-error, #DC2626);
}
.del-done[data-v-0650b066] {
  margin: 0; padding: 10px 14px; border-radius: 8px;
  background: var(--color-semantic-bg-green, #DCFFF1);
  color: var(--color-semantic-text-green, #008516);
  font-size: 13px; font-weight: 600; line-height: var(--line-height-xs, 18px);
}

.security-tab[data-v-81a2ac05] { display: flex; flex-direction: column; gap: 20px;
}
.card[data-v-81a2ac05] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.card-title[data-v-81a2ac05] { font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 16px 0;
}
.security-row[data-v-81a2ac05] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.security-row[data-v-81a2ac05]:last-child { border-bottom: none;
}
.security-row--mfa[data-v-81a2ac05] {
}
.security-row--disabled[data-v-81a2ac05] { opacity: 0.5;
}
.security-row-info[data-v-81a2ac05] { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.security-row-label[data-v-81a2ac05] { font-size: 13px; font-weight: 500; color: var(--color-primary-dark, #020631);
}
.security-row-sub[data-v-81a2ac05] { font-size: 12px; color: var(--color-text-label, #47506A);
}
.btn-outline[data-v-81a2ac05] {
  height: 34px; padding: 0 16px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: #fff; border-radius: 8px;
  font-family: inherit; font-size: 12px; font-weight: 500;
  color: var(--color-primary-dark, #020631);
  cursor: pointer; white-space: nowrap;
  transition: background 0.12s;
  flex-shrink: 0;
}
.btn-outline[data-v-81a2ac05]:hover:not(:disabled) { background: var(--color-bg-page, #F9F9FC);
}
.btn-outline[data-v-81a2ac05]:disabled { opacity: 0.45; cursor: not-allowed;
}
.btn-danger-outline[data-v-81a2ac05] {
  height: 34px; padding: 0 16px;
  border: 1px solid #dc2626;
  background: #fff; border-radius: 8px;
  font-family: inherit; font-size: 12px; font-weight: 500;
  color: #dc2626;
  cursor: pointer; white-space: nowrap;
  transition: background 0.12s;
  flex-shrink: 0;
}
.btn-danger-outline[data-v-81a2ac05]:hover { background: #fff1f1;
}
.btn-destructive[data-v-81a2ac05] {
  height: 34px; padding: 0 16px;
  background: #dc2626; color: #fff;
  border: none; border-radius: 8px;
  font-family: inherit; font-size: 12px; font-weight: 600;
  cursor: not-allowed; white-space: nowrap;
  flex-shrink: 0;
  opacity: 0.4;
}
.security-row-label-wrap[data-v-81a2ac05] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.badge-soon[data-v-81a2ac05] {
  padding: 2px 9px;
  border-radius: 100px;
  background: #eceeff;
  color: var(--color-primary, #4353FF);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2px;
  white-space: nowrap;
  flex-shrink: 0;
}
.badge-disabled[data-v-81a2ac05] {
  padding: 3px 10px;
  border-radius: 100px;
  background: #F3F4F6;
  color: #9CA5BE;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}
.status-msg[data-v-81a2ac05] {
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  margin: 4px 0;
}
.status-msg--success[data-v-81a2ac05] { background: #d1fae5; color: #065f46;
}
.status-msg--error[data-v-81a2ac05]   { background: #fee2e2; color: #dc2626;
}


.sessions-tab[data-v-84e23d30] { display: flex; flex-direction: column; gap: 20px;
}
.loading-msg[data-v-84e23d30] {
  padding: 32px;
  text-align: center;
  color: var(--color-text-label, #47506A);
  font-size: 14px;
}
.error-banner[data-v-84e23d30] {
  padding: 12px 16px;
  background: #fee2e2;
  color: #dc2626;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 12px;
}
.card[data-v-84e23d30] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.card-head[data-v-84e23d30] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.card-title[data-v-84e23d30] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px 0;
}
.card-sub[data-v-84e23d30] {
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  margin: 0;
  max-width: 480px;
}
.card-sub--spaced[data-v-84e23d30] { margin-bottom: 14px;
}
.btn-signout-all[data-v-84e23d30] {
  flex-shrink: 0;
  height: 34px;
  padding: 0 16px;
  border: 1px solid #fca5a5;
  border-radius: 8px;
  background: #fff;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  color: #dc2626;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s;
}
.btn-signout-all[data-v-84e23d30]:hover:not(:disabled) { background: #fee2e2;
}
.btn-signout-all[data-v-84e23d30]:disabled { opacity: 0.5; cursor: not-allowed;
}
.empty-state[data-v-84e23d30] {
  padding: 24px;
  text-align: center;
  color: var(--color-text-placeholder, #9CA5BE);
  font-size: 13px;
}
.session-list[data-v-84e23d30] { list-style: none; margin: 0; padding: 0;
}
.session-row[data-v-84e23d30] {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.session-row[data-v-84e23d30]:last-child { border-bottom: none;
}
.session-icon[data-v-84e23d30] {
  flex-shrink: 0;
  color: var(--color-primary, #4353FF);
  display: flex;
  align-items: center;
}
.session-icon--muted[data-v-84e23d30] { color: #C4CBDD;
}
.session-info[data-v-84e23d30] { flex: 1; min-width: 0;
}
.session-top[data-v-84e23d30] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.session-device[data-v-84e23d30] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.session-device--muted[data-v-84e23d30] { color: var(--color-text-label, #47506A); font-weight: 500;
}
.badge[data-v-84e23d30] {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
}
.badge--current[data-v-84e23d30] { background: #eceeff; color: var(--color-primary, #4353FF);
}
.badge--active[data-v-84e23d30]  { background: #dcfce7; color: #15803d;
}
.badge--past[data-v-84e23d30]    { background: #f1f5f9; color: #94a3b8; font-weight: 500;
}
.session-meta[data-v-84e23d30] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 3px;
  font-size: 12px;
  color: var(--color-text-label, #47506A);
}
.dot[data-v-84e23d30] { color: #C4CBDD;
}
.btn-revoke[data-v-84e23d30] {
  flex-shrink: 0;
  height: 32px;
  padding: 0 14px;
  border: 1px solid #fca5a5;
  border-radius: 8px;
  background: #fff;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  color: #dc2626;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
}
.btn-revoke[data-v-84e23d30]:hover:not(:disabled) { background: #fee2e2;
}
.btn-revoke[data-v-84e23d30]:disabled { opacity: 0.5; cursor: not-allowed;
}
.this-device-label[data-v-84e23d30] {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  padding: 0 4px;
}

.tab[data-v-635160bb] { display: flex; flex-direction: column; gap: 20px;
}
.card[data-v-635160bb] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.card-head[data-v-635160bb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.card-title[data-v-635160bb] { font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0;
}
.btn-primary[data-v-635160bb] {
  height: 34px; padding: 0 16px;
  background: var(--color-primary, #4353FF); color: #fff;
  border: none; border-radius: 8px;
  font-family: inherit; font-size: 12px; font-weight: 600;
  cursor: not-allowed; opacity: 0.45;
}
.key-list[data-v-635160bb] { list-style: none; margin: 0; padding: 0;
}
.key-row[data-v-635160bb] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.key-row[data-v-635160bb]:last-child { border-bottom: none;
}
.key-icon[data-v-635160bb] { color: var(--color-text-label, #47506A); flex-shrink: 0;
}
.key-info[data-v-635160bb] { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0;
}
.key-name[data-v-635160bb] { font-size: 13px; font-weight: 500; color: var(--color-primary-dark, #020631);
}
.key-meta[data-v-635160bb] { font-size: 11px; font-family: monospace; color: var(--color-text-label, #47506A);
}
.key-date[data-v-635160bb], .key-usage[data-v-635160bb] { font-size: 11px; color: var(--color-text-label, #47506A); white-space: nowrap; flex-shrink: 0;
}
.btn-revoke[data-v-635160bb] {
  height: 30px; padding: 0 12px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: #fff; border-radius: 6px;
  font-family: inherit; font-size: 11px; font-weight: 500;
  color: var(--color-text-label, #47506A);
  cursor: not-allowed; opacity: 0.45; flex-shrink: 0;
}
.cs-wrap[data-v-635160bb] { position: relative; overflow: hidden;
}

.tab[data-v-ddf28165] { display: flex; flex-direction: column; gap: 20px;
}
.card[data-v-ddf28165] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.card-title[data-v-ddf28165] { font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 16px 0;
}
.provider-list[data-v-ddf28165] { list-style: none; margin: 0; padding: 0;
}
.provider-row[data-v-ddf28165] {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.provider-row[data-v-ddf28165]:last-child { border-bottom: none;
}
.provider-logo[data-v-ddf28165] { flex-shrink: 0; display: flex; align-items: center; width: 20px; height: 20px;
}
.provider-info[data-v-ddf28165] { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0;
}
.provider-name[data-v-ddf28165] { font-size: 13px; font-weight: 500; color: var(--color-primary-dark, #020631);
}
.provider-status[data-v-ddf28165] { font-size: 11px; color: var(--color-text-placeholder, #9CA5BE);
}
.btn-connect[data-v-ddf28165] {
  height: 32px; padding: 0 16px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: #fff; border-radius: 8px;
  font-family: inherit; font-size: 12px; font-weight: 500;
  color: var(--color-text-label, #47506A);
  cursor: not-allowed; opacity: 0.45; flex-shrink: 0;
}
.cs-wrap[data-v-ddf28165] { position: relative; overflow: hidden;
}

.tab[data-v-6176a779] { display: flex; flex-direction: column; gap: 20px;
}
.card[data-v-6176a779] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.card-title[data-v-6176a779] { font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 16px 0;
}
.notif-list[data-v-6176a779] { list-style: none; margin: 0; padding: 0;
}
.notif-row[data-v-6176a779] {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.notif-row[data-v-6176a779]:last-child { border-bottom: none;
}
.notif-info[data-v-6176a779] { flex: 1; min-width: 0;
}
.notif-label[data-v-6176a779] { display: block; font-size: 13px; font-weight: 500; color: var(--color-primary-dark, #020631);
}
.notif-sub[data-v-6176a779] { display: block; font-size: 11px; color: var(--color-text-label, #47506A); margin-top: 2px;
}
.toggle-switch[data-v-6176a779] {
  width: 36px; height: 20px;
  border-radius: 10px; background: #D1D5DB;
  position: relative; flex-shrink: 0;
}
.toggle-switch[data-v-6176a779]::after {
  content: ''; position: absolute;
  top: 2px; left: 2px;
  width: 16px; height: 16px;
  border-radius: 50%; background: #fff;
}
.toggle-switch--on[data-v-6176a779] { background: var(--color-primary, #4353FF);
}
.toggle-switch--on[data-v-6176a779]::after { transform: translateX(16px);
}
.cs-wrap[data-v-6176a779] { position: relative; overflow: hidden;
}

.tab[data-v-fc9eee4f] { display: flex; flex-direction: column; gap: 20px;
}
.card[data-v-fc9eee4f] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 20px;
}
.card-header[data-v-fc9eee4f] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
}
.card-title[data-v-fc9eee4f] { font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0;
}
.btn-create-panel[data-v-fc9eee4f] {
  border: none;
  background: var(--color-primary, #4353FF);
  color: #fff;
  border-radius: 8px;
  padding: 8px 14px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.btn-create-panel[data-v-fc9eee4f]:hover { opacity: 0.9;
}
.ws-error[data-v-fc9eee4f] {
  margin: 0;
  font-size: 12px;
  color: #dc2626;
}

/* Owned workspace card(s) */
.owned-list[data-v-fc9eee4f] { display: flex; flex-direction: column; gap: 12px;
}
.owned-card[data-v-fc9eee4f] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  background: #fff;
  padding: 14px 16px;
}
.owned-card-main[data-v-fc9eee4f] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
}
.owned-card-meta[data-v-fc9eee4f] {
  display: flex;
  gap: 10px;
  font-size: 11px;
  color: var(--color-text-label, #47506A);
}

/* Empty owned state — centered create panel */
.create-panel[data-v-fc9eee4f] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 36px 20px;
  border: 1px dashed var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  background: #fff;
  text-align: center;
}
.create-panel-text[data-v-fc9eee4f] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}
.btn-create-panel[data-v-fc9eee4f] { padding: 10px 20px; font-size: 13px;
}

/* Member-of list */
.ws-list[data-v-fc9eee4f] { list-style: none; margin: 0; padding: 0;
}
.ws-row[data-v-fc9eee4f] {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.ws-row[data-v-fc9eee4f]:last-child { border-bottom: none;
}
.ws-info[data-v-fc9eee4f] { flex: 1; min-width: 0; display: flex; flex-direction: column;
}
.ws-name[data-v-fc9eee4f] { font-size: 13px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.ws-meta[data-v-fc9eee4f] { font-size: 11px; color: var(--color-text-label, #47506A); margin-top: 2px;
}
.ws-actions[data-v-fc9eee4f] { display: flex; align-items: center; gap: 8px; flex-shrink: 0;
}
.ws-badge[data-v-fc9eee4f] {
  padding: 3px 10px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.ws-badge--active[data-v-fc9eee4f] {
  background: #eceeff;
  color: var(--color-primary, #4353FF);
}
.btn-switch[data-v-fc9eee4f],
.btn-leave[data-v-fc9eee4f] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: #fff;
  color: var(--color-primary-dark, #020631);
  border-radius: 8px;
  padding: 7px 12px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.btn-switch[data-v-fc9eee4f]:hover:not(:disabled),
.btn-leave[data-v-fc9eee4f]:hover:not(:disabled) { background: var(--color-bg-page, #F9F9FC);
}
.btn-switch[data-v-fc9eee4f]:disabled,
.btn-leave[data-v-fc9eee4f]:disabled { opacity: 0.6; cursor: default;
}
.btn-leave[data-v-fc9eee4f] { color: #dc2626; border-color: rgba(220, 38, 38, 0.3);
}
.btn-leave[data-v-fc9eee4f]:hover:not(:disabled) { background: #fff1f1;
}
.ws-empty[data-v-fc9eee4f] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}

/* Leave confirmation modal */
.modal-overlay[data-v-fc9eee4f] {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 49, 0.32);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.modal-panel[data-v-fc9eee4f] {
  background: #fff;
  border-radius: 12px;
  padding: 24px;
  width: 100%;
  max-width: 380px;
  box-shadow: 0 12px 32px rgba(2, 6, 49, 0.18);
}
.modal-title[data-v-fc9eee4f] {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 8px 0;
}
.modal-body[data-v-fc9eee4f] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
  margin: 0 0 20px 0;
  line-height: 1.5;
}
.modal-actions[data-v-fc9eee4f] {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.btn-cancel[data-v-fc9eee4f] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: #fff;
  color: var(--color-primary-dark, #020631);
  border-radius: 8px;
  padding: 8px 16px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.btn-cancel[data-v-fc9eee4f]:hover { background: var(--color-bg-page, #F9F9FC);
}
.btn-confirm-leave[data-v-fc9eee4f] {
  border: none;
  background: #dc2626;
  color: #fff;
  border-radius: 8px;
  padding: 8px 16px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.btn-confirm-leave[data-v-fc9eee4f]:hover:not(:disabled) { opacity: 0.9;
}
.btn-confirm-leave[data-v-fc9eee4f]:disabled { opacity: 0.6; cursor: default;
}

.profile-page[data-v-1ccf9304] {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Header ── */
.profile-header[data-v-1ccf9304] {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.profile-avatar[data-v-1ccf9304] {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--color-primary, #4353FF);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  letter-spacing: 1px;
}
.profile-header-info[data-v-1ccf9304] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.profile-name[data-v-1ccf9304] {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary-dark, #020631);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.profile-email[data-v-1ccf9304] {
  font-size: 13px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}
.profile-role-pill[data-v-1ccf9304] {
  display: inline-block;
  align-self: flex-start;
  width: fit-content;
  margin-top: 4px;
  padding: 2px 10px;
  border-radius: 100px;
  background: #eceeff;
  color: var(--color-primary, #4353FF);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.3px;
}
.profile-header-actions[data-v-1ccf9304] {
  flex-shrink: 0;
  margin-left: auto;
}
.btn-header-save[data-v-1ccf9304] {
  height: 36px;
  padding: 0 20px;
  background: var(--color-primary, #4353FF);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
  white-space: nowrap;
}
.btn-header-save[data-v-1ccf9304]:hover:not(:disabled) { opacity: 0.9;
}
.btn-header-save[data-v-1ccf9304]:disabled { opacity: 0.45; cursor: not-allowed;
}

/* ── Tab bar ── */
.profile-tabs[data-v-1ccf9304] {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  overflow-x: auto;
  scrollbar-width: none;
}
.profile-tabs[data-v-1ccf9304]::-webkit-scrollbar { display: none;
}
.profile-tab[data-v-1ccf9304] {
  padding: 12px 16px;
  border: none;
  border-bottom: 2px solid transparent;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text-label, #47506A);
  white-space: nowrap;
  transition: color 0.12s, border-color 0.12s;
  margin-bottom: -1px;
}
.profile-tab[data-v-1ccf9304]:hover { color: var(--color-primary-dark, #020631);
}
.profile-tab--active[data-v-1ccf9304] {
  color: var(--color-primary, #4353FF);
  border-bottom-color: var(--color-primary, #4353FF);
  font-weight: 600;
}

/* ── Content area ── */
.profile-content[data-v-1ccf9304] {
  padding-top: 24px;
}

.pay-success-backdrop[data-v-eb5c5aef] {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(2,6,49,0.55);
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(2px);
}
.pay-success-dialog[data-v-eb5c5aef] {
  background: #FFFFFF; border-radius: 20px;
  padding: 40px 48px; max-width: 480px; width: 90%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.18);
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  animation: pay-success-in-eb5c5aef 0.3s ease-out;
}
@keyframes pay-success-in-eb5c5aef {
from { opacity: 0; transform: scale(0.9) translateY(12px);
}
to   { opacity: 1; transform: scale(1) translateY(0);
}
}
.pay-success-icon[data-v-eb5c5aef] { margin-bottom: 4px;
}
.pay-success-title[data-v-eb5c5aef] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-size: 22px; font-weight: 700;
  color: var(--color-primary-dark, #020631); margin: 0; text-align: center;
}
.pay-success-sub[data-v-eb5c5aef] {
  font-family: var(--font-family-body, 'Poppins', sans-serif); font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A); text-align: center; margin: 0; line-height: 22px;
}
.pay-success-details[data-v-eb5c5aef] {
  width: 100%;
  display: flex; flex-direction: column; gap: 14px;
  text-align: left;
}
[data-v-eb5c5aef] .pay-success-row {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--font-family-body, 'Poppins', sans-serif); font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A);
}
[data-v-eb5c5aef] .pay-success-row--total {
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  padding-top: 8px; margin-top: 4px;
  color: var(--color-primary-dark, #020631); font-weight: 600;
}
[data-v-eb5c5aef] .pay-success-row--savings {
  color: #16a34a; font-weight: 600;
}
.pay-success-btn[data-v-eb5c5aef] {
  width: 100%; height: 48px;
  background: var(--color-primary, #4353FF); color: #FFFFFF;
  border: none; border-radius: 10px;
  font-family: var(--font-family-body, 'Poppins', sans-serif); font-weight: 600; font-size: var(--font-size-14, 14px);
  cursor: pointer; transition: background 0.15s; margin-top: 4px;
}
.pay-success-btn[data-v-eb5c5aef]:hover { background: #3243EF;
}

.scg-card[data-v-b481b1f6] {
  display: flex;
  flex-direction: column;
}

/* Wrapper that holds the toggle button + remove link stacked */
.scg-header-wrap[data-v-b481b1f6] {
  display: flex;
  flex-direction: column;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  padding-bottom: 6px;
}

/* Header toggle row */
.scg-header[data-v-b481b1f6] {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 0 4px;
  border: none;
  background: none;
  cursor: pointer;
  text-align: left;
}
.scg-header-main[data-v-b481b1f6] { flex: 1; min-width: 0;
}
.scg-name[data-v-b481b1f6] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: var(--font-size-14, 14px); font-weight: 600;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.scg-sub[data-v-b481b1f6] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: var(--color-text-label, #47506A); margin: 0;
}
.scg-save-inline[data-v-b481b1f6] { color: #16a34a; font-weight: 600;
}
.scg-incomplete-inline[data-v-b481b1f6] { color: #D97706; font-weight: 500;
}
.scg-header-right[data-v-b481b1f6] {
  display: flex; align-items: center; gap: 6px;
  flex-shrink: 0; text-align: right;
}
.scg-prices[data-v-b481b1f6] { display: flex; flex-direction: column; align-items: flex-end; gap: 1px;
}
.scg-price-original[data-v-b481b1f6] {
  font-family: var(--font-family-body, 'Poppins', sans-serif); font-size: 11px;
  color: #9CA5BE; text-decoration: line-through;
}
.scg-price-current[data-v-b481b1f6] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: var(--font-size-14, 14px); font-weight: 600;
  color: var(--color-primary-dark, #020631); margin: 0;
}
.scg-chevron[data-v-b481b1f6] {
  width: 14px; height: 14px; color: #9CA5BE;
  transition: transform 0.15s; flex-shrink: 0;
}
.scg-chevron--open[data-v-b481b1f6] { transform: rotate(180deg);
}

/* Remove suite — sits just below the price, right-aligned */
.scg-remove-header[data-v-b481b1f6] {
  align-self: flex-end;
  background: none; border: none; cursor: pointer; padding: 0 0 2px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; font-weight: 600; color: #DC2626;
}
.scg-remove-header[data-v-b481b1f6]:hover { text-decoration: underline;
}

/* Member rows — indented with left border */
.scg-members[data-v-b481b1f6] {
  display: flex; flex-direction: column;
  padding-left: 12px;
  border-left: 2px solid var(--color-border-default, #E5E7EF);
  margin-left: 2px;
  padding-bottom: 4px;
}
.scg-member-row[data-v-b481b1f6] {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid #F0F1F6;
}
.scg-member-info[data-v-b481b1f6] { flex: 1; min-width: 0;
}
.scg-member-name[data-v-b481b1f6] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; font-weight: 500; color: var(--color-primary-dark, #020631);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block;
}
.scg-member-right[data-v-b481b1f6] { display: flex; align-items: baseline; gap: 8px; flex-shrink: 0;
}
.scg-member-orig[data-v-b481b1f6] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: #9CA5BE; text-decoration: line-through;
}
.scg-member-price[data-v-b481b1f6] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.scg-member-remove[data-v-b481b1f6] {
  background: none; border: none; cursor: pointer; padding: 0;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: #DC2626;
}
.scg-member-remove[data-v-b481b1f6]:hover { text-decoration: underline;
}

/* Discount summary block */
.scg-summary-divider[data-v-b481b1f6] {
  height: 1px; background: var(--color-border-default, #E5E7EF); margin: 2px 0;
}
.scg-summary-row[data-v-b481b1f6] {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 5px 0;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 12px;
}
.scg-summary-row--subtotal[data-v-b481b1f6] { color: var(--color-text-label, #47506A);
}
.scg-summary-row--discount[data-v-b481b1f6] { color: #16a34a; font-weight: 600;
}
.scg-summary-row--total[data-v-b481b1f6]    { color: var(--color-primary-dark, #020631); font-weight: 700;
}
.scg-discount-pct[data-v-b481b1f6] { font-weight: 400; font-size: 11px; color: #16a34a;
}
.scg-discount-val[data-v-b481b1f6] { color: #16a34a;
}

.mkt-co[data-v-85b38b58] { display: flex; flex-direction: column; height: 100%; overflow-y: auto;
}
/* ── Success-dialog details: App Suites panel + Apps panel (shared type scale) ── */
[data-v-85b38b58] .pay-group { display: flex; flex-direction: column; gap: 6px;
}
[data-v-85b38b58] .pay-grp-head {
  font: 700 11px/16px 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-placeholder, #9CA5BE);
}
[data-v-85b38b58] .pay-panel { border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 10px; padding: 2px 12px;
}
[data-v-85b38b58] .pay-panel--static { padding: 8px 12px; display: flex; flex-direction: column; gap: 6px;
}
[data-v-85b38b58] .pay-panel + .pay-panel { margin-top: 6px;
}
[data-v-85b38b58] .pay-panel-head { width: 100%; background: none; border: none; padding: 9px 0; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
[data-v-85b38b58] .pay-panel-title { font: 600 14px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
[data-v-85b38b58] .pay-panel-count { font: 400 12px/16px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
}
[data-v-85b38b58] .pay-panel-right { display: inline-flex; align-items: center; gap: 8px; font: 600 14px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); white-space: nowrap;
}
[data-v-85b38b58] .pay-savechip { background: #E7F7EE; color: #15803D; border-radius: 4px; padding: 1px 7px; font: 600 11px/16px 'Poppins', sans-serif;
}
[data-v-85b38b58] .pay-caret { transition: transform 0.15s; display: inline-block; color: var(--color-text-placeholder, #9CA5BE);
}
[data-v-85b38b58] .pay-caret--open { transform: rotate(180deg);
}
[data-v-85b38b58] .pay-panel-body { padding: 2px 0 8px; border-top: 1px solid var(--color-border-default, #E5E7EF); margin-top: 2px; display: flex; flex-direction: column; gap: 6px;
}
[data-v-85b38b58] .pay-line { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
[data-v-85b38b58] .pay-line-name { color: var(--color-text-label, #47506A); min-width: 0;
}
[data-v-85b38b58] .pay-line-price { color: var(--color-primary-dark, #020631); font-weight: 600; white-space: nowrap;
}
[data-v-85b38b58] .pay-line--savings,[data-v-85b38b58] .pay-line--savings span { color: #16a34a; font-weight: 600;
}
[data-v-85b38b58] .pay-strike { color: var(--color-text-placeholder, #9CA5BE); text-decoration: line-through; font-size: 11px; font-weight: 400; margin-right: 4px;
}
[data-v-85b38b58] .pay-totals { display: flex; flex-direction: column; gap: 8px;
}
[data-v-85b38b58] .pay-success-row--muted { color: var(--color-text-placeholder, #9CA5BE); font-size: 12px;
}
.mkt-co-header[data-v-85b38b58] { display: flex; align-items: center; gap: 16px; margin-bottom: 28px;
}
.mkt-co-back[data-v-85b38b58] {
  background: none; border: none; cursor: pointer; padding: 0;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 14px; color: var(--color-primary, #4353FF);
}
.mkt-co-back[data-v-85b38b58]:hover { text-decoration: underline;
}
.mkt-co-title[data-v-85b38b58] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 700; font-size: 28px; color: var(--color-primary-dark, #020631); margin: 0;
}
.mkt-co-layout[data-v-85b38b58] { display: flex; gap: 40px; align-items: flex-start; padding-bottom: 40px;
}
.mkt-co-main[data-v-85b38b58] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 28px;
}
.mkt-co-summary[data-v-85b38b58] { width: 300px; flex-shrink: 0; position: sticky; top: 0;
}
.mkt-co-section[data-v-85b38b58] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px; padding: 24px;
}
.mkt-co-section-title[data-v-85b38b58] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 600; font-size: 16px; color: var(--color-primary-dark, #020631); margin: 0 0 16px;
}
.mkt-co-fields[data-v-85b38b58] { display: flex; flex-direction: column; gap: 16px;
}
.mkt-co-field[data-v-85b38b58] { display: flex; flex-direction: column; gap: 6px;
}
.mkt-co-label[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; font-weight: 500; color: var(--color-text-label, #47506A);
}
.mkt-co-input[data-v-85b38b58] {
  height: 44px; border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px; padding: 0 14px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 14px; color: var(--color-primary-dark, #020631); outline: none;
}
.mkt-co-input[data-v-85b38b58]:focus { border-color: var(--color-primary, #4353FF);
}
.mkt-co-bypass-notice[data-v-85b38b58] {
  display: flex; align-items: flex-start; gap: 10px;
  background: #FFF7ED; border-radius: 8px; padding: 12px 16px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; color: #92400E;
}
.mkt-co-legal[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 12px; color: var(--color-text-label, #47506A);
}
.mkt-co-link[data-v-85b38b58] { color: var(--color-primary, #4353FF); text-decoration: none;
}
.mkt-co-link[data-v-85b38b58]:hover { text-decoration: underline;
}
.mkt-co-confirm-btn[data-v-85b38b58] {
  width: 100%; height: 48px;
  background: var(--color-primary, #4353FF); color: #FFF;
  border: none; border-radius: 8px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 600; font-size: 15px; cursor: pointer; transition: background 0.15s;
}
.mkt-co-confirm-btn[data-v-85b38b58]:hover:not(:disabled) { background: #3243EF;
}
.mkt-co-confirm-btn[data-v-85b38b58]:disabled { background: var(--color-text-placeholder, #9CA5BE); cursor: not-allowed;
}
.mkt-co-error[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; color: #DC2626;
  background: #FEF2F2; border-radius: 8px; padding: 10px 14px;
}
.mkt-co-summary-card[data-v-85b38b58] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px; padding: 24px;
}
.mkt-co-summary-title[data-v-85b38b58] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 700; font-size: 16px; color: var(--color-primary-dark, #020631); margin: 0 0 16px;
}
.mkt-co-summary-lines[data-v-85b38b58] { display: flex; flex-direction: column; gap: 8px;
}
.mkt-co-summary-line[data-v-85b38b58] {
  display: flex; justify-content: space-between;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; color: var(--color-primary-dark, #020631);
}
.mkt-co-summary-line-name[data-v-85b38b58] { color: var(--color-text-label, #47506A);
}

/* Overlap fold breakdown box */
.mkt-co-fold[data-v-85b38b58] {
  margin-top: 14px; padding: 12px 14px;
  background: #F4F6FF; border: 1px solid #DDE3FF; border-radius: 10px;
  display: flex; flex-direction: column; gap: 6px;
}
.mkt-co-fold-title[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-label, #47506A); margin: 0 0 2px;
}
.mkt-co-fold-line[data-v-85b38b58] {
  display: flex; justify-content: space-between;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; color: var(--color-primary-dark, #020631);
}
.mkt-co-fold-credit[data-v-85b38b58] { color: #15803D;
}
.mkt-co-fold-net[data-v-85b38b58] {
  font-weight: 700; padding-top: 6px;
  border-top: 1px dashed #C6CFF7;
}
.mkt-co-suite-group[data-v-85b38b58] { margin-bottom: 8px;
}
.mkt-co-group[data-v-85b38b58] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px;
}
.mkt-co-group-head[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-label, #47506A); margin-bottom: 2px;
}
.mkt-co-group-count[data-v-85b38b58] { font-weight: 500; color: var(--color-text-placeholder, #9CA5BE);
}
.mkt-co-savings[data-v-85b38b58] { color: #16a34a; font-weight: 600;
}
.mkt-co-rule[data-v-85b38b58] { border: none; border-top: 1px solid var(--color-border-default, #E5E7EF); margin: 16px 0;
}
.mkt-co-total[data-v-85b38b58] {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.mkt-co-total-val[data-v-85b38b58] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-size: 30px; font-weight: 700; color: var(--color-primary, #4353FF);
}
.mkt-co-tax[data-v-85b38b58] { color: var(--color-text-label, #47506A); font-weight: 500;
}
.mkt-co-tax-hint[data-v-85b38b58] { font-size: 11px; font-weight: 400; color: var(--color-text-placeholder, #9CA5BE);
}
.mkt-co-prorate-notice[data-v-85b38b58] {
  display: flex; align-items: flex-start; gap: 8px;
  background: #F0F1FF; border-radius: 8px; padding: 12px 14px; margin-top: 14px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 12px; line-height: 1.5; color: var(--color-primary-dark, #020631);
}
.mkt-co-prorate-notice svg[data-v-85b38b58] { flex-shrink: 0; margin-top: 1px;
}
.mkt-co-renewal-line[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: var(--color-text-label, #47506A); margin: 10px 0 0;
}

/* ── "How is this calculated?" proration breakdown ─────────────────────────── */
.mkt-co-calc-toggle[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: var(--color-primary, #4353FF);
  background: none; border: none; padding: 0; margin: 8px 0 0;
  cursor: pointer; text-decoration: underline;
}
.mkt-co-calc-toggle[data-v-85b38b58]:hover { opacity: 0.8;
}
.mkt-co-calc[data-v-85b38b58] {
  margin-top: 10px; padding: 12px 14px;
  background: var(--color-bg-subtle, #F7F8FC);
  border: 1px solid var(--color-border-subtle, #E6E8F0);
  border-radius: 8px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.mkt-co-calc-lead[data-v-85b38b58] {
  font-size: 11px; color: var(--color-text-label, #47506A); margin: 0 0 10px;
}
.mkt-co-calc-row[data-v-85b38b58] {
  display: flex; justify-content: space-between; gap: 12px;
  font-size: 11px; color: var(--color-text-body, #1F2439); padding: 3px 0;
}
.mkt-co-calc-row--total[data-v-85b38b58] { font-weight: 600;
}
.mkt-co-calc-sep[data-v-85b38b58] {
  height: 1px; background: var(--color-border-subtle, #E6E8F0); margin: 8px 0;
}
.mkt-co-calc-line + .mkt-co-calc-line[data-v-85b38b58] { margin-top: 4px;
}
.mkt-co-calc-note[data-v-85b38b58] {
  font-size: 10px; color: var(--color-text-label, #47506A);
  margin: 2px 0 0; line-height: 1.45;
}
.mkt-co-calc-row--credit span[data-v-85b38b58] { color: #065F46;
}
.mkt-co-calc-strike[data-v-85b38b58] {
  text-decoration: line-through; opacity: 0.55; margin-right: 5px;
}

/* ── Single-column redesign (mirrors onboarding CheckoutView card language) ── */
.mkt-co-single[data-v-85b38b58] { max-width: 620px; margin: 0 auto; width: 100%; padding-bottom: 40px;
}
.mkt-co-card[data-v-85b38b58] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px; padding: 24px 24px 20px; margin-bottom: 16px;
}
.mkt-co-card-title[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 18px;
}
.mkt-co-line[data-v-85b38b58] {
  display: flex; justify-content: space-between; align-items: baseline; padding: 7px 0;
  font-family: var(--font-family-body, 'Poppins', sans-serif); font-size: 14px;
}
.mkt-co-line-name[data-v-85b38b58] { color: var(--color-primary-dark, #020631);
}
.mkt-co-line-price[data-v-85b38b58] { color: var(--color-primary-dark, #020631); font-weight: 600; white-space: nowrap;
}
.mkt-co-rule--bold[data-v-85b38b58] { border-top-width: 2px; border-top-color: var(--color-primary-dark, #020631); margin: 16px 0;
}
.mkt-co-total-label[data-v-85b38b58] { font-family: var(--font-family-body, 'Poppins', sans-serif); font-size: 15px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.mkt-co-paynote[data-v-85b38b58] {
  display: flex; align-items: flex-start; gap: 8px;
  background: #F0FDF4; border-radius: 8px; padding: 12px 14px; margin-bottom: 16px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; line-height: 1.5; color: #15803D;
}
.mkt-co-paynote svg[data-v-85b38b58] { flex-shrink: 0; margin-top: 2px;
}

/* Payment-method card (add-on autopay display) */
.mkt-co-card-onfile[data-v-85b38b58] {
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 10px;
  padding: 12px 14px; background: #FAFBFF;
}
.mkt-co-card-glyph[data-v-85b38b58] { flex-shrink: 0; display: flex;
}
.mkt-co-card-lines[data-v-85b38b58] { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.mkt-co-card-main[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 14px; font-weight: 600; color: var(--color-primary-dark, #020631); letter-spacing: 0.02em;
}
.mkt-co-card-sub[data-v-85b38b58] { font-size: 12px; color: var(--color-text-placeholder, #9CA5BE);
}
.mkt-co-autopay-pill[data-v-85b38b58] {
  margin-left: auto; flex-shrink: 0;
  background: #E7F7EE; color: #15803D; border-radius: 20px;
  padding: 3px 10px; font-size: 11px; font-weight: 600; white-space: nowrap;
}
.mkt-co-card-nofile[data-v-85b38b58] {
  border: 1px dashed var(--color-border-default, #E5E7EF); border-radius: 10px;
  padding: 12px 14px; font-size: 13px; color: var(--color-text-label, #47506A);
}
.mkt-co-pay-explain[data-v-85b38b58] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 12px; line-height: 1.5; color: var(--color-text-label, #47506A); margin: 12px 0 0;
}
.mkt-co-pay-foot[data-v-85b38b58] {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  flex-wrap: wrap; margin-top: 10px;
}
.mkt-co-pay-secure[data-v-85b38b58] {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: var(--color-text-placeholder, #9CA5BE); margin: 0;
}
.mkt-co-manage-link[data-v-85b38b58] {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 12px; font-weight: 600; color: var(--color-primary, #4353FF); white-space: nowrap;
}
.mkt-co-manage-link[data-v-85b38b58]:hover { text-decoration: underline;
}
.mkt-co-actions[data-v-85b38b58] { display: flex; flex-direction: column; align-items: stretch; gap: 12px;
}
.mkt-co-actions .mkt-co-confirm-btn[data-v-85b38b58] { width: 100%; height: 48px; font-size: 15px;
}
.mkt-co-actions .mkt-co-legal[data-v-85b38b58] { text-align: center; margin: 0;
}
.mkt-empty[data-v-85b38b58] {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 60px 0; text-align: center;
  font-family: var(--font-family-body, 'Poppins', sans-serif); color: var(--color-text-label, #47506A);
}
.mkt-empty-reset[data-v-85b38b58] {
  background: none; border: 1.5px solid var(--color-primary, #4353FF);
  color: var(--color-primary, #4353FF); border-radius: 8px;
  padding: 8px 20px; cursor: pointer; font-size: 14px; font-weight: 500;
}
.mkt-empty-reset[data-v-85b38b58]:hover { background: #F0F1FF;
}

.suite-card[data-v-9ef51a85] {
  position: relative;
  overflow: hidden;
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  /* 8px, not 10px: this card stacks four blocks where the app tile stacks two, so the same gap
     compounds twice as much. */
  gap: 8px;
  /* Tokenised (assets/css/tokens.css) so the suite tile and the app tile carry
     the same elevation — they sit side by side in the same grid. */
  box-shadow: var(--shadow-card);
  transition: box-shadow 0.15s, transform 0.15s, border-color 0.15s;
  height: 100%; min-height: 182px; box-sizing: border-box;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.suite-card button[data-v-9ef51a85],
.suite-card input[data-v-9ef51a85] { font-family: inherit;
}
.suite-card[data-v-9ef51a85]:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-1px);
  border-color: #C7CEF0;
}
.suite-ribbon[data-v-9ef51a85] {
  position: absolute;
  top: 13px;
  right: -22px;
  width: 130px;
  background: linear-gradient(135deg, #F97316, #E84040);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-align: center;
  text-transform: uppercase;
  padding: 4px 0;
  transform: rotate(45deg);
  box-shadow: 0 3px 8px rgba(232,64,64,0.35);
  z-index: 1;
  pointer-events: none;
}
.suite-card-top[data-v-9ef51a85] { display: flex; align-items: center; gap: 10px;
}
.suite-tile-icon[data-v-9ef51a85] {
  width: 44px; height: 44px; border-radius: 10px; flex-shrink: 0;
  background: linear-gradient(135deg, #d97706, #f59e0b);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.suite-tile-img[data-v-9ef51a85] { width: 55%; height: 55%; object-fit: contain;
}
.suite-tile-initials[data-v-9ef51a85] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 700; font-size: 13px; color: #fff; user-select: none; letter-spacing: -0.3px;
}
.suite-title-block[data-v-9ef51a85] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.suite-card-name[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-14, 14px);
  font-weight: 600; color: var(--color-primary-dark, #020631); line-height: 18px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.suite-app-count-sub[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A); margin: 0;
}
.suite-app-count-link[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: var(--color-primary, #4353FF); background: none; border: none;
  padding: 0; cursor: pointer; font-weight: 500;
  text-decoration: underline; text-underline-offset: 2px;
}
.suite-app-count-link[data-v-9ef51a85]:hover { color: #3243EF;
}
.suite-card-desc[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A); margin: 0; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  /* No min-height. It used to reserve two lines on every card "so the blocks match", but the grid
     already equalises row heights through `height: 100%` — so all it did was add ~18px to every
     card, including one-line ones. Suite cards were 227px against a 182px app tile. */
}
.suite-app-pill--clickable[data-v-9ef51a85] { cursor: pointer;
}
.suite-app-pill--clickable[data-v-9ef51a85]:hover { border-color: var(--color-primary, #4353FF); background: #ECEEFF; color: var(--color-primary, #4353FF);
}
.suite-app-pill[data-v-9ef51a85] {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--color-bg-subtle, #F7F8FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 20px; padding: 4px 10px 4px 6px;
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A);
  flex-shrink: 1; min-width: 0;
}
.suite-app-pill--in-cart[data-v-9ef51a85] {
  border-color: var(--color-primary, #4353FF); background: #ECEEFF;
  color: var(--color-primary, #4353FF);
}
.suite-app-pill--owned[data-v-9ef51a85] {
  border-color: #A9E7C4; background: #E7F7EE; color: #15803D;
}
.suite-app-pill--owned .suite-app-check[data-v-9ef51a85] { color: #15803D;
}
.suite-app-pill--more[data-v-9ef51a85] {
  cursor: pointer; font-weight: 600; color: var(--color-primary, #4353FF);
  border-color: var(--color-primary, #4353FF); background: #ECEEFF;
  flex-shrink: 0; padding: 4px 12px;
}
.suite-app-pill--link .suite-app-name[data-v-9ef51a85] {
  text-decoration: underline; text-underline-offset: 2px; color: var(--color-primary, #4353FF);
}
/* Pills sit directly above the price/Add footer (pushed to the bottom together),
   not floating high with a gap below. */
.suite-apps-row[data-v-9ef51a85] { display: flex; flex-wrap: nowrap; overflow: hidden; gap: 6px; margin-top: auto; align-items: center; line-height: 1;
}
.suite-app-initials[data-v-9ef51a85] {
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--color-primary, #4353FF); color: #fff;
  font-family: var(--font-family-body); font-size: 9px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.suite-app-name[data-v-9ef51a85] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 72px;
}
.suite-app-check[data-v-9ef51a85] { font-size: 10px; color: var(--color-primary, #4353FF); font-weight: 700;
}
.suite-no-apps[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: #9CA5BE; margin: 0; margin-top: auto;
}

/* Footer */
.suite-card-footer[data-v-9ef51a85] {
  display: flex; flex-direction: column; gap: 4px;
}
.suite-footer-main-row[data-v-9ef51a85] {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.suite-yearly-row[data-v-9ef51a85] { align-self: flex-start;
}
.suite-price-area[data-v-9ef51a85] { display: flex; flex-direction: row; align-items: baseline; flex-wrap: wrap; gap: 6px; min-width: 0;
}
.suite-price-current[data-v-9ef51a85] { font-weight: 700; font-size: 15px; color: var(--color-primary-dark, #020631); white-space: nowrap;
}
.suite-price-original[data-v-9ef51a85] { font-size: 12px; color: #9CA5BE; text-decoration: line-through; white-space: nowrap;
}
.suite-price-save[data-v-9ef51a85] { font-size: 10px; font-weight: 700; padding: 2px 7px; background: #DCFCE7; color: #166534; border-radius: 20px; text-align: center; white-space: nowrap;
}
.suite-price-save--yearly[data-v-9ef51a85] { background: #DCFCE7; color: #166534;
}

/* App count button */
.suite-count-wrap[data-v-9ef51a85] { position: relative;
}
.suite-app-count[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: var(--color-primary, #4353FF); background: none; border: none;
  cursor: pointer; padding: 4px 0; font-weight: 500; text-decoration: underline;
  text-underline-offset: 2px;
}
.suite-app-count[data-v-9ef51a85]:hover { color: #3243EF;
}

/* Buttons */
.suite-btn-add[data-v-9ef51a85], .suite-btn-remove[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  font-weight: 600; border: none; border-radius: 8px;
  padding: 8px 16px; cursor: pointer; transition: background 0.15s;
}
.suite-btn-add[data-v-9ef51a85] { background: var(--color-primary, #4353FF); color: #fff;
}
.suite-btn-add[data-v-9ef51a85]:hover:not(:disabled) { background: #3342cc;
}
.suite-btn-add[data-v-9ef51a85]:disabled { opacity: 0.45; cursor: not-allowed;
}
.suite-btn-remove[data-v-9ef51a85] { background: #fee2e2; color: #dc2626;
}
.suite-btn-remove[data-v-9ef51a85]:hover { background: #fecaca;
}
.suite-btn-owned[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  font-weight: 600; border-radius: 8px; padding: 8px 16px;
  background: #E7F7EE; color: #15803D;
}
.suite-btn-pending[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  font-weight: 600; border-radius: 8px; padding: 8px 16px;
  background: #FFF3CD; color: #856404; white-space: nowrap;
}

/* Apps-included modal (centered, teleported to body) */
.suite-apps-backdrop[data-v-9ef51a85] {
  position: fixed; inset: 0; z-index: 9990;
  background: rgba(2,6,49,0.45);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.suite-apps-panel[data-v-9ef51a85] {
  background: #FFFFFF; border-radius: 14px;
  box-shadow: 0 12px 40px rgba(2,6,49,0.16);
  padding: 20px; max-width: 380px; width: 100%;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.suite-apps-hd[data-v-9ef51a85] { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px;
}
.suite-apps-title[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: 16px; font-weight: 700;
  color: var(--color-primary-dark, #020631); margin: 0;
}
.suite-apps-close[data-v-9ef51a85] {
  background: none; border: none; cursor: pointer; font-size: 13px;
  color: var(--color-text-placeholder, #9CA5BE); padding: 2px 4px; flex-shrink: 0;
}
.suite-apps-close[data-v-9ef51a85]:hover { color: var(--color-primary-dark, #020631);
}
.suite-apps-sub[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A); margin: 2px 0 12px;
}
.suite-apps-grid[data-v-9ef51a85] { display: flex; flex-direction: column; gap: 8px;
}
.suite-apps-tile[data-v-9ef51a85] {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 12px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px; background: var(--color-bg-page, #F9F9FC);
  transition: border-color 0.15s;
}
.suite-apps-tile--in-cart[data-v-9ef51a85] { border-color: var(--color-primary, #4353FF); background: #ECEEFF;
}
.suite-apps-icon[data-v-9ef51a85] {
  width: 36px; height: 36px; flex-shrink: 0; border-radius: 8px;
  background: linear-gradient(135deg, #5E4ED4, #4353FF);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-family-body); font-weight: 700; font-size: 13px; color: #fff; user-select: none;
}
.suite-apps-info[data-v-9ef51a85] { flex: 1; min-width: 0;
}
.suite-apps-name[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: 14px; font-weight: 600;
  color: var(--color-primary-dark, #020631); margin: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.suite-apps-price[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A); margin: 0;
  display: flex; align-items: baseline; gap: 6px;
}
.suite-apps-price-orig[data-v-9ef51a85] { color: #9CA5BE; text-decoration: line-through; font-size: 11px;
}
.suite-apps-price-cur[data-v-9ef51a85] { color: var(--color-primary-dark, #020631); font-weight: 600;
}

/* Overlap choice modal */
.suite-overlap-panel[data-v-9ef51a85] { max-width: 440px;
}
.suite-apps-owned--blocked[data-v-9ef51a85] { background: #FEF2F2 !important; color: #DC2626 !important;
}
.suite-overlap-rows[data-v-9ef51a85] { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 14px;
}
.suite-overlap-row[data-v-9ef51a85] {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 9px 11px; border-radius: 8px;
  background: var(--color-bg-subtle, #F7F8FC);
  border: 1px solid var(--color-border-subtle, #E6E8F0);
}
.suite-overlap-row--blocked[data-v-9ef51a85] { background: #FEF2F2; border-color: #FECACA;
}
.suite-overlap-row-icon[data-v-9ef51a85] { font-size: 12px; line-height: 18px; color: #16A34A; flex-shrink: 0;
}
.suite-overlap-row--blocked .suite-overlap-row-icon[data-v-9ef51a85] { color: #DC2626;
}
.suite-overlap-row-body[data-v-9ef51a85] { display: flex; flex-direction: column; gap: 1px; min-width: 0;
}
.suite-overlap-row-name[data-v-9ef51a85] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; font-weight: 600; color: var(--color-text-body, #1F2439);
}
.suite-overlap-row-detail[data-v-9ef51a85] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 11px; color: var(--color-text-label, #47506A);
}
.suite-overlap-sub[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: 13px; line-height: 1.5;
  color: var(--color-text-label, #47506A); margin: 4px 0 16px;
}
.suite-overlap-opt[data-v-9ef51a85] {
  display: flex; flex-direction: column; gap: 4px; width: 100%; text-align: left;
  border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 10px;
  padding: 12px 14px; margin-bottom: 10px; cursor: pointer; background: #fff;
  transition: border-color 0.12s, background 0.12s;
}
.suite-overlap-opt[data-v-9ef51a85]:hover { border-color: var(--color-primary, #4353FF); background: #FAFBFF;
}
.suite-overlap-opt--primary[data-v-9ef51a85] { border-color: var(--color-primary, #4353FF); background: #F5F6FF;
}
.suite-overlap-opt-title[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: 14px; font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.suite-overlap-opt-desc[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: 12px; line-height: 1.5;
  color: var(--color-text-label, #47506A);
}
.suite-apps-incart[data-v-9ef51a85] {
  font-size: 11px; color: var(--color-primary, #4353FF); font-weight: 700;
  background: #ECEEFF; border-radius: 20px; padding: 2px 7px; flex-shrink: 0; white-space: nowrap;
}
/* Already-owned member (green) — distinct from in-cart (blue) */
.suite-apps-owned[data-v-9ef51a85] {
  font-size: 11px; color: #15803D; font-weight: 700;
  background: #E7F7EE; border-radius: 20px; padding: 2px 7px; flex-shrink: 0; white-space: nowrap;
}
.suite-apps-tile--owned[data-v-9ef51a85] { border-color: #A9E7C4; background: #F3FCF7;
}
.suite-apps-value[data-v-9ef51a85] {
  font-family: var(--font-family-body); font-size: var(--font-size-12, 12px);
  color: #166534; background: #DCFCE7; border-radius: 8px;
  padding: 10px 12px; margin-top: 12px; line-height: 1.5;
}

/* DEF-145 — "about this bundle" affordance. Inline next to the name for the same reason as
   the app tile: .suite-ribbon is absolutely positioned in the corner, so a corner button
   would collide with it on any bundle carrying a badge. */
.suite-name-wrap[data-v-9ef51a85] { display: flex; align-items: center; gap: 4px; min-width: 0;
}
.suite-detail-icon[data-v-9ef51a85] {
  flex: 0 0 auto;
  cursor: pointer;
  font-size: 12px;
  line-height: 1;
  background: none;
  border: none;
  padding: 0;
  color: var(--color-text-placeholder, #9CA5BE);
  transition: color 0.15s;
}
.suite-detail-icon[data-v-9ef51a85]:hover { color: var(--color-primary, #4353FF);
}
.suite-detail-icon[data-v-9ef51a85]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: 2px; border-radius: 3px;
}

/* Every value below binds to assets/css/tokens.css (GCP / Andora DS). No literal hex, no
   invented neutrals — the earlier draft of this file used #5A6076 / #868DA6 / #FBFBFD, none
   of which are DS colours.

   ⚠ `--color-bg-card` does NOT exist in tokens.css — the card surface token is
   `--color-surface-card`. SubscriptionsManager.vue:749 records the same trap, where a
   component rendered only because of its fallback value. */
.adx-overlay[data-v-3c1ba49d] {
  position: fixed; inset: 0; z-index: 9998;
  background: rgba(2, 6, 49, 0.42);
  display: flex; align-items: center; justify-content: center;
  padding: var(--space-6, 24px);
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.adx-card[data-v-3c1ba49d] {
  /* Fixed, not content-sized. Every app opens the same shape, so the tabs never move under
     the cursor between one app and the next — and the body scrolls inside instead of the
     dialog growing. Capped against the viewport so a short window still fits. */
  width: min(680px, 100%);
  height: min(660px, 92vh);
  display: flex; flex-direction: column;
  background: var(--color-surface-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 8px 28px rgba(2, 6, 49, 0.18);
  overflow: hidden;
}

/* ── identity — the top fifth ─────────────────────────────────────────────── */
.adx-head[data-v-3c1ba49d] {
  flex: 0 0 auto;
  display: flex; gap: var(--space-3, 12px); align-items: flex-start;
  padding: var(--space-4, 16px) var(--space-5, 20px);
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.adx-icon[data-v-3c1ba49d] {
  flex: 0 0 46px; width: 46px; height: 46px;
  border-radius: var(--radius-md, 8px);
  /* GCP DS Blue 10 — #4353FF at 10% on white. Rule 27. */
  background: #ECEEFF;
  color: var(--color-primary, #4353FF);
  display: grid; place-items: center;
  font-size: var(--font-size-12, 12px); font-weight: 600;
  overflow: hidden;
}
.adx-icon-img[data-v-3c1ba49d] { width: 100%; height: 100%; object-fit: cover;
}
.adx-id[data-v-3c1ba49d] { min-width: 0; flex: 1;
}
.adx-title[data-v-3c1ba49d] {
  margin: 0;
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-size: var(--font-size-20, 20px); font-weight: 700;
  line-height: var(--line-height-m, 30px);
  color: var(--color-primary-dark, #020631);
}
.adx-meta[data-v-3c1ba49d] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px;
}
.adx-chip[data-v-3c1ba49d] {
  font-size: 11px; font-weight: 500;
  padding: 3px var(--space-2, 8px);
  border-radius: var(--radius-pill, 32px);
  background: var(--color-semantic-bg-grey, #F5F5F5);
  color: var(--color-text-label, #47506A);
  border: 1px solid var(--color-border-default, #E5E7EF);
}
.adx-chip--tier[data-v-3c1ba49d] {
  background: #ECEEFF;
  color: var(--color-primary, #4353FF);
  border-color: var(--color-border-card, #C4CBDD);
}
.adx-chip--owned[data-v-3c1ba49d] {
  background: var(--color-semantic-bg-green, #DCFFF1);
  color: var(--color-semantic-text-green, #008516);
  border-color: var(--color-border-default, #E5E7EF);
}
.adx-sub[data-v-3c1ba49d] {
  margin: var(--space-2, 8px) 0 0;
  font-size: var(--font-size-12, 12px);
  line-height: var(--line-height-s, 20px);
  color: var(--color-text-label, #47506A);
}
.adx-close[data-v-3c1ba49d] {
  flex: 0 0 auto; width: 28px; height: 28px;
  border-radius: var(--radius-md, 8px);
  cursor: pointer;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-surface-card, #FFFFFF);
  color: var(--color-text-label, #47506A);
  font-family: inherit; font-size: 13px; line-height: 1;
}
.adx-close[data-v-3c1ba49d]:hover { background: var(--color-semantic-bg-grey, #F5F5F5);
}

/* ── tabs ─────────────────────────────────────────────────────────────────── */
.adx-tabs[data-v-3c1ba49d] {
  flex: 0 0 auto;
  display: flex; gap: 2px;
  padding: 0 var(--space-5, 20px);
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  overflow-x: auto;
  overflow-y: hidden; /* one axis set to a scroll value promotes the other to auto */
}
.adx-tab[data-v-3c1ba49d] {
  font-family: inherit;
  font-size: var(--font-size-14, 14px); font-weight: 600;
  line-height: var(--line-height-s, 20px);
  color: var(--color-text-label, #47506A);
  background: none; border: 0;
  border-bottom: 2px solid transparent;
  padding: var(--space-3, 12px);
  cursor: pointer; white-space: nowrap;
}
.adx-tab[aria-selected="true"][data-v-3c1ba49d] {
  color: var(--color-primary, #4353FF);
  border-bottom-color: var(--color-primary, #4353FF);
}
.adx-tab[data-v-3c1ba49d]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: -2px;
}

/* ── panels ───────────────────────────────────────────────────────────────── */
.adx-panel[data-v-3c1ba49d] {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  padding: var(--space-4, 16px) var(--space-5, 20px);
}
.adx-h[data-v-3c1ba49d] {
  margin: 0 0 var(--space-2, 8px);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-text-helper, #535F7F);
}
.adx-h--spaced[data-v-3c1ba49d] { margin-top: var(--space-5, 20px);
}
.adx-included[data-v-3c1ba49d] {
  margin: 0;
  font-size: var(--font-size-14, 14px); font-weight: 600;
  color: var(--color-semantic-text-green, #008516);
}
/* "Not priced" is a fact, not an error — helper tone, not the red required/error token. */
.adx-nonprice[data-v-3c1ba49d] {
  margin: 0;
  font-size: var(--font-size-14, 14px); font-weight: 500;
  color: var(--color-semantic-text-orange, #B95100);
  background: var(--color-semantic-bg-orange, #FFF3EB);
  border-radius: var(--radius-md, 8px);
  padding: var(--space-2, 8px) var(--space-3, 12px);
}
.adx-prices[data-v-3c1ba49d] { display: flex; flex-direction: column; gap: 6px;
}
.adx-price-row[data-v-3c1ba49d] {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--space-2, 8px) var(--space-3, 12px);
  border-radius: var(--radius-md, 8px);
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-surface-page, #F9F9FC);
}
.adx-price-row--on[data-v-3c1ba49d] {
  border-color: var(--color-border-card, #C4CBDD);
  background: #ECEEFF;
}
.adx-price-label[data-v-3c1ba49d] {
  font-size: var(--font-size-12, 12px); font-weight: 500;
  color: var(--color-text-label, #47506A);
}
.adx-price-val[data-v-3c1ba49d] {
  font-size: var(--font-size-14, 14px); font-weight: 700;
  color: var(--color-primary-dark, #020631);
  font-variant-numeric: tabular-nums;
}
.adx-price-old[data-v-3c1ba49d] {
  text-decoration: line-through;
  color: var(--color-text-placeholder, #9CA5BE);
  font-weight: 400; margin-right: 6px;
  font-size: var(--font-size-12, 12px);
}
.adx-save[data-v-3c1ba49d] {
  margin: 4px 0 0;
  font-size: var(--font-size-12, 12px); font-weight: 600;
  color: var(--color-semantic-text-green, #008516);
}
.adx-basis[data-v-3c1ba49d] {
  margin: var(--space-3, 12px) 0 0;
  font-size: var(--font-size-12, 12px);
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-helper, #535F7F);
}
.adx-rel[data-v-3c1ba49d] { display: flex; flex-direction: column; gap: 6px;
}
.adx-rel-row[data-v-3c1ba49d] {
  display: flex; align-items: center; gap: var(--space-2, 8px);
  padding: var(--space-2, 8px) var(--space-3, 12px);
  border-radius: var(--radius-md, 8px);
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-surface-page, #F9F9FC);
}
.adx-rel-icon[data-v-3c1ba49d] {
  flex: 0 0 28px; width: 28px; height: 28px;
  border-radius: 6px;
  background: #ECEEFF;
  color: var(--color-primary, #4353FF);
  display: grid; place-items: center;
  font-size: 10px; font-weight: 600;
}
.adx-rel-name[data-v-3c1ba49d] {
  font-size: var(--font-size-14, 14px); font-weight: 500;
  color: var(--color-primary-dark, #020631);
  min-width: 0;
}
.adx-rel-note[data-v-3c1ba49d] {
  margin-left: auto;
  font-size: 11px; white-space: nowrap;
  color: var(--color-text-helper, #535F7F);
}
.adx-rel-note--ok[data-v-3c1ba49d] { color: var(--color-semantic-text-green, #008516); font-weight: 600;
}

/* ── admin-authored content ───────────────────────────────────────────────── */
.adx-rich[data-v-3c1ba49d] {
  font-size: var(--font-size-14, 14px);
  line-height: var(--line-height-sm, 24px);
  color: var(--color-text-label, #47506A);
}
.adx-rich[data-v-3c1ba49d] h1, .adx-rich[data-v-3c1ba49d] h2, .adx-rich[data-v-3c1ba49d] h3,
.adx-rich[data-v-3c1ba49d] h4, .adx-rich[data-v-3c1ba49d] h5 {
  margin: 0 0 var(--space-2, 8px);
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-size: var(--font-size-14, 14px); font-weight: 600;
  line-height: var(--line-height-s, 20px);
  color: var(--color-primary-dark, #020631);
}
.adx-rich[data-v-3c1ba49d] h3, .adx-rich[data-v-3c1ba49d] h4, .adx-rich[data-v-3c1ba49d] h5 { margin-top: var(--space-5, 20px);
}
.adx-rich[data-v-3c1ba49d] p { margin: 0 0 var(--space-3, 12px);
}
.adx-rich[data-v-3c1ba49d] ul, .adx-rich[data-v-3c1ba49d] ol { margin: 0 0 var(--space-4, 16px); padding-left: var(--space-5, 20px);
}
.adx-rich[data-v-3c1ba49d] li { margin-bottom: 4px;
}
.adx-rich[data-v-3c1ba49d] a { color: var(--color-primary-link, #0055D4);
}
.adx-rich[data-v-3c1ba49d] table {
  width: 100%; border-collapse: collapse;
  margin: 0 0 var(--space-4, 16px);
  font-size: var(--font-size-12, 12px);
}
.adx-rich[data-v-3c1ba49d] th, .adx-rich[data-v-3c1ba49d] td {
  text-align: left; padding: 7px var(--space-2, 8px);
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.adx-rich[data-v-3c1ba49d] th { color: var(--color-primary-dark, #020631); font-weight: 600;
}
.adx-rich[data-v-3c1ba49d] img { max-width: 100%; height: auto; border-radius: var(--radius-md, 8px);
}

/* ── footer ───────────────────────────────────────────────────────────────── */
.adx-foot[data-v-3c1ba49d] {
  flex: 0 0 auto;
  display: flex; justify-content: flex-end; gap: var(--space-2, 8px);
  padding: var(--space-3, 12px) var(--space-5, 20px);
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
/* GCP DS Secondary button: 8px radius, Poppins SemiBold 14px, white fill + neutral border. */
.adx-btn[data-v-3c1ba49d] {
  font-family: inherit;
  font-size: var(--font-size-14, 14px); font-weight: 600;
  line-height: var(--line-height-s, 20px);
  padding: var(--space-2, 8px) var(--space-4, 16px);
  border-radius: var(--radius-md, 8px);
  cursor: pointer;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-surface-card, #FFFFFF);
  color: var(--color-text-label, #47506A);
}
.adx-btn[data-v-3c1ba49d]:hover { background: var(--color-semantic-bg-grey, #F5F5F5);
}
.adx-btn[data-v-3c1ba49d]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: 2px;
}
@media (max-width: 560px) {
.adx-overlay[data-v-3c1ba49d] { padding: var(--space-3, 12px);
}
.adx-card[data-v-3c1ba49d] { height: 94vh;
}
}

/* ── price ladder ─────────────────────────────────────────────────────────── */
.adx-ladder-wrap[data-v-3c1ba49d] {
  /* Its own scroller so a wide table never makes the dialog body scroll sideways. */
  overflow-x: auto;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-md, 8px);
}
.adx-ladder[data-v-3c1ba49d] {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-12, 12px);
}
.adx-ladder th[data-v-3c1ba49d], .adx-ladder td[data-v-3c1ba49d] {
  text-align: left;
  padding: var(--space-2, 8px) var(--space-3, 12px);
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  white-space: nowrap;
}
.adx-ladder tbody tr:last-child td[data-v-3c1ba49d] { border-bottom: 0;
}
.adx-ladder th[data-v-3c1ba49d] {
  font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--color-text-helper, #535F7F);
  background: var(--color-surface-page, #F9F9FC);
}
.adx-ladder td[data-v-3c1ba49d] { color: var(--color-text-label, #47506A);
}
.adx-ladder .num[data-v-3c1ba49d] { text-align: right; font-variant-numeric: tabular-nums;
}
.adx-ladder tbody td.num[data-v-3c1ba49d] { font-weight: 600; color: var(--color-primary-dark, #020631);
}
.adx-row--current td[data-v-3c1ba49d] { background: #ECEEFF;
}
.adx-row--current td[data-v-3c1ba49d]:first-child { font-weight: 600; color: var(--color-primary, #4353FF);
}
.adx-row--current td.num[data-v-3c1ba49d] { color: var(--color-primary, #4353FF);
}
.adx-yours[data-v-3c1ba49d] {
  margin-left: 6px;
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--color-primary, #4353FF);
}
.adx-none[data-v-3c1ba49d] { color: var(--color-text-placeholder, #9CA5BE); font-weight: 400;
}

/* ── bundle vs separate ───────────────────────────────────────────────────── */
.adx-compare[data-v-3c1ba49d] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-md, 8px);
  overflow: hidden;
}
.adx-compare-row[data-v-3c1ba49d] {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-3, 12px);
  padding: var(--space-2, 8px) var(--space-3, 12px);
  font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A);
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.adx-compare-row[data-v-3c1ba49d]:last-child { border-bottom: 0;
}
.adx-compare-row strong[data-v-3c1ba49d] {
  font-size: var(--font-size-14, 14px);
  color: var(--color-primary-dark, #020631);
  font-variant-numeric: tabular-nums;
}
.adx-compare-row--save[data-v-3c1ba49d] { background: var(--color-semantic-bg-green, #DCFFF1);
}
.adx-compare-row--save span[data-v-3c1ba49d],
.adx-compare-row--save strong[data-v-3c1ba49d] { color: var(--color-semantic-text-green, #008516); font-weight: 600;
}
.adx-note[data-v-3c1ba49d] {
  margin: var(--space-2, 8px) 0 0;
  padding: var(--space-2, 8px) var(--space-3, 12px);
  border-radius: var(--radius-md, 8px);
  background: var(--color-semantic-bg-orange, #FFF3EB);
  color: var(--color-semantic-text-orange, #B95100);
  font-size: var(--font-size-12, 12px);
  line-height: var(--line-height-xs, 18px);
}

/* ── "also sold in" — collapsed row carries the bundle's price at the plan in play ──────── */
.adx-bundle[data-v-3c1ba49d] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-md, 8px);
  background: var(--color-surface-page, #F9F9FC);
  overflow: hidden;
}
.adx-bundle-head[data-v-3c1ba49d] {
  width: 100%;
  display: flex; align-items: center; gap: var(--space-2, 8px);
  padding: var(--space-2, 8px) var(--space-3, 12px);
  background: none; border: 0; cursor: pointer;
  font-family: inherit; text-align: left;
}
.adx-bundle-head[data-v-3c1ba49d]:hover { background: var(--color-semantic-bg-grey, #F5F5F5);
}
.adx-bundle-head[data-v-3c1ba49d]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: -2px;
}
/* Smaller than the app rows — a bundle mentioned on an app's page is context, not the subject. */
.adx-bundle-name[data-v-3c1ba49d] {
  font-size: var(--font-size-12, 12px); font-weight: 600;
  color: var(--color-primary-dark, #020631);
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.adx-bundle-price[data-v-3c1ba49d] {
  margin-left: auto;
  font-size: var(--font-size-12, 12px); font-weight: 600;
  color: var(--color-primary, #4353FF);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.adx-caret[data-v-3c1ba49d] {
  flex: 0 0 auto;
  font-size: 14px; line-height: 1;
  color: var(--color-text-placeholder, #9CA5BE);
  transition: transform 0.15s;
}
.adx-caret--open[data-v-3c1ba49d] { transform: rotate(90deg);
}
.adx-bundle-body[data-v-3c1ba49d] {
  padding: 0 var(--space-3, 12px) var(--space-3, 12px) 48px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.adx-bundle-line[data-v-3c1ba49d] {
  margin: var(--space-2, 8px) 0 6px;
  font-size: 11.5px; line-height: var(--line-height-xs, 18px);
  color: var(--color-text-label, #47506A);
}
.adx-bundle-members[data-v-3c1ba49d] {
  margin: 0 0 6px; padding-left: 16px;
  font-size: 11.5px; line-height: var(--line-height-xs, 18px);
  color: var(--color-text-label, #47506A);
}
.adx-bundle-members .is-this[data-v-3c1ba49d] { color: var(--color-primary, #4353FF); font-weight: 600;
}
.adx-bundle-save[data-v-3c1ba49d] {
  margin: 0 0 6px;
  font-size: 11.5px; font-weight: 600;
  color: var(--color-semantic-text-green, #008516);
}
.adx-bundle-hint[data-v-3c1ba49d] {
  margin: 0;
  font-size: 11px; line-height: var(--line-height-xs, 18px);
  color: var(--color-text-helper, #535F7F);
}

/* The app's own in-bundle figure is the highlighted one — it is what the reader compares
   against the price on the tile. The bundle total is context beneath it. */
.adx-bundle-figs[data-v-3c1ba49d] {
  margin-left: auto;
  display: flex; flex-direction: column; align-items: flex-end; gap: 1px;
  white-space: nowrap;
}
.adx-thisapp[data-v-3c1ba49d] {
  display: inline-flex; align-items: baseline; gap: 5px;
  font-size: var(--font-size-14, 14px); font-weight: 700;
  color: var(--color-primary, #4353FF);
  font-variant-numeric: tabular-nums;
}
.adx-thisapp--muted[data-v-3c1ba49d] {
  font-size: 11px; font-weight: 500;
  color: var(--color-semantic-text-orange, #B95100);
}
.adx-thisapp-tag[data-v-3c1ba49d] {
  font-size: 9.5px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--color-primary, #4353FF);
}
.adx-bundle-total[data-v-3c1ba49d] {
  font-size: 11px; font-weight: 500;
  color: var(--color-text-helper, #535F7F);
  font-variant-numeric: tabular-nums;
}
.adx-share[data-v-3c1ba49d] {
  margin: var(--space-2, 8px) 0 6px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-md, 8px);
  background: var(--color-surface-card, #FFFFFF);
  overflow: hidden;
}
.adx-share-row[data-v-3c1ba49d] {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-3, 12px);
  padding: 6px var(--space-3, 12px);
  font-size: 11.5px;
  color: var(--color-text-label, #47506A);
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.adx-share-row[data-v-3c1ba49d]:last-child { border-bottom: 0;
}
.adx-share-row strong[data-v-3c1ba49d] {
  font-size: var(--font-size-12, 12px);
  color: var(--color-primary-dark, #020631);
  font-variant-numeric: tabular-nums;
}
.adx-share-row--in[data-v-3c1ba49d] { background: #ECEEFF;
}
.adx-share-row--in span[data-v-3c1ba49d], .adx-share-row--in strong[data-v-3c1ba49d] { color: var(--color-primary, #4353FF); font-weight: 600;
}
.adx-share-row--save[data-v-3c1ba49d] { background: var(--color-semantic-bg-green, #DCFFF1);
}
.adx-share-row--save span[data-v-3c1ba49d], .adx-share-row--save strong[data-v-3c1ba49d] {
  color: var(--color-semantic-text-green, #008516); font-weight: 600;
}

/* ── cycle column highlight ───────────────────────────────────────────────── */
.adx-ladder th.adx-col--on[data-v-3c1ba49d] {
  background: #ECEEFF;
  color: var(--color-primary, #4353FF);
}
.adx-ladder td.adx-col--on[data-v-3c1ba49d] { background: rgba(236, 238, 255, 0.55);
}
.adx-row--current td.adx-col--on[data-v-3c1ba49d] { background: #DDE1FF;
}
.adx-col-tag[data-v-3c1ba49d] {
  display: block;
  font-size: 9px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--color-primary, #4353FF);
}

/* ── priced bundle members ────────────────────────────────────────────────── */
.adx-member[data-v-3c1ba49d] {
  display: flex; align-items: center; gap: var(--space-2, 8px);
  padding: var(--space-2, 8px) var(--space-3, 12px);
  border-radius: var(--radius-md, 8px);
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-surface-page, #F9F9FC);
}
.adx-member-id[data-v-3c1ba49d] { display: flex; flex-direction: column; min-width: 0;
}
.adx-member-name[data-v-3c1ba49d] {
  font-size: var(--font-size-12, 12px); font-weight: 600;
  color: var(--color-primary-dark, #020631);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.adx-member-cat[data-v-3c1ba49d] {
  font-size: 10.5px;
  color: var(--color-text-helper, #535F7F);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.adx-member-figs[data-v-3c1ba49d] {
  margin-left: auto;
  display: flex; flex-direction: column; align-items: flex-end; gap: 1px;
  white-space: nowrap;
}
.adx-member-prices[data-v-3c1ba49d] { display: inline-flex; align-items: baseline; gap: 6px;
}
.adx-was[data-v-3c1ba49d] {
  font-size: 11px;
  color: var(--color-text-placeholder, #9CA5BE);
  font-variant-numeric: tabular-nums;
}
.adx-now[data-v-3c1ba49d] {
  font-size: var(--font-size-12, 12px); font-weight: 700;
  color: var(--color-primary, #4353FF);
  font-variant-numeric: tabular-nums;
}
.adx-member-save[data-v-3c1ba49d] {
  font-size: 10px; font-weight: 600;
  color: var(--color-semantic-text-green, #008516);
}

/* ── Shell ─────────────────────────────────────────────────────────────────── */
.mkt[data-v-56f510aa] {
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
  overflow: hidden;
  font-family: inherit;
}

/* ── Header ────────────────────────────────────────────────────────────────── */
.mkt-header[data-v-56f510aa] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-shrink: 0;
  margin-bottom: 0;
  gap: 16px;
}
.mkt-title[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 700;
  font-size: var(--font-size-24, 24px);
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
  line-height: 32px;
}
.mkt-sub[data-v-56f510aa] {
  font-family: inherit;
  font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A);
  margin: 0 0 20px;
  line-height: 20px;
}
.mkt-header-right[data-v-56f510aa] {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  padding-top: 4px;
}

/* View toggle pills */
.mkt-view-toggle[data-v-56f510aa] {
  display: flex;
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 3px;
  gap: 2px;
}
.mkt-toggle-btn[data-v-56f510aa] {
  background: none;
  border: none;
  border-radius: 6px;
  padding: 5px 12px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 400;
  color: var(--color-text-label, #47506A);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}
.mkt-toggle-btn.active[data-v-56f510aa] {
  background: var(--color-bg-card, #FFFFFF);
  color: var(--color-primary-dark, #020631);
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(2, 6, 49, 0.08);
}

/* Cart button — inline badge, no absolute overflow */
.mkt-cart-btn[data-v-56f510aa] {
  display: flex;
  align-items: center;
  gap: 5px;
  height: 34px;
  padding: 0 12px;
  background: var(--color-bg-card, #FFFFFF);
  border: 1.5px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-primary-dark, #020631);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.mkt-cart-btn[data-v-56f510aa]:hover { border-color: var(--color-primary, #4353FF);
}
.mkt-cart-btn.open[data-v-56f510aa] {
  background: var(--color-primary, #4353FF);
  border-color: var(--color-primary, #4353FF);
  color: #FFF;
}
.mkt-cart-btn.open svg[data-v-56f510aa] { stroke: #FFF;
}
.mkt-cart-pill[data-v-56f510aa] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: #DC2626;
  color: #FFF;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}
.mkt-cart-btn.open .mkt-cart-pill[data-v-56f510aa] { background: rgba(255,255,255,0.3);
}

/* ── Scrollable body ───────────────────────────────────────────────────────── */
.mkt-subs-wrap[data-v-56f510aa] { padding: 8px 4px 40px;
}
.mkt-body[data-v-56f510aa] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  /* Side padding, not just `padding-right: 2px`: the outer grid columns used to
     sit flush against the scroll edge, which sliced their shadows into a hard
     vertical line, and the last row had no gutter beneath it. */
  padding: 0 8px 40px;
  scrollbar-width: thin;
  scrollbar-color: var(--scroll-thumb) transparent;
}
.mkt-body[data-v-56f510aa]::-webkit-scrollbar { width: 8px;
}
.mkt-body[data-v-56f510aa]::-webkit-scrollbar-track { background: transparent;
}
.mkt-body[data-v-56f510aa]::-webkit-scrollbar-thumb {
  background: var(--scroll-thumb);
  border-radius: 999px;
  border: 2px solid transparent;   /* floating pill, not a bar wedged against content */
  background-clip: padding-box;
}
.mkt-body[data-v-56f510aa]::-webkit-scrollbar-thumb:hover { background: var(--scroll-thumb-hover); background-clip: padding-box;
}

/* ── Sticky controls (tabs + search) ───────────────────────────────────────────
   `.mkt-body` is the scroller, so pinning these to its top keeps the filters and
   the search box reachable however far down the catalog you are.
   The negative side margin cancels `.mkt-body`'s new 8px padding so the glassy
   bar spans the full width and the cards passing beneath it are fully covered —
   without it, an 8px strip either side shows card edges sliding under the bar. */
.mkt-controls[data-v-56f510aa] {
  position: sticky;
  top: 0;
  z-index: 5;
  margin: 0 -8px;
  padding: 8px 8px 0;
  background: var(--color-bg-card, #FFFFFF);
}

/* ── Glassy scrolling tab bar ────────────────────────────────────────────────
   MIRRORED in views/AppMarketplaceView.vue — keep the two in step. Rationale for
   the fade-instead-of-clip and the hover-only thumb is written out there. */
.mp-tabs-wrap[data-v-56f510aa] {
  position: relative;
  /* Flex row: scrolling tab list + the pinned App Suites tab beside it. */
  display: flex;
  align-items: stretch;
  border-radius: var(--radius-lg, 12px);
  background: var(--glass-surface);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-highlight);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  padding: 2px 2px 0;
  margin-bottom: 4px;
}
.mp-tab-deals-badge[data-v-56f510aa] {
  display: inline-block;
  font-size: 10px; font-weight: 700;
  background: #DCFCE7; color: #166534;
  border-radius: 20px; padding: 1px 7px;
  margin-left: 5px; vertical-align: middle; white-space: nowrap;
}
.mp-tabs[data-v-56f510aa] {
  display: flex;
  align-items: center;
  margin-bottom: 0;
  /* min-width:0 is what lets this actually scroll — see AppMarketplaceView.vue. */
  flex: 1;
  min-width: 0;
  overflow-x: auto;              /* horizontal scroll so every tab is reachable */
  /* Inline padding must match the fade width — see AppMarketplaceView.vue. */
  padding-inline: 12px;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
  scrollbar-width: thin;
  scrollbar-color: var(--scroll-thumb) transparent;
}
.mp-tabs[data-v-56f510aa]::-webkit-scrollbar { height: 6px;
}
.mp-tabs[data-v-56f510aa]::-webkit-scrollbar-track { background: transparent;
}
.mp-tabs[data-v-56f510aa]::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
  transition: background 0.18s;
}
.mp-tabs-wrap:hover .mp-tabs[data-v-56f510aa]::-webkit-scrollbar-thumb { background: var(--scroll-thumb);
}
.mp-tabs[data-v-56f510aa]::-webkit-scrollbar-thumb:hover { background: var(--scroll-thumb-hover);
}
.mp-tab[data-v-56f510aa] {
  padding: 8px 16px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  font-family: inherit;
  font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  border-radius: var(--radius-md, 8px) var(--radius-md, 8px) 0 0;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.mp-tab.active[data-v-56f510aa] {
  color: var(--color-primary, #4353FF);
  border-bottom-color: var(--color-primary, #4353FF);
  font-weight: 500;
  background: rgba(255, 255, 255, 0.72);
}
.mp-tab[data-v-56f510aa]:hover:not(.active) {
  color: var(--color-primary-dark, #020631);
  background: rgba(255, 255, 255, 0.5);
}
/* Pinned App Suites tab — never scrolls, never masked. MIRRORED in
   AppMarketplaceView.vue, where the rationale is written out. */
.mp-tab--pinned[data-v-56f510aa] {
  flex-shrink: 0;
  border-left: 1px solid var(--glass-border);
  padding-left: 14px;
}
.mp-rule[data-v-56f510aa] {
  border: none;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  margin: 0 0 12px;
  flex-shrink: 0;
}

/* ── Search ────────────────────────────────────────────────────────────────── */
.mkt-search-wrap[data-v-56f510aa] {
  position: relative;
  margin-bottom: 12px;
}
.mkt-search-icon[data-v-56f510aa] {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
.mkt-search[data-v-56f510aa] {
  width: 100%;
  height: 38px;
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px 0 34px;
  font-family: inherit;
  font-size: var(--font-size-14, 14px);
  color: var(--color-primary-dark, #020631);
  outline: none;
  box-sizing: border-box;
}
.mkt-search[data-v-56f510aa]:focus { border-color: var(--color-primary, #4353FF);
}
.mkt-search[data-v-56f510aa]::placeholder { color: var(--color-text-placeholder, #9CA5BE);
}

/* ── States ────────────────────────────────────────────────────────────────── */
.mp-status[data-v-56f510aa] {
  font-family: inherit;
  font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A);
  padding: 24px 0;
}
.mp-status--error[data-v-56f510aa] { color: #DC2626;
}
.suites-grid[data-v-56f510aa] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.mp-empty[data-v-56f510aa] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 40px 0;
  text-align: center;
  font-family: inherit;
  font-size: var(--font-size-14, 14px);
  color: var(--color-text-label, #47506A);
  grid-column: 1 / -1;
}

/* ── App grid — vertical tile cards (matches admin catalog preview) ─────────── */
.app-grid[data-v-56f510aa] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
  align-items: stretch;
}

/* Locked billing-cycle indicator (read-only — cycle set at purchase) */
.mkt-cycle-locked[data-v-56f510aa] {
  display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;
  padding:5px 12px;border:1px solid #E5E7EF;border-radius:8px;background:#F9F9FC;
  font-size:12px;font-weight:600;color:#47506A;width:fit-content;
}

/* Owned tile — badge + inline Remove / "Removing on <date>" */
.owned-actions[data-v-56f510aa] { display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end
}
.owned-via[data-v-56f510aa] {
  display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;
  background:#EEF0FF;color:var(--color-primary,#4353FF);
  font-size:11px;font-weight:600;white-space:nowrap;
}
.btn-owned-remove[data-v-56f510aa] {
  height:32px;padding:0 10px;background:none;border:1px solid #FECDD3;border-radius:6px;
  font-family:inherit;font-size:var(--font-size-12,12px);font-weight:500;color:#DC2626;
  cursor:pointer;white-space:nowrap;transition:background 0.15s;
}
.btn-owned-remove[data-v-56f510aa]:hover { background:#FEF2F2
}
.owned-removing[data-v-56f510aa] {
  display:inline-flex;align-items:center;height:32px;padding:0 10px;background:#FEF3C7;
  color:#92400E;border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;
  white-space:nowrap;cursor:default;
}
.app-price-area[data-v-56f510aa] { display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:6px;min-width:0
}
.price-current[data-v-56f510aa] { font-weight:700;font-size:15px;color:#020631;white-space:nowrap
}
.price-original[data-v-56f510aa] { font-size:12px;color:#9CA5BE;text-decoration:line-through;white-space:nowrap
}
.price-save[data-v-56f510aa] { font-size:10px;font-weight:700;padding:2px 7px;background:#DCFCE7;color:#166534;border-radius:20px;text-align:center;white-space:nowrap
}
.price-save--yearly[data-v-56f510aa] { background:#DCFCE7;color:#166534
}
.price-included[data-v-56f510aa] { font-size:12px;font-weight:600;color:#7C3AED
}

/* ── Vertical app card (matches admin catalog preview) ──────────────────────── */
.app-card[data-v-56f510aa] {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  background: var(--color-bg-card, #FFFFFF);
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  box-shadow: var(--shadow-card);
  box-sizing: border-box;
  /* Fixed card height — uniform across app tabs (2-line desc block reserved). */
  min-height: 182px;
}
.app-card-top[data-v-56f510aa] { display: flex; align-items: center; gap: 10px;
}
.app-card-title-block[data-v-56f510aa] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.app-card[data-v-56f510aa]:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-1px); border-color: #C7CEF0;
}
/* added-card border intentionally omitted to match the onboarding marketplace */
.app-card--purchased[data-v-56f510aa]     { border-color: #16A34A; background: #F0FDF4;
}
.app-card--cs[data-v-56f510aa] {
  background: #FFF7F2;
  border-color: #F9C9A8;
}
.app-card--cs[data-v-56f510aa]:hover { box-shadow: 0 0 0 3px rgba(249,115,22,0.12); border-color: #F5A876;
}
.coming-soon-ribbon[data-v-56f510aa] {
  position: absolute;
  top: 16px;
  right: -24px;
  width: 120px;
  background: linear-gradient(135deg, #F97316, #E84040);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-align: center;
  text-transform: uppercase;
  padding: 6px 0;
  transform: rotate(45deg);
  box-shadow: 0 3px 8px rgba(232,64,64,0.35);
  z-index: 1;
  pointer-events: none;
}
.default-ribbon[data-v-56f510aa] {
  position: absolute;
  top: 13px;
  right: -22px;
  width: 130px;
  background: linear-gradient(135deg, #7C3AED, #5B21B6);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-align: center;
  text-transform: uppercase;
  padding: 4px 0;
  transform: rotate(45deg);
  box-shadow: 0 3px 8px rgba(91,33,182,0.35);
  z-index: 1;
  pointer-events: none;
}
.app-card-name-row[data-v-56f510aa] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 0;
}
.app-card-name[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 600;
  font-size: var(--font-size-14, 14px);
  color: var(--color-primary-dark, #020631);
  margin: 0;
  line-height: 18px;
  flex: 1;
  min-width: 0;
}
.app-card-added-chip[data-v-56f510aa] {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 18px;
  padding: 0 6px;
  background: #ECEEFF;
  color: var(--color-primary, #4353FF);
  border-radius: 4px;
  font-family: inherit;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2px;
  white-space: nowrap;
}
.suite-info-icon[data-v-56f510aa] {
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  background: none;
  border: none;
  padding: 0 0 0 2px;
  color: inherit;
  line-height: 1;
}
.suite-info-icon[data-v-56f510aa]:hover { opacity: 0.7;
}

/* DEF-145 — "about this app" affordance.
   ⚠ Deliberately INLINE, next to the name, and not pinned to the card's top-right corner:
   .coming-soon-ribbon and .default-ribbon are both absolutely positioned there and rotated
   45deg (top:16px; right:-24px), so a corner button would sit under the ribbon on exactly
   the tiles that have one — and more badges are coming. Inline also costs no vertical space,
   which matters because .app-card is a fixed 182px with overflow:hidden. */
.app-card-name-wrap[data-v-56f510aa] { display: flex; align-items: center; gap: 4px; min-width: 0;
}
.app-detail-icon[data-v-56f510aa] {
  flex: 0 0 auto;
  cursor: pointer;
  font-size: 12px;
  line-height: 1;
  background: none;
  border: none;
  padding: 0;
  color: var(--color-text-placeholder, #9CA5BE);
  transition: color 0.15s;
}
.app-detail-icon[data-v-56f510aa]:hover { color: var(--color-primary, #4353FF);
}
.app-detail-icon[data-v-56f510aa]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: 2px; border-radius: 3px;
}

/* Click popover naming the bundle an app was added through. */
.suite-info-overlay[data-v-56f510aa] { position: fixed; inset: 0; z-index: 9995;
}
.suite-info-pop[data-v-56f510aa] {
  position: fixed;
  transform: translateX(-50%);
  width: 240px;
  background: #FFFFFF;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(2, 6, 49, 0.18);
  padding: 12px 14px;
  font-family: var(--font-family-body);
}
.suite-info-text[data-v-56f510aa] { font-size: 12px; color: var(--color-primary-dark, #020631); line-height: 1.5; margin: 0 0 8px;
}
.suite-info-link[data-v-56f510aa] {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: var(--font-family-body); font-size: 12px; font-weight: 600;
  color: var(--color-primary, #4353FF);
}
.suite-info-link[data-v-56f510aa]:hover { text-decoration: underline;
}

/* ── Platform Default section (PLAN-043) ────────────────────────────────────── */
.platform-default-section[data-v-56f510aa] {
  margin-bottom: 24px;
}
.platform-default-heading[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 700;
  font-size: var(--font-size-14, 14px);
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.platform-default-sub[data-v-56f510aa] {
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A);
  margin: 0 0 12px;
}
.platform-default-grid[data-v-56f510aa] {
  margin-bottom: 0;
}
.app-card--default[data-v-56f510aa] {
  background: #FBFAFF;
  border-color: #DDD6FE;
}

/* ── Pills (mirrors platform-admin-ui's AdminMarketplaceView "Default" pill) ── */
.pill[data-v-56f510aa] {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.2px;
  white-space: nowrap;
  flex-shrink: 0;
}
.pill--purple[data-v-56f510aa] { background: #EDE9FE; color: #5B21B6;
}
.app-card-variant[data-v-56f510aa] {
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  font-weight: 500;
  color: var(--color-primary, #4353FF);
  margin: 0;
}
.app-card-cat[data-v-56f510aa] {
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A);
  margin: 0 0 4px;
}
.app-card-desc[data-v-56f510aa] {
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  color: var(--color-text-label, #47506A);
  line-height: 16px;
  margin: 0 0 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 32px;
}
.app-card-footer[data-v-56f510aa] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
}
.app-card-price[data-v-56f510aa] {
  font-family: inherit;
  color: var(--color-primary-dark, #020631);
}
.app-card-price strong[data-v-56f510aa] { font-weight: 700; font-size: 16px;
}
.app-card-price--variant[data-v-56f510aa] { display: inline-flex; align-items: baseline; gap: 6px;
}
.btn-add[data-v-56f510aa] {
  height: 32px;
  padding: 0 12px;
  background: var(--color-primary, #4353FF);
  color: #FFF;
  border: none;
  border-radius: 6px;
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.btn-add[data-v-56f510aa]:hover { background: #3243EF;
}
.btn-remove-card[data-v-56f510aa] {
  height: 32px;
  padding: 0 12px;
  background: none;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 6px;
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  font-weight: 500;
  color: var(--color-primary, #4353FF);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.15s;
}
.btn-remove-card[data-v-56f510aa]:hover { border-color: var(--color-primary, #4353FF);
}
.btn-owned[data-v-56f510aa] {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  background: #DCFCE7;
  color: #16A34A;
  border-radius: 6px;
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  font-weight: 600;
  white-space: nowrap;
  cursor: default;
}

/* ── Embedded cart panel ───────────────────────────────────────────────────── */
.mkt-cart-overlay[data-v-56f510aa] {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 49, 0.1);
  z-index: 10;
}
.mkt-cart-panel[data-v-56f510aa] {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 300px;
  background: var(--color-bg-card, #FFFFFF);
  border-left: 1px solid var(--color-border-default, #E5E7EF);
  display: flex;
  flex-direction: column;
  padding: 20px;
  gap: 0;
  transform: translateX(100%);
  transition: transform 0.25s ease;
  z-index: 11;
}
.mkt-cart-panel.open[data-v-56f510aa] { transform: translateX(0);
}
.mkt-cart-head[data-v-56f510aa] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  flex-shrink: 0;
}
.mkt-cart-title-row[data-v-56f510aa] { display: flex; align-items: baseline; gap: 8px;
}
.mkt-cart-title[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 700;
  font-size: 16px;
  color: var(--color-primary-dark, #020631);
}
.mkt-cart-count[data-v-56f510aa] {
  font-family: inherit;
  font-size: 12px;
  color: var(--color-text-label, #47506A);
}
.mkt-cart-close[data-v-56f510aa] {
  background: none;
  border: none;
  cursor: pointer;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  color: var(--color-text-label, #47506A);
}
.mkt-cart-close[data-v-56f510aa]:hover { background: var(--color-bg-page, #F9F9FC);
}
.mkt-cart-tier-pill[data-v-56f510aa] {
  background: #ECEEFF;
  border-radius: 20px;
  padding: 5px 12px;
  font-family: inherit;
  font-size: 11px;
  color: var(--color-text-label, #47506A);
  margin-bottom: 14px;
  flex-shrink: 0;
}
.mkt-cart-default-group[data-v-56f510aa] { margin-bottom: 4px;
}
.mkt-cart-default-group-title[data-v-56f510aa] {
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  color: #5B21B6;
  margin: 0 0 6px;
}
.mkt-cart-item--locked[data-v-56f510aa] { background: #FBFAFF; margin: 0 -8px; padding: 10px 8px; border-radius: 8px; border-bottom: none;
}
.mkt-cart-item-lock[data-v-56f510aa] { font-size: 12px;
}
.mkt-cart-scroll[data-v-56f510aa] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.mkt-cart-suite-group[data-v-56f510aa] { margin-bottom: 10px;
}
.mkt-cart-discount-row[data-v-56f510aa] { color: #16a34a; font-weight: 600;
}
.mkt-cart-discount-row .mkt-cart-total-label[data-v-56f510aa] { color: #16a34a;
}
.mkt-cart-item[data-v-56f510aa] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.mkt-cart-item-info[data-v-56f510aa] { flex: 1; min-width: 0;
}
.mkt-cart-item-name[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 600;
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 1px;
}
.mkt-cart-item-sub[data-v-56f510aa] {
  font-family: inherit;
  font-size: 11px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}
.mkt-cart-item-right[data-v-56f510aa] { text-align: right; flex-shrink: 0;
}
.mkt-cart-item-price[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 600;
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
  margin: 0 0 2px;
}
.mkt-cart-item-remove[data-v-56f510aa] {
  background: none;
  border: none;
  font-size: 11px;
  color: #DC2626;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}
.mkt-cart-item-remove[data-v-56f510aa]:hover { text-decoration: underline;
}
.mkt-cart-empty[data-v-56f510aa] {
  font-family: inherit;
  font-size: 13px;
  color: var(--color-text-placeholder, #9CA5BE);
  text-align: center;
  padding: 32px 0;
}
.mkt-cart-sep[data-v-56f510aa] {
  border: none;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  margin: 10px 0;
  flex-shrink: 0;
}
.mkt-cart-sep--bold[data-v-56f510aa] { border-top-width: 2px; border-top-color: var(--color-primary-dark, #020631);
}
.mkt-cart-prorate-hint[data-v-56f510aa] {
  margin: -6px 0 12px; font-size: 11px; line-height: 1.4;
  color: var(--color-text-placeholder, #9CA5BE); flex-shrink: 0;
}
.mkt-cart-total-row[data-v-56f510aa] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 14px;
  flex-shrink: 0;
}
.mkt-cart-total-label[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 600;
  font-size: 13px;
  color: var(--color-primary-dark, #020631);
}
.mkt-cart-total-price[data-v-56f510aa] {
  font-family: inherit;
  font-weight: 700;
  font-size: 18px;
  color: var(--color-primary, #4353FF);
}
.mkt-checkout-btn[data-v-56f510aa] {
  width: 100%;
  height: 44px;
  background: var(--color-primary, #4353FF);
  color: #FFF;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s;
  margin-top: auto;
}
.mkt-checkout-btn[data-v-56f510aa]:hover:not(:disabled) { background: #3243EF;
}
.mkt-checkout-btn[data-v-56f510aa]:disabled { background: var(--color-text-placeholder, #9CA5BE); cursor: not-allowed;
}

.billing-view[data-v-fc35ae85] {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Header */
.page-header[data-v-fc35ae85] { display: flex; flex-direction: column; gap: 4px;
}
.page-title[data-v-fc35ae85]  { font-size: 28px; font-weight: 700; color: #020631; margin: 0; line-height: 36px;
}
.page-subtitle[data-v-fc35ae85] { font-size: 14px; color: #47506A; margin: 0;
}

/* Skeleton */
.billing-loading[data-v-fc35ae85] { display: flex; flex-direction: column; gap: 10px;
}
.skeleton-row[data-v-fc35ae85] {
  height: 52px;
  border-radius: 8px;
  background: #E8EDF8;
  position: relative;
  overflow: hidden;
}
.shimmer[data-v-fc35ae85]::after {
  content: '';
  position: absolute; top: 0; left: -140%;
  width: 80%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.75) 50%, transparent 100%);
  animation: shimmer-sweep-fc35ae85 1.15s ease-in-out infinite;
}
@keyframes shimmer-sweep-fc35ae85 {
100% { left: 160%;
}
}

/* Summary card */
.summary-card[data-v-fc35ae85] {
  border: 1px solid #E5E7EF;
  border-radius: 12px;
  background: #FFFFFF;
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 680px;
}
.summary-card-header[data-v-fc35ae85] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}
.tier-badge[data-v-fc35ae85] {
  background: #ECEEFF;
  color: #4353FF;
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 600;
}
.tier-code[data-v-fc35ae85] {
  font-size: 12px;
  color: #47506A;
}

/* Billing lines */
.billing-line[data-v-fc35ae85] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #F3F4F6;
}
.billing-line--platform[data-v-fc35ae85] { padding-top: 0;
}
.billing-line-left[data-v-fc35ae85] {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
.billing-line-icon--platform[data-v-fc35ae85] {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #ECEEFF;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.billing-line-name[data-v-fc35ae85] {
  font-size: 14px;
  font-weight: 600;
  color: #020631;
  margin: 0;
}
.billing-line-sub[data-v-fc35ae85] {
  font-size: 12px;
  color: #47506A;
  margin: 0;
}
.billing-line-price[data-v-fc35ae85] {
  font-size: 14px;
  font-weight: 700;
  color: #020631;
  white-space: nowrap;
  flex-shrink: 0;
}
.billing-section-label[data-v-fc35ae85] {
  font-size: 12px;
  font-weight: 600;
  color: #47506A;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 12px 0 4px;
}

/* Totals */
.billing-divider[data-v-fc35ae85] {
  border: none;
  border-top: 2px solid #020631;
  margin: 12px 0 0;
}
.billing-total-row[data-v-fc35ae85] {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-top: 12px;
}
.billing-total-label[data-v-fc35ae85] {
  font-size: 14px;
  font-weight: 600;
  color: #020631;
}
.billing-total-price[data-v-fc35ae85] {
  font-size: 24px;
  font-weight: 700;
  color: #4353FF;
}
.billing-next-charge[data-v-fc35ae85] {
  font-size: 12px;
  color: #47506A;
  padding-top: 6px;
}

/* Empty */
.billing-empty[data-v-fc35ae85] {
  padding: 40px 0;
  text-align: center;
  color: #47506A;
  font-size: 14px;
}

.vp[data-v-20092f27] { position: relative; display: inline-flex;
}
.vp-btn[data-v-20092f27] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 9px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border-card);
  background: var(--color-surface-card);
  font-family: inherit;
  font-size: var(--font-size-12, 12px);
  color: var(--color-text-label);
  cursor: pointer;
  max-width: 260px;
}
.vp-btn[data-v-20092f27]:hover { border-color: var(--color-primary);
}
.vp-btn[data-v-20092f27]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.vp-btn--on[data-v-20092f27] { border-color: var(--color-primary); color: var(--color-primary);
}
.vp-btn-label[data-v-20092f27] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.vp-caret[data-v-20092f27] { font-size: 9px; opacity: 0.7;
}
.vp-dirty[data-v-20092f27] {
  flex-shrink: 0;
  padding: 1px 5px;
  border-radius: var(--radius-pill, 999px);
  background: var(--color-semantic-bg-orange);
  color: var(--color-semantic-text-orange);
  font-size: 9.5px;
  font-weight: 600;
}
.vp-pop[data-v-20092f27] {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 60;
  width: 320px;
  max-width: calc(100vw - 32px);
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-md);
  box-shadow: 0 12px 28px -18px rgba(104, 118, 156, 0.7);
  overflow: hidden;
}
.vp-list[data-v-20092f27] { list-style: none; margin: 0; padding: 4px; max-height: 300px; overflow-y: auto;
}

/* The row and its tools share one hover surface, so the tools do not feel bolted on. */
.vp-item[data-v-20092f27] { display: flex; align-items: center; border-radius: var(--radius-sm);
}
.vp-item[data-v-20092f27]:hover, .vp-row[data-v-20092f27]:hover { background: var(--color-surface-page);
}

/* ⚠ #F5F5F5, NOT #ECEEFF — the DS bans that hex for a selected row and names AdminSidebar.vue
   as the live violation not to copy. The desk's own ViewPicker still uses it; do not port that. */
.vp-item--on[data-v-20092f27], .vp-row--on[data-v-20092f27] { background: var(--color-semantic-bg-grey);
}
.vp-row[data-v-20092f27] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  appearance: none;
  border: 0;
  background: none;
  text-align: left;
  padding: 7px 9px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  font: inherit;
}
.vp-name[data-v-20092f27] {
  font-size: var(--font-size-12, 12px);
  font-weight: 500;
  color: var(--color-primary-dark);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vp-note[data-v-20092f27] { font-size: 10.5px; color: var(--color-text-helper);
}

/* ⚠ Visible always, not on hover only. A control that appears on hover does not exist on a
   touch screen and is undiscoverable on a keyboard — and these are the only route to renaming
   or deleting a view. */
.vp-tools[data-v-20092f27] { display: flex; gap: 2px; padding-right: 5px;
}
.vp-icon[data-v-20092f27] {
  appearance: none;
  border: 0;
  background: none;
  width: 22px;
  height: 22px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--color-text-placeholder);
}
.vp-icon[data-v-20092f27]:hover { background: var(--color-semantic-bg-grey); color: var(--color-text-label);
}
.vp-icon[data-v-20092f27]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -1px;
}
.vp-icon--danger[data-v-20092f27]:hover { background: var(--color-semantic-bg-red); color: var(--color-semantic-text-red);
}
.vp-confirm[data-v-20092f27] {
  margin: 2px 9px 6px;
  font-size: 11px;
  line-height: var(--line-height-xs, 18px);
  color: var(--color-semantic-text-red);
}
.vp-link[data-v-20092f27] {
  appearance: none;
  border: 0;
  background: none;
  padding: 0 0 0 8px;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-primary);
  cursor: pointer;
}
.vp-link--danger[data-v-20092f27] { color: var(--color-semantic-text-red);
}
.vp-edit[data-v-20092f27] { display: flex; align-items: center; gap: 5px; padding: 5px;
}
.vp-input[data-v-20092f27] { flex: 1; min-width: 0; min-height: 30px;
}
.vp-empty[data-v-20092f27] {
  margin: 0;
  padding: 4px 12px 10px;
  font-size: 11px;
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-helper);
}
.vp-foot[data-v-20092f27] {
  border-top: 1px solid var(--color-border-default);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.vp-full[data-v-20092f27] { width: 100%; justify-content: center;
}
.vp-foot-note[data-v-20092f27] {
  margin: 0;
  font-size: 10.5px;
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-placeholder);
}

.hfp[data-v-95d69301] { position: relative; display: inline-flex;
}
.hfp-btn[data-v-95d69301] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  font-family: inherit;
  font-size: 12px;
  color: var(--color-text-label);
  cursor: pointer;
  white-space: nowrap;
}
.hfp-btn[data-v-95d69301]:hover { border-color: var(--color-primary);
}
.hfp-btn[data-v-95d69301]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.hfp-btn--on[data-v-95d69301] { border-color: var(--color-primary); color: var(--color-primary);
}
.hfp-count[data-v-95d69301] {
  min-width: 16px;
  padding: 0 4px;
  border-radius: var(--radius-pill);
  background: var(--color-primary);
  color: var(--color-text-white);
  font-size: 9.5px;
  font-weight: 700;
  line-height: 15px;
  text-align: center;
}
.hfp-pop[data-v-95d69301] {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 60;
  width: 400px;
  max-width: calc(100vw - 32px);
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-card);
  border-radius: var(--radius-md);
  box-shadow: 0 12px 28px -18px rgba(104, 118, 156, 0.7);
}

/* Two columns. In one it is a scroll; in three a workspace name has nowhere to render. */
.hfp-grid[data-v-95d69301] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 12px;
  padding: 12px;
  max-height: 340px;
  overflow-y: auto;
}
@media (max-width: 560px) {
.hfp-grid[data-v-95d69301] { grid-template-columns: 1fr;
}
.hfp-pop[data-v-95d69301] { width: calc(100vw - 32px);
}
}
.hfp-field[data-v-95d69301] { display: flex; flex-direction: column; gap: 3px; min-width: 0;
}
.hfp-label[data-v-95d69301] { font-size: 10.5px; color: var(--color-text-helper);
}
.hfp-select[data-v-95d69301] { width: 100%; min-width: 0; min-height: 34px;
}
.hfp-foot[data-v-95d69301] {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 12px;
  border-top: 1px solid var(--color-border-default);
}

/*
 * ⚠ `min-height: 0` and a table shell that takes the slack — this is the half that makes the
 * desk's full-screen behaviour real. Its parent (`.sc-page--fill`) stops the page scrolling; if
 * this element's automatic minimum size stayed at its content height, the table would simply
 * push past the viewport and nothing would scroll anywhere.
 */
.mt[data-v-2d0ac0a1] { display: flex; flex-direction: column; gap: 12px; min-width: 0; min-height: 0; flex: 1;
}
.mt--embedded[data-v-2d0ac0a1] { gap: 10px;
}
.mt > .sc-table-shell[data-v-2d0ac0a1] { flex: 1; min-height: 0;
}
.mt-filters[data-v-2d0ac0a1] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; flex-shrink: 0;
}

/* ── The quick filters, as smart labels on the toolbar ───────────────────────── */

/* ⚠ `margin-left: auto`, so they take the slack rather than a share of it: the search box keeps
   its width and the labels sit at the trailing edge. On a narrow window the toolbar wraps and
   they drop to their own line, which is the one place a band of vertical space is earned. */
.mt-quicks[data-v-2d0ac0a1] {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  margin-left: auto;
}
.mt-quick[data-v-2d0ac0a1] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-pill);
  background: var(--color-surface-card);
  font-family: inherit;
  font-size: 11.5px;
  color: var(--color-text-label);
  white-space: nowrap;
  cursor: pointer;
}
.mt-quick[data-v-2d0ac0a1]:hover { border-color: var(--color-primary);
}
.mt-quick[data-v-2d0ac0a1]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}

/* ⚠ #F5F5F5 and a blue edge, never #ECEEFF — the DS bans that hex for a selected control. */
.mt-quick--on[data-v-2d0ac0a1] {
  border-color: var(--color-primary);
  background: var(--color-semantic-bg-grey);
  color: var(--color-primary);
  font-weight: 500;
}
.mt-quick-count[data-v-2d0ac0a1] {
  font-variant-numeric: tabular-nums;
  font-size: 10.5px;
  color: var(--color-text-helper);
}
.mt-quick--on .mt-quick-count[data-v-2d0ac0a1] { color: var(--color-primary);
}

/* ── Per-column filters ─────────────────────────────────────────────────────── */

/*
 * ⚠ THIS RULE USED TO UNSTICK THE HEADER, and the header is the thing the owner asked for.
 *
 * It set `position: relative` so a column menu anchors to its own `th` — correct on its own terms, and it
 * silently overrode `support.css`'s `position: sticky` on the same selector. Measured: `getComputedStyle`
 * returned `relative`, so the header scrolled away while the shared stylesheet said it should not. Owner,
 * 2026-08-14: *"the table should fix to the roof."*
 *
 * `sticky` ALSO establishes a containing block for absolute children, so it does both jobs — the menu still
 * anchors to its column and the header stays put. Restating `top` and `z-index` here because a bare
 * `position: sticky` with no offset sticks to nothing, which looks identical to not being sticky at all.
 *
 * ⚠ A local rule on a SHARED selector is what made this invisible. If a column menu ever needs `relative`
 * again, give the `th` a class of its own rather than re-declaring `.sc-table thead th`.
 */
.sc-table thead th[data-v-2d0ac0a1] { position: sticky; top: 0; z-index: 2;
}
.mt-th[data-v-2d0ac0a1] { display: inline-flex; align-items: center; gap: 4px;
}
.mt-filter-btn[data-v-2d0ac0a1] {
  appearance: none;
  border: 0;
  background: none;
  padding: 0 2px;
  font-size: 9px;
  line-height: 1;
  color: var(--color-text-placeholder);
  cursor: pointer;
}
.mt-filter-btn[data-v-2d0ac0a1]:hover { color: var(--color-primary);
}
.mt-filter-btn.on[data-v-2d0ac0a1] { color: var(--color-primary);
}
.mt-filter-btn[data-v-2d0ac0a1]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}

/* A filtered column is marked on the header itself, so it is visible without opening anything. */
.mt-th--filtered[data-v-2d0ac0a1] { box-shadow: inset 0 -2px 0 var(--color-primary);
}
.mt-menu[data-v-2d0ac0a1] {
  position: absolute;
  top: 100%;
  left: 8px;
  z-index: 20;
  min-width: 180px;
  max-height: 260px;
  overflow-y: auto;
  padding: 5px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  box-shadow: 0 8px 24px rgba(2, 6, 49, 0.14);
}
.mt-menu-row[data-v-2d0ac0a1] {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 5px 8px;
  border: 0;
  border-radius: var(--radius-sm);
  background: none;
  font: inherit;
  font-size: 11.5px;
  font-weight: 400;
  text-align: left;
  white-space: normal;
  color: var(--color-text-label);
  cursor: pointer;
}
.mt-menu-row[data-v-2d0ac0a1]:hover { background: var(--color-semantic-bg-grey);
}
.mt-menu-row[aria-pressed='true'][data-v-2d0ac0a1] { color: var(--color-primary); font-weight: 600;
}
.mt-menu-tick[data-v-2d0ac0a1] { width: 10px; flex-shrink: 0; color: var(--color-primary);
}
.mt-menu-clear[data-v-2d0ac0a1] {
  margin-top: 3px;
  padding: 5px 8px;
  border: 0;
  border-top: 1px solid var(--color-border-default);
  background: none;
  font: inherit;
  font-size: 11px;
  text-align: left;
  color: var(--color-text-helper);
  cursor: pointer;
}
.mt-active[data-v-2d0ac0a1] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; flex-shrink: 0;
}
.mt-active-chip[data-v-2d0ac0a1] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-pill);
  background: var(--color-semantic-bg-grey);
  font: inherit;
  font-size: 11px;
  color: var(--color-primary);
  cursor: pointer;
}
.mt-active-x[data-v-2d0ac0a1] { font-size: 9px;
}
.mt-active-clear[data-v-2d0ac0a1] { font-size: 11px;
}
.mt-empty-action[data-v-2d0ac0a1] { display: block; margin-top: 10px;
}
.mt-search[data-v-2d0ac0a1] { flex: 1; min-width: 220px; max-width: 360px; min-height: 36px;
}
.mt-subject[data-v-2d0ac0a1] { font-weight: 500; color: var(--color-primary-dark);
}
.mt-dot[data-v-2d0ac0a1] {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-semantic-element-orange, #EC6E0E);
  margin-right: 6px;
  vertical-align: middle;
}
.mt-pager[data-v-2d0ac0a1] { display: inline-flex; align-items: center; gap: 10px;
}

.sv[data-v-25377c57] { min-width: 0;
}

/*
 * ⚠ The head keeps its natural height; only the list takes the slack and scrolls. Without
 * `min-height: 0` on the body the flex item's automatic minimum is its content, so the table pushes
 * the page past the viewport and the inner scroller never engages — the failure looks exactly like
 * the fill not having been applied at all.
 */
.sc-page--fill > .sc-head[data-v-25377c57],
.sc-page--fill > .sv-count[data-v-25377c57] { flex-shrink: 0;
}
.sc-page--fill[data-v-25377c57] > :last-child { flex: 1; min-height: 0;
}
.sv-count[data-v-25377c57] {
  margin: 0 0 10px;
  font-size: 12.5px;
  /* ⚠ `--color-text-helper`, not `--color-text-secondary`. The latter is defined nowhere in this
     repo, so the declaration was invalid and dropped — the count inherited its colour rather than
     choosing one. Two other files still reference it, both with a hardcoded fallback that happens to
     be right; see the bug list. */
  color: var(--color-text-helper);
}

.rfb[data-v-7d26c441] { position: relative; display: inline-flex; align-items: center;
}

/*
 * A split button: two hit areas, one visual unit. The shared edge is a single border rather than
 * two adjacent ones, so it reads as one control and not as two buttons that happen to touch.
 */
.rfb-main[data-v-7d26c441] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  padding-right: 7px;
}
.rfb-caret[data-v-7d26c441] {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-left: 0;
  padding: 0 6px;
  min-width: 22px;
  justify-content: center;
}
.rfb-icon[data-v-7d26c441] { width: 13px; height: 13px; flex-shrink: 0;
}
@keyframes rfb-spin-7d26c441 {
to { transform: rotate(360deg);
}
}
.rfb-icon.spin[data-v-7d26c441] { animation: rfb-spin-7d26c441 .9s linear infinite; transform-origin: 50% 50%;
}
@media (prefers-reduced-motion: reduce) {
.rfb-icon.spin[data-v-7d26c441] { animation: none;
}
}

/*
 * ⚠ `tabular-nums` and a min-width. Without them the button changes width as the countdown falls
 * 10s → 9s, and a control that twitches next to a tab strip drags the strip with it.
 */
.rfb-num[data-v-7d26c441] {
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  min-width: 20px;
  text-align: right;
  color: var(--color-text-helper, #535F7F);
}

/*
 * The dot that says auto is on.
 *
 * ⚠ It pulses. The countdown already proves the timer is alive, so this is the at-a-glance half —
 * you can tell auto is on without reading the digits. Stopped under `prefers-reduced-motion`,
 * where the countdown carries the whole message on its own.
 */
@keyframes rfb-pulse-7d26c441 {
0%, 100% { opacity: 1;
}
50% { opacity: .35;
}
}
.rfb-live[data-v-7d26c441] {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--color-semantic-text-green, #1B7F4B);
  flex-shrink: 0;
  animation: rfb-pulse-7d26c441 2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
.rfb-live[data-v-7d26c441] { animation: none;
}
}
.rfb--failed .rfb-num[data-v-7d26c441] { color: var(--color-semantic-text-amber, #9A5B00); font-weight: 600;
}
.rfb-menu[data-v-7d26c441] {
  /* ⚠ `fixed`, with coordinates from `place()`. `absolute` resolved against `.rfb` and was
     therefore clipped by any `overflow` ancestor — see the comment on `place()`. */
  position: fixed;
  z-index: 400;
  min-width: 168px;
  padding: 6px;
  background: var(--color-background-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(2, 6, 49, .1);
}
.rfb-menu-head[data-v-7d26c441] {
  margin: 2px 6px 6px;
  font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--color-text-placeholder, #9CA5BE);
}
.rfb-opt[data-v-7d26c441] {
  display: flex; align-items: center; gap: 6px;
  width: 100%; padding: 6px 6px; border: 0; border-radius: 6px;
  background: transparent; text-align: left; cursor: pointer;
  font-size: 12px; color: var(--color-text-primary, #020631);
}
.rfb-opt[data-v-7d26c441]:hover { background: var(--color-semantic-bg-grey, #F5F5F5);
}
/* ⚠ A fixed-width column, so the labels do not shift by a tick's width as the choice moves. */
.rfb-tick[data-v-7d26c441] { width: 11px; color: var(--text-secondary-button, #4353FF);
}
.rfb-menu-note[data-v-7d26c441] {
  margin: 6px 6px 2px;
  font-size: 10.5px; line-height: 15px;
  color: var(--color-text-helper, #535F7F);
}

.tt-wrap[data-v-5e2cbd95] { position: relative; display: flex; flex-direction: column; min-height: 0; flex: 1;
}
.tt-thread[data-v-5e2cbd95] {
  display: flex;
  flex-direction: column;
  /* The desk's `.thread` gap and `.pane` padding, to the pixel. */
  gap: 11px;
  padding: 8px 16px;
  overflow-y: auto;
  /*
   * ⚠ NO max-height any more (owner, 2026-08-12: "I need full width like we have it in support
   * desk"). It was `min-height: 320px; max-height: 58vh` — which was itself a fix for a fixed
   * 460px, but it capped the thread at two-fifths of the window, so a 1400px-tall monitor showed
   * a letterboxed conversation with empty card below it. The card is now a flex column that
   * takes the leftover height and this is the item that absorbs it, so the thread is as tall as
   * the screen allows and scrolls inside itself — the desk's arrangement exactly.
   */
  flex: 1;
  min-height: 0;
  /*
   * ⚠ WHITE, like the desk's pane — it was page grey with white bubbles on it, the exact
   * inverse. That inversion is why the two screens read as different products even though the
   * bubbles were already the right shape: on the desk the surface recedes and the messages sit
   * on it, and here the surface was the loudest thing in the card.
   */
  background: var(--color-surface-card);
  border-top: 1px solid var(--color-border-default);
  border-bottom: 1px solid var(--color-border-default);
}
.tt-day[data-v-5e2cbd95] {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-placeholder);
}
.tt-day[data-v-5e2cbd95]::before,
.tt-day[data-v-5e2cbd95]::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border-default);
}

/*
 * A status or priority change. Centred and unaddressed on purpose: it is a fact about the
 * ticket, not a message to the customer, and a bubble is a message to somebody.
 */
/* ⚠ The desk's `.system-line` exactly: page grey, a real border, 10.5px. It was a borderless
   grey pill at 11px — close enough to look like a near-miss rather than the same component. */
.tt-system[data-v-5e2cbd95] {
  align-self: center;
  max-width: 90%;
  margin: 2px 0;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-page);
  border: 1px solid var(--color-border-default);
  font-size: 10.5px;
  color: var(--color-text-helper);
  text-align: center;
}

/* ── Bubbles: `desk.css` §.bubble, mirrored ─────────────────────────────────── */
.tt-bubble[data-v-5e2cbd95] { max-width: 84%; display: flex; flex-direction: column; gap: 4px;
}
.tt-who[data-v-5e2cbd95] { font-size: 10.5px; color: var(--color-text-placeholder);
}
.tt-body[data-v-5e2cbd95] {
  padding: 10px 13px;
  border-radius: 14px;
  font-size: 12px;
  line-height: 1.55;
  white-space: pre-wrap;
  /* ⚠ A pasted URL or a stack line has no spaces in it, and without this it widens the bubble
     until the thread scrolls sideways. The desk carries the same declaration. */
  overflow-wrap: anywhere;
}

/* Support, on the left — the desk's `.bubble--customer`, which is the "them" side there too. */
.tt-bubble--them[data-v-5e2cbd95] { align-self: flex-start;
}
.tt-bubble--them .tt-body[data-v-5e2cbd95] {
  background: var(--color-surface-page);
  border: 1px solid var(--color-border-default);
  border-bottom-left-radius: 4px;
  color: var(--color-text-label);
}

/* You, on the right — the desk's `.bubble--agent`, mirrored. Same #ECEEFF fill, same corner. */
.tt-bubble--me[data-v-5e2cbd95] { align-self: flex-end; align-items: flex-end;
}
.tt-bubble--me .tt-body[data-v-5e2cbd95] {
  background: var(--color-primary-lightest, #ECEEFF);
  border: 1px solid transparent;
  border-bottom-right-radius: 4px;
  color: var(--color-primary-dark);
}

/* ── An ask, inline ─────────────────────────────────────────────────────────── */

/* Support's side, and a little wider than a bubble because it holds two controls. */
.tt-ask[data-v-5e2cbd95] { align-self: flex-start; max-width: 92%; display: flex; flex-direction: column; gap: 4px;
}
.tt-ask-card[data-v-5e2cbd95] {
  padding: 11px 13px;
  border: 1px solid var(--color-primary-light, #C7CDFF);
  border-left: 3px solid var(--color-primary);
  border-radius: 14px;
  border-bottom-left-radius: 4px;
  background: var(--color-surface-page);
}
.tt-ask-title[data-v-5e2cbd95] { margin: 0 0 3px; font-size: 12px; font-weight: 600; color: var(--color-primary-dark);
}
.tt-ask-quote[data-v-5e2cbd95] { margin: 0 0 5px; font-size: 12px; font-style: italic; color: var(--color-text-label);
}
.tt-ask-note[data-v-5e2cbd95] { margin: 0 0 9px; font-size: 11px; line-height: 1.5; color: var(--color-text-helper);
}
.tt-ask-actions[data-v-5e2cbd95] { display: flex; gap: 8px; flex-wrap: wrap;
}

/* ⚠ `.tt-empty` removed with the no-replies line — see the template note. */
.tt-jump[data-v-5e2cbd95] {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--color-primary-dark);
  color: var(--color-text-white);
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 600;
  padding: 6px 15px;
  cursor: pointer;
  box-shadow: var(--shadow-card-hover);
}

/*
 * ⚠ A BAND, not a card. `border-top` + a shadow cast upward is the desk's `.composer`: the
 * thread scrolls behind it and it never moves. `flex-shrink: 0` keeps it at its own height
 * when the thread is long — without it the composer is the thing that gives way.
 */
.tc[data-v-9faffd45] {
  border-top: 1px solid var(--color-border-default);
  padding: 10px 16px 12px;
  background: var(--color-surface-card);
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-shrink: 0;
  box-shadow: 0 -6px 14px -12px rgba(104, 118, 156, 0.5);
}
.tc-error[data-v-9faffd45] { margin: 0;
}
.tc-tools[data-v-9faffd45] { display: flex; align-items: center; gap: 13px; font-size: 11.5px;
}

/* The underline is what says "this is what the box below writes". */
.tc-tool-active[data-v-9faffd45] {
  color: var(--color-primary);
  font-weight: 600;
  padding-bottom: 4px;
  box-shadow: inset 0 -2px 0 var(--color-primary);
}
.tc-tool[data-v-9faffd45] {
  appearance: none;
  border: 0;
  background: none;
  padding: 0 0 4px;
  font: inherit;
  font-size: 11.5px;
  color: var(--color-text-placeholder);
  cursor: pointer;
}
.tc-tool[data-v-9faffd45]:hover:not(:disabled) { color: var(--color-primary);
}
.tc-tool[data-v-9faffd45]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px;
}

/* Closing is not one of the "add something to this reply" tools, so it sits away from them. */
.tc-tool--end[data-v-9faffd45] { margin-left: auto;
}
.tc-input[data-v-9faffd45] {
  min-height: 74px;
  padding: 8px 10px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: 13px;
  color: var(--color-primary-dark);
  resize: vertical;
}
.tc-input[data-v-9faffd45]:focus { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.tc-foot[data-v-9faffd45] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.tc-audience[data-v-9faffd45] {
  font-size: 11.5px;
  color: var(--color-text-helper);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: baseline;
}
.tc-shortcut[data-v-9faffd45] { color: var(--color-text-placeholder);
}
.tc-actions[data-v-9faffd45] { display: flex; gap: 8px; flex-wrap: wrap;
}

/* ⚠ The close-reason pills moved to `CloseTicketDialog`, off the header. */
@media (max-width: 600px) {
.tc[data-v-9faffd45] { padding: 10px 12px 12px;
}
.tc-actions[data-v-9faffd45] { width: 100%;
}
.tc-actions .sc-btn[data-v-9faffd45] { flex: 1;
}
}

/* Scrolls vertically, never horizontally — the desk's rule, and the reason its timeline
   survived being moved into a 300px pane. */
.tl[data-v-6b5377d1] { overflow-x: hidden; min-width: 0;
}

/* ⚠ 20px between days. At 12px the trail read as one dense block and the day headings did not
   separate anything — you had to find the boundary by reading. Space is what makes a list
   scannable; a divider would just be another line to look past. */
.tl-day + .tl-day[data-v-6b5377d1] { margin-top: 20px;
}
.tl-day-head[data-v-6b5377d1] {
  margin: 0 0 4px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-large-text, #68769C);
}
.tl-rows[data-v-6b5377d1] { list-style: none; margin: 0; padding: 0;
}

/*
 * time · dot · line. The dot column is where the connecting rule is drawn, so every row's
 * marker sits on one vertical line without a wrapper element to hold it.
 */
.tl-row[data-v-6b5377d1] {
  display: grid;
  grid-template-columns: 38px 13px minmax(0, 1fr);
  align-items: baseline;
  gap: 0 7px;
  /* 7px, not 4px: each row is a separate event and at 4px they touched. The connector below is
     drawn from the dot column, so widening this lengthens the line with it rather than leaving
     gaps in it. */
  padding: 7px 0;
  position: relative;
}
.tl-time[data-v-6b5377d1] {
  font-size: 10.5px;
  color: var(--color-text-large-text, #68769C);
  white-space: nowrap;
}
.tl-dot[data-v-6b5377d1] {
  position: relative;
  justify-self: center;
  align-self: start;
  margin-top: 5px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-text-placeholder);
}
.tl-dot--ok[data-v-6b5377d1] { background: var(--color-primary);
}
.tl-dot--orange[data-v-6b5377d1] { background: var(--color-semantic-element-orange);
}
.tl-dot--red[data-v-6b5377d1] { background: var(--color-semantic-element-red);
}

/* The rule joining the dots, drawn per row so it stops cleanly at the last one. */
.tl-row:not(:last-child) .tl-dot[data-v-6b5377d1]::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 7px;
  width: 1px;
  height: calc(100% + 14px);
  background: var(--color-border-default);
}
.tl-line[data-v-6b5377d1] {
  font-size: 11.5px;
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-label);
  overflow-wrap: anywhere;
}
.tl-empty[data-v-6b5377d1] { font-size: 11.5px; color: var(--color-text-helper); margin: 0; line-height: 1.5;
}

/*
 * ⚠ CENTRED (owner, 2026-08-12: "please have that add colleague dialog in center"). The desk pins
 * its picker 8vh from the top, which suits a dialog whose list can run to hundreds of rows and
 * grow downward. This one is short — a workspace, not a staff directory — and a short dialog held
 * against the top of a tall window reads as though it is attached to the header.
 */
.ap-backdrop[data-v-d935c1c7] {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(2, 6, 49, 0.32);
}
.ap[data-v-d935c1c7] {
  width: 100%;
  max-width: 460px;
  max-height: 76vh;
  display: flex;
  flex-direction: column;
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  box-shadow: 0 18px 48px rgba(2, 6, 49, 0.18);
  overflow: hidden;
}
.ap[data-v-d935c1c7]:focus { outline: none;
}
.ap-head[data-v-d935c1c7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 13px 14px 0 16px;
}
.ap-title[data-v-d935c1c7] { margin: 0; font-size: 14px; font-weight: 600; color: var(--color-primary-dark);
}
.ap-x[data-v-d935c1c7] {
  appearance: none;
  border: 0;
  background: none;
  width: 26px;
  height: 26px;
  border-radius: var(--radius-sm);
  color: var(--color-text-large-text, #68769C);
  cursor: pointer;
}
.ap-x[data-v-d935c1c7]:hover { background: var(--color-semantic-bg-grey);
}
.ap-x[data-v-d935c1c7]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -1px;
}
.ap-sub[data-v-d935c1c7] {
  margin: 4px 16px 0;
  font-size: 11.5px;
  line-height: 18px;
  color: var(--color-text-helper);
}
.ap-search[data-v-d935c1c7] { padding: 11px 16px 9px;
}
.ap-search .sc-input[data-v-d935c1c7] { width: 100%; min-height: 36px;
}

/* ⚠ Only the list scrolls. A dialog whose header scrolls away loses the search box exactly when
   a long list makes it most useful. */
.ap-list[data-v-d935c1c7] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  list-style: none;
  margin: 0;
  padding: 0 8px;
}
.ap-row[data-v-d935c1c7] {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border: 0;
  border-radius: var(--radius-md);
  background: none;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}
.ap-row[data-v-d935c1c7]:hover:not(:disabled) { background: var(--color-semantic-bg-grey);
}
.ap-row[data-v-d935c1c7]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px;
}
.ap-row[data-v-d935c1c7]:disabled { cursor: default;
}
.ap-row--taken[data-v-d935c1c7] { opacity: 0.66;
}
.ap-avatar[data-v-d935c1c7] {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--color-primary-lightest, #ECEEFF);
  color: var(--color-primary);
  font-size: 10px;
  font-weight: 600;
}
.ap-who[data-v-d935c1c7] { display: flex; flex-direction: column; min-width: 0; flex: 1;
}
.ap-name[data-v-d935c1c7] { font-size: 12px; font-weight: 500; color: var(--color-primary-dark);
}
.ap-mail[data-v-d935c1c7] {
  font-size: 11px;
  color: var(--color-text-helper);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ap-badge[data-v-d935c1c7] {
  flex-shrink: 0;
  padding: 2px 7px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-pill);
  font-size: 10px;
  color: var(--color-text-helper);
}
.ap-state[data-v-d935c1c7] {
  margin: 0;
  padding: 14px 16px;
  font-size: 11.5px;
  line-height: 18px;
  color: var(--color-text-helper);
}
.ap-state strong[data-v-d935c1c7] {
  display: block;
  font-size: 12px;
  color: var(--color-primary-dark);
  margin-bottom: 3px;
}
.ap-state--error[data-v-d935c1c7] { color: var(--color-semantic-text-red, #B30000);
}
.ap-foot[data-v-d935c1c7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 16px 12px;
  border-top: 1px solid var(--color-border-default);
  flex-shrink: 0;
}
.ap-count[data-v-d935c1c7] { font-size: 11px; color: var(--color-text-placeholder);
}

/*
 * ⚠ The product's OWN timeline measurements — 7px dot, 1px connector, 11.5px line, 10.5px stamp —
 * matching `TicketTimeline` two icons away and the desk's `EtaPane`. Copied rather than shared
 * because scoped styles cross neither components nor modules; a change here belongs in both.
 *
 * The facts above this use `.sc-info` and `.tp-group-head`, which the "This ticket" view already
 * renders — so the record half needed no new CSS at all.
 */
.tp-eta-tl[data-v-ab802a22] { list-style: none; margin: 0; padding: 0;
}
.tp-eta-row[data-v-ab802a22] {
  position: relative;
  display: grid;
  grid-template-columns: 7px 1fr;
  gap: 9px;
  padding-bottom: 13px;
}
.tp-eta-row[data-v-ab802a22]:last-child { padding-bottom: 0;
}
.tp-eta-dot[data-v-ab802a22] {
  position: relative;
  width: 7px;
  height: 7px;
  margin-top: 5px;
  border-radius: 50%;
  /* Hollow: every row here is a date that no longer stands. */
  background: #fff;
  box-shadow: inset 0 0 0 1.5px var(--color-border-card, #C4CBDD);
}
.tp-eta-row:not(:last-child) .tp-eta-dot[data-v-ab802a22]::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 11px;
  bottom: -15px;
  width: 1px;
  background: var(--color-border-default, #E5E7EF);
}
.tp-eta-line[data-v-ab802a22] { font-size: 11.5px; line-height: 17px; color: var(--color-text-label, #47506A);
}
.tp-eta-when[data-v-ab802a22] {
  display: block;
  margin-top: 2px;
  font-size: 10.5px;
  color: var(--color-text-large-text, #68769C);
}

/*
 * ⚠ A fixed 300px body, not `1fr`. As `1fr` the panel took whatever the thread did not want,
 * so it was 200px wide on a laptop and 500px on a monitor — and a "Might help" article title
 * wrapped over four lines at one size and one at the other. The desk's panel has a width the
 * engineer sets and keeps; this one is not resizable, so it gets a width that reads well.
 */
.tp[data-v-ab802a22] { display: grid; grid-template-columns: 300px 40px; min-width: 0;
}
.tp--collapsed[data-v-ab802a22] { grid-template-columns: 40px;
}

/* The pane owns the border and the background; the header does not scroll with the body. */
.tp-pane[data-v-ab802a22] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: var(--color-surface-page);
  border-left: 1px solid var(--color-border-default);
  /* ⚠ No max-height — it matched the thread's old 58vh cap and would now leave the panel
     stopping two-fifths down a card that runs the full height of the window. The pane is a
     flex column whose BODY scrolls, so it simply fills what the grid row gives it. */
}
.tp-head[data-v-ab802a22] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 8px 8px 16px;
  border-bottom: 1px solid var(--color-border-default);
  flex-shrink: 0;
}
.tp-head-title[data-v-ab802a22] { font-size: var(--font-size-12, 12px); font-weight: 600; color: var(--color-primary-dark);
}
.tp-collapse[data-v-ab802a22] {
  appearance: none;
  border: 0;
  background: none;
  width: 24px;
  height: 24px;
  border-radius: var(--radius-sm);
  font-size: 15px;
  line-height: 1;
  color: var(--color-text-large-text, #68769C);
  cursor: pointer;
}
.tp-collapse[data-v-ab802a22]:hover { background: var(--color-semantic-bg-grey); color: var(--color-primary-dark);
}
.tp-collapse[data-v-ab802a22]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -1px;
}
.tp-body[data-v-ab802a22] {
  padding: 14px 16px;
  min-width: 0;
  min-height: 0;
  /* The PANEL scrolls, not the page — the thread beside it has its own scroller, and two
     scrollbars fighting is how a screen stops feeling like one thing. */
  overflow-y: auto;
}

/* ⚠ The per-view <h3> is gone: the pane header now names the view, and printing it twice
   50px apart was the panel telling you where you were twice. */
/*
 * ── The grouped "This ticket" table ─────────────────────────────────────────
 *
 * ⚠ The desk's `.info-group` measurements, so the two panes are one pane. A 10px uppercase heading with
 * 0.06em tracking is the design system's own group label; it is deliberately quieter than a `.tp-title`,
 * because it names a section INSIDE a view rather than the view.
 */
.tp-group + .tp-group[data-v-ab802a22] { margin-top: 14px;
}
.tp-group-head[data-v-ab802a22] {
  margin: 0 0 4px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-placeholder);
}
.tp-title[data-v-ab802a22] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);
}
.tp-empty[data-v-ab802a22] { font-size: 11.5px; color: var(--color-text-helper); margin: 0; line-height: 1.5;
}

/* ⚠ The timeline's own rules moved to `TicketTimeline.vue`, which is the desk's component.
   A local copy here is what let the two drift apart in the first place. */
.tp-suggestion[data-v-ab802a22] { padding: 9px 11px;
}

/* ── People ─────────────────────────────────────────────────────────────────── */
.tp-lede[data-v-ab802a22] { font-size: 11px; line-height: 1.5; color: var(--color-text-helper); margin: 0 0 9px;
}
.tp-people[data-v-ab802a22] { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 2px;
}
.tp-person[data-v-ab802a22] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--color-border-default);
}
.tp-person[data-v-ab802a22]:last-child { border-bottom: 0;
}
.tp-person-main[data-v-ab802a22] { min-width: 0; display: flex; flex-direction: column; gap: 1px; flex: 1;
}
.tp-person-name[data-v-ab802a22] { font-size: 12px; color: var(--color-primary-dark); overflow-wrap: anywhere;
}
.tp-person-role[data-v-ab802a22] { font-size: 10.5px; color: var(--color-text-helper); overflow-wrap: anywhere;
}
.tp-person-x[data-v-ab802a22] {
  appearance: none;
  border: 0;
  background: none;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  color: var(--color-text-placeholder);
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
}
.tp-person-x[data-v-ab802a22]:hover:not(:disabled) { background: var(--color-semantic-bg-grey); color: var(--color-semantic-text-red);
}
.tp-person-x[data-v-ab802a22]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -1px;
}
.tp-person-x[data-v-ab802a22]:disabled { cursor: default; opacity: 0.5;
}

/* ⚠ `.tp-add`, `.tp-add-select` and `.tp-add-actions` went with the inline `<select>`. */
.tp-add-open[data-v-ab802a22] { width: 100%;
}

/* Rail */
.tp-rail[data-v-ab802a22] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 0;
  background: var(--color-surface-card);
  border-left: 1px solid var(--color-border-default);
}

/* 44px, matching the desk's rail button and the DS's 4 × 44 active indicator. */
.tp-rail-item[data-v-ab802a22] {
  height: 44px;
  width: 100%;
  border: 0;
  background: none;
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-large-text, #68769C);
}
.tp-rail-item[data-v-ab802a22]:hover { background: var(--color-semantic-bg-grey); color: var(--color-primary);
}
.tp-rail-item[data-v-ab802a22]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px;
}

/*
 * ⚠ The selected row is #F5F5F5, NOT #ECEEFF. `.claude/modules/asint_edge_support.md` bans
 * that hex for this exact job and names AdminSidebar.vue as the live violation not to copy;
 * the desk's own rail was corrected for the same reason.
 */
.tp-rail-item.active[data-v-ab802a22] { background: var(--color-semantic-bg-grey); color: var(--color-primary);
}
.tp-rail-item.active[data-v-ab802a22]::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  border-radius: 0 3px 3px 0;
  background: var(--color-primary);
}
.tp-rail-badge[data-v-ab802a22] {
  position: absolute;
  top: 4px;
  right: 4px;
  font-size: 8px;
  font-weight: 700;
  background: var(--color-primary);
  color: var(--color-text-white);
  border-radius: 999px;
  padding: 0 3px;
  line-height: 12px;
}
@media (max-width: 900px) {
.tp[data-v-ab802a22] { grid-template-columns: minmax(0, 1fr);
}
.tp--collapsed[data-v-ab802a22] { grid-template-columns: minmax(0, 1fr);
}
.tp-pane[data-v-ab802a22] { border-left: 0; border-top: 1px solid var(--color-border-default); max-height: none;
}
.tp-rail[data-v-ab802a22] { flex-direction: row; border-left: 0; border-top: 1px solid var(--color-border-default); padding: 0 8px;
}
.tp-rail-item[data-v-ab802a22] { width: 38px;
}
.tp-rail-item.active[data-v-ab802a22]::before { left: 0; right: 0; top: auto; bottom: 0; width: auto; height: 3px; border-radius: 3px 3px 0 0;
}
}

.ta[data-v-0d5999a7] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 16px 16px;
  /* The tab body scrolls, not the card — same as the thread beside it. */
  overflow-y: auto;
  min-height: 0;
}
.ta-head[data-v-0d5999a7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.ta-note[data-v-0d5999a7] { font-size: 12px; color: var(--color-text-helper); margin: 0;
}
.ta-head-actions[data-v-0d5999a7] { display: flex; gap: 8px; flex-wrap: wrap;
}
.ta-row[data-v-0d5999a7] { gap: 11px; align-items: center;
}

/* 42px, the desk's exactly — big enough that a screenshot is recognisable at a glance. */
.ta-thumb[data-v-0d5999a7] {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-page);
  border: 1px solid var(--color-border-default);
  cursor: pointer;
  padding: 0;
}
.ta-thumb img[data-v-0d5999a7] { width: 100%; height: 100%; object-fit: cover; display: block;
}
.ta-thumb--icon[data-v-0d5999a7] { font-size: 17px;
}
.ta-thumb[data-v-0d5999a7]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.ta-main[data-v-0d5999a7] {
  border: 0;
  background: none;
  padding: 0;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  /* ⚠ Load-bearing. Without it the flex item refuses to go below its content width and a long
     filename widens the row instead of wrapping inside it. */
  min-width: 0;
}
.ta-main[data-v-0d5999a7]:disabled { cursor: default;
}

/* Wraps rather than pushing the row wide — anywhere, because a filename has no spaces to break on. */
.ta-name[data-v-0d5999a7] { overflow-wrap: anywhere;
}
.ta-meta[data-v-0d5999a7] { display: flex; align-items: center; gap: 5px; flex-wrap: wrap;
}

/* The sniffed kind, as a quiet chip rather than a coloured badge — it is a fact about the
   file, not a state anybody needs to act on. */
.ta-kind[data-v-0d5999a7] {
  display: inline-flex;
  align-items: center;
  padding: 0 6px;
  border-radius: var(--radius-pill, 999px);
  background: var(--color-semantic-bg-grey);
  color: var(--color-text-large-text, #68769C);
  font-size: 10px;
  line-height: 16px;
  text-transform: lowercase;
}
.ta-actions[data-v-0d5999a7] { display: flex; align-items: center; gap: 4px; flex-shrink: 0;
}

/*
 * ⚠ 28px hit area, visible at rest rather than on hover. A control that only appears on hover
 * does not exist on a touch screen and cannot be found on a keyboard — and these are the only
 * route to downloading or deleting a file.
 */
.ta-icon[data-v-0d5999a7] {
  appearance: none;
  border: 0;
  background: none;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-large-text, #68769C);
  cursor: pointer;
  text-decoration: none;
  flex-shrink: 0;
}
.ta-icon[data-v-0d5999a7]:hover { background: var(--color-semantic-bg-grey); color: var(--color-primary);
}
.ta-icon[data-v-0d5999a7]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -1px;
}
.ta-icon--danger[data-v-0d5999a7]:hover { background: var(--color-semantic-bg-red); color: var(--color-semantic-text-red);
}
.ta-empty[data-v-0d5999a7] { padding: 22px 16px;
}

/* The held capture: clearly a step before the sent list, not a member of it. */
.ev-pending[data-v-c6c370df] { border: 1px solid var(--color-primary); border-radius: 8px; padding: 10px 12px; margin: 0 0 10px; background: var(--color-surface-card);
}
.ev-pending-head[data-v-c6c370df] { margin: 0 0 6px; font-size: 12px; font-weight: 600; color: var(--color-primary-dark);
}
.ev-pending-row[data-v-c6c370df] { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; min-width: 0;
}
.ev-pending-name[data-v-c6c370df] { font-size: 12px; color: var(--color-text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.ev-pending-counts[data-v-c6c370df] { font-size: 11px; color: var(--color-text-label);
}
.ev-pending-actions[data-v-c6c370df] { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px;
}

/*
 * ⚠ THE FRAME, NOT THE SCROLLER. `.ev-scroll` inside it scrolls; this box only establishes the
 * positioning context the drawer is pinned to and clips it while it slides in.
 *
 * ⚠ `overflow: hidden` is load-bearing twice over: it is what makes the closed drawer's
 * `translateX(100%)` invisible instead of drawing a panel hanging off the right of the tab, and it is
 * what stops the drawer widening the tab when somebody drags the grip past the available room.
 */
/*
 * ⚠ `flex: 1` — IT MUST FILL THE TAB BODY, and this only became visible once the pane was an overlay.
 *
 * `.tv-main` is a 639px flex column and this was `flex: 0 1 auto`, so it took its CONTENT height: 294px
 * for two captures. That was invisible while the detail was a sticky grid column — a short column simply
 * ended where the list ended. As a drawer with a left border and a shadow, ending 345px above the bottom
 * of the tab reads as a panel that failed to render.
 *
 * ⚠ Found in a SCREENSHOT, not in a measurement. Every number checked said the drawer was the full height
 * of `.ev` — and it was; the wrong thing was `.ev`.
 */
/*
 * ⚠ THE FRAME, NOT A SCROLLER — and `flex: 1` so it fills the tab body rather than taking its content
 * height. That was `flex: 0 1 auto` and produced a 294px box inside a 639px tab, which was invisible
 * while the detail was a grid column that simply ended where the list ended.
 *
 * ⚠ `overflow: hidden` here and the scrolling one level down, in the COLUMNS. That is the whole
 * difference from the split this replaces: the tab used to scroll as one page, so a long step trail
 * pushed the list down and carried the detail's heading off the top. Each column owns its own scroller
 * now (owner, 2026-08-13: "we do have scrolls right, as it grows it scrolls").
 */
.ev[data-v-c6c370df] {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/*
 * ⚠ NOT a scroller. It holds the ask lines, the Record header and the split — and the split needs a
 * HEIGHT to hand to its columns, which it cannot get inside a box that scrolls instead.
 */
.ev-scroll[data-v-c6c370df] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 14px 16px 16px;
}
.ev-ask-line[data-v-c6c370df] {
  margin: 0 0 10px;
  font-size: 11.5px;
  color: var(--color-text-helper);
}

/* ⚠ Deliberately identical to `.ta-head` in `TicketAttachments` — see the template note. If one
   changes, both should: they are two tabs of one ticket doing the same job. */
.ev-head[data-v-c6c370df] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.ev-head-note[data-v-c6c370df] { font-size: 12px; color: var(--color-text-helper); margin: 0;
}
.ev-head-actions[data-v-c6c370df] { display: flex; gap: 8px; flex-wrap: wrap;
}

/*
 * ⚠ NO LONGER A GRID. It was `minmax(0, 1fr) 7px <panel>px` from `splitStyle`, which is what made
 * opening a capture squeeze the list. The drawer overlays instead, so there is one column and nothing to
 * divide — kept as a named box because `min-width: 0` still guards the one failure this layout has had: a
 * long unbroken step label setting the track's automatic minimum and turning the tab into a horizontal
 * scroller, which is the exact complaint the attachments tab got.
 */
/*
 * ⚠ A GRID AGAIN, and this time its tracks have a HEIGHT. `splitStyle` supplies the columns — one when
 * nothing is open, three when something is — and `flex: 1` + `min-height: 0` is what lets the two columns
 * scroll independently instead of the whole tab scrolling as one page.
 *
 * ⚠ `minmax(0, 1fr)` on the list track, never `1fr`. Without the zero minimum one long unbroken step
 * label sets the track's automatic minimum size and the split becomes a horizontal scrollbar — the exact
 * complaint the attachments tab got.
 *
 * ⚠ The detail track is in PIXELS so the width somebody dragged is the width they keep; a fraction would
 * grow the pane as the window grows, which is the opposite of what dragging a divider asks for.
 */
.ev-split[data-v-c6c370df] {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: grid;
  align-items: stretch;
}

/* Its own scroller, so reading a capture does not move the row you clicked. */
.ev-listcol[data-v-c6c370df] {
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

/*
 * ── The resize grip ─────────────────────────────────────────────────────────
 *
 * 7px of track, with a 1px line drawn inside it. A 1px hit area is a control you have to aim at;
 * the visible line stays thin so the layout does not gain a border it did not ask for.
 */
/*
 * ── The resize grip ─────────────────────────────────────────────────────────
 *
 * 7px of track with a 1px line drawn inside it. A 1px hit area is a control you have to aim at; the
 * visible line stays thin so the split does not gain a border it did not ask for.
 */
.ev-grip[data-v-c6c370df] {
  align-self: stretch;
  display: grid;
  place-items: center;
  cursor: col-resize;
  /* ⚠ Stops the browser panning/selecting mid-drag on touch, which otherwise fights the pointer handler
     and makes the divider feel like it is slipping. */
  touch-action: none;
}
.ev-grip[data-v-c6c370df]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -1px;
}
.ev-grip-bar[data-v-c6c370df] {
  width: 1px;
  height: 100%;
  background: var(--color-border-default);
}
.ev-grip:hover .ev-grip-bar[data-v-c6c370df],
.ev-grip:focus-visible .ev-grip-bar[data-v-c6c370df],
.ev-grip--dragging .ev-grip-bar[data-v-c6c370df] { width: 3px; background: var(--color-primary);
}
.ev-intro[data-v-c6c370df] { font-size: 11.5px; color: var(--color-text-helper); margin: 0 0 9px;
}
.ev-list[data-v-c6c370df] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px;
}
.ev-item[data-v-c6c370df] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  text-align: left;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  padding: 11px 13px;
  font-family: inherit;
  cursor: pointer;
}
.ev-item[data-v-c6c370df]:hover { border-color: var(--color-border-card);
}
.ev-item[data-v-c6c370df]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}

/* ⚠ #F5F5F5 + a blue left edge, never #ECEEFF — the DS bans that hex for a selected row. */
.ev-item--on[data-v-c6c370df] {
  background: var(--color-semantic-bg-grey);
  border-color: var(--color-primary);
  box-shadow: inset 3px 0 0 var(--color-primary);
}
.ev-head[data-v-c6c370df] { display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
}
.ev-title[data-v-c6c370df] { font-size: var(--font-size-12, 12px); font-weight: 600; color: var(--color-primary-dark);
}
.ev-when[data-v-c6c370df] { font-size: 11px; color: var(--color-text-helper);
}
.ev-counts[data-v-c6c370df] { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 3px; font-size: 11px; color: var(--color-text-label);
}
.ev-counts--empty[data-v-c6c370df] { font-style: italic; color: var(--color-text-helper);
}

/* ── The detail ─────────────────────────────────────────────────────────────── */

/*
 * ── The detail column ────────────────────────────────────────────────────────
 *
 * ⚠ A COLUMN, not an overlay (owner, 2026-08-13: "instead of having sidepane displaying the detail have
 * two split layout"). It was `position: absolute` over the right of the tab for one pass, which stopped
 * the list being squeezed and introduced a worse problem: the pane covered the rows you were comparing
 * against, including the one you had just clicked.
 *
 * ⚠ Its own scroller, which is what the earlier split did NOT have. `flex` + `min-height: 0` means a
 * 500-step trail scrolls inside this pane instead of pushing the whole tab, and the heading and the ✕ stay
 * where they are while you read.
 */
.ev-detail[data-v-c6c370df] {
  min-width: 0;
  min-height: 0;
  margin-left: 7px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-page);
  padding: 13px 15px 15px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}

/*
 * ⚠ THE STEPS SCROLL HERE. A recording is capped at 500 steps, so without its own scroller a long capture
 * would push the heading and the ✕ out of the pane.
 */
.ev-detail-body[data-v-c6c370df] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  /* ⚠ Both axes stated: `overflow-y` alone promotes the other to `auto`, and one long unbroken step label
     then gives the pane a horizontal scrollbar that scrolls a few pixels. */
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ev-detail-head[data-v-c6c370df] { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px;
}
.ev-detail-heading[data-v-c6c370df] { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.ev-detail-title[data-v-c6c370df] {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary-dark);
  overflow-wrap: anywhere;
}
.ev-detail-when[data-v-c6c370df] { margin: 0; font-size: 11px; color: var(--color-text-helper);
}
.ev-detail-x[data-v-c6c370df] {
  flex-shrink: 0;
  appearance: none;
  border: 0;
  background: none;
  width: 24px;
  height: 24px;
  border-radius: var(--radius-sm);
  font-size: 11px;
  color: var(--color-text-helper);
  cursor: pointer;
}
.ev-detail-x[data-v-c6c370df]:hover { background: var(--color-semantic-bg-grey); color: var(--color-primary-dark);
}
.ev-detail-x[data-v-c6c370df]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -1px;
}
.ev-detail-row[data-v-c6c370df] { display: flex; flex-direction: column; gap: 4px; min-width: 0;
}
.ev-detail-label[data-v-c6c370df] {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-placeholder);
}
.ev-route[data-v-c6c370df] { font-size: 11.5px; color: var(--color-text-label); overflow-wrap: anywhere;
}

/*
 * ── The step table ───────────────────────────────────────────────────────────
 *
 * ⚠ The desk's `.wb-list table` measurements: fixed layout, a narrow monospace time column and a badge
 * column, with Detail taking what is left and wrapping. `table-layout: fixed` is what stops a long step
 * label widening the Time column instead of wrapping inside its own.
 */
.ev-steps[data-v-c6c370df] {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 11px;
}
.ev-steps th[data-v-c6c370df] {
  text-align: left;
  padding: 0 6px 4px 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-placeholder);
  border-bottom: 1px solid var(--color-border-default);
}
.ev-steps td[data-v-c6c370df] {
  padding: 5px 6px 5px 0;
  vertical-align: top;
  color: var(--color-text-label);
  border-bottom: 1px solid var(--color-border-default);
}
.ev-steps tr:last-child td[data-v-c6c370df] { border-bottom: 0;
}
.ev-steps-at[data-v-c6c370df] { width: 56px; color: var(--color-text-helper); font-size: 10.5px; white-space: nowrap;
}
.ev-steps th[data-v-c6c370df]:nth-child(2), .ev-steps td[data-v-c6c370df]:nth-child(2) { width: 62px;
}
/* ⚠ Detail is the one column that wraps — a step label is a sentence. */
.ev-steps-what[data-v-c6c370df] { overflow-wrap: anywhere;
}
.ev-steps-more[data-v-c6c370df] { color: var(--color-text-helper); font-style: italic;
}
.ev-preview-more[data-v-c6c370df] { list-style: none; margin-left: -18px; color: var(--color-text-helper); font-style: italic;
}
.ev-detail-empty[data-v-c6c370df] { margin: 0; font-size: 11.5px; color: var(--color-text-helper); line-height: 1.5;
}

/*
 * ⚠ Below 860px the split STACKS — a 280px minimum pane beside a list on a 700px screen leaves neither
 * usable. `!important` because the inline `splitStyle` would otherwise win, which is the one place a media
 * query cannot reach.
 *
 * ⚠ And the columns give their scrolling back to the tab. Two 200px scrollers stacked on a phone is worse
 * than one page that scrolls: you cannot see enough of either to know which one to scroll.
 */
@media (max-width: 860px) {
.ev-split--open[data-v-c6c370df] { grid-template-columns: minmax(0, 1fr) !important; gap: 12px;
}
.ev-grip[data-v-c6c370df] { display: none;
}
.ev-detail[data-v-c6c370df] { margin-left: 0; overflow: visible;
}
.ev-detail-body[data-v-c6c370df] { overflow: visible;
}
.ev-scroll[data-v-c6c370df] { overflow-y: auto;
}
.ev-split[data-v-c6c370df], .ev-listcol[data-v-c6c370df] { min-height: auto; overflow: visible;
}
}

/*
 * ⚠ Deliberately NOT the green of Ready-to-retest — green there means "act on this now".
 * This is a statement of record, and half the outcomes it renders are not good news
 * ("Could not reproduce", "Will not be changed"). Painting those green would congratulate
 * the customer on an answer they may well be unhappy with.
 */
.tr[data-v-c8a66abd] {
  border: 1px solid var(--color-border-default);
  background: var(--color-surface-page);
  border-radius: var(--radius-md);
  padding: 13px 15px;
  /* ⚠ 14/16/16, matching the other tab bodies. It was `14px 16px 0` while it lived above the
     card and had the thread's own top padding beneath it; inside a tab that left it hard against
     the card's bottom edge. */
  margin: 14px 16px 16px;
}
.tr--empty[data-v-c8a66abd] { background: var(--color-surface-card);
}
.tr--empty .tr-title[data-v-c8a66abd] { margin-bottom: 6px;
}
.tr-empty[data-v-c8a66abd] { margin: 0; font-size: 12px; line-height: 19px; color: var(--color-text-label);
}
.tr-empty--sub[data-v-c8a66abd] { margin-top: 5px; color: var(--color-text-helper); font-size: 11.5px;
}
.tr-head[data-v-c8a66abd] { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 6px;
}
.tr-title[data-v-c8a66abd] { font-size: 13px; font-weight: 600; color: var(--color-primary-dark); margin: 0;
}
.tr-outcome[data-v-c8a66abd] {
  font-size: 12px;
  font-weight: 600;
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  background: var(--color-semantic-bg-grey);
  border: 1px solid var(--color-border-default);
  color: var(--color-text-label);
}
.tr-body[data-v-c8a66abd] { margin: 0; font-size: 13px; line-height: 20px; color: var(--color-text-label); white-space: pre-wrap;
}
.tr-body--muted[data-v-c8a66abd] { color: var(--color-text-helper); font-style: italic;
}
.tr-meta[data-v-c8a66abd] { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; margin: 9px 0 0; font-size: 12px;
}
.tr-meta dt[data-v-c8a66abd] { color: var(--color-text-helper);
}
.tr-meta dd[data-v-c8a66abd] { margin: 0; color: var(--color-text-label);
}
.tr-mono[data-v-c8a66abd] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.tr-rating[data-v-c8a66abd] { margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--color-border-default);
}
.tr-rating-q[data-v-c8a66abd] { display: block; font-size: 12px; font-weight: 600; color: var(--color-primary-dark); margin-bottom: 6px;
}
.tr-stars[data-v-c8a66abd] { display: flex; align-items: center; gap: 2px;
}
.tr-star[data-v-c8a66abd] {
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  padding: 0 2px;
  color: var(--color-border-default);
}
.tr-star.on[data-v-c8a66abd] { color: var(--color-semantic-element-orange);
}
.tr-star[data-v-c8a66abd]:disabled { cursor: default;
}
.tr-star[data-v-c8a66abd]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; border-radius: var(--radius-sm);
}
.tr-word[data-v-c8a66abd] { margin-left: 8px; font-size: 12px; color: var(--color-text-helper);
}
.tr-more[data-v-c8a66abd] { display: block; align-items: flex-start; gap: 8px; margin-top: 8px;
}
.tr-note[data-v-c8a66abd] {
  width: 100%;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-sm);
  font-family: inherit;
  font-size: 12px;
  resize: vertical;
}
.tr-note-actions[data-v-c8a66abd] { display: flex; gap: 7px; margin-top: 7px;
}

/* A saved note is TEXT. It reads as something kept, which is the whole point of the change. */
.tr-note-saved[data-v-c8a66abd] { display: flex; align-items: flex-start; gap: 10px;
}
.tr-note-text[data-v-c8a66abd] {
  flex: 1;
  min-width: 0;
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
  color: var(--color-text-label);
  overflow-wrap: anywhere;
}
.tr-note-edit[data-v-c8a66abd], .tr-note-add[data-v-c8a66abd] { font-size: 11.5px; flex-shrink: 0;
}

.ctd-backdrop[data-v-430b55c2] {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(2, 6, 49, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.ctd[data-v-430b55c2] {
  width: 100%;
  max-width: 440px;
  background: var(--color-surface-card);
  border-radius: var(--radius-lg);
  box-shadow: 0 24px 48px -24px rgba(2, 6, 49, 0.5);
  padding: 18px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.ctd[data-v-430b55c2]:focus { outline: none;
}
.ctd-title[data-v-430b55c2] {
  margin: 0;
  font-size: var(--font-size-14, 14px);
  font-weight: 600;
  color: var(--color-primary-dark);
}
.ctd-reasons[data-v-430b55c2] { display: flex; flex-direction: column; gap: 5px;
}

/*
 * Stacked here rather than the pills the composer used. In a dialog there is room, and a column
 * of five is read top to bottom in one pass — the pill row was a compromise for a 60px band at
 * the foot of a card.
 */
.ctd-reason[data-v-430b55c2] {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 11px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  font-size: 12.5px;
  color: var(--color-text-label);
  cursor: pointer;
}
.ctd-reason[data-v-430b55c2]:hover { background: var(--color-surface-page);
}
.ctd-reason.picked[data-v-430b55c2] {
  border-color: var(--color-primary);
  color: var(--color-primary);
  font-weight: 500;
}
.ctd-reason input[data-v-430b55c2] { margin: 0; accent-color: var(--color-primary);
}
.ctd-reason[data-v-430b55c2]:focus-within { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.ctd-note[data-v-430b55c2] {
  min-height: 62px;
  padding: 8px 10px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  font-family: inherit;
  font-size: 12.5px;
  color: var(--color-primary-dark);
  resize: vertical;
}
.ctd-note[data-v-430b55c2]:focus { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.ctd-foot-note[data-v-430b55c2] { margin: 0; font-size: 11.5px; color: var(--color-text-helper);
}
.ctd-actions[data-v-430b55c2] { display: flex; justify-content: flex-end; gap: 8px;
}

.fp[data-v-538c1dc0] {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(2, 6, 49, 0.86);
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px clamp(12px, 4vw, 48px) 20px;
}
.fp-top[data-v-538c1dc0] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.fp-meta[data-v-538c1dc0] { min-width: 0;
}
.fp-name[data-v-538c1dc0] { display: block; color: var(--color-text-white); font-size: 13.5px;
}
.fp-sub[data-v-538c1dc0] { display: block; color: rgba(255, 255, 255, 0.7); font-size: 11.5px;
}
.fp-tools[data-v-538c1dc0] { margin-left: auto; display: flex; gap: 8px;
}
.fp-btn[data-v-538c1dc0] {
  border: 0;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.14);
  color: var(--color-text-white);
  font-family: inherit;
  font-size: 12px;
  padding: 7px 13px;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}
.fp-btn[data-v-538c1dc0]:hover { background: rgba(255, 255, 255, 0.24);
}
.fp-body[data-v-538c1dc0] { flex: 1; display: flex; align-items: center; gap: 10px; min-height: 0;
}
.fp-stage[data-v-538c1dc0] {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.fp-image[data-v-538c1dc0] { max-width: 100%; max-height: 100%; border-radius: var(--radius-md);
}
.fp-frame[data-v-538c1dc0] {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
}
.fp-fallback[data-v-538c1dc0] {
  background: var(--color-surface-card);
  border-radius: var(--radius-lg);
  padding: 28px 32px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
}
.fp-fallback-title[data-v-538c1dc0] { margin: 0; font-size: 13px; color: var(--color-text-label);
}
.fp-nav[data-v-538c1dc0] {
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.6);
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  padding: 0 6px;
  flex-shrink: 0;
}
.fp-nav[data-v-538c1dc0]:hover { color: var(--color-text-white);
}
.fp-foot[data-v-538c1dc0] {
  text-align: center;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}

/*
 * ⚠ The page frame, the badges, the callout and the state blocks now come from support.css,
 * which took its measurements from the desk. What is left here is this screen's own layout.
 */
.tv[data-v-b1d3c9aa] { min-width: 0;
}

/* ── Header ─────────────────────────────────────────────────────────────────── */
.tv-head[data-v-b1d3c9aa] { align-items: flex-start;
}
.tv-head-main[data-v-b1d3c9aa] { min-width: 0;
}
.tv-head-title[data-v-b1d3c9aa] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}

/*
 * ⚠ The facts row, and `·` is drawn by CSS rather than typed between the spans.
 *
 * Written as `{{ a }} · {{ b }}` in the template, each separator has to be inside a `v-if` with the
 * fact after it, and the row grows a leading or trailing dot the moment one fact is absent — which is
 * routine here, since last-reply and app are both conditional. A generated separator cannot produce a
 * dangling one.
 */
.tv-facts[data-v-b1d3c9aa] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-top: 5px;
}
/*
 * ⚠ `::after` ON THE PRECEDING ITEM, not `::before` on the following one.
 *
 * Written as `::before` the separator belongs to the item after it — so when the row WRAPS, the dot goes
 * to the start of the new line and reads as `· Bug Report`. Seen in a screenshot on a 1680px window with
 * four facts. As `::after` a wrapped row ends with a trailing dot, which reads as a list continuing.
 *
 * The badge is a chip rather than a phrase, so it is excluded — a dot after a coloured pill reads as
 * punctuation inside it.
 */
.tv-facts > span[data-v-b1d3c9aa]:not(:last-child):not(.sc-badge)::after {
  content: '·';
  margin-left: 8px;
  color: var(--color-text-placeholder);
}
.tv-number[data-v-b1d3c9aa] { font-size: var(--font-size-12, 12px); color: var(--color-text-helper);
}
.tv-subject[data-v-b1d3c9aa] { min-width: 0;
}
.tv-head-state[data-v-b1d3c9aa] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; flex-wrap: wrap;
}

/* Sits between the state badges and the ×, so "what state is this in" and "change it" are
   one glance apart. */
.tv-close-ticket[data-v-b1d3c9aa] { white-space: nowrap;
}

/*
 * ⚠ A CLOSE, not a back arrow. This is a detail view over a list, and × is what that means
 * everywhere else — "put this away". A ← reads as browser history, which is a different
 * promise: it would take the customer to whatever they were looking at before, not back to
 * the list they opened this from.
 */
.tv-close[data-v-b1d3c9aa] {
  appearance: none;
  border: 0;
  background: none;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
  color: var(--color-text-large-text, #68769C);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}
.tv-close[data-v-b1d3c9aa]:hover { background: var(--color-semantic-bg-grey); color: var(--color-primary-dark);
}
.tv-close[data-v-b1d3c9aa]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}

/* ── The card ───────────────────────────────────────────────────────────────── */

/*
 * ⚠ The card is the flex item that TAKES the leftover height, and `min-height: 0` is what lets
 * it shrink so its own child can scroll. Without the zero minimum a flex item refuses to go
 * below its content height and the scrollbar appears on the page instead — which is the state
 * this screen was in.
 */
.tv-card[data-v-b1d3c9aa] {
  background: var(--color-surface-card);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-lg);
  overflow: clip;
  min-width: 0;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.tv-tabs[data-v-b1d3c9aa] { padding: 0 6px;
}

/*
 * The refresh control, at the right-hand end of the tab strip.
 *
 * ⚠ `margin-left: auto` inside a strip that scrolls horizontally, so on a narrow window this
 * scrolls out of reach with the last tab rather than sitting on top of one. A control that
 * overlaps a tab is worse than one you scroll to.
 *
 * ⚠ `align-self: center`, never `stretch` — stretched, the select takes the strip's full height
 * and moves every tab's baseline with it.
 */
.tv-refresh[data-v-b1d3c9aa] {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  align-self: center;
  padding-left: 12px;
  flex-shrink: 0;
}


/*
 * ⚠ The desk's rail dot, same size and same blue — news, not a problem. Red here would send a
 * customer looking for something wrong on a ticket that is simply progressing, and it would
 * devalue red where the product does mean it.
 */
.tv-tab-dot[data-v-b1d3c9aa] {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-primary);
  margin-left: 6px;
  /* Lifted off the text baseline so it reads as a marker on the tab rather than punctuation. */
  vertical-align: 3px;
}

/*
 * ⚠ `1fr auto`, and the panel decides its own width. `minmax(0, 1fr)` on the first track is
 * load-bearing: without the zero minimum the thread's own horizontal overflow (a long URL in
 * a reply) widens the grid instead of scrolling inside it, and the panel gets pushed off the
 * right edge of the card.
 */
.tv-body[data-v-b1d3c9aa] { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-width: 0; flex: 1; min-height: 0;
}

/* `min-height: 0` again: this is the column the thread and the composer live in, and the thread
   is the thing that has to scroll rather than the page. */
.tv-main[data-v-b1d3c9aa] { display: flex; flex-direction: column; min-width: 0; min-height: 0;
}

/* The tab strip keeps its height; only the body flexes. */
.tv-tabs[data-v-b1d3c9aa] { flex-shrink: 0;
}

/* ── Retest and the recording ask ───────────────────────────────────────────── */
.tv-retest[data-v-b1d3c9aa] { border-left-color: var(--color-semantic-element-green);
}
.tv-retest-title[data-v-b1d3c9aa] { font-size: var(--font-size-12, 12px); font-weight: 600; color: var(--color-semantic-text-green); margin: 0 0 3px;
}
.tv-retest-body[data-v-b1d3c9aa] { font-size: 11.5px; color: var(--color-text-label); margin: 0 0 10px;
}
.tv-retest-actions[data-v-b1d3c9aa] { display: flex; gap: 8px; flex-wrap: wrap;
}

/* ⚠ `.tv-ask*` went with the banner — the ask is a message now, styled in `TicketThread`. */

/* ── A recording waiting for Send ───────────────────────────────────────────── */
.tv-held[data-v-b1d3c9aa] { border-left-color: var(--color-primary); margin: 0 0 10px; flex-shrink: 0;
}
.tv-held-title[data-v-b1d3c9aa] { margin: 0 0 2px; font-size: 12px; font-weight: 600; color: var(--color-primary-dark);
}
.tv-held-body[data-v-b1d3c9aa] { margin: 0 0 8px; font-size: 11.5px; color: var(--color-text-label);
}
.tv-held-actions[data-v-b1d3c9aa] { display: flex; gap: 8px; flex-wrap: wrap;
}
.tv-attached[data-v-b1d3c9aa] { margin: 14px 16px 0; border-left-color: var(--color-semantic-element-green);
}
.tv-attached-title[data-v-b1d3c9aa] { font-size: var(--font-size-12, 12px); font-weight: 600; color: var(--color-semantic-text-green); margin: 0 0 3px;
}
.tv-attached-body[data-v-b1d3c9aa] { font-size: 11.5px; color: var(--color-text-label); margin: 0 0 9px;
}
.tv-zoho[data-v-b1d3c9aa] { font-size: 11.5px; color: var(--color-text-label); font-style: italic; margin: 14px 16px 16px;
}
@media (max-width: 900px) {
.tv-body[data-v-b1d3c9aa] { grid-template-columns: minmax(0, 1fr);
}
}

.kb[data-v-280ccfb3] { display: flex; flex-direction: column; gap: 14px; min-width: 0; max-width: 940px;
}
.kb--standalone[data-v-280ccfb3] { padding: 24px 28px 36px;
}
.kb-controls[data-v-280ccfb3] { display: flex; align-items: stretch; gap: 8px; flex-wrap: wrap;
}
.kb-search[data-v-280ccfb3] { min-height: 44px; flex: 1; min-width: 240px;
}
.kb-clear[data-v-280ccfb3] {
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--color-text-placeholder);
  font-size: 12px;
  padding: 4px;
  line-height: 1;
}
.kb-clear[data-v-280ccfb3]:hover { color: var(--color-primary-dark);
}
.kb-sort[data-v-280ccfb3] { display: flex; align-items: center;
}
.kb-sort-select[data-v-280ccfb3] {
  height: 100%;
  min-height: 44px;
  padding: 0 10px;
  font: inherit;
  font-size: 12px;
  color: var(--color-primary-dark);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  background: var(--color-surface-card);
  cursor: pointer;
}
.kb-sort-select[data-v-280ccfb3]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}

/* ── Tags ───────────────────────────────────────────────────────────────────── */
.kb-tags[data-v-280ccfb3] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.kb-tags-label[data-v-280ccfb3] {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-placeholder);
  margin-right: 2px;
}

/* Deliberately quieter than `.sc-chip` — tags are a second axis, and two rows of identical
   chips reads as one control that has wrapped. */
.kb-tag[data-v-280ccfb3] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border: 1px solid transparent;
  border-radius: var(--radius-pill, 999px);
  background: var(--color-semantic-bg-grey);
  color: var(--color-text-label);
  font-family: inherit;
  font-size: 11px;
  cursor: pointer;
}
.kb-tag[data-v-280ccfb3]:hover { border-color: var(--color-border-default);
}
.kb-tag[data-v-280ccfb3]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.kb-tag.active[data-v-280ccfb3] {
  background: var(--color-primary);
  color: var(--color-text-white, #FFFFFF);
}
.kb-tag-n[data-v-280ccfb3] { font-size: 10px; opacity: 0.75; font-variant-numeric: tabular-nums;
}

/* ── Results ────────────────────────────────────────────────────────────────── */
.kb-count[data-v-280ccfb3] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 11.5px;
  color: var(--color-text-helper);
}
.kb-clear-filters[data-v-280ccfb3] { font-size: 11.5px;
}
.kb-chapter[data-v-280ccfb3] { display: flex; flex-direction: column; gap: 8px;
}
.kb-chapter-head[data-v-280ccfb3] { display: flex; align-items: baseline; gap: 8px;
}
.kb-chapter-title[data-v-280ccfb3] {
  font-size: var(--font-size-14, 14px);
  font-weight: 600;
  color: var(--color-primary-dark);
  margin: 0;
}
.kb-chapter-count[data-v-280ccfb3] { font-size: 11px; color: var(--color-text-placeholder);
}
.kb-row[data-v-280ccfb3] { align-items: flex-start; padding: 12px 14px; text-align: left;
}
.kb-icon[data-v-280ccfb3] {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-md);
  background: var(--color-semantic-bg-blue);
  color: var(--color-semantic-element-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
.kb-preview[data-v-280ccfb3] {
  display: block;
  font-size: 11.5px;
  line-height: var(--line-height-xs, 18px);
  color: var(--color-text-helper);
  margin-top: 3px;
}

/* Why this row matched. Background only — a colour change as well would make a matched word
   look like a link inside a row that is already one link. */
.kb-hit[data-v-280ccfb3] {
  background: var(--color-semantic-bg-orange, #FFF3EB);
  color: inherit;
  border-radius: 2px;
  padding: 0 1px;
}
.kb-chevron[data-v-280ccfb3] { color: var(--color-text-placeholder); font-size: 16px; line-height: 1; align-self: center;
}
.kb-empty-action[data-v-280ccfb3] { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap;
}

.tv[data-v-d10cfd8a] { display: flex; flex-direction: column; gap: 20px; min-width: 0;
}
.tv-head[data-v-d10cfd8a] { display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.tv-search[data-v-d10cfd8a] { flex: 1; min-width: 240px;
}
.tv-overall[data-v-d10cfd8a] { margin: 0; font-size: 12px; color: var(--color-text-secondary, #47506a); white-space: nowrap;
}
.tv-count[data-v-d10cfd8a] { margin: 0 0 8px; font-size: 12px; color: var(--color-text-secondary, #47506a);
}
.tv-results[data-v-d10cfd8a] { display: flex; flex-direction: column; gap: 10px;
}
.tv-chapters[data-v-d10cfd8a] { display: flex; flex-direction: column; gap: 24px;
}
.tv-chapter[data-v-d10cfd8a] { border: 1px solid var(--color-border, #e5e7ef); border-radius: 20px; background: #fff; padding: 20px;
}
.tv-chapter-head[data-v-d10cfd8a] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap;
}
.tv-chapter-no[data-v-d10cfd8a] { margin: 0 0 2px; font-size: 11px; font-weight: 600; letter-spacing: .04em; color: #4353ff;
}
.tv-chapter-title[data-v-d10cfd8a] { margin: 0; font-size: 20px; font-weight: 600; color: var(--color-text-primary, #020631);
}
.tv-chapter-sum[data-v-d10cfd8a] { margin: 4px 0 0; font-size: 14px; color: var(--color-text-secondary, #47506a);
}
.tv-chapter-side[data-v-d10cfd8a] { display: flex; flex-direction: column; align-items: flex-end; gap: 8px;
}
.tv-chapter-prog[data-v-d10cfd8a] { margin: 0; font-size: 12px; color: var(--color-text-secondary, #47506a);
}
.tv-lesson[data-v-d10cfd8a] { margin-top: 16px;
}
.tv-lesson-title[data-v-d10cfd8a] { margin: 0 0 8px; font-size: 12px; font-weight: 600; color: var(--color-text-secondary, #47506a);
}
.tv-list[data-v-d10cfd8a] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px;
}
.tv-tour[data-v-d10cfd8a] {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  border: 1px solid var(--color-border, #e5e7ef); border-radius: 12px; padding: 12px 14px; background: #fff;
}
.tv-tour-main[data-v-d10cfd8a] { min-width: 0;
}
.tv-tour-title[data-v-d10cfd8a] { margin: 0; font-size: 14px; font-weight: 600; color: var(--color-text-primary, #020631);
}
.tv-tour-no[data-v-d10cfd8a] { color: var(--color-text-secondary, #47506a); font-weight: 400;
}
.tv-tour-sum[data-v-d10cfd8a] { margin: 2px 0 0; font-size: 12px; color: var(--color-text-secondary, #47506a);
}
.tv-tour-meta[data-v-d10cfd8a] { margin: 4px 0 0; font-size: 11px; color: #535f7f;
}
.tv-tour-side[data-v-d10cfd8a] { display: flex; align-items: center; gap: 10px; flex-shrink: 0;
}
.tv-done[data-v-d10cfd8a] { font-size: 11px; font-weight: 600; color: #1f8a4c;
}
.tv-note[data-v-d10cfd8a] { margin: 0; font-size: 11px; color: #535f7f;
}

/*
 * ⚠ The `.faq-title` heading is GONE. LearnView already prints "Help Center" above this, and
 * the tab already says FAQs — a third "Frequently asked questions" in the same 120px was the
 * page telling you where you were three times.
 */
.faq-section[data-v-edab6768] {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 940px;
}
.faq-search[data-v-edab6768] { min-height: 44px;
}
.faq-clear[data-v-edab6768] {
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--color-text-placeholder);
  font-size: 12px;
  padding: 4px;
  line-height: 1;
}
.faq-clear[data-v-edab6768]:hover { color: var(--color-primary-dark);
}
.faq-count[data-v-edab6768] { font-size: 11.5px; color: var(--color-text-helper); margin: 0;
}
.faq-empty-action[data-v-edab6768] { display: block; margin-top: 12px;
}
.faq-group[data-v-edab6768] { display: flex; flex-direction: column; gap: 10px;
}
.faq-group-title[data-v-edab6768] {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: var(--color-text-label, #47506A);
}
.faq-list[data-v-edab6768] {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border-default);
  border-radius: 12px;
  overflow: hidden;
}
.faq-item[data-v-edab6768] { border-bottom: 1px solid var(--color-border-default);
}
.faq-item[data-v-edab6768]:last-child { border-bottom: none;
}
.faq-question[data-v-edab6768] {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  border: none;
  background: none;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--color-primary-dark);
  text-align: left;
  cursor: pointer;
  transition: background 0.1s;
}
.faq-question[data-v-edab6768]:hover { background: var(--color-surface-page);
}
.faq-question[data-v-edab6768]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px;
}
.faq-item.open .faq-question[data-v-edab6768] {
  background: var(--color-surface-page);
  color: var(--color-primary);
}
.faq-chevron[data-v-edab6768] {
  flex-shrink: 0;
  color: var(--color-text-large-text, #68769C);
  transition: transform 0.2s;
}
.faq-item.open .faq-chevron[data-v-edab6768] {
  transform: rotate(180deg);
  color: var(--color-primary);
}

/*
 * ⚠ `grid-template-rows: 0fr → 1fr`, NOT `max-height: 0 → 300px`.
 *
 * The max-height version animated correctly and then clipped: any answer taller than 300px
 * ended mid-sentence, `overflow: hidden` removed the scrollbar that would have shown it, and
 * there was nothing on screen to suggest the rest existed. A grid row animating to `1fr`
 * resolves to the content's real height, so it works for a one-line answer and a nine-paragraph
 * one without anybody having to guess a number.
 */
.faq-answer[data-v-edab6768] {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.22s ease;
}
.faq-item.open .faq-answer[data-v-edab6768] { grid-template-rows: 1fr;
}
.faq-answer-inner[data-v-edab6768] { overflow: hidden;
}
.faq-answer p[data-v-edab6768] {
  margin: 0;
  padding: 0 20px 16px;
  font-size: 13px;
  line-height: 1.65;
  color: var(--color-text-label);
  /* Answers are authored as plain text with real line breaks; preserving them is the whole
     formatting model, the same as a guide step and an article body. */
  white-space: pre-wrap;
}
@media (prefers-reduced-motion: reduce) {
.faq-answer[data-v-edab6768], .faq-chevron[data-v-edab6768] { transition: none;
}
}

/* Why this question matched. Background only — a colour change as well would make a matched
   word look like a link inside a control that is already one. */
.faq-hit[data-v-edab6768] {
  background: var(--color-semantic-bg-orange, #FFF3EB);
  color: inherit;
  border-radius: 2px;
  padding: 0 1px;
}
.faq-still[data-v-edab6768] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  background: var(--color-surface-page);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  padding: 14px 16px;
}
.faq-still-title[data-v-edab6768] { font-size: 13px; font-weight: 600; color: var(--color-primary-dark); margin: 0 0 2px;
}
.faq-still-body[data-v-edab6768] { font-size: 12px; color: var(--color-text-helper); margin: 0;
}

.lv[data-v-81c23cee] { min-width: 0;
}

.cf[data-v-51efc0d0] {
  border-top: 1px solid var(--color-border-default);
  margin-top: 20px;
  padding-top: 14px;
}
.cf-row[data-v-51efc0d0] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.cf-q[data-v-51efc0d0] { font-size: 12px; font-weight: 600; color: var(--color-primary-dark);
}
.cf-btns[data-v-51efc0d0] { display: flex; gap: 7px;
}
.cf-btn[data-v-51efc0d0] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  font: inherit;
  font-size: 11.5px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-pill);
  background: var(--color-surface-card);
  color: var(--color-text-label);
  cursor: pointer;
}
.cf-btn[data-v-51efc0d0]:hover:not(:disabled) { border-color: var(--color-primary); color: var(--color-primary);
}
.cf-btn[data-v-51efc0d0]:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px;
}
.cf-btn[data-v-51efc0d0]:disabled { cursor: default; opacity: 0.6;
}

/* ⚠ The selected state is the DS grey, not #ECEEFF — the hex the module doc bans for a
   selected row, and which AdminSidebar.vue is the live violation of. */
.cf-btn.on[data-v-51efc0d0] {
  background: var(--color-semantic-bg-grey);
  border-color: var(--color-primary);
  color: var(--color-primary);
  font-weight: 600;
}
.cf-why[data-v-51efc0d0] { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; max-width: 520px;
}
.cf-why-label[data-v-51efc0d0] { font-size: 11.5px; color: var(--color-text-label);
}
.cf-why-text[data-v-51efc0d0] {
  padding: 7px 9px;
  font: inherit;
  font-size: 12px;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-sm);
  resize: vertical;
}
.cf-why-actions[data-v-51efc0d0] { display: flex; gap: 7px;
}

/*
 * ⚠ The page is full width; the BODY keeps a measure. `sc-page--reading` capped the whole
 * column at 78ch, which pulled the breadcrumb and the "still stuck" footer into a narrow
 * strip against a wide window. Prose wants a measure; the furniture around it does not.
 */
.av[data-v-db1b6145] { gap: 14px;
}
.av-body[data-v-db1b6145] { display: flex; flex-direction: column; gap: 12px; max-width: 78ch;
}
.av-crumbs[data-v-db1b6145] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: var(--color-text-placeholder);
}
.av-crumb-current[data-v-db1b6145] { color: var(--color-text-helper);
}
.av-meta[data-v-db1b6145] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.av-meta-item[data-v-db1b6145] { font-size: 11px; color: var(--color-text-placeholder);
}
.av-tags[data-v-db1b6145] { display: flex; gap: 5px; flex-wrap: wrap;
}
.av-tag[data-v-db1b6145] {
  font-size: 10.5px;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: var(--color-semantic-bg-grey);
  color: var(--color-text-label);
}
.av-empty-action[data-v-db1b6145] { display: block; margin-top: 12px;
}
.av-title[data-v-db1b6145] {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-primary-dark);
  margin: 0;
}
.av-content[data-v-db1b6145] {
  font-size: 14px;
  line-height: 1.65;
  color: var(--color-text-label);
  white-space: pre-wrap;
  max-width: 70ch;
}
.av-foot[data-v-db1b6145] { border-top: 1px solid var(--color-border-default); padding-top: 16px; margin-top: 6px;
}
.av-still[data-v-db1b6145] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  background: var(--color-surface-page);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  padding: 14px 16px;
}
.av-still-title[data-v-db1b6145] { font-size: 13px; font-weight: 600; color: var(--color-primary-dark); margin: 0 0 2px;
}
.av-still-body[data-v-db1b6145] { font-size: 12px; color: var(--color-text-helper); margin: 0;
}

.wlb[data-v-39888dff] {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 14px 18px;
  border-radius: 10px;
  border: 1px solid transparent;
  font-family: Poppins, Arial, sans-serif;
  margin-bottom: 16px;
}
.wlb-body[data-v-39888dff] { flex: 1; min-width: 0;
}
.wlb-title[data-v-39888dff] {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
}
.wlb-date[data-v-39888dff] { font-weight: 500; opacity: 0.85;
}
.wlb-message[data-v-39888dff] {
  margin: 4px 0 0;
  font-size: 13px;
  line-height: 19px;
  opacity: 0.9;
}

/* Semantic, not decorative: warn = still working, danger = access has stopped,
   neutral = terminal and nothing to act on. */
.wlb--warn[data-v-39888dff]    { background: #FEF6E7; border-color: #F6D08A; color: #8A5A00;
}
.wlb--danger[data-v-39888dff]  { background: #FDECEC; border-color: #F3B4B4; color: #A31515;
}
.wlb--neutral[data-v-39888dff] { background: #F1F2F6; border-color: #D9DCE6; color: #5B6178;
}
.wlb-cta[data-v-39888dff] {
  flex: none;
  appearance: none;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  font: 600 13px/1 Poppins, Arial, sans-serif;
  padding: 9px 16px;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
}
.wlb-cta[data-v-39888dff]:hover { background: rgba(0, 0, 0, 0.05);
}
.wlb-cta[data-v-39888dff]:focus-visible { outline: 2px solid currentColor; outline-offset: 2px;
}

.wcm-overlay[data-v-f6671eeb] {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(2, 6, 49, 0.7);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.wcm[data-v-f6671eeb] {
  background: #fff; border-radius: 14px; padding: 28px;
  width: 100%; max-width: 460px;
  font-family: Poppins, Arial, sans-serif;
  box-shadow: 0 18px 48px rgba(2, 6, 49, 0.35);
  border-top: 4px solid #DC2626;
}
.wcm-title[data-v-f6671eeb] { margin: 0 0 12px; font-size: 19px; font-weight: 600; color: #020631;
}
.wcm-body[data-v-f6671eeb]  { margin: 0 0 12px; font-size: 13px; line-height: 20px; color: #47506A;
}
.wcm-note[data-v-f6671eeb]  { margin: 0 0 16px; font-size: 12px; line-height: 18px; color: #9CA5BE;
}
.wcm-actions[data-v-f6671eeb] { display: flex; justify-content: flex-end; gap: 12px;
}
/* OK is the primary action: the dialog's job is to inform, and staying is the common intent. */
.wcm-btn.wcm-btn--primary[data-v-f6671eeb] {
  border-color: var(--color-primary, #4353FF);
  background: var(--color-primary, #4353FF);
  color: var(--color-text-white, #fff);
  font-weight: 600;
}
.wcm-btn.wcm-btn--primary[data-v-f6671eeb]:hover { background: var(--color-primary, #4353FF); opacity: .9;
}
.wcm-btn[data-v-f6671eeb] {
  height: 38px; padding: 0 18px; border-radius: 8px;
  border: 1px solid #D1D5E8; background: #fff;
  font: 500 13px/1 Poppins, Arial, sans-serif; color: #47506A; cursor: pointer;
}
.wcm-btn[data-v-f6671eeb]:hover { background: #F3F4F8;
}
.wcm-btn[data-v-f6671eeb]:focus-visible { outline: 2px solid #4353FF; outline-offset: 2px;
}


.app-shell[data-v-c52c4525] {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--color-bg-page, #F9F9FC);
  overflow: hidden;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  padding: 0 2px 2px;
  box-sizing: border-box;
}
.content-row[data-v-c52c4525] {
  display: flex;
  flex: 1;
  gap: 6px;
  overflow: hidden;
  min-height: 0;
}
.main-area[data-v-c52c4525] {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
  background: var(--color-bg-card, #ffffff);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 20px;
}
.content[data-v-c52c4525] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 20px 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.content > *[data-v-c52c4525] {
  flex-shrink: 0;
}

/*
 * ⚠ The desk's shell, for the two screens that earn it.
 *
 * `overflow: hidden` here and `flex: 1; min-height: 0` on the child means the PAGE no longer
 * scrolls — the table (or the thread) scrolls inside its own container, the header and the
 * filters stay put, and the sticky column headers actually stick to something. Without the
 * `min-height: 0` a flex item's automatic minimum size is its content, so the child grows past
 * the viewport and the inner scroller never engages.
 *
 * ⚠ `.content > *` above sets `flex-shrink: 0` on every child, which would defeat this — hence
 * the explicit override.
 */
.content--fill[data-v-c52c4525] { overflow: hidden; padding-bottom: 20px;
}
.content--fill > *[data-v-c52c4525] { flex-shrink: 1; min-height: 0;
}

/* Federated remotes sit flush inside the shell card — see `isFederatedApp`. */
.content--flush[data-v-c52c4525] { padding: 0; gap: 0;
}

/* The lifecycle banner is shell chrome, not part of the app, so it keeps the inset the rest of
   the shell uses. Reachable from here because a scoped style still applies to a child's ROOT. */
.content--flush > .wlb[data-v-c52c4525] { margin: 20px 24px 0;
}

/* ── Shared tab content styles ── */
.section-card[data-v-c52c4525] {
  background: var(--color-bg-page, #F9F9FC);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  padding: 16px;
}
.mkt-shell-card[data-v-c52c4525] {
  background: var(--color-bg-card, #FFFFFF);
  border: none;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 24px 28px;
  overflow: hidden;
}
.section-header[data-v-c52c4525] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.section-title[data-v-c52c4525] {
  font-size: 20px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
}
.empty-state[data-v-c52c4525] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 20px;
  gap: 12px;
}
.empty-icon[data-v-c52c4525] { width: 48px; height: 48px;
}
.empty-text[data-v-c52c4525] {
  font-size: 14px;
  color: var(--color-text-placeholder, #9CA5BE);
  text-align: center;
}
.btn-sm-primary[data-v-c52c4525] {
  height: 34px;
  padding: 0 16px;
  background: var(--color-primary, #4353FF);
  color: white;
  border: none;
  border-radius: 8px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.btn-sm-primary[data-v-c52c4525]:hover { opacity: 0.9;
}

/* ── Customizations tab ── */
.settings-group[data-v-c52c4525] { margin-bottom: 16px;
}
.field-label[data-v-c52c4525] {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text-placeholder, #9CA5BE);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.field-input[data-v-c52c4525] {
  width: 100%;
  max-width: 400px;
  height: 40px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px;
  font-size: 14px;
  color: var(--color-primary-dark, #020631);
  background: var(--color-bg-card, #ffffff);
  font-family: inherit;
}
.settings-note[data-v-c52c4525] {
  margin-top: 24px;
  font-size: 12px;
  color: var(--color-text-placeholder, #9CA5BE);
  font-style: italic;
}

.idle-backdrop[data-v-c1fc2d95] {
  position: fixed; inset: 0; z-index: 3000;
  background: rgba(2, 6, 49, 0.45);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.idle-modal[data-v-c1fc2d95] {
  background: var(--color-bg-card, #FFFFFF);
  border-radius: 16px;
  padding: 28px 28px 24px;
  width: 100%; max-width: 420px;
  box-shadow: 0 12px 40px rgba(2, 6, 49, 0.24);
}
.idle-title[data-v-c1fc2d95] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 700; font-size: 20px; line-height: 28px;
  color: var(--color-primary-dark, #020631); margin: 0 0 8px;
}
.idle-sub[data-v-c1fc2d95] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 14px; line-height: 20px; color: var(--color-text-label, #47506A);
  margin: 0 0 24px;
}
.idle-actions[data-v-c1fc2d95] { display: flex; justify-content: flex-end; gap: 12px;
}
.idle-btn-primary[data-v-c1fc2d95], .idle-btn-secondary[data-v-c1fc2d95] {
  height: 40px; padding: 0 18px; border-radius: 8px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 600; font-size: 14px; cursor: pointer; transition: background 0.15s;
}
.idle-btn-primary[data-v-c1fc2d95] {
  background: var(--color-primary, #4353FF); color: #FFFFFF; border: none;
}
.idle-btn-primary[data-v-c1fc2d95]:hover { background: #3243EF;
}
.idle-btn-secondary[data-v-c1fc2d95] {
  background: none; color: var(--color-text-helper, #535F7F);
  border: 1px solid var(--color-border-default, #E5E7EF);
}
.idle-btn-secondary[data-v-c1fc2d95]:hover { background: #F5F5F5;
}

.chat-history-container[data-v-1172ef9f] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #F9FAFB;
    border-radius: 24px;
    overflow: hidden;
}
.history-header[data-v-1172ef9f] {
    background: linear-gradient(180deg, #4353FF 0%, #8528F8 100%);
    padding: 20px 24px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
}
.header-left[data-v-1172ef9f] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.icon-btn[data-v-1172ef9f] {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-self: center;
}
.white-icon[data-v-1172ef9f] {
    filter: brightness(0) invert(1);
    margin-bottom: 4px;
}
.header-titles[data-v-1172ef9f] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.title[data-v-1172ef9f] {
    margin: 0;
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    color: #ffffff;
}
.subtitle-row[data-v-1172ef9f] {
    display: flex;
    align-items: center;
    gap: 8px;
}
.subtitle-icon[data-v-1172ef9f] {
    opacity: 0.9;
}
.subtitle[data-v-1172ef9f] {
    color: #ffffff;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    opacity: 0.9;
}
.history-body[data-v-1172ef9f] {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
    scrollbar-width: none;
}
.history-grid[data-v-1172ef9f] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}
.history-card[data-v-1172ef9f] {
    border-radius: 14px;
    border: 0.67px solid #E5E7EB;
    background: #ffffff;
    padding: 12px 16px;
    display: flex;
    gap: 12px;
    cursor: pointer;
}
.history-card[data-v-1172ef9f]:hover {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
.card-icon-container[data-v-1172ef9f] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #F5EEFB;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.card-icon[data-v-1172ef9f] {
    width: 24px;
    height: 24px;
    background-color: #8528F8;
    -webkit-mask-image: url("data:image/svg+xml,%3csvg%20width='40'%20height='40'%20viewBox='0%200%2040%2040'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_359_7047)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M6.25%205.48125V3.75C6.25%203.06%205.6875%202.5%205%202.5C4.3125%202.5%203.75%203.06%203.75%203.75V8.75375C3.75%209.08562%203.8813%209.40375%204.1188%209.63812C4.35005%209.8725%204.66875%2010.0044%205%2010.0037L10%2010C10.6938%209.99938%2011.25%209.43875%2011.25%208.74875C11.25%208.05937%2010.6875%207.49937%2010%207.5L7.7562%207.50187C10.9124%204.40812%2015.2375%202.5%2020%202.5C29.6562%202.5%2037.5%2010.3412%2037.5%2020C37.5%2029.6588%2029.6562%2037.5%2020%2037.5C10.3438%2037.5%202.5%2029.6588%202.5%2020C2.5%2019.31%201.9375%2018.75%201.25%2018.75C0.5625%2018.75%200%2019.31%200%2020C0%2031.0381%208.9625%2040%2020%2040C31.0375%2040%2040%2031.0381%2040%2020C40%208.96188%2031.0375%200%2020%200C14.675%200%209.8375%202.08438%206.25%205.48125ZM20%208.125C13.4438%208.125%208.125%2013.4462%208.125%2020C8.125%2026.5537%2013.4438%2031.875%2020%2031.875C26.5562%2031.875%2031.875%2026.5537%2031.875%2020C31.875%2013.4462%2026.5562%208.125%2020%208.125ZM24.375%2018.75H21.25V13.125C21.25%2012.435%2020.6875%2011.875%2020%2011.875C19.3125%2011.875%2018.75%2012.435%2018.75%2013.125V20C18.75%2020.6906%2019.3062%2021.25%2020%2021.25H24.375C25.0625%2021.25%2025.625%2020.69%2025.625%2020C25.625%2019.31%2025.0625%2018.75%2024.375%2018.75Z'%20fill='url(%23paint0_linear_359_7047)'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_359_7047'%20x1='20'%20y1='1.5'%20x2='20'%20y2='38'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%234353FF'/%3e%3cstop%20offset='1'%20stop-color='%236975FF'/%3e%3c/linearGradient%3e%3cclipPath%20id='clip0_359_7047'%3e%3crect%20width='40'%20height='40'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-image: url("data:image/svg+xml,%3csvg%20width='40'%20height='40'%20viewBox='0%200%2040%2040'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_359_7047)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M6.25%205.48125V3.75C6.25%203.06%205.6875%202.5%205%202.5C4.3125%202.5%203.75%203.06%203.75%203.75V8.75375C3.75%209.08562%203.8813%209.40375%204.1188%209.63812C4.35005%209.8725%204.66875%2010.0044%205%2010.0037L10%2010C10.6938%209.99938%2011.25%209.43875%2011.25%208.74875C11.25%208.05937%2010.6875%207.49937%2010%207.5L7.7562%207.50187C10.9124%204.40812%2015.2375%202.5%2020%202.5C29.6562%202.5%2037.5%2010.3412%2037.5%2020C37.5%2029.6588%2029.6562%2037.5%2020%2037.5C10.3438%2037.5%202.5%2029.6588%202.5%2020C2.5%2019.31%201.9375%2018.75%201.25%2018.75C0.5625%2018.75%200%2019.31%200%2020C0%2031.0381%208.9625%2040%2020%2040C31.0375%2040%2040%2031.0381%2040%2020C40%208.96188%2031.0375%200%2020%200C14.675%200%209.8375%202.08438%206.25%205.48125ZM20%208.125C13.4438%208.125%208.125%2013.4462%208.125%2020C8.125%2026.5537%2013.4438%2031.875%2020%2031.875C26.5562%2031.875%2031.875%2026.5537%2031.875%2020C31.875%2013.4462%2026.5562%208.125%2020%208.125ZM24.375%2018.75H21.25V13.125C21.25%2012.435%2020.6875%2011.875%2020%2011.875C19.3125%2011.875%2018.75%2012.435%2018.75%2013.125V20C18.75%2020.6906%2019.3062%2021.25%2020%2021.25H24.375C25.0625%2021.25%2025.625%2020.69%2025.625%2020C25.625%2019.31%2025.0625%2018.75%2024.375%2018.75Z'%20fill='url(%23paint0_linear_359_7047)'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_359_7047'%20x1='20'%20y1='1.5'%20x2='20'%20y2='38'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%234353FF'/%3e%3cstop%20offset='1'%20stop-color='%236975FF'/%3e%3c/linearGradient%3e%3cclipPath%20id='clip0_359_7047'%3e%3crect%20width='40'%20height='40'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
}
.card-content[data-v-1172ef9f] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.card-title[data-v-1172ef9f] {
    margin: 0;
    font-weight: 600;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    color: #020631;
}
.card-action[data-v-1172ef9f] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
}
.delete-btn[data-v-1172ef9f] {
    background: transparent;
    border: none;
    padding: 2px;
    cursor: pointer;
    opacity: 0.4;
    transition: opacity 0.2s;
}
.delete-btn[data-v-1172ef9f]:hover {
    opacity: 1;
}
.delete-icon[data-v-1172ef9f] {
    width: 18px;
    height: 18px;
}
.card-desc[data-v-1172ef9f] {
    margin: 0;
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    color: #47506A;
    padding-right: 16px;
}
.card-footer[data-v-1172ef9f] {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
}
.card-date[data-v-1172ef9f] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #9CA5BE;
}
.days-badge[data-v-1172ef9f] {
    border-radius: 16px;
    border: 1px solid transparent;
    padding: 4px 8px;
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
}
.badge-green[data-v-1172ef9f] {
    color: #006D12;
    border-color: #0F6E56;
    background: #E1F5EE;
}
.badge-orange[data-v-1172ef9f] {
    color: #CC5F0C;
    border-color: #CC5F0C;
    background: #FFF3EB;
}
.badge-red[data-v-1172ef9f] {
    color: #B30000;
    border-color: #D10000;
    background: #FFECEB;
}
.detail-content[data-v-1172ef9f] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.summary-card[data-v-1172ef9f] {
    background: #ffffff;
    border: 1px solid #E5E7EB;
    border-radius: 16px;
    padding: 20px;
}
.summary-header[data-v-1172ef9f] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}
.summary-header h3[data-v-1172ef9f] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #020631;
}
.ai-icon[data-v-1172ef9f] {
    filter: brightness(0);
    margin-bottom: 4px;
}
.summary-text[data-v-1172ef9f] {
    margin: 0;
    font-size: 14px;
    line-height: 22px;
    color: #47506A;
}
.view-more-btn[data-v-1172ef9f] {
    color: #4353FF;
    cursor: pointer;
    font-weight: 500;
    margin-left: 4px;
}
.view-more-btn[data-v-1172ef9f]:hover {
    text-decoration: underline;
}
.attachments-section[data-v-1172ef9f] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.attachments-title[data-v-1172ef9f] {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #47506A;
}
.attachment-list[data-v-1172ef9f] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.attachment-item[data-v-1172ef9f] {
    display: flex;
    align-items: center;
    background: #ffffff;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 12px 16px;
    gap: 16px;
}
.attachment-icon-bg[data-v-1172ef9f] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #F5EEFB;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.attachment-info[data-v-1172ef9f] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.attachment-name[data-v-1172ef9f] {
    font-size: 14px;
    font-weight: 500;
    color: #020631;
}
.attachment-size[data-v-1172ef9f] {
    font-size: 12px;
    color: #9CA5BE;
}
.download-btn[data-v-1172ef9f] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.6;
    transition: opacity 0.2s;
}
.download-btn[data-v-1172ef9f]:hover {
    opacity: 1;
}
.detail-footer[data-v-1172ef9f] {
    padding: 14px 16px;
    background: #ffffff;
    border-top: 0.67px solid #E5E7EB;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    border-bottom-left-radius: 24px;
    border-bottom-right-radius: 24px;
}
.detail-footer>*[data-v-1172ef9f] {
    flex: 1;
}
.footer-btn[data-v-1172ef9f] {
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 600;
    font-family: "Poppins", sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}
.footer-btn-outline[data-v-1172ef9f] {
    background: #ffffff;
    border: 1px solid #4353FF;
    color: #4353FF;
}
.footer-btn-filled[data-v-1172ef9f] {
    background: #4353FF;
    border: 1px solid #4353FF;
    color: #ffffff;
}
.blue-icon[data-v-1172ef9f] {
    filter: invert(24%) sepia(85%) saturate(5428%) hue-rotate(231deg) brightness(101%) contrast(106%);
}
.load-more-container[data-v-1172ef9f] {
    display: flex;
    justify-content: center;
    padding: 16px 0;
    margin-top: 8px;
}
.load-more-btn[data-v-1172ef9f] {
    background: transparent;
    border: 1px solid #4353FF;
    color: #4353FF;
    border-radius: 20px;
    padding: 8px 24px;
    font-size: 14px;
    font-weight: 500;
    font-family: 'Poppins', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}
.load-more-btn[data-v-1172ef9f]:hover:not(:disabled) {
    background: #4353FF;
    color: #ffffff;
}
.load-more-btn[data-v-1172ef9f]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

*[data-v-2f3473ef] {
    font-family: 'Poppins', sans-serif;
    box-sizing: border-box;
}
.chatbot-wrapper[data-v-2f3473ef] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 400;
    width: 35%;
    min-width: 400px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    pointer-events: none;
    gap: 24px;
    transition: width 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.chatbot-wrapper.is-expanded[data-v-2f3473ef] {
    width: 46%;
}
@media (min-width: 2000px) {
.chatbot-wrapper.is-expanded[data-v-2f3473ef] {
        width: 45%;
        height: 80%;
}
.chatbot-wrapper.is-expanded .chatbot-card[data-v-2f3473ef] {
        display: flex;
        flex: 1;
}
}
.chatbot-fab-row[data-v-2f3473ef] {
    pointer-events: all;
    flex-shrink: 0;
}
.fab-chat-btn[data-v-2f3473ef] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #4353FF 0%, #8528F8 100%);
    box-shadow: 0 4px 20px rgba(124, 58, 237, 0.5);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.fab-chat-btn[data-v-2f3473ef]:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 28px rgba(124, 58, 237, 0.65);
}
.fab-close-btn[data-v-2f3473ef] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #4353FF 0%, #8528F8 100%);
    box-shadow: 0 4px 20px rgba(124, 58, 237, 0.5);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.fab-close-btn[data-v-2f3473ef]:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 28px rgba(124, 58, 237, 0.65);
}
.close-icon-img[data-v-2f3473ef] {
    filter: brightness(0) invert(1);
    width: 22px;
    height: 22px;
}
.chatbot-panel[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    pointer-events: all;
    flex: 1;
    justify-content: flex-end;
    width: 100%;
}
.chatbot-card[data-v-2f3473ef] {
    width: 100%;
    height: 600px;
    max-height: calc(100vh - 110px);
    border-radius: 24px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0px 25px 50px -12px #00000040;
    display: flex;
    flex-direction: column;
    border: 0.67px solid #E5E7EB;
    transition: height 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.chatbot-wrapper.is-expanded .chatbot-card[data-v-2f3473ef] {
    height: 700px;
}
.chatbot-header[data-v-2f3473ef] {
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    padding: 16px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(180deg, #4353FF 0%, #8528F8 100%);
}
.header-left[data-v-2f3473ef] {
    display: flex;
    align-items: start;
    justify-content: flex-start;
    flex-direction: column;
}
.header-title-row[data-v-2f3473ef] {
    display: flex;
    align-items: center;
}
.header-logo-icon[data-v-2f3473ef] {
    height: 27px;
    width: auto;
    margin-top: -5px;
}
.chat-logo-icon[data-v-2f3473ef] {
    height: 20px;
    width: auto;
    margin-top: -1px;
}
.white-icon[data-v-2f3473ef] {
    filter: brightness(0) invert(1);
}
.header-info[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
}
.header-title[data-v-2f3473ef] {
    font-weight: 600;
    font-size: 20px;
    color: #ffffff;
    line-height: 16px;
    letter-spacing: 0;
}
.online-status[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0%;
    color: #DBEAFE;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: 1.5px;
}
.online-dot[data-v-2f3473ef] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #05DF72;
}
.header-actions[data-v-2f3473ef] {
    display: flex;
    gap: 16px;
}
.header-icon-btn[data-v-2f3473ef] {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, transform 0.2s ease;
    padding: 4px;
}
.header-icon-btn[data-v-2f3473ef]:hover {
    transform: scale(1.25);
}
.header-icon-btn[data-tooltip][data-v-2f3473ef] {
    position: relative;
}
.header-icon-btn[data-tooltip][data-v-2f3473ef]::after {
    content: attr(data-tooltip);
    position: absolute;
    top: 50%;
    right: calc(100% + 12px);
    left: auto;
    transform: translateY(-50%) scale(0.95);
    transform-origin: right center;
    background: #0F172A;
    color: #F8FAFC;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    font-family: 'Poppins', sans-serif;
    letter-spacing: 0.3px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    z-index: 100;
    box-shadow: 0px 10px 24px rgba(0, 0, 0, 0.25), inset 0px 1px 1px rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: opacity 0.1s ease, transform 0.1s ease;
}
.header-icon-btn[data-tooltip][data-v-2f3473ef]::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 8px);
    left: auto;
    transform: translateY(-50%) scale(0.95) rotate(45deg);
    transform-origin: center center;
    width: 12px;
    height: 12px;
    background: #0F172A;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 2px -2px 4px rgba(0, 0, 0, 0.05);
    opacity: 0;
    pointer-events: none;
    /* transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1); */
    transition: opacity 0.05s ease, transform 0.05s ease;
    z-index: 101;
}
.header-icon-btn[data-tooltip][data-v-2f3473ef]:hover::after {
    opacity: 1;
    transform: translateY(-50%) scale(1);
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.header-icon-btn[data-tooltip][data-v-2f3473ef]:hover::before {
    opacity: 1;
    transform: translateY(-50%) scale(1) rotate(45deg);
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
[data-tooltip-right][data-v-2f3473ef] {
    position: relative;
}
[data-tooltip-right][data-v-2f3473ef]::after {
    content: attr(data-tooltip-right);
    position: absolute;
    top: 50%;
    left: calc(100% + 12px);
    right: auto;
    transform: translateY(-50%) scale(0.95);
    transform-origin: left center;
    background: #0F172A;
    color: #F8FAFC;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    font-family: 'Poppins', sans-serif;
    letter-spacing: 0.3px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    z-index: 100;
    box-shadow: 0px 10px 24px rgba(0, 0, 0, 0.25), inset 0px 1px 1px rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: opacity 0.2s ease, transform 0.2s ease;
}
[data-tooltip-right][data-v-2f3473ef]::before {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(100% + 8px);
    right: auto;
    transform: translateY(-50%) scale(0.95) rotate(45deg);
    transform-origin: center center;
    width: 12px;
    height: 12px;
    background: #0F172A;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.05);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.05s ease, transform 0.05s ease;
    z-index: 101;
}
[data-tooltip-right][data-v-2f3473ef]:hover::after {
    opacity: 1;
    transform: translateY(-50%) scale(1);
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
[data-tooltip-right][data-v-2f3473ef]:hover::before {
    opacity: 1;
    transform: translateY(-50%) scale(1) rotate(45deg);
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.more-menu-container[data-v-2f3473ef] {
    position: relative;
    display: flex;
}
.menu-overlay[data-v-2f3473ef] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1000;
}
.chatbot-menu[data-v-2f3473ef] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0px 4px 24px rgba(0, 0, 0, 0.12);
    padding: 8px 0;
    width: 190px;
    z-index: 1001;
    display: flex;
    flex-direction: column;
}
.menu-item[data-v-2f3473ef] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    color: #020631;
    transition: background 0.2s;
}
.menu-item[data-v-2f3473ef]:hover {
    background: #F3F4F6;
}
.menu-fade-enter-active[data-v-2f3473ef],
.menu-fade-leave-active[data-v-2f3473ef] {
    transition: opacity 0.15s ease-out, transform 0.15s ease-out;
}
.menu-fade-enter-from[data-v-2f3473ef],
.menu-fade-leave-to[data-v-2f3473ef] {
    opacity: 0;
    transform: translateY(-8px);
}
.newChat-icon[data-v-2f3473ef] {
    width: 18px;
    height: 18px;
    background-color: #8528F8;
    mask: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2022C11.741%2022%2011.4926%2021.8971%2011.3095%2021.714C11.1263%2021.5308%2011.0234%2021.2824%2011.0234%2021.0234V2.97656C11.0234%202.71756%2011.1263%202.46917%2011.3095%202.28603C11.4926%202.10289%2011.741%202%2012%202C12.259%202%2012.5074%202.10289%2012.6905%202.28603C12.8737%202.46917%2012.9766%202.71756%2012.9766%202.97656V21.0234C12.9766%2021.2824%2012.8737%2021.5308%2012.6905%2021.714C12.5074%2021.8971%2012.259%2022%2012%2022Z'%20fill='%23F9F9FC'/%3e%3cpath%20d='M21.0234%2012.9766H2.97656C2.71756%2012.9766%202.46917%2012.8737%202.28603%2012.6905C2.10289%2012.5074%202%2012.259%202%2012C2%2011.741%202.10289%2011.4926%202.28603%2011.3095C2.46917%2011.1263%202.71756%2011.0234%202.97656%2011.0234H21.0234C21.2824%2011.0234%2021.5308%2011.1263%2021.714%2011.3095C21.8971%2011.4926%2022%2011.741%2022%2012C22%2012.259%2021.8971%2012.5074%2021.714%2012.6905C21.5308%2012.8737%2021.2824%2012.9766%2021.0234%2012.9766Z'%20fill='%23F9F9FC'/%3e%3c/svg%3e") no-repeat center;
    mask-size: contain;
}
.chatHistory-icon[data-v-2f3473ef] {
    width: 18px;
    height: 18px;
    background-color: #8528F8;
    mask: url("data:image/svg+xml,%3csvg%20width='40'%20height='40'%20viewBox='0%200%2040%2040'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_359_7047)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M6.25%205.48125V3.75C6.25%203.06%205.6875%202.5%205%202.5C4.3125%202.5%203.75%203.06%203.75%203.75V8.75375C3.75%209.08562%203.8813%209.40375%204.1188%209.63812C4.35005%209.8725%204.66875%2010.0044%205%2010.0037L10%2010C10.6938%209.99938%2011.25%209.43875%2011.25%208.74875C11.25%208.05937%2010.6875%207.49937%2010%207.5L7.7562%207.50187C10.9124%204.40812%2015.2375%202.5%2020%202.5C29.6562%202.5%2037.5%2010.3412%2037.5%2020C37.5%2029.6588%2029.6562%2037.5%2020%2037.5C10.3438%2037.5%202.5%2029.6588%202.5%2020C2.5%2019.31%201.9375%2018.75%201.25%2018.75C0.5625%2018.75%200%2019.31%200%2020C0%2031.0381%208.9625%2040%2020%2040C31.0375%2040%2040%2031.0381%2040%2020C40%208.96188%2031.0375%200%2020%200C14.675%200%209.8375%202.08438%206.25%205.48125ZM20%208.125C13.4438%208.125%208.125%2013.4462%208.125%2020C8.125%2026.5537%2013.4438%2031.875%2020%2031.875C26.5562%2031.875%2031.875%2026.5537%2031.875%2020C31.875%2013.4462%2026.5562%208.125%2020%208.125ZM24.375%2018.75H21.25V13.125C21.25%2012.435%2020.6875%2011.875%2020%2011.875C19.3125%2011.875%2018.75%2012.435%2018.75%2013.125V20C18.75%2020.6906%2019.3062%2021.25%2020%2021.25H24.375C25.0625%2021.25%2025.625%2020.69%2025.625%2020C25.625%2019.31%2025.0625%2018.75%2024.375%2018.75Z'%20fill='url(%23paint0_linear_359_7047)'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_359_7047'%20x1='20'%20y1='1.5'%20x2='20'%20y2='38'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%234353FF'/%3e%3cstop%20offset='1'%20stop-color='%236975FF'/%3e%3c/linearGradient%3e%3cclipPath%20id='clip0_359_7047'%3e%3crect%20width='40'%20height='40'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e") no-repeat center;
    mask-size: contain;
}
.bookmark-icon[data-v-2f3473ef] {
    margin-left: 1.2px;
    width: 16px;
    height: 16px;
}
.attachment-logo[data-v-2f3473ef] {
    height: 20px;
    width: auto;
}
.black-icon[data-v-2f3473ef] {
    filter: brightness(0);
}
.chatbot-messages[data-v-2f3473ef] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 14px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: #f9fafb;
    scrollbar-width: thin;
    scrollbar-color: #d1d5db transparent;
}
.chatbot-messages[data-v-2f3473ef]::-webkit-scrollbar {
    width: 4px;
}
.chatbot-messages[data-v-2f3473ef]::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 4px;
}
.message-row[data-v-2f3473ef] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.message-row--user[data-v-2f3473ef] {
    flex-direction: row-reverse;
}
.avatar[data-v-2f3473ef] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
}
.avatar--bot[data-v-2f3473ef] {
    background: linear-gradient(180deg, #4353FF 0%, #8528F8 100%);
}
.avatar--bot .header-logo-icon[data-v-2f3473ef] {
    width: 24px;
    height: 24px;
}
.avatar--user[data-v-2f3473ef] {
    background: transparent;
    color: white;
    font-size: 12px;
}
.message-bubble[data-v-2f3473ef] {
    max-width: 88%;
    padding: 10px 14px;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    word-break: break-word;
}
.message-bubble--bot[data-v-2f3473ef] {
    background: #ffffff;
    border-radius: 4px 16px 16px 16px;
    border: 1px solid #E5E7EB;
    box-shadow: 0px 1px 3px 0px #0000001A;
}
.vision-card[data-v-2f3473ef] {
    background: #ffffff;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 12px 16px;
    width: 100%;
}
.vision-processed-image[data-v-2f3473ef] {
    width: 100%;
    border-radius: 8px;
    margin-bottom: 12px;
    object-fit: cover;
    max-height: 250px;
}
.vision-stats-row[data-v-2f3473ef] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
}
.vision-stat-item[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.vision-label[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #47506A;
}
.vision-value[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #020631;
}
.vision-divider[data-v-2f3473ef] {
    height: 1px;
    background-color: #E5E7EB;
    margin: 8px 0;
}
.vision-detection-title[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #47506A;
}
.vision-detection-list[data-v-2f3473ef] {
    border-radius: 8px;
    background-color: #E5E7EF;
    padding: 4px 6px 4px 6px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.vision-detection-item[data-v-2f3473ef] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.vision-det-left[data-v-2f3473ef] {
    display: flex;
    align-items: center;
    gap: 12px;
}
.vision-dot[data-v-2f3473ef] {
    width: 12px;
    height: 12px;
    border-radius: 100%;
    display: inline-block;
}
.vision-det-name[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #000000;
}
.vision-det-right[data-v-2f3473ef] {
    font-weight: 500;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
}
.vision-green[data-v-2f3473ef] {
    color: #008516;
}
.vision-red[data-v-2f3473ef] {
    color: #FF4D4D;
}
.vision-orange[data-v-2f3473ef] {
    color: #F5A623;
}
.message-bubble--user[data-v-2f3473ef] {
    background: #6D51FE;
    border-radius: 16px 4px 16px 16px;
    box-shadow: 0px 1px 3px 0px #0000001A;
    position: relative;
}
.remove-msg-btn[data-v-2f3473ef] {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 20px;
    height: 20px;
    background: white;
    border-radius: 50%;
    border: 1px solid #E5E7EB;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s, transform 0.2s;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    z-index: 10;
}
.message-bubble--user:hover .remove-msg-btn[data-v-2f3473ef] {
    opacity: 1;
    pointer-events: auto;
}
.remove-msg-btn[data-v-2f3473ef]:hover {
    transform: scale(1.1);
}
.message-text[data-v-2f3473ef] {
    margin: 0;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
}
.message-bubble--bot .message-text[data-v-2f3473ef] {
    color: #020631;
}
.message-bubble--user .message-text[data-v-2f3473ef] {
    color: #ffffff;
}
.message-time[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0%;
}
.message-bubble--bot .message-time[data-v-2f3473ef] {
    color: #9CA5BE;
}
.message-bubble--user .message-time[data-v-2f3473ef] {
    color: #C4CBDD;
}
.typing-bubble[data-v-2f3473ef] {
    flex-direction: row !important;
    gap: 4px;
    align-items: center;
    padding: 14px 18px;
}
.dot[data-v-2f3473ef] {
    width: 7px;
    height: 7px;
    background: #9ca3af;
    border-radius: 50%;
    animation: bounce-2f3473ef 1.2s infinite ease-in-out;
}
.dot[data-v-2f3473ef]:nth-child(2) {
    animation-delay: 0.2s;
}
.dot[data-v-2f3473ef]:nth-child(3) {
    animation-delay: 0.4s;
}
@keyframes bounce-2f3473ef {
0%,
    80%,
    100% {
        transform: translateY(0);
}
40% {
        transform: translateY(-6px);
}
}
.suggestion-chips[data-v-2f3473ef] {
    padding: 10px 14px 8px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    background: #ffffff;
    border-top: 1px solid #f3f4f6;
    max-height: 79px;
    overflow-y: auto;
    scrollbar-width: none;
}
.suggestion-chips[data-v-2f3473ef]::-webkit-scrollbar {
    display: none;
}
.chip[data-v-2f3473ef] {
    border-radius: 16px;
    border: 1px solid #9CA5BE;
    padding: 4px 8px;
    background: transparent;
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0;
    color: #47506A;
    cursor: pointer;
    font-family: 'Poppins', sans-serif;
    transition: all 0.18s ease;
    white-space: nowrap;
}
.chip[data-v-2f3473ef]:hover {
    border-color: #7c3aed;
    color: #7c3aed;
    background: rgba(124, 58, 237, 0.05);
}
.chatbot-input-area[data-v-2f3473ef] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px 14px;
    background: #ffffff;
    border-top: 1px solid #f3f4f6;
}
.attach-btn[data-v-2f3473ef] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.18s;
}
.attach-btn[data-v-2f3473ef]:hover {
    background: #f3f4f6;
}
.attach-btn[data-v-2f3473ef]:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.more-menu-container[data-v-2f3473ef] {
    position: relative;
}
.chat-input[data-v-2f3473ef] {
    flex: 1;
    border-radius: 14px;
    border: 0.67px solid #D1D5DC;
    padding: 8.67px 12.67px;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    font-family: 'Poppins', sans-serif;
    color: #020631;
    background: #F9FAFB;
    outline: none;
    transition: border-color 0.18s;
}
.chat-input[data-v-2f3473ef]::placeholder {
    color: #9CA5BE;
}
.chat-input[data-v-2f3473ef]:focus {
    border-color: #7c3aed;
    background: #ffffff;
}
.send-btn[data-v-2f3473ef] {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: none;
    background: #4353FF;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.18s;
}
.send-btn[data-v-2f3473ef]:hover:not(:disabled) {
    transform: scale(1.05);
    box-shadow: 0 4px 14px rgba(124, 58, 237, 0.4);
}
.send-btn[data-v-2f3473ef]:disabled {
    background: #9CA5BE;
    opacity: 1;
    cursor: not-allowed;
}
.chatbot-slide-enter-active[data-v-2f3473ef],
.chatbot-slide-leave-active[data-v-2f3473ef] {
    transition: opacity 0.28s ease, transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.chatbot-slide-enter-from[data-v-2f3473ef],
.chatbot-slide-leave-to[data-v-2f3473ef] {
    opacity: 0;
    transform: translateY(30px) scale(0.95);
}
.chatbot-modal-overlay[data-v-2f3473ef] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: all;
}
.chatbot-modal-content[data-v-2f3473ef] {
    background: #ffffff;
    border-radius: 20px;
    width: 360px;
    padding: 24px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    display: flex;
    flex-direction: column;
}
.chatbot-modal-header[data-v-2f3473ef] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}
.chatbot-modal-title[data-v-2f3473ef] {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    color: #020631;
}
.chatbot-modal-close[data-v-2f3473ef] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}
.chatbot-modal-close[data-v-2f3473ef]:hover {
    transform: scale(1.1);
}
.chatbot-modal-body[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
    margin-bottom: 24px;
}
.chatbot-modal-footer[data-v-2f3473ef] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
}
.modal-fade-enter-active[data-v-2f3473ef],
.modal-fade-leave-active[data-v-2f3473ef] {
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.suggestion-chips-wrapper[data-v-2f3473ef] {
    position: relative;
    width: 100%;
    flex-shrink: 0;
}
.chat-saved-notification[data-v-2f3473ef] {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 12px;
    border-radius: 12px;
    border: 1px solid #0055D4;
    background: #E9F2FF;
    padding: 8px 16px;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    color: #47506A;
    z-index: 50;
    white-space: nowrap;
}
.chat-error-notification[data-v-2f3473ef] {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 12px;
    border-radius: 12px;
    border: 1px solid #D60000;
    background: #FFECEB;
    padding: 8px 16px;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    color: #47506A;
    z-index: 50;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 8px;
}
.chat-error-notification .retry-btn[data-v-2f3473ef] {
    color: #020631;
    cursor: pointer;
    font-weight: 600;
}
.fade-up-enter-active[data-v-2f3473ef],
.fade-up-leave-active[data-v-2f3473ef] {
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.fade-up-enter-from[data-v-2f3473ef],
.fade-up-leave-to[data-v-2f3473ef] {
    opacity: 0;
    transform: translate(-50%, 15px);
}
.fade-up-enter-to[data-v-2f3473ef],
.fade-up-leave-from[data-v-2f3473ef] {
    opacity: 1;
    transform: translate(-50%, 0);
}
.modal-fade-enter-from[data-v-2f3473ef],
.modal-fade-leave-to[data-v-2f3473ef] {
    opacity: 0;
    transform: scale(0.95);
}
.detail-content[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.summary-card[data-v-2f3473ef] {
    background: #ffffff;
    border: 1px solid #E5E7EB;
    border-radius: 16px;
    padding: 20px;
}
.summary-header[data-v-2f3473ef] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}
.summary-header h3[data-v-2f3473ef] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #020631;
}
.ai-icon[data-v-2f3473ef] {
    filter: brightness(0);
    margin-bottom: 4px;
}
.summary-text[data-v-2f3473ef] {
    margin: 0;
    font-size: 14px;
    line-height: 22px;
    color: #47506A;
}
.view-more-btn[data-v-2f3473ef] {
    color: #4353FF;
    cursor: pointer;
    font-weight: 500;
    margin-left: 4px;
}
.view-more-btn[data-v-2f3473ef]:hover {
    text-decoration: underline;
}
.attachments-section[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.attachments-title[data-v-2f3473ef] {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: #47506A;
}
.attachment-list[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.attachment-item[data-v-2f3473ef] {
    display: flex;
    align-items: center;
    background: #ffffff;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 12px 16px;
    gap: 16px;
}
.attachment-icon-bg[data-v-2f3473ef] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #F5EEFB;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.attachment-info[data-v-2f3473ef] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.attachment-name[data-v-2f3473ef] {
    font-size: 14px;
    font-weight: 500;
    color: #020631;
}
.attachment-size[data-v-2f3473ef] {
    font-size: 12px;
    color: #9CA5BE;
}
.download-btn[data-v-2f3473ef] {
    position: absolute;
    top: 12px;
    right: 12px;
    border-radius: 4px;
    padding: 4px;
    background-color: #FFFFFF;
    border: none;
}
.download-icon-image[data-v-2f3473ef] {
    width: 16px;
    height: 16px;
    background-color: #020631;
    mask: url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M19%2017H1C0.734783%2017%200.480429%2017.1054%200.292893%2017.2929C0.105357%2017.4804%200%2017.7348%200%2018C0%2018.2652%200.105357%2018.5196%200.292893%2018.7071C0.480429%2018.8946%200.734783%2019%201%2019H19C19.2652%2019%2019.5196%2018.8946%2019.7071%2018.7071C19.8946%2018.5196%2020%2018.2652%2020%2018C20%2017.7348%2019.8946%2017.4804%2019.7071%2017.2929C19.5196%2017.1054%2019.2652%2017%2019%2017Z'%20fill='%234353FF'/%3e%3cpath%20d='M10.0002%200C9.73497%200%209.48061%200.105357%209.29308%200.292893C9.10554%200.480429%209.00018%200.734783%209.00018%201V11.59L5.71019%208.29C5.52188%208.10169%205.26649%207.99591%205.00019%207.99591C4.73388%207.99591%204.47849%208.10169%204.29019%208.29C4.10188%208.4783%203.99609%208.7337%203.99609%209C3.99609%209.2663%204.10188%209.52169%204.29019%209.71L9.29018%2014.71C9.38315%2014.8037%209.49375%2014.8781%209.61561%2014.9289C9.73747%2014.9797%209.86817%2015.0058%2010.0002%2015.0058C10.1322%2015.0058%2010.2629%2014.9797%2010.3848%2014.9289C10.5066%2014.8781%2010.6172%2014.8037%2010.7102%2014.71L15.7102%209.71C15.8034%209.61676%2015.8774%209.50607%2015.9278%209.38425C15.9783%209.26243%2016.0043%209.13186%2016.0043%209C16.0043%208.86814%2015.9783%208.73757%2015.9278%208.61575C15.8774%208.49393%2015.8034%208.38324%2015.7102%208.29C15.6169%208.19676%2015.5063%208.1228%2015.3844%208.07234C15.2626%208.02188%2015.132%207.99591%2015.0002%207.99591C14.8683%207.99591%2014.7378%208.02188%2014.6159%208.07234C14.4941%208.1228%2014.3834%208.19676%2014.2902%208.29L11.0002%2011.59V1C11.0002%200.734783%2010.8948%200.480429%2010.7073%200.292893C10.5198%200.105357%2010.2654%200%2010.0002%200Z'%20fill='%234353FF'/%3e%3c/svg%3e") no-repeat center;
    mask-size: contain;
}
.attachment-wrapper[data-v-2f3473ef] {
    position: relative;
    display: flex;
}
.attachment-dropdown[data-v-2f3473ef] {
    position: absolute;
    bottom: calc(100% + 12px);
    left: 0;
    border-radius: 4px;
    border: 1px solid #C4CBDD;
    box-shadow: 0px 4px 10px 0px #68769C29;
    background: #ffffff;
    width: 353px;
    z-index: 1001;
    display: flex;
    flex-direction: column;
}
.attachment-item-option[data-v-2f3473ef] {
    display: flex;
    align-items: flex-start;
    padding: 6px 8px;
    gap: 8px;
    cursor: pointer;
    transition: background 0.2s;
}
.attachment-item-option[data-v-2f3473ef]:hover {
    background: #F3F4F6;
    border-radius: 4px;
}
.attachment-item-icon[data-v-2f3473ef] {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    margin-top: 8px;
}
.attachment-item-title[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0px;
    color: #020631;
}
.attachment-item-desc[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #6A7282;
}
.attachment-overlay[data-v-2f3473ef] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1000;
}
.staged-file-wrapper[data-v-2f3473ef] {
    display: flex;
    flex-direction: row;
    margin: 2px 13px 6px 16px;
    border-radius: 16px;
    border: 1px solid #E5E7EF;
    background-color: white;
}
.staged-file-container[data-v-2f3473ef] {
    flex: 1;
    padding: 16px 13px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.staged-file-top[data-v-2f3473ef] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.staged-file-name[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0px;
    color: #020631;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    display: block;
}
.staged-file-delete[data-v-2f3473ef] {
    background-color: transparent;
    border: none;
    padding: 0px 13px 0px 0px;
}
.mask-delete-icon[data-v-2f3473ef] {
    width: 16px;
    height: 16px;
    background-color: #B30000;
    mask: url("data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_5888_2452)'%3e%3cpath%20d='M7.95516%2012H3.45955C3.00977%2011.9935%202.57901%2011.8175%202.25343%2011.5071C1.92784%2011.1967%201.73143%2010.7748%201.70345%2010.3259L1.17077%202.2244C1.16804%202.16566%201.17698%202.10696%201.19707%202.0517C1.21717%201.99644%201.24802%201.94571%201.28784%201.90245C1.32887%201.85761%201.37854%201.82153%201.43387%201.79638C1.48919%201.77123%201.54903%201.75753%201.60979%201.7561H9.80491C9.86511%201.75597%209.9247%201.76822%209.97997%201.79209C10.0352%201.81596%2010.085%201.85094%2010.1262%201.89486C10.1673%201.93878%2010.199%201.9907%2010.2193%202.04739C10.2396%202.10408%2010.248%202.16433%2010.2439%202.2244L9.73467%2010.3259C9.7064%2010.7788%209.50668%2011.204%209.17613%2011.515C8.84558%2011.826%208.409%2011.9994%207.95516%2012ZM2.1015%202.63415L2.55223%2010.2732C2.56712%2010.5035%202.66925%2010.7195%202.83782%2010.8772C3.00639%2011.0349%203.22872%2011.1224%203.45955%2011.122H7.95516C8.18558%2011.1211%208.40714%2011.0331%208.57542%2010.8757C8.74369%2010.7182%208.84623%2010.503%208.86247%2010.2732L9.33662%202.66342L2.1015%202.63415Z'%20fill='%23020631'/%3e%3cpath%20d='M10.9756%202.63415H0.439024C0.322588%202.63415%200.21092%202.5879%200.128587%202.50556C0.0462542%202.42323%200%202.31156%200%202.19513C0%202.07869%200.0462542%201.96702%200.128587%201.88469C0.21092%201.80236%200.322588%201.7561%200.439024%201.7561H10.9756C11.092%201.7561%2011.2037%201.80236%2011.286%201.88469C11.3684%201.96702%2011.4146%202.07869%2011.4146%202.19513C11.4146%202.31156%2011.3684%202.42323%2011.286%202.50556C11.2037%202.5879%2011.092%202.63415%2010.9756%202.63415Z'%20fill='%23020631'/%3e%3cpath%20d='M7.46343%202.63415H3.95123C3.83527%202.63263%203.72448%202.58589%203.64247%202.50388C3.56046%202.42188%203.51372%202.31109%203.51221%202.19512V1.14146C3.51963%200.841065%203.64227%200.555021%203.85475%200.342542C4.06723%200.130064%204.35327%200.00742061%204.65367%200H6.76099C7.06638%200.00763729%207.3567%200.134345%207.56996%200.353078C7.78323%200.57181%207.90255%200.865239%207.90245%201.17073V2.19512C7.90093%202.31109%207.85419%202.42188%207.77219%202.50388C7.69018%202.58589%207.57939%202.63263%207.46343%202.63415ZM4.39026%201.7561H7.0244V1.17073C7.0244%201.10087%206.99665%201.03387%206.94725%200.984469C6.89785%200.93507%206.83085%200.907317%206.76099%200.907317H4.65367C4.58381%200.907317%204.51681%200.93507%204.46741%200.984469C4.41801%201.03387%204.39026%201.10087%204.39026%201.17073V1.7561Z'%20fill='%23020631'/%3e%3cpath%20d='M7.46344%209.65863C7.34747%209.65711%207.23668%209.61037%207.15468%209.52837C7.07267%209.44636%207.02593%209.33557%207.02441%209.21961V4.53668C7.02441%204.42024%207.07067%204.30858%207.153%204.22624C7.23533%204.14391%207.347%204.09766%207.46344%204.09766C7.57987%204.09766%207.69154%204.14391%207.77387%204.22624C7.85621%204.30858%207.90246%204.42024%207.90246%204.53668V9.21961C7.90095%209.33557%207.85421%209.44636%207.7722%209.52837C7.69019%209.61037%207.5794%209.65711%207.46344%209.65863Z'%20fill='%23020631'/%3e%3cpath%20d='M3.95123%209.65863C3.83527%209.65711%203.72448%209.61037%203.64247%209.52837C3.56046%209.44636%203.51372%209.33557%203.51221%209.21961V4.53668C3.51221%204.42024%203.55846%204.30858%203.64079%204.22624C3.72313%204.14391%203.83479%204.09766%203.95123%204.09766C4.06767%204.09766%204.17934%204.14391%204.26167%204.22624C4.344%204.30858%204.39026%204.42024%204.39026%204.53668V9.21961C4.38874%209.33557%204.342%209.44636%204.25999%209.52837C4.17799%209.61037%204.0672%209.65711%203.95123%209.65863Z'%20fill='%23020631'/%3e%3cpath%20d='M5.70733%209.65863C5.59137%209.65711%205.48058%209.61037%205.39857%209.52837C5.31657%209.44636%205.26983%209.33557%205.26831%209.21961V4.53668C5.26831%204.42024%205.31456%204.30858%205.3969%204.22624C5.47923%204.14391%205.5909%204.09766%205.70733%204.09766C5.82377%204.09766%205.93544%204.14391%206.01777%204.22624C6.10011%204.30858%206.14636%204.42024%206.14636%204.53668V9.21961C6.14484%209.33557%206.0981%209.44636%206.0161%209.52837C5.93409%209.61037%205.8233%209.65711%205.70733%209.65863Z'%20fill='%23020631'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_5888_2452'%3e%3crect%20width='11.4146'%20height='12'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e") no-repeat center;
    mask-size: contain;
}
.staged-file-progress-bar[data-v-2f3473ef] {
    height: 8px;
    background-color: #E5E7EB;
    border-radius: 4px;
    width: 100%;
    overflow: hidden;
}
.staged-file-progress-fill[data-v-2f3473ef] {
    height: 100%;
    background-color: #008516;
    transition: width 0.1s linear;
}
.staged-file-bottom[data-v-2f3473ef] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #47506A;
}
.staged-file-actions[data-v-2f3473ef] {
    display: flex;
    gap: 8px;
    padding: 0 13px 6px 16px;
}
.staged-action-btn[data-v-2f3473ef] {
    padding: 4px 8px;
    border-radius: 16px;
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    cursor: pointer;
    transition: background 0.18s, color 0.18s, transform 0.15s;
}
.staged-action-btn-primary[data-v-2f3473ef] {
    border: 1px solid #4353FF;
    background-color: #E9F2FF;
    color: #4353FF;
}
.staged-action-btn-secondary[data-v-2f3473ef] {
    border: 1px solid #9CA5BE;
    background-color: #FFFFFF;
    color: #020631;
}
.message-block[data-v-2f3473ef] {
    margin-bottom: 8px;
}
.ai-accordion[data-v-2f3473ef] {
    border-radius: 8px;
    background: #E5E7EF;
    border: 1px solid transparent;
    border-left: 2px solid #6D51FE;
    padding: 4px;
    gap: 8px;
    overflow: hidden;
    transition: all 0.2s ease-in-out;
}
.ai-accordion.is-expanded[data-v-2f3473ef] {
    background: #E5E7EF;
    border-left: 2px solid #6D51FE;
}
.ai-accordion-header[data-v-2f3473ef] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px 8px 14px;
    cursor: pointer;
    user-select: none;
    gap: 8px;
}
.ai-accordion-title[data-v-2f3473ef] {
    font-weight: 500;
    font-size: 14px;
    color: #020631;
}
.accordion-icon[data-v-2f3473ef] {
    transition: transform 0.2s ease-in-out;
    width: 20px;
    height: 20px;
}
.ai-accordion.is-expanded .accordion-icon[data-v-2f3473ef] {
    transform: rotate(180deg);
}
.ai-accordion-body[data-v-2f3473ef] {
    font-size: 14px;
    color: #47506A;
    line-height: 1.5;
    border-top: 1px solid transparent;
}
.ai-accordion.is-expanded .ai-accordion-body[data-v-2f3473ef] {
    border-top-color: #E5E7EB;
}
.ai-accordion-footer[data-v-2f3473ef] {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}
.see-less-btn[data-v-2f3473ef] {
    font-size: 12px;
    color: #6D51FE;
    cursor: pointer;
    font-weight: 500;
    text-decoration: none;
}
.see-less-btn[data-v-2f3473ef]:hover {
    text-decoration: underline;
}
.icon-fileUplod1[data-v-2f3473ef] {
    -webkit-mask-image: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20%2024C20.4244%2024%2020.8313%2023.8314%2021.1314%2023.5314C21.4315%2023.2313%2021.6%2022.8243%2021.6%2022.4V6.4968C21.5989%206.0727%2021.4304%205.66618%2021.1312%205.3656L16.2344%200.4688C15.9338%200.169609%2015.5273%200.00113768%2015.1032%200L4.00002%200C3.57568%200%203.16871%200.168571%202.86865%200.468629C2.5686%200.768687%202.40002%201.17565%202.40002%201.6V22.4C2.40002%2022.8243%202.5686%2023.2313%202.86865%2023.5314C3.16871%2023.8314%203.57568%2024%204.00002%2024H20ZM20.2344%205.6H16.8C16.5879%205.6%2016.3844%205.51571%2016.2343%205.36569C16.0843%205.21566%2016%205.01217%2016%204.8V1.3656L20.2344%205.6ZM3.20002%2022.4V1.6C3.20002%201.38783%203.28431%201.18434%203.43434%201.03431C3.58437%200.884285%203.78785%200.8%204.00002%200.8H15.1032C15.1357%200.801217%2015.168%200.804423%2015.2%200.8096V4.8C15.2%205.22435%2015.3686%205.63131%2015.6687%205.93137C15.9687%206.23143%2016.3757%206.4%2016.8%206.4H20.7904C20.7956%206.43204%2020.7988%206.46437%2020.8%206.4968V22.4C20.8%2022.6122%2020.7157%2022.8157%2020.5657%2022.9657C20.4157%2023.1157%2020.2122%2023.2%2020%2023.2H4.00002C3.78785%2023.2%203.58437%2023.1157%203.43434%2022.9657C3.28431%2022.8157%203.20002%2022.6122%203.20002%2022.4Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2010.4H18C18.1061%2010.4%2018.2078%2010.3578%2018.2828%2010.2828C18.3578%2010.2078%2018.4%2010.1061%2018.4%209.99998C18.4%209.89389%2018.3578%209.79215%2018.2828%209.71713C18.2078%209.64212%2018.1061%209.59998%2018%209.59998H5.99998C5.89389%209.59998%205.79215%209.64212%205.71713%209.71713C5.64212%209.79215%205.59998%209.89389%205.59998%209.99998C5.59998%2010.1061%205.64212%2010.2078%205.71713%2010.2828C5.79215%2010.3578%205.89389%2010.4%205.99998%2010.4Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2013.6H18C18.1061%2013.6%2018.2078%2013.5579%2018.2828%2013.4829C18.3578%2013.4079%2018.4%2013.3061%2018.4%2013.2C18.4%2013.094%2018.3578%2012.9922%2018.2828%2012.9172C18.2078%2012.8422%2018.1061%2012.8%2018%2012.8H5.99998C5.89389%2012.8%205.79215%2012.8422%205.71713%2012.9172C5.64212%2012.9922%205.59998%2013.094%205.59998%2013.2C5.59998%2013.3061%205.64212%2013.4079%205.71713%2013.4829C5.79215%2013.5579%205.89389%2013.6%205.99998%2013.6Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2016.8H18C18.1061%2016.8%2018.2078%2016.7579%2018.2828%2016.6828C18.3578%2016.6078%2018.4%2016.5061%2018.4%2016.4C18.4%2016.2939%2018.3578%2016.1922%2018.2828%2016.1172C18.2078%2016.0421%2018.1061%2016%2018%2016H5.99998C5.89389%2016%205.79215%2016.0421%205.71713%2016.1172C5.64212%2016.1922%205.59998%2016.2939%205.59998%2016.4C5.59998%2016.5061%205.64212%2016.6078%205.71713%2016.6828C5.79215%2016.7579%205.89389%2016.8%205.99998%2016.8Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2020H14C14.1061%2020%2014.2078%2019.9578%2014.2828%2019.8828C14.3578%2019.8078%2014.4%2019.706%2014.4%2019.6C14.4%2019.4939%2014.3578%2019.3921%2014.2828%2019.3171C14.2078%2019.2421%2014.1061%2019.2%2014%2019.2H5.99998C5.89389%2019.2%205.79215%2019.2421%205.71713%2019.3171C5.64212%2019.3921%205.59998%2019.4939%205.59998%2019.6C5.59998%2019.706%205.64212%2019.8078%205.71713%2019.8828C5.79215%2019.9578%205.89389%2020%205.99998%2020Z'%20fill='%23020631'/%3e%3c/svg%3e");
    mask-image: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20%2024C20.4244%2024%2020.8313%2023.8314%2021.1314%2023.5314C21.4315%2023.2313%2021.6%2022.8243%2021.6%2022.4V6.4968C21.5989%206.0727%2021.4304%205.66618%2021.1312%205.3656L16.2344%200.4688C15.9338%200.169609%2015.5273%200.00113768%2015.1032%200L4.00002%200C3.57568%200%203.16871%200.168571%202.86865%200.468629C2.5686%200.768687%202.40002%201.17565%202.40002%201.6V22.4C2.40002%2022.8243%202.5686%2023.2313%202.86865%2023.5314C3.16871%2023.8314%203.57568%2024%204.00002%2024H20ZM20.2344%205.6H16.8C16.5879%205.6%2016.3844%205.51571%2016.2343%205.36569C16.0843%205.21566%2016%205.01217%2016%204.8V1.3656L20.2344%205.6ZM3.20002%2022.4V1.6C3.20002%201.38783%203.28431%201.18434%203.43434%201.03431C3.58437%200.884285%203.78785%200.8%204.00002%200.8H15.1032C15.1357%200.801217%2015.168%200.804423%2015.2%200.8096V4.8C15.2%205.22435%2015.3686%205.63131%2015.6687%205.93137C15.9687%206.23143%2016.3757%206.4%2016.8%206.4H20.7904C20.7956%206.43204%2020.7988%206.46437%2020.8%206.4968V22.4C20.8%2022.6122%2020.7157%2022.8157%2020.5657%2022.9657C20.4157%2023.1157%2020.2122%2023.2%2020%2023.2H4.00002C3.78785%2023.2%203.58437%2023.1157%203.43434%2022.9657C3.28431%2022.8157%203.20002%2022.6122%203.20002%2022.4Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2010.4H18C18.1061%2010.4%2018.2078%2010.3578%2018.2828%2010.2828C18.3578%2010.2078%2018.4%2010.1061%2018.4%209.99998C18.4%209.89389%2018.3578%209.79215%2018.2828%209.71713C18.2078%209.64212%2018.1061%209.59998%2018%209.59998H5.99998C5.89389%209.59998%205.79215%209.64212%205.71713%209.71713C5.64212%209.79215%205.59998%209.89389%205.59998%209.99998C5.59998%2010.1061%205.64212%2010.2078%205.71713%2010.2828C5.79215%2010.3578%205.89389%2010.4%205.99998%2010.4Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2013.6H18C18.1061%2013.6%2018.2078%2013.5579%2018.2828%2013.4829C18.3578%2013.4079%2018.4%2013.3061%2018.4%2013.2C18.4%2013.094%2018.3578%2012.9922%2018.2828%2012.9172C18.2078%2012.8422%2018.1061%2012.8%2018%2012.8H5.99998C5.89389%2012.8%205.79215%2012.8422%205.71713%2012.9172C5.64212%2012.9922%205.59998%2013.094%205.59998%2013.2C5.59998%2013.3061%205.64212%2013.4079%205.71713%2013.4829C5.79215%2013.5579%205.89389%2013.6%205.99998%2013.6Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2016.8H18C18.1061%2016.8%2018.2078%2016.7579%2018.2828%2016.6828C18.3578%2016.6078%2018.4%2016.5061%2018.4%2016.4C18.4%2016.2939%2018.3578%2016.1922%2018.2828%2016.1172C18.2078%2016.0421%2018.1061%2016%2018%2016H5.99998C5.89389%2016%205.79215%2016.0421%205.71713%2016.1172C5.64212%2016.1922%205.59998%2016.2939%205.59998%2016.4C5.59998%2016.5061%205.64212%2016.6078%205.71713%2016.6828C5.79215%2016.7579%205.89389%2016.8%205.99998%2016.8Z'%20fill='%23020631'/%3e%3cpath%20d='M5.99998%2020H14C14.1061%2020%2014.2078%2019.9578%2014.2828%2019.8828C14.3578%2019.8078%2014.4%2019.706%2014.4%2019.6C14.4%2019.4939%2014.3578%2019.3921%2014.2828%2019.3171C14.2078%2019.2421%2014.1061%2019.2%2014%2019.2H5.99998C5.89389%2019.2%205.79215%2019.2421%205.71713%2019.3171C5.64212%2019.3921%205.59998%2019.4939%205.59998%2019.6C5.59998%2019.706%205.64212%2019.8078%205.71713%2019.8828C5.79215%2019.9578%205.89389%2020%205.99998%2020Z'%20fill='%23020631'/%3e%3c/svg%3e");
}
.icon-fileUplod2[data-v-2f3473ef] {
    -webkit-mask-image: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20.9638%203.1807H18.9397V1.15664C18.9397%200.520452%2018.4192%200%2017.7833%200H3.03611C2.39997%200%201.87952%200.520452%201.87952%201.15664V19.6626C1.87952%2020.2988%202.39997%2020.8193%203.03616%2020.8193H5.06026V22.8434C5.06026%2023.4795%205.58048%2024%206.2169%2024H16.0479C16.6838%2024%2017.5836%2023.6432%2018.0466%2023.2074L21.2776%2020.1661C21.7411%2019.7304%2022.1199%2018.853%2022.1199%2018.2169L22.1205%204.33743C22.1204%203.7012%2021.5999%203.1807%2020.9638%203.1807ZM5.06017%204.33738V19.9518H3.03611C2.87941%2019.9518%202.74698%2019.8194%202.74698%2019.6627V1.15664C2.74698%200.999936%202.87941%200.867514%203.03611%200.867514H17.7834C17.9398%200.867514%2018.0725%200.999936%2018.0725%201.15664V3.18074H6.21681C5.58038%203.18074%205.06017%203.7012%205.06017%204.33738ZM20.6831%2019.5345L17.452%2022.5756C17.3858%2022.6378%2017.2996%2022.6988%2017.2045%2022.7569V20.0964C17.2045%2019.8977%2017.2846%2019.719%2017.4167%2019.586C17.55%2019.4538%2017.7287%2019.3735%2017.9274%2019.3735H20.8204C20.7755%2019.4344%2020.7296%2019.4905%2020.6831%2019.5345ZM21.2524%2018.2168C21.2524%2018.3027%2021.2367%2018.4022%2021.213%2018.5059H17.9273C17.0498%2018.5077%2016.3387%2019.2187%2016.337%2020.0963V23.0974C16.2337%2023.1183%2016.1343%2023.1324%2016.0478%2023.1324H6.21681V23.1324C6.05977%2023.1324%205.92768%2023%205.92768%2022.8433V4.33734C5.92768%204.18063%206.05982%204.04821%206.21681%204.04821H20.9637C21.1204%204.04821%2021.2529%204.18063%2021.2529%204.33734L21.2524%2018.2168Z'%20fill='%23020631'/%3e%3cpath%20d='M17.7833%207.22888H9.39785C9.15813%207.22888%208.96411%207.4229%208.96411%207.66261C8.96411%207.90233%209.15817%208.09635%209.39785%208.09635H17.7833C18.0228%208.09635%2018.2171%207.90233%2018.2171%207.66261C18.2171%207.4229%2018.0228%207.22888%2017.7833%207.22888Z'%20fill='%23020631'/%3e%3cpath%20d='M17.7833%2013.012H9.39785C9.15813%2013.012%208.96411%2013.206%208.96411%2013.4457C8.96411%2013.6854%209.15817%2013.8794%209.39785%2013.8794H17.7833C18.0228%2013.8794%2018.2171%2013.6854%2018.2171%2013.4457C18.2171%2013.2059%2018.0228%2013.012%2017.7833%2013.012Z'%20fill='%23020631'/%3e%3cpath%20d='M14.0244%2015.9036H9.39791C9.15819%2015.9036%208.96417%2016.0976%208.96417%2016.3373C8.96417%2016.577%209.15819%2016.771%209.39791%2016.771H14.0244C14.2638%2016.771%2014.4578%2016.577%2014.4578%2016.3373C14.4578%2016.0976%2014.2638%2015.9036%2014.0244%2015.9036Z'%20fill='%23020631'/%3e%3cpath%20d='M17.7833%2010.1205H9.39785C9.15813%2010.1205%208.96411%2010.3145%208.96411%2010.5542C8.96411%2010.7939%209.15817%2010.988%209.39785%2010.988H17.7833C18.0228%2010.988%2018.2171%2010.7939%2018.2171%2010.5542C18.2171%2010.3145%2018.0228%2010.1205%2017.7833%2010.1205Z'%20fill='%23020631'/%3e%3c/svg%3e");
    mask-image: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M20.9638%203.1807H18.9397V1.15664C18.9397%200.520452%2018.4192%200%2017.7833%200H3.03611C2.39997%200%201.87952%200.520452%201.87952%201.15664V19.6626C1.87952%2020.2988%202.39997%2020.8193%203.03616%2020.8193H5.06026V22.8434C5.06026%2023.4795%205.58048%2024%206.2169%2024H16.0479C16.6838%2024%2017.5836%2023.6432%2018.0466%2023.2074L21.2776%2020.1661C21.7411%2019.7304%2022.1199%2018.853%2022.1199%2018.2169L22.1205%204.33743C22.1204%203.7012%2021.5999%203.1807%2020.9638%203.1807ZM5.06017%204.33738V19.9518H3.03611C2.87941%2019.9518%202.74698%2019.8194%202.74698%2019.6627V1.15664C2.74698%200.999936%202.87941%200.867514%203.03611%200.867514H17.7834C17.9398%200.867514%2018.0725%200.999936%2018.0725%201.15664V3.18074H6.21681C5.58038%203.18074%205.06017%203.7012%205.06017%204.33738ZM20.6831%2019.5345L17.452%2022.5756C17.3858%2022.6378%2017.2996%2022.6988%2017.2045%2022.7569V20.0964C17.2045%2019.8977%2017.2846%2019.719%2017.4167%2019.586C17.55%2019.4538%2017.7287%2019.3735%2017.9274%2019.3735H20.8204C20.7755%2019.4344%2020.7296%2019.4905%2020.6831%2019.5345ZM21.2524%2018.2168C21.2524%2018.3027%2021.2367%2018.4022%2021.213%2018.5059H17.9273C17.0498%2018.5077%2016.3387%2019.2187%2016.337%2020.0963V23.0974C16.2337%2023.1183%2016.1343%2023.1324%2016.0478%2023.1324H6.21681V23.1324C6.05977%2023.1324%205.92768%2023%205.92768%2022.8433V4.33734C5.92768%204.18063%206.05982%204.04821%206.21681%204.04821H20.9637C21.1204%204.04821%2021.2529%204.18063%2021.2529%204.33734L21.2524%2018.2168Z'%20fill='%23020631'/%3e%3cpath%20d='M17.7833%207.22888H9.39785C9.15813%207.22888%208.96411%207.4229%208.96411%207.66261C8.96411%207.90233%209.15817%208.09635%209.39785%208.09635H17.7833C18.0228%208.09635%2018.2171%207.90233%2018.2171%207.66261C18.2171%207.4229%2018.0228%207.22888%2017.7833%207.22888Z'%20fill='%23020631'/%3e%3cpath%20d='M17.7833%2013.012H9.39785C9.15813%2013.012%208.96411%2013.206%208.96411%2013.4457C8.96411%2013.6854%209.15817%2013.8794%209.39785%2013.8794H17.7833C18.0228%2013.8794%2018.2171%2013.6854%2018.2171%2013.4457C18.2171%2013.2059%2018.0228%2013.012%2017.7833%2013.012Z'%20fill='%23020631'/%3e%3cpath%20d='M14.0244%2015.9036H9.39791C9.15819%2015.9036%208.96417%2016.0976%208.96417%2016.3373C8.96417%2016.577%209.15819%2016.771%209.39791%2016.771H14.0244C14.2638%2016.771%2014.4578%2016.577%2014.4578%2016.3373C14.4578%2016.0976%2014.2638%2015.9036%2014.0244%2015.9036Z'%20fill='%23020631'/%3e%3cpath%20d='M17.7833%2010.1205H9.39785C9.15813%2010.1205%208.96411%2010.3145%208.96411%2010.5542C8.96411%2010.7939%209.15817%2010.988%209.39785%2010.988H17.7833C18.0228%2010.988%2018.2171%2010.7939%2018.2171%2010.5542C18.2171%2010.3145%2018.0228%2010.1205%2017.7833%2010.1205Z'%20fill='%23020631'/%3e%3c/svg%3e");
}
.icon-image-detect[data-v-2f3473ef] {
    -webkit-mask-image: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_755_3792)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M23%2010.793L18.5%2015.293L12.81%209.6035C12.265%209.057%2011.5225%208.75%2010.75%208.75C9.9775%208.75%209.235%209.057%208.69%209.6035L2.5%2015.793V6.25C2.5%205.974%202.275%205.75%202%205.75C1.725%205.75%201.5%205.974%201.5%206.25V22C1.5%2023.1045%202.395%2024%203.5%2024H22C22.53%2024%2023.04%2023.7892%2023.415%2023.4142C23.79%2023.0392%2024%2022.5305%2024%2022V3.5C24%202.3955%2023.105%201.5%2022%201.5C17.805%201.5%206.25%201.5%206.25%201.5C5.975%201.5%205.75%201.724%205.75%202C5.75%202.276%205.975%202.5%206.25%202.5H22C22.5525%202.5%2023%202.94775%2023%203.5V10.793ZM18.1475%2016.3535L12.1025%2010.3105C11.745%209.95175%2011.2575%209.75%2010.75%209.75C10.2425%209.75%209.75502%209.95175%209.39752%2010.3105L2.5%2017.207V22C2.5%2022.5522%202.9475%2023%203.5%2023H22C22.265%2023%2022.52%2022.8948%2022.7075%2022.707C22.895%2022.5195%2023%2022.2652%2023%2022V21.207L18.1475%2016.3535ZM19.2075%2016L23%2019.793V12.207L19.2075%2016ZM18%203.5C16.62%203.5%2015.5%204.62025%2015.5%206C15.5%207.37975%2016.62%208.5%2018%208.5C19.38%208.5%2020.5%207.37975%2020.5%206C20.5%204.62025%2019.38%203.5%2018%203.5ZM0.48999%203.5C0.21749%203.50525%200%203.72775%200%204.00025C0%204.27275%200.21749%204.495%200.48999%204.5C2.14749%204.5295%203.4925%205.84475%203.5%207.5025C3.5025%207.77775%203.725%208%204%208C4.275%208%204.4975%207.778%204.5%207.503C4.51%205.8475%205.8475%204.51475%207.505%204.5C7.78%204.4975%208%204.27475%208%204.0005C8%203.72625%207.78%203.503%207.505%203.5C5.84501%203.4825%204.5125%202.156%204.5%200.49625C4.4975%200.22175%204.275%200%204%200C3.725%200%203.5025%200.22175%203.5%200.49625C3.4875%202.1585%202.14499%203.469%200.48999%203.5ZM18%204.5C18.8275%204.5%2019.5%205.17225%2019.5%206C19.5%206.82775%2018.8275%207.5%2018%207.5C17.1725%207.5%2016.5%206.82775%2016.5%206C16.5%205.17225%2017.1725%204.5%2018%204.5ZM2.40503%203.9995C3.07503%203.6335%203.6275%203.086%203.9975%202.42075C4.365%203.08525%204.91502%203.6335%205.58002%203.99975C4.91502%204.3665%204.365%204.91475%204%205.578C3.63%204.9135%203.07503%204.3655%202.40503%203.9995Z'%20fill='%23020631'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_755_3792'%3e%3crect%20width='24'%20height='24'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
    mask-image: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_755_3792)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M23%2010.793L18.5%2015.293L12.81%209.6035C12.265%209.057%2011.5225%208.75%2010.75%208.75C9.9775%208.75%209.235%209.057%208.69%209.6035L2.5%2015.793V6.25C2.5%205.974%202.275%205.75%202%205.75C1.725%205.75%201.5%205.974%201.5%206.25V22C1.5%2023.1045%202.395%2024%203.5%2024H22C22.53%2024%2023.04%2023.7892%2023.415%2023.4142C23.79%2023.0392%2024%2022.5305%2024%2022V3.5C24%202.3955%2023.105%201.5%2022%201.5C17.805%201.5%206.25%201.5%206.25%201.5C5.975%201.5%205.75%201.724%205.75%202C5.75%202.276%205.975%202.5%206.25%202.5H22C22.5525%202.5%2023%202.94775%2023%203.5V10.793ZM18.1475%2016.3535L12.1025%2010.3105C11.745%209.95175%2011.2575%209.75%2010.75%209.75C10.2425%209.75%209.75502%209.95175%209.39752%2010.3105L2.5%2017.207V22C2.5%2022.5522%202.9475%2023%203.5%2023H22C22.265%2023%2022.52%2022.8948%2022.7075%2022.707C22.895%2022.5195%2023%2022.2652%2023%2022V21.207L18.1475%2016.3535ZM19.2075%2016L23%2019.793V12.207L19.2075%2016ZM18%203.5C16.62%203.5%2015.5%204.62025%2015.5%206C15.5%207.37975%2016.62%208.5%2018%208.5C19.38%208.5%2020.5%207.37975%2020.5%206C20.5%204.62025%2019.38%203.5%2018%203.5ZM0.48999%203.5C0.21749%203.50525%200%203.72775%200%204.00025C0%204.27275%200.21749%204.495%200.48999%204.5C2.14749%204.5295%203.4925%205.84475%203.5%207.5025C3.5025%207.77775%203.725%208%204%208C4.275%208%204.4975%207.778%204.5%207.503C4.51%205.8475%205.8475%204.51475%207.505%204.5C7.78%204.4975%208%204.27475%208%204.0005C8%203.72625%207.78%203.503%207.505%203.5C5.84501%203.4825%204.5125%202.156%204.5%200.49625C4.4975%200.22175%204.275%200%204%200C3.725%200%203.5025%200.22175%203.5%200.49625C3.4875%202.1585%202.14499%203.469%200.48999%203.5ZM18%204.5C18.8275%204.5%2019.5%205.17225%2019.5%206C19.5%206.82775%2018.8275%207.5%2018%207.5C17.1725%207.5%2016.5%206.82775%2016.5%206C16.5%205.17225%2017.1725%204.5%2018%204.5ZM2.40503%203.9995C3.07503%203.6335%203.6275%203.086%203.9975%202.42075C4.365%203.08525%204.91502%203.6335%205.58002%203.99975C4.91502%204.3665%204.365%204.91475%204%205.578C3.63%204.9135%203.07503%204.3655%202.40503%203.9995Z'%20fill='%23020631'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_755_3792'%3e%3crect%20width='24'%20height='24'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");
}
.attachment-icon-masked[data-v-2f3473ef] {
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}
.attachment-item-subdesc[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0px;
    color: #6A7282;
}
.custom-input-wrapper[data-v-2f3473ef] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
.custom-input-label[data-v-2f3473ef] {
    font-weight: 400;
    font-size: 14px;
    color: #020631;
    font-family: 'Poppins', sans-serif;
}
.custom-asterisk[data-v-2f3473ef] {
    color: #D60000;
}
.custom-modal-input[data-v-2f3473ef] {
    width: 100%;
    height: 40px;
    border-radius: 4px;
    border: 1px solid #C4CBDD;
    padding: 0 12px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
    font-family: 'Poppins', sans-serif;
}
.custom-modal-input[data-v-2f3473ef]:focus {
    border-color: #4353FF;
}
.custom-cancel-btn[data-v-2f3473ef] {
    background: transparent;
    border: none;
    color: #4353FF;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    padding: 8px 16px;
    transition: opacity 0.2s;
    font-family: 'Poppins', sans-serif;
}
.custom-cancel-btn[data-v-2f3473ef]:hover {
    opacity: 0.8;
}
.custom-save-btn[data-v-2f3473ef] {
    background: #4353FF;
    border: none;
    border-radius: 8px;
    color: #ffffff;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    padding: 8px 24px;
    transition: background 0.2s;
    font-family: 'Poppins', sans-serif;
}
.custom-save-btn[data-v-2f3473ef]:hover {
    background: #3541cc;
}

/* Global override for MessageDialog outline button since it is teleported to body */
.dialog-overlay .dialog-actions button {
    cursor: pointer !important;
}
.dialog-overlay .dialog-actions button:first-child:not(.cancel-btn)+button {
    border: 1px solid #4353ff !important;
    background-color: #fff !important;
    color: #4353ff !important;
}
.dialog-overlay .dialog-actions button:first-child:not(.cancel-btn)+button span {
    color: #4353ff !important;
}

/* Everything is fixed-position and self-contained: this mounts in the shell and must
   not inherit or leak layout into whatever app is on screen. */
.dm-recbar[data-v-d2eefceb] {
  position: fixed;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9000;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--color-primary-dark, #020631);
  color: #FFFFFF;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 12.5px;
  box-shadow: 0 8px 24px -12px rgba(2, 6, 49, 0.6);
}
.dm-dot[data-v-d2eefceb] {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--color-semantic-element-red, #D60000);
  flex: none;
  animation: dm-pulse-d2eefceb 1.6s ease-in-out infinite;
}
@keyframes dm-pulse-d2eefceb {
0%, 100% { opacity: 1
}
50% { opacity: 0.35
}
}
@media (prefers-reduced-motion: reduce) {
.dm-dot[data-v-d2eefceb] { animation: none
}
}
.dm-recbar-stat[data-v-d2eefceb] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; opacity: 0.85;
}
.dm-stop[data-v-d2eefceb] {
  appearance: none;
  border: 0;
  background: rgba(255, 255, 255, 0.16);
  color: #FFFFFF;
  border-radius: 6px;
  padding: 3px 9px;
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
}
.dm-instruction[data-v-d2eefceb] {
  position: fixed;
  bottom: 62px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9000;
  max-width: 420px;
  margin: 0;
  background: var(--color-surface-card, #FFFFFF);
  border: 1px solid var(--color-border-card, #C4CBDD);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 12px;
  color: var(--color-text-label, #47506A);
  box-shadow: 0 8px 24px -16px rgba(2, 6, 49, 0.6);
}

/* The FAB yields to any drawer already on screen rather than floating over it. */
.dm-fab-wrap[data-v-d2eefceb] {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 8000;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 9px;
}
.dm-fab[data-v-d2eefceb] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 0;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 6px 18px -8px rgba(67, 83, 255, 0.8);
}
.dm-fab[data-v-d2eefceb]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: 3px;
}
.dm-dock[data-v-d2eefceb] {
  display: inline-flex;
  flex-direction: column;
  gap: 1px;
  background: var(--color-surface-card, #FFFFFF);
  border: 1px solid var(--color-border-card, #C4CBDD);
  border-radius: 10px;
  padding: 5px;
  min-width: 210px;
  box-shadow: 0 10px 28px -16px rgba(2, 6, 49, 0.5);
}
.dm-dock-link[data-v-d2eefceb] {
  appearance: none;
  border: 0;
  background: none;
  text-align: left;
  display: block;
  padding: 8px 11px;
  border-radius: 6px;
  font: inherit;
  font-size: 12.5px;
  color: var(--color-primary-dark, #020631);
  cursor: pointer;
}
.dm-dock-link[data-v-d2eefceb]:hover { background: var(--color-semantic-bg-grey, #F5F5F5);
}
.dm-dock-link--quiet[data-v-d2eefceb] { color: var(--color-text-label, #47506A);
}
.dm-backdrop[data-v-d2eefceb] {
  position: fixed;
  inset: 0;
  z-index: 9500;
  background: rgba(2, 6, 49, 0.34);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
}
.dm-dialog[data-v-d2eefceb] {
  background: var(--color-surface-card, #FFFFFF);
  border-radius: 12px;
  padding: 20px 22px;
  width: 100%;
  max-width: 420px;
  max-height: 90vh;
  overflow-y: auto;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.dm-dialog--wide[data-v-d2eefceb] { max-width: 520px;
}
.dm-title[data-v-d2eefceb] { margin: 0 0 8px; font-size: 15px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.dm-body[data-v-d2eefceb] { margin: 0 0 9px; font-size: 12.5px; color: var(--color-text-label, #47506A);
}
.dm-note[data-v-d2eefceb] { margin: 9px 0 0; font-size: 11.5px; color: var(--color-text-helper, #535F7F); line-height: 1.5;
}
.dm-error[data-v-d2eefceb] {
  margin: 0 0 10px;
  padding: 8px 11px;
  border-radius: 8px;
  background: var(--color-semantic-bg-red, #FFECEB);
  color: var(--color-semantic-text-red, #B30000);
  font-size: 11.5px;
}
.dm-field[data-v-d2eefceb] { margin: 11px 0; position: relative;
}
.dm-field label[data-v-d2eefceb] { display: block; font-size: 12px; color: var(--color-text-label, #47506A); margin-bottom: 4px;
}
.dm-req[data-v-d2eefceb] { color: var(--color-semantic-element-red, #D60000);
}
.dm-field input[data-v-d2eefceb],
.dm-field select[data-v-d2eefceb],
.dm-field textarea[data-v-d2eefceb] {
  width: 100%;
  min-height: 36px;
  border: 1px solid var(--color-border-card, #C4CBDD);
  border-radius: 8px;
  padding: 7px 10px;
  font: inherit;
  font-size: 12.5px;
  color: var(--color-primary-dark, #020631);
  background: var(--color-surface-card, #FFFFFF);
}
.dm-field textarea[data-v-d2eefceb] { resize: vertical;
}
.dm-field small[data-v-d2eefceb] { display: block; font-size: 11px; color: var(--color-text-helper, #535F7F); margin-top: 3px;
}
.dm-auto[data-v-d2eefceb] { position: absolute; right: 10px; top: 30px; color: var(--color-primary, #4353FF);
}
.dm-row[data-v-d2eefceb] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
@media (max-width: 520px) {
.dm-row[data-v-d2eefceb] { grid-template-columns: 1fr;
}
}
.dm-chips[data-v-d2eefceb] { display: flex; gap: 6px; flex-wrap: wrap;
}
.dm-chip[data-v-d2eefceb] {
  height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--color-border-card, #C4CBDD);
  background: var(--color-surface-card, #FFFFFF);
  color: var(--color-text-label, #47506A);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.dm-chip[aria-pressed='true'][data-v-d2eefceb] {
  background: var(--color-primary, #4353FF);
  border-color: transparent;
  color: #FFFFFF;
}
.dm-check[data-v-d2eefceb] { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--color-text-label, #47506A);
}
.dm-check input[data-v-d2eefceb] { width: auto; min-height: 0;
}
.dm-panel-head[data-v-d2eefceb] {
  margin: 14px 0 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-placeholder, #9CA5BE);
}
.dm-captured[data-v-d2eefceb] {
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 11.5px;
  color: var(--color-text-helper, #535F7F);
}
.dm-counts[data-v-d2eefceb] { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 7px;
}
.dm-counts strong[data-v-d2eefceb] { color: var(--color-primary-dark, #020631);
}
.dm-context[data-v-d2eefceb] {
  color: var(--color-text-placeholder, #9CA5BE);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  overflow-wrap: anywhere;
}
.dm-truncated[data-v-d2eefceb] { margin: 7px 0 0; color: var(--color-semantic-text-orange, #B95100);
}
.dm-link[data-v-d2eefceb] {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-size: 11.5px;
  color: var(--color-semantic-element-blue, #0055D4);
  cursor: pointer;
  text-decoration: underline;
}
.dm-steps[data-v-d2eefceb] {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
}
.dm-steps li[data-v-d2eefceb] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  font-size: 11px;
}
.dm-steps li[data-v-d2eefceb]:last-child { border-bottom: 0;
}
.dm-step-at[data-v-d2eefceb] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--color-text-placeholder, #9CA5BE); flex: none;
}
.dm-step-kind[data-v-d2eefceb] { color: var(--color-text-helper, #535F7F); flex: none;
}
.dm-step-detail[data-v-d2eefceb] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--color-primary-dark, #020631);
}
.dm-remove[data-v-d2eefceb] {
  appearance: none;
  border: 0;
  background: none;
  color: var(--color-text-placeholder, #9CA5BE);
  font-size: 14px;
  cursor: pointer;
  padding: 0 4px;
}
.dm-remove[data-v-d2eefceb]:hover { color: var(--color-semantic-text-red, #B30000);
}
.dm-actions[data-v-d2eefceb] { display: flex; gap: 8px; justify-content: flex-end; margin-top: 14px;
}
.dm-btn[data-v-d2eefceb] {
  appearance: none;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 8px;
  border: 1px solid var(--color-border-card, #C4CBDD);
  background: var(--color-surface-card, #FFFFFF);
  color: var(--color-primary-dark, #020631);
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}
.dm-btn--primary[data-v-d2eefceb] {
  background: var(--color-primary, #4353FF);
  border-color: var(--color-primary, #4353FF);
  color: #FFFFFF;
}
.dm-btn[data-v-d2eefceb]:disabled { opacity: 0.55; cursor: not-allowed;
}

html,
body,
#app {
  height: 100%;
  margin: 0;
  overflow: hidden;
}

/*
 * ⚠ Every value here comes from a design token, matching WorkspaceSetupView's own field styles
 * exactly — 44px inputs, --font-family-body, --font-size-14, --color-text-label for labels. The
 * first version of this file hardcoded 40px, `font-family: inherit` and raw hex, so the dialog
 * rendered in a different font and a different rhythm from the step that opens it. A dialog that
 * looks like a different product is read as a different product.
 */
.modal-overlay[data-v-91107aa0] {
  position: fixed; inset: 0; background: rgba(2, 6, 49, 0.45);
  display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 24px;
}
.modal-card[data-v-91107aa0] {
  background: var(--color-bg-card, #FFFFFF); border-radius: 12px; width: 560px; max-width: 100%;
  max-height: calc(100vh - 48px); display: flex; flex-direction: column;
  box-shadow: 0 8px 32px rgba(2, 6, 49, 0.16);
}
.modal-header[data-v-91107aa0] {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 24px 28px 0; flex: 0 0 auto;
}
/* Same family and weight as .step-heading, one step down in size for a dialog. */
.modal-title[data-v-91107aa0] {
  font-family: var(--font-family-header); font-weight: 700; font-size: var(--font-size-20, 20px);
  color: var(--color-primary-dark, #020631); line-height: 28px; margin: 0;
}
.modal-sub[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-text-helper, #535F7F); margin: 4px 0 0; font-weight: 500;
}
.modal-close[data-v-91107aa0] {
  background: none; border: none; font-size: var(--font-size-16); line-height: 1;
  color: var(--color-text-placeholder, #9CA5BE); cursor: pointer; padding: 4px;
  font-family: var(--font-family-body);
}
.modal-close[data-v-91107aa0]:hover { color: var(--color-primary-dark, #020631);
}

/* The body scrolls, the footer does not — so Send is never below the fold on a short window. */
.modal-body[data-v-91107aa0] {
  padding: 20px 28px; display: flex; flex-direction: column; gap: 16px;
  overflow-y: auto; flex: 1 1 auto; min-height: 0;
}
.modal-footer[data-v-91107aa0] {
  display: flex; justify-content: flex-end; gap: 12px; padding: 16px 28px 24px;
  flex: 0 0 auto; border-top: 1px solid var(--color-border-default, #E5E7EF);
}

/* Matches .step-sub. */
.intro[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-text-label, #47506A); line-height: 20px; margin: 0;
}
.prior-note[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-12); color: #6B4E12;
  background: #FFF8E9; border: 1px solid #F2D9A0; border-radius: 8px; padding: 10px 12px;
  line-height: 18px;
}

/* ── Fields — byte-for-byte the wizard's own rules ───────────────────────── */
.field-wrap[data-v-91107aa0]   { display: flex; flex-direction: column; gap: 4px;
}
.field-label[data-v-91107aa0]  { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A);
}
.req[data-v-91107aa0]          { color: var(--color-error, #D60000); margin-left: 2px;
}
.optional[data-v-91107aa0]     { color: var(--color-text-helper, #535F7F); font-size: var(--font-size-12);
}
.field-input[data-v-91107aa0]  {
  height: 44px; border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  padding: 0 12px; font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631); background: var(--color-bg-card, #FFFFFF);
  outline: none; transition: border-color 0.15s; appearance: none; -webkit-appearance: none;
}
.field-input[data-v-91107aa0]:focus { border-color: var(--color-primary, #4353FF);
}
.field-input[data-v-91107aa0]::placeholder { color: var(--color-text-placeholder, #9CA5BE);
}
.field-input[data-v-91107aa0]:disabled {
  background: var(--color-bg-page, #F9F9FC); color: var(--color-text-placeholder, #9CA5BE);
  cursor: not-allowed;
}
.field-input--error[data-v-91107aa0] { border-color: var(--color-error, #D60000);
}
/* A textarea cannot inherit the 44px fixed height, so it overrides only that. */
.field-textarea[data-v-91107aa0] { height: auto; min-height: 108px; padding: 10px 12px; line-height: 20px; resize: vertical;
}
.field-hint[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-text-helper, #535F7F); line-height: 16px; margin: 0;
}
.field-error[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-error, #D60000); line-height: 16px; margin: 0;
}
.msg-row[data-v-91107aa0] { display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
}
.msg-count[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-text-placeholder, #9CA5BE); flex-shrink: 0;
}
.submit-error[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-error, #D60000); background: #FFF0F0; border-radius: 8px;
  padding: 10px 12px; margin: 0; line-height: 18px;
}

/* ── Phone — the wizard's composite field, unchanged ─────────────────────── */

/* ── Sent state ─────────────────────────────────────────────────────────── */
.sent-block[data-v-91107aa0] { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 8px 4px 4px;
}
.sent-mark[data-v-91107aa0] {
  width: 44px; height: 44px; border-radius: 50%; background: var(--color-success, #12A150);
  display: flex; align-items: center; justify-content: center; margin-bottom: 4px;
}
.sent-lead[data-v-91107aa0] {
  font-family: var(--font-family-header); font-weight: 700; font-size: var(--font-size-16);
  color: var(--color-primary-dark, #020631); margin: 0;
}
.sent-copy[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-text-label, #47506A); line-height: 22px; margin: 0;
}
.sent-note[data-v-91107aa0] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-text-helper, #535F7F); line-height: 18px; margin: 4px 0 0;
}

/* ── Buttons — the wizard's .btn-continue / .btn-back, at dialog scale ───── */
.btn-ghost[data-v-91107aa0] {
  height: 44px; padding: 0 20px; background: none;
  color: var(--color-primary, #4353FF); border: 1px solid var(--color-primary, #4353FF);
  border-radius: 8px; font-family: var(--font-family-body); font-weight: 500;
  font-size: var(--font-size-14); cursor: pointer; transition: background 0.15s;
}
.btn-ghost[data-v-91107aa0]:hover:not(:disabled) { background: #ECEEFF;
}
.btn-primary[data-v-91107aa0] {
  height: 44px; padding: 0 28px; background: var(--color-primary, #4353FF);
  color: #FFFFFF; border: none; border-radius: 8px;
  font-family: var(--font-family-body); font-weight: 600; font-size: var(--font-size-14);
  cursor: pointer; transition: background 0.15s;
}
.btn-primary[data-v-91107aa0]:hover:not(:disabled) { background: #3243EF;
}
.btn-primary[data-v-91107aa0]:disabled { background: var(--color-text-placeholder, #9CA5BE); cursor: not-allowed;
}
.btn-ghost[data-v-91107aa0]:disabled { opacity: 0.5; cursor: not-allowed;
}

/* ── Page shell ──────────────────────────────────────────────────────────── */
.setup-page[data-v-ac8b852a] {
  position: fixed; inset: 0;
  box-sizing: border-box;
  display: flex;
  overflow: hidden;
  background: var(--color-bg-page, #F9F9FC);
  padding: 24px 48px 24px 24px;
  gap: 40px;
}

/* ── Sidebar ──────────────────────────────────────────────────────────────── */
.setup-sidebar[data-v-ac8b852a] {
  width: 240px; flex-shrink: 0;
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 20px; padding: 28px 24px;
  display: flex; flex-direction: column; gap: 40px;
  align-self: stretch;
  overflow-y: auto;
}
.sidebar-brand[data-v-ac8b852a]  { display: flex; flex-direction: column; gap: 8px;
}
.sidebar-logo[data-v-ac8b852a]   { width: 140px; height: 26px; display: block;
}
.sidebar-tagline[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); line-height: 20px; margin: 0;
}
.sidebar-steps[data-v-ac8b852a] { display: flex; flex-direction: column;
}
.sidebar-step[data-v-ac8b852a]  { display: flex; align-items: flex-start; gap: 12px;
}
.step-clickable[data-v-ac8b852a] { cursor: pointer;
}
.step-clickable .step-lbl[data-v-ac8b852a]:hover { color: var(--color-primary, #4353FF);
}
.step-track[data-v-ac8b852a]  { display: flex; flex-direction: column; align-items: center; flex-shrink: 0;
}
.step-dot[data-v-ac8b852a]    { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.dot-active[data-v-ac8b852a]  { background: var(--color-primary, #4353FF);
}
.dot-done[data-v-ac8b852a]    { background: var(--color-primary, #4353FF);
}
.dot-idle[data-v-ac8b852a]    { background: #D1D5DB; border: none;
}
.dot-check[data-v-ac8b852a]   { width: 12px; height: 12px;
}
.step-vline[data-v-ac8b852a]  { width: 2px; height: 32px; background: var(--color-border-default, #E5E7EF); margin: 1px 0;
}
.step-vline.done[data-v-ac8b852a] { background: var(--color-primary, #4353FF);
}
.step-lbl[data-v-ac8b852a]    { font-family: var(--font-family-body); font-size: var(--font-size-14); line-height: 24px; transition: color 0.15s;
}
.step-sublbl[data-v-ac8b852a] { display: block; font-size: 11px; font-weight: 600; color: var(--color-primary, #4353FF); line-height: 16px;
}
.lbl-on[data-v-ac8b852a]      { color: var(--color-primary-dark, #020631); font-weight: 500;
}
.lbl-off[data-v-ac8b852a]     { color: var(--color-text-placeholder, #9CA5BE); font-weight: 400;
}

/* ── Sidebar sign-out (bottom-pinned via margin-top:auto on the flex column) ── */
.sidebar-bottom[data-v-ac8b852a] {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.signout-btn[data-v-ac8b852a] {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 10px 12px; border: none; border-radius: 8px; background: none;
  font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 400;
  color: var(--color-text-helper, #535F7F); cursor: pointer; transition: background 0.12s, color 0.12s;
}
.signout-btn[data-v-ac8b852a]:hover { background: #F5F5F5; color: var(--color-primary-dark, #020631);
}
.signout-icon[data-v-ac8b852a] { width: 18px; height: 18px; flex-shrink: 0;
}

/* ── Main ─────────────────────────────────────────────────────────────────── */
.setup-main[data-v-ac8b852a]   { flex: 1; padding-top: 24px; display: flex; flex-direction: column; min-width: 0; overflow: hidden;
}

/* ── Loading gate ─────────────────────────────────────────────────────────── */
.setup-loading[data-v-ac8b852a] { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px;
}
.setup-spinner[data-v-ac8b852a] {
  width: 36px; height: 36px; border-radius: 50%;
  border: 3px solid var(--color-border-default, #E5E7EF);
  border-top-color: var(--color-primary, #4353FF);
  animation: setup-spin-ac8b852a 0.7s linear infinite;
}
@keyframes setup-spin-ac8b852a {
to { transform: rotate(360deg);
}
}
.setup-loading-text[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); margin: 0;
}
.step-body[data-v-ac8b852a]    { flex: 1; min-height: 0; overflow-y: auto; padding-bottom: 8px; padding-right: 4px;
}
.step-heading[data-v-ac8b852a] { font-family: var(--font-family-header); font-weight: 700; font-size: var(--font-size-24); color: var(--color-primary-dark, #020631); line-height: 32px; margin: 0 0 8px;
}
.step-sub[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); line-height: 20px; margin: 0 0 32px;
}

/* ── Form grid ────────────────────────────────────────────────────────────── */
.form-grid[data-v-ac8b852a]    { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; margin-bottom: 32px;
}
.field-wrap[data-v-ac8b852a]   { display: flex; flex-direction: column; gap: 4px;
}
.field-wrap.full-width[data-v-ac8b852a] { grid-column: 1 / -1;
}
.locale-hint[data-v-ac8b852a]  { grid-column: 1 / -1; font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-text-helper, #535F7F); line-height: 16px; margin: -12px 0 0;
}
.field-label[data-v-ac8b852a]  { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A);
}
.req[data-v-ac8b852a]          { color: var(--color-error, #D60000); margin-left: 2px;
}
.optional[data-v-ac8b852a]     { color: var(--color-text-helper, #535F7F); font-size: var(--font-size-12);
}
.field-input[data-v-ac8b852a]  {
  height: 44px; border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  padding: 0 12px; font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631); background: var(--color-bg-card, #FFFFFF);
  outline: none; transition: border-color 0.15s; appearance: none; -webkit-appearance: none;
}
.field-input[data-v-ac8b852a]:focus { border-color: var(--color-primary, #4353FF);
}
.field-input[data-v-ac8b852a]::placeholder { color: var(--color-text-placeholder, #9CA5BE);
}
.field-input--disabled[data-v-ac8b852a], .field-input[data-v-ac8b852a]:disabled {
  background: var(--color-bg-page, #F9F9FC); color: var(--color-text-placeholder, #9CA5BE);
  cursor: not-allowed;
}
select.field-input[data-v-ac8b852a] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%2347506A' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 16px 16px;
  padding-right: 36px; cursor: pointer;
}
select.field-input[data-v-ac8b852a]:disabled { background-image: none; cursor: not-allowed;
}
select.field-input.is-placeholder[data-v-ac8b852a] { color: var(--color-text-placeholder, #9CA5BE);
}
.field-hint[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-text-helper, #535F7F); line-height: 16px; margin: 0;
}

/* ── Phone field (country code + number) ─────────────────────────────────── */

/* ── Billing cycle toggle (tier step) ───────────────────────────────────── */
.cycle-toggle-row[data-v-ac8b852a] { display: flex; justify-content: center; margin-bottom: 20px;
}
.cycle-toggle[data-v-ac8b852a] { display: flex; gap: 0; border: 1px solid #E5E7EF; border-radius: 8px; overflow: hidden; width: 100%;
}
.cycle-btn[data-v-ac8b852a] {
  padding: 8px 20px; border: none; background: #fff;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 13px; font-weight: 500; color: #47506A;
  cursor: pointer; transition: background 0.12s, color 0.12s;
  display: flex; align-items: center; justify-content: center; flex: 1; gap: 6px;
}
.cycle-btn--on[data-v-ac8b852a] { background: #EEF0FF; color: #4353FF; font-weight: 600;
}
.cycle-save-hint[data-v-ac8b852a] { color: #166534; font-weight: 600;
}

/* ── Tier grid ────────────────────────────────────────────────────────────── */
.tiers-loading[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); padding: 24px 0;
}
.tier-grid[data-v-ac8b852a] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  /* Reserve room above the grid for the lifted "Most popular" band so it never
     overlaps the Monthly/Yearly toggle row above. */
  margin-top: 26px;
  margin-bottom: 16px;
  align-items: stretch;
}

/* Popular wrapper — gradient FRAME around the card with a "Most popular" band
   on top. Lifted up by the band height (+ min-height compensation) so the inner
   card body is the SAME height as the sibling cards, not shrunk/inset. */
.tier-popular-wrapper[data-v-ac8b852a] {
  position: relative;
  margin-top: -18px;
  min-height: calc(100% + 18px);
  padding: 0 2px 2px;
  border-radius: 14px;
  background: linear-gradient(150.34deg, #1E1A8E 15.1%, #6B4FE0 57%, #9B7AE8 101.4%);
  display: flex; flex-direction: column;
}
.most-popular-label[data-v-ac8b852a] {
  height: 18px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-family-body); font-size: 11px;
  font-weight: 600; color: #FFFFFF; letter-spacing: 0.2px;
  white-space: nowrap;
}
.tier-card[data-v-ac8b852a] {
  position: relative;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px; padding: 16px;
  cursor: pointer; background: var(--color-bg-card, #FFFFFF);
  transition: border-color 0.15s, background 0.15s;
  display: flex; flex-direction: column; height: 100%; box-sizing: border-box;
}
.tier-card[data-v-ac8b852a]:hover:not(.selected) { border-color: var(--color-text-placeholder, #9CA5BE);
}

/* Popular card inside gradient frame — flush under the band, rounded bottom. */
.tier-card--popular[data-v-ac8b852a] {
  border: none;
  border-radius: 0 0 11px 11px;
  flex: 1;
}

/* Show more / less toggle */
.show-more-btn[data-v-ac8b852a] {
  display: block; width: 100%; margin-top: 8px;
  background: none; border: none; padding: 4px 0;
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-primary, #4353FF); cursor: pointer; text-align: left;
  font-weight: 500;
}
.show-more-btn[data-v-ac8b852a]:hover { text-decoration: underline;
}

/* Selected — blue tint bg */
.tier-card.selected[data-v-ac8b852a] {
  border: 2px solid var(--color-primary, #4353FF);
  background: #ECEEFF;
  padding: 15px;
  box-shadow: 2px 4px 12px 0px rgba(133, 40, 248, 0.24);
}

/* Selected badge (top-right checkmark) */
.selected-badge[data-v-ac8b852a] {
  position: absolute; top: 12px; right: 12px;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--color-primary, #4353FF);
  display: flex; align-items: center; justify-content: center;
}
.selected-badge svg[data-v-ac8b852a] { width: 12px; height: 12px;
}

/* Inner card content — :deep() required: TierCardContent uses a render function,
   so scoped attribute is not added to its internal elements. */
.tier-card[data-v-ac8b852a] .tier-card-inner { display: flex; flex-direction: column;
}

/* Always reserve space for selected-badge to prevent pill shift */
.tier-card[data-v-ac8b852a] .tier-header-row {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px; padding-right: 28px;
}
/* When selected, the absolute checkmark badge (20px + 12px right) sits top-right.
   Padding-right is already reserved above — no extra shift needed. */
.tier-card.selected[data-v-ac8b852a] .tier-header-row,
.tier-card--popular.selected[data-v-ac8b852a] .tier-header-row {
}
.tier-card[data-v-ac8b852a] .tier-code-label {
  font-family: var(--font-family-body); font-size: var(--font-size-14);
  font-weight: 600; color: var(--color-primary-dark, #020631);
}

/* User count pill — Figma: #e9f2ff bg, #0075ff border, #4353ff text */
.tier-card[data-v-ac8b852a] .user-pill {
  display: flex; align-items: center; gap: 4px; flex-shrink: 0;
  background: #E9F2FF; border: 1px solid #0075FF; border-radius: 20px; padding: 3px 8px;
}
.tier-card[data-v-ac8b852a] .user-icon { width: 16px; height: 16px; display: block; flex-shrink: 0;
}
.tier-card[data-v-ac8b852a] .user-pill-text { font-family: var(--font-family-body); font-size: var(--font-size-12); color: #4353FF; line-height: 18px; white-space: nowrap;
}
.tier-card[data-v-ac8b852a] .tier-price-row { display: flex; align-items: baseline; gap: 4px; margin-bottom: 8px;
}
/* .price-main kept without :deep for enterprise card template usage */
.price-main[data-v-ac8b852a] { font-family: var(--font-family-header); font-size: 32px; font-weight: 700; color: var(--color-primary-dark, #020631); line-height: 36px;
}
.tier-card[data-v-ac8b852a] .price-main { font-family: var(--font-family-header); font-size: 32px; font-weight: 700; color: var(--color-primary-dark, #020631); line-height: 36px;
}
.price-unit[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-primary-dark, #020631);
}
.tier-card[data-v-ac8b852a] .price-unit { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-primary-dark, #020631);
}
/* Yearly price extras — struck monthly×12 baseline + "Save X%" badge (mirrors app/suite tiles). */
/* Vertical price block: strike (yearly) → price+unit line → savings pill.
   One concern per line so nothing crowds. */
.tier-card[data-v-ac8b852a] .tier-price-block { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-bottom: 12px;
}
.tier-card[data-v-ac8b852a] .price-line { display: flex; align-items: baseline; gap: 4px;
}
.tier-card[data-v-ac8b852a] .price-strike { font-family: var(--font-family-body); font-size: 13px; color: #9CA5BE; text-decoration: line-through; white-space: nowrap; line-height: 16px;
}
.tier-card[data-v-ac8b852a] .price-save-badge { font-family: var(--font-family-body); font-size: 11px; font-weight: 600; padding: 2px 10px; border-radius: 20px; background: #DCFCE7; color: #166534; white-space: nowrap;
}
.tier-card[data-v-ac8b852a] .tier-plan-block { margin-bottom: 12px;
}
.tier-card[data-v-ac8b852a] .plan-name { font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600; color: #4353FF; margin: 0 0 2px; line-height: 20px;
}
.tier-card[data-v-ac8b852a] .billing-note { font-family: var(--font-family-body); font-size: var(--font-size-14); color: #68769C; margin: 0; line-height: 20px;
}
.tier-card[data-v-ac8b852a] .tier-divider { border: none; border-top: 1px solid var(--color-border-default, #E5E7EF); margin: 0 0 12px;
}
/* .feat-heading kept without :deep for enterprise card template usage */
.feat-heading[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600; color: var(--color-text-label, #47506A); margin: 0 0 8px; line-height: 20px;
}
.tier-card[data-v-ac8b852a] .feat-heading { font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600; color: var(--color-text-label, #47506A); margin: 0 0 8px; line-height: 20px;
}
.tier-card[data-v-ac8b852a] .tier-features { list-style: disc; padding-left: 20px; margin: 0; display: flex; flex-direction: column; gap: 2px;
}
.tier-card[data-v-ac8b852a] .tier-features li { font-family: var(--font-family-body); font-size: var(--font-size-12); color: #68769C; line-height: 20px;
}
.tier-card[data-v-ac8b852a] .tier-description { font-family: var(--font-family-body); font-size: var(--font-size-12); color: #68769C; margin: 4px 0 0; line-height: 18px;
}
.tier-card[data-v-ac8b852a] .tier-html-content { font-family: var(--font-family-body); font-size: var(--font-size-13, 13px); color: var(--color-primary-dark, #020631); margin-top: 12px; border-top: 1px solid var(--color-border-default, #E5E7EF); padding-top: 10px;
}

/* ── T5 Enterprise full-width gradient card ──────────────────────────────── */
.tier-enterprise[data-v-ac8b852a] {
  display: flex; align-items: center; gap: 24px;
  border-radius: 12px; padding: 16px 24px;
  margin-bottom: 16px;
  background: linear-gradient(-6.69deg, #1E1A8E 19.9%, #6B4FE0 78.4%, #9B7AE8 140.4%);
  overflow: hidden;
}
.enterprise-left[data-v-ac8b852a]   { min-width: 301px; flex-shrink: 0;
}
.enterprise-tier-label[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600; color: #FFFFFF; margin: 0 0 4px; line-height: 20px;
}
.enterprise-price-row[data-v-ac8b852a]  { display: flex; align-items: baseline; gap: 4px; margin-bottom: 8px;
}
.enterprise-price-row .price-main[data-v-ac8b852a] { color: #FFFFFF;
}
.enterprise-price-row .price-unit[data-v-ac8b852a] { color: rgba(255,255,255,0.8);
}
.enterprise-plan-block[data-v-ac8b852a] {}
.enterprise-plan-name[data-v-ac8b852a]  { font-family: var(--font-family-body); font-size: 20px; font-weight: 600; color: #FFFFFF; line-height: 30px; margin: 0 0 2px;
}
.enterprise-billing-note[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: rgba(255,255,255,0.8); line-height: 20px; margin: 0;
}
.enterprise-divider[data-v-ac8b852a] { width: 1px; align-self: stretch; background: rgba(255,255,255,0.3); flex-shrink: 0;
}
.enterprise-features[data-v-ac8b852a] { flex: 1;
}
.enterprise-features .feat-heading[data-v-ac8b852a] { color: #FFFFFF; margin-bottom: 8px;
}
.enterprise-feat-list[data-v-ac8b852a] { list-style: disc; padding-left: 20px; margin: 0; display: flex; flex-direction: column; gap: 2px;
}
.enterprise-feat-list li[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-12); color: rgba(255,255,255,0.9); line-height: 20px;
}
.enterprise-cta[data-v-ac8b852a] { flex-shrink: 0;
}
.btn-contact-us[data-v-ac8b852a] {
  display: inline-flex; align-items: center; height: 40px; padding: 0 20px;
  border: 1px solid #FFFFFF; border-radius: 8px;
  font-family: var(--font-family-body); font-size: var(--font-size-16); font-weight: 600;
  color: #FFFFFF; background: transparent; text-decoration: none; white-space: nowrap;
  transition: background 0.15s;
}
.btn-contact-us[data-v-ac8b852a]:hover { background: rgba(255,255,255,0.15);
}
.btn-contact-us[data-v-ac8b852a] { cursor: pointer;
}

/* Already asked. Sits inside the gradient card, so it is white-on-translucent rather than the
   green-on-white a success state would normally use — a light panel here would fight the card. */
.enterprise-cta[data-v-ac8b852a] { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; max-width: 260px;
}
.ent-requested[data-v-ac8b852a] {
  background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.45);
  border-radius: 10px; padding: 12px 14px; text-align: left; width: 100%;
}
.ent-requested-mark[data-v-ac8b852a] {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%; background: #12A150; margin-bottom: 6px;
}
.ent-requested-lead[data-v-ac8b852a] {
  font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600;
  color: #FFFFFF; margin: 0;
}
.ent-requested-copy[data-v-ac8b852a] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: rgba(255,255,255,0.88); line-height: 18px; margin: 3px 0 0;
}
.btn-contact-again[data-v-ac8b852a] {
  height: 32px; padding: 0 14px; border: 1px solid rgba(255,255,255,0.6); border-radius: 8px;
  background: transparent; color: #FFFFFF; cursor: pointer; white-space: nowrap;
  font-family: var(--font-family-body); font-size: var(--font-size-12); font-weight: 600;
  transition: background 0.15s;
}
.btn-contact-again[data-v-ac8b852a]:hover { background: rgba(255,255,255,0.15);
}

/* ── ACWB Banner ──────────────────────────────────────────────────────────── */
.acwb-banner[data-v-ac8b852a] {
  background: #EEF2FF; border: 1px solid #4353FF; border-radius: 12px;
  padding: 11px 12px; margin-bottom: 8px;
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: #0F172A; line-height: 18px;
}
.acwb-strong[data-v-ac8b852a] { color: #2D3FE5; font-weight: 600;
}

/* ── Step 3: Invite section ───────────────────────────────────────────────── */
.invite-section[data-v-ac8b852a] { position: relative; margin-bottom: 24px;
}
.invite-section--locked[data-v-ac8b852a] { min-height: 140px;
}
.invite-gate[data-v-ac8b852a] {
  position: absolute; inset: 0; z-index: 2;
  background: rgba(249,249,252,0.92); border: 1.5px dashed var(--color-border-default, #E5E7EF);
  border-radius: 8px; display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 8px; padding: 20px;
}
.invite-gate-title[data-v-ac8b852a] { font-family: var(--font-family-body); font-weight: 600; font-size: var(--font-size-14); color: var(--color-primary-dark, #020631); margin: 0;
}
.invite-gate-sub[data-v-ac8b852a]   { font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-text-label, #47506A); margin: 0; text-align: center;
}
.btn-upgrade-tier[data-v-ac8b852a]  {
  height: 36px; padding: 0 16px; background: none;
  border: 1px solid var(--color-primary, #4353FF); border-radius: 8px;
  font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 500;
  color: var(--color-primary, #4353FF); cursor: pointer;
}
.btn-upgrade-tier[data-v-ac8b852a]:hover { background: #ECEEFF;
}
.invite-table[data-v-ac8b852a] { display: flex; flex-direction: column; gap: 12px; transition: filter 0.2s, opacity 0.2s;
}
.invite-table--blur[data-v-ac8b852a] { filter: blur(3px); opacity: 0.4; pointer-events: none;
}
.invite-head[data-v-ac8b852a] { display: grid; grid-template-columns: 1fr 1fr 32px; gap: 12px; font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); padding-bottom: 8px;
}
.invite-row[data-v-ac8b852a]  { display: grid; grid-template-columns: 1fr 1fr 32px; gap: 12px; align-items: center;
}
.invite-row--owner[data-v-ac8b852a] { background: #F5F7FF; border-radius: 8px; padding: 2px 4px;
}
.owner-email-display[data-v-ac8b852a], .owner-role-display[data-v-ac8b852a] {
  display: flex; align-items: center;
  background: #F0F2FA; color: var(--color-text-label, #47506A);
  cursor: default; user-select: none;
}
.owner-you-badge[data-v-ac8b852a] {
  font-family: var(--font-family-body); font-size: var(--font-size-12); font-weight: 600;
  color: var(--color-primary, #4353FF); background: #ECEEFF;
  border-radius: 20px; padding: 2px 8px; text-align: center; white-space: nowrap;
}
.remove-row-btn[data-v-ac8b852a] { background: none; border: none; color: var(--color-text-placeholder, #9CA5BE); cursor: pointer; font-size: var(--font-size-14); padding: 0;
}
.remove-row-btn[data-v-ac8b852a]:hover { color: var(--color-error, #D60000);
}
.add-teammate-link[data-v-ac8b852a] { background: none; border: none; color: var(--color-primary, #4353FF); font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 500; cursor: pointer; padding: 0; text-align: left;
}
.add-teammate-link[data-v-ac8b852a]:hover { text-decoration: underline;
}

/* ── Workspace summary ───────────────────────────────────────────────────── */
.summary-section-label[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 12px;
}
.ws-summary-table[data-v-ac8b852a] { border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px; padding: 0 24px; margin-bottom: 16px; background: var(--color-bg-card, #FFFFFF);
}
.summary-row[data-v-ac8b852a] { display: flex; justify-content: space-between; align-items: center; padding: 14px 0;
}
.summary-key[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A);
}
.summary-val[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-primary-dark, #020631); font-weight: 500; text-align: right;
}
.summary-val--blue[data-v-ac8b852a] { color: var(--color-primary, #4353FF); font-weight: 600;
}
.summary-val--mktlink[data-v-ac8b852a] { display: flex; align-items: center; gap: 12px;
}
.btn-browse-inline[data-v-ac8b852a] { background: none; border: none; font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-primary, #4353FF); cursor: pointer; padding: 0;
}
.btn-browse-inline[data-v-ac8b852a]:hover { text-decoration: underline;
}
.summary-divider[data-v-ac8b852a] { border: none; border-top: 1px solid var(--color-border-default, #E5E7EF); margin: 0;
}
.summary-divider--bold[data-v-ac8b852a] { border-top: 2px solid var(--color-primary-dark, #020631);
}
.summary-row--total .summary-key[data-v-ac8b852a] { color: var(--color-primary-dark, #020631); font-weight: 500;
}


/* ── Footer ──────────────────────────────────────────────────────────────── */
.ea-granted[data-v-ac8b852a] { border: 1px solid var(--color-primary-light, #C9CEFF); background: var(--color-primary-lightest, #ECEEFF);
              border-radius: 10px; padding: 12px 14px; margin-bottom: 18px;
}
/*
 * ⚠ Every text rule in this file names the font. These two did not, so they fell through to the
 *   ambient default and the Early Access block was the one thing on the page in a different
 *   typeface. An omitted font-family is not "inherit the house font" here.
 */
.ea-granted-t[data-v-ac8b852a] { margin: 0 0 2px; font-family: var(--font-family-body); font-size: 13px; font-weight: 600; color: var(--color-primary-dark, #020631);
}
.ea-granted-d[data-v-ac8b852a] { margin: 0; font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-primary-dark, #020631); line-height: 18px;
}
.ea-codebox[data-v-ac8b852a] { display: flex; flex-direction: column; gap: 4px; margin-bottom: 18px;
}
.ea-coderow[data-v-ac8b852a] { display: flex; gap: 8px; align-items: center;
}
/*
 * The house font, not monospace. A code field is one of the few places monospace earns its keep
 * (0 vs O, 1 vs l), but nothing else in this product uses it and one field in a second typeface
 * reads as a different product. `uppercase` stays: the code IS uppercase, and normalising what is
 * typed is behaviour rather than decoration.
 */
.ea-code[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-14); letter-spacing: 0.5px; text-transform: uppercase; max-width: 280px;
}
.step-footer[data-v-ac8b852a] {
  display: flex; justify-content: flex-end; align-items: center; gap: 12px;
  padding-top: 20px; padding-bottom: 20px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  flex-shrink: 0;
  background: var(--color-bg-page, #F9F9FC);
}
.btn-continue[data-v-ac8b852a] {
  height: 44px; padding: 0 28px; background: var(--color-primary, #4353FF);
  color: #FFFFFF; border: none; border-radius: 8px;
  font-family: var(--font-family-body); font-weight: 600; font-size: var(--font-size-14);
  cursor: pointer; transition: background 0.15s;
}
.btn-continue[data-v-ac8b852a]:hover:not(:disabled) { background: #3243EF;
}
.btn-continue[data-v-ac8b852a]:disabled { background: var(--color-text-placeholder, #9CA5BE); cursor: not-allowed;
}
.btn-back[data-v-ac8b852a] {
  height: 44px; padding: 0 20px; background: none;
  color: var(--color-primary, #4353FF); border: 1px solid var(--color-primary, #4353FF);
  border-radius: 8px; font-family: var(--font-family-body); font-weight: 500; font-size: var(--font-size-14);
  cursor: pointer; margin-right: auto; transition: background 0.15s;
}
.btn-back[data-v-ac8b852a]:hover { background: #ECEEFF;
}
.btn-marketplace[data-v-ac8b852a] {
  height: 44px; padding: 0 20px; background: none;
  color: var(--color-primary, #4353FF); border: 1px solid var(--color-primary, #4353FF);
  border-radius: 8px; font-family: var(--font-family-body); font-weight: 500; font-size: var(--font-size-14);
  cursor: pointer; white-space: nowrap; transition: background 0.15s;
}
.btn-marketplace[data-v-ac8b852a]:hover { background: #ECEEFF;
}
.step-error[data-v-ac8b852a] { font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-error, #D60000); background: rgba(214,0,0,0.05); border-radius: 8px; padding: 10px 12px; margin-bottom: 16px;
}

.db-strip[data-v-6c0564a0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: var(--radius-md, 8px);
  box-sizing: border-box;
}
.db-strip--orange[data-v-6c0564a0] { background: var(--color-semantic-bg-orange, #FFF3EB);
}
.db-strip--purple[data-v-6c0564a0] { background: var(--color-semantic-bg-purple, #F5EEFB);
}
.db-strip--blue[data-v-6c0564a0]   { background: var(--color-semantic-bg-blue, #E9F2FF);
}
.db-strip--plain[data-v-6c0564a0]  { background: var(--color-bg-card, #ffffff);
}
.db-message[data-v-6c0564a0] {
  margin: 0;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 400;
  font-size: 13px;
  line-height: 18px;
  color: var(--color-text-label, #47506A);
}
.db-close[data-v-6c0564a0] {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: var(--radius-sm, 4px);
  background: none;
  cursor: pointer;
  color: var(--color-text-label, #47506A);
  transition: background 0.12s;
}
.db-close[data-v-6c0564a0]:hover { background: rgba(2, 6, 49, 0.06);
}
.db-close-icon[data-v-6c0564a0] { width: 12px; height: 12px; display: block;
}

/* ── Step-nav sidebar ───────────────────────────────────────────────────────── */
.setup-sidebar[data-v-196a6bd9] { width: 240px; flex-shrink: 0; background: var(--color-bg-card, #FFFFFF); border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 20px; padding: 28px 24px; display: flex; flex-direction: column; gap: 40px; align-self: stretch; overflow-y: auto;
}
.sidebar-brand[data-v-196a6bd9] { display: flex; flex-direction: column; gap: 8px;
}
.sidebar-logo[data-v-196a6bd9] { width: 140px; height: 26px; display: block;
}
.sidebar-tagline[data-v-196a6bd9] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); line-height: 20px; margin: 0;
}
.sidebar-steps[data-v-196a6bd9] { display: flex; flex-direction: column;
}
.sidebar-step[data-v-196a6bd9] { display: flex; align-items: flex-start; gap: 12px;
}
.step-track[data-v-196a6bd9] { display: flex; flex-direction: column; align-items: center; flex-shrink: 0;
}
.step-dot[data-v-196a6bd9] { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.dot-active[data-v-196a6bd9] { background: var(--color-primary, #4353FF);
}
.dot-done[data-v-196a6bd9] { background: var(--color-primary, #4353FF);
}
.dot-idle[data-v-196a6bd9] { background: #D1D5DB; border: none;
}
.dot-check[data-v-196a6bd9] { width: 12px; height: 12px;
}
.step-vline[data-v-196a6bd9] { width: 2px; height: 32px; background: var(--color-border-default, #E5E7EF); margin: 1px 0;
}
.step-vline.done[data-v-196a6bd9] { background: var(--color-primary, #4353FF);
}
.step-lbl[data-v-196a6bd9] { font-family: var(--font-family-body); font-size: var(--font-size-14); line-height: 24px; transition: color 0.15s;
}
.lbl-on[data-v-196a6bd9] { color: var(--color-primary-dark, #020631); font-weight: 500;
}
.lbl-off[data-v-196a6bd9] { color: var(--color-text-placeholder, #9CA5BE); font-weight: 400;
}
.step-sublbl[data-v-196a6bd9] { display: block; font-size: 11px; font-weight: 600; color: var(--color-primary, #4353FF); line-height: 16px;
}

/* ── Sidebar sign-out ── */
.sidebar-bottom[data-v-196a6bd9] { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.signout-btn[data-v-196a6bd9] {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 10px 12px; border: none; border-radius: 8px; background: none;
  font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 400;
  color: var(--color-text-helper, #535F7F); cursor: pointer; transition: background 0.12s, color 0.12s;
}
.signout-btn[data-v-196a6bd9]:hover { background: #F5F5F5; color: var(--color-primary-dark, #020631);
}
.signout-icon[data-v-196a6bd9] { width: 18px; height: 18px; flex-shrink: 0;
}

/* ── Page shell ─────────────────────────────────────────────────────────────── */
.mp-page[data-v-196a6bd9] {
  position: fixed; inset: 0;
  box-sizing: border-box;
  display: flex;
  overflow: hidden;
  background: var(--color-bg-page, #F9F9FC);
  padding: 24px 48px 24px 24px;
  gap: 40px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.mp-page button[data-v-196a6bd9],
.mp-page input[data-v-196a6bd9],
.mp-page select[data-v-196a6bd9],
.mp-page textarea[data-v-196a6bd9] {
  font-family: inherit;
}

/* ── Main content column ────────────────────────────────────────────────────── */
.mp-main[data-v-196a6bd9] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding-top: 24px;
  overflow: hidden;
}
.mp-body[data-v-196a6bd9] {
  flex: 1;
  min-height: 0;
  display: flex;
  overflow: hidden;
}
.mp-catalog[data-v-196a6bd9] {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  /* The scroll container had zero padding, so the first row of cards butted
     straight against the tab bar, the outer columns were flush with the scroll
     edge (clipping their shadows into a hard vertical cut), and the last row had
     nothing under it. Symmetric side padding + a deep bottom gutter fixes all
     three; the side value has to be at least the shadow's blur radius or the
     cut comes back. */
  padding: 8px 8px 40px;
  scrollbar-width: thin;
  scrollbar-color: var(--scroll-thumb) transparent;
}
.mp-catalog[data-v-196a6bd9]::-webkit-scrollbar { width: 8px;
}
.mp-catalog[data-v-196a6bd9]::-webkit-scrollbar-track { background: transparent;
}
.mp-catalog[data-v-196a6bd9]::-webkit-scrollbar-thumb {
  background: var(--scroll-thumb);
  border-radius: 999px;
  /* Transparent border + padding-box clip = the thumb reads as a floating pill
     with air around it rather than a bar wedged against the content. */
  border: 2px solid transparent;
  background-clip: padding-box;
}
.mp-catalog[data-v-196a6bd9]::-webkit-scrollbar-thumb:hover { background: var(--scroll-thumb-hover); background-clip: padding-box;
}

/* ── Brand row ──────────────────────────────────────────────────────────────── */
.mp-brand[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}
.mp-logo[data-v-196a6bd9]    { height: 28px; width: auto;
}
.mp-tagline[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-text-label, #47506A);
}

/* ── Page heading ───────────────────────────────────────────────────────────── */
.step-heading[data-v-196a6bd9] { font-family: var(--font-family-header); font-weight: 700; font-size: var(--font-size-24); color: var(--color-primary-dark, #020631); line-height: 32px; margin: 0 0 8px;
}
.step-sub[data-v-196a6bd9] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); line-height: 20px; margin: 0 0 24px;
}

/* ── Glassy scrolling tab bar ────────────────────────────────────────────────
   MIRRORED in views/marketplace/MktBrowseView.vue — the two catalogs are meant
   to look identical, so any change here must be made there too. (Same
   duplicate-with-a-named-contract approach as assets/css/banner-content.css;
   this app has no shared-component tooling for scoped styles, and the shared
   values that CAN be hoisted live in assets/css/tokens.css.)

   Replaces a native `scrollbar-width: thin` bar plus a sticky pinned last tab.
   Three problems with that: the OS scrollbar sat hard against the tabs, the
   pinned tab needed an opaque background and a hard shadow edge to hide the
   tabs sliding under it, and the row was clipped flush at both ends so a
   half-cut tab looked like a rendering fault rather than a scroll cue.

   Now: one translucent blurred surface, a slim rounded thumb that only appears
   on hover, and a mask that FADES the row at both ends instead of cutting it. */
.mp-tabs-wrap[data-v-196a6bd9] {
  position: relative;
  /* Flex row: the scrolling tab list plus the pinned App Suites tab beside it. */
  display: flex;
  align-items: stretch;
  border-radius: var(--radius-lg, 12px);
  background: var(--glass-surface);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-highlight);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  padding: 2px 2px 0;
  margin-bottom: 4px;
}
.mp-tabs[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  /* min-width:0 is what actually lets this scroll — without it the flex item
     grows to fit its content and the row never overflows, so no tab is ever
     hidden and the pinned tab has nothing to be pinned against. */
  flex: 1;
  min-width: 0;
  margin-bottom: 0;
  overflow-x: auto;              /* horizontal scroll so every tab is reachable */
  /* The fade IS the scroll affordance, which is why the pinned last tab could go.
     The inline padding MUST match the fade width: without it, a row that does not
     overflow still gets its first and last tab faded — which ate the "Bundle deals"
     badge on the App Suites tab. With it, the fade only ever covers empty gutter
     at rest, and tabs pass through it once there is something to scroll. */
  padding-inline: 12px;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
  /* Firefox: no ::-webkit-scrollbar, so ask for the thin native bar and colour
     it to match the thumb below. Cannot be hover-only there. */
  scrollbar-width: thin;
  scrollbar-color: var(--scroll-thumb) transparent;
}
.mp-tabs[data-v-196a6bd9]::-webkit-scrollbar { height: 6px;
}
.mp-tabs[data-v-196a6bd9]::-webkit-scrollbar-track { background: transparent;
}
.mp-tabs[data-v-196a6bd9]::-webkit-scrollbar-thumb {
  background: transparent;       /* idle: invisible, so the row reads as flat */
  border-radius: 999px;
  transition: background 0.18s;
}
.mp-tabs-wrap:hover .mp-tabs[data-v-196a6bd9]::-webkit-scrollbar-thumb { background: var(--scroll-thumb);
}
.mp-tabs[data-v-196a6bd9]::-webkit-scrollbar-thumb:hover { background: var(--scroll-thumb-hover);
}
.mp-tab[data-v-196a6bd9] {
  padding: 8px 16px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-text-label, #47506A);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  border-radius: var(--radius-md, 8px) var(--radius-md, 8px) 0 0;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.mp-tab.active[data-v-196a6bd9] {
  color: var(--color-primary, #4353FF);
  border-bottom-color: var(--color-primary, #4353FF);
  font-weight: 500;
  background: rgba(255, 255, 255, 0.72);
}
.mp-tab[data-v-196a6bd9]:hover:not(.active) {
  color: var(--color-primary-dark, #020631);
  background: rgba(255, 255, 255, 0.5);
}
/* Pinned App Suites tab — sibling of the scroller, never scrolls, never masked.
   The divider is what makes it read as pinned rather than as simply the next tab
   in the row; without it the tabs scrolling past look like they merge into it. */
.mp-tab--pinned[data-v-196a6bd9] {
  flex-shrink: 0;
  border-left: 1px solid var(--glass-border);
  padding-left: 14px;
}

/* Bundle-deals badge on App Suites tab */
.mp-tab-deals-badge[data-v-196a6bd9] {
  display: inline-block;
  font-size: 10px; font-weight: 700;
  background: #DCFCE7; color: #166534;
  border-radius: 20px; padding: 1px 7px;
  margin-left: 5px; vertical-align: middle; white-space: nowrap;
}
.mp-rule[data-v-196a6bd9] {
  border: none;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  margin: 0 0 20px;
}

/* ── Heading actions (tier dropdown + cart) ─────────────────────────────────── */
.mp-heading-actions[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

/* ── Tier dropdown ──────────────────────────────────────────────────────────── */
.tier-dropdown-wrap[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  padding: 0 12px;
  height: 44px;
  transition: border-color 0.15s;
}
.tier-dropdown-wrap[data-v-196a6bd9]:focus-within {
  border-color: var(--color-primary, #4353FF);
}
.tier-dropdown-label[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  font-weight: 600;
  color: var(--color-text-label, #47506A);
  white-space: nowrap;
  flex-shrink: 0;
}
.tier-dropdown-select-wrap[data-v-196a6bd9] {
  position: relative;
  display: flex;
  align-items: center;
}
.tier-dropdown-error[data-v-196a6bd9] {
  margin: 4px 0 0;
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  color: var(--color-text-danger, #B42318);
}
.tier-dropdown-select[data-v-196a6bd9] {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  font-weight: 500;
  color: var(--color-primary-dark, #020631);
  padding-right: 20px;
  cursor: pointer;
  min-width: 160px;
}
.tier-dropdown-arrow[data-v-196a6bd9] {
  position: absolute;
  right: 0;
  width: 16px;
  height: 16px;
  pointer-events: none;
  flex-shrink: 0;
}

/* ── Filter bar (cycle toggle + search in one row) ────────────────────────── */
.mp-filter-bar[data-v-196a6bd9] { display:flex; align-items:center; gap:16px; padding:8px 0 6px;
}
.mp-filter-bar .mkt-search-wrap[data-v-196a6bd9] { flex:1; min-width:0; margin-bottom:0;
}
.mp-filter-bar .mkt-cycle-bar[data-v-196a6bd9] { margin:0; flex-shrink:0;
}

/* ── Search ────────────────────────────────────────────────────────────────── */
.mkt-search-wrap[data-v-196a6bd9] {
  position: relative;
  margin-bottom: 16px;
}
.mkt-search-icon[data-v-196a6bd9] {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
.mkt-search[data-v-196a6bd9] {
  width: 100%;
  height: 38px;
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 8px;
  padding: 0 12px 0 34px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
  outline: none;
  box-sizing: border-box;
}
.mkt-search[data-v-196a6bd9]:focus { border-color: var(--color-primary, #4353FF);
}
.mkt-search[data-v-196a6bd9]::placeholder { color: var(--color-text-placeholder, #9CA5BE);
}

/* ── Status line ───────────────────────────────────────────────────────────── */
.mp-status[data-v-196a6bd9] {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-text-label, #47506A);
  padding: 24px 0;
}
.mp-status--error[data-v-196a6bd9] { color: var(--color-error, #D60000);
}
.mp-status-spinner[data-v-196a6bd9] {
  display: inline-block; width: 18px; height: 18px; flex-shrink: 0;
  border: 2px solid var(--color-border-default, #E5E7EF);
  border-top-color: var(--color-primary, #4353FF);
  border-radius: 50%;
  animation: mp-spin-196a6bd9 0.75s linear infinite;
}
@keyframes mp-spin-196a6bd9 {
to { transform: rotate(360deg);
}
}

/* ── App grid — equal-height cards ───────────────────────────────────────────── */
/* Responsive columns (auto-fill 300px min → naturally 3→2→1 as width shrinks).
   .app-grid, .suites-grid and .platform-default-grid all share this identical
   rule so every tab lays out the same. */
.app-grid[data-v-196a6bd9],
.suites-grid[data-v-196a6bd9] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  align-items: stretch;
}

/* billing cycle toggle lives on the tier step, not here */

/* ── Vertical app card (matches admin catalog preview — icon+name/category
   row on top, description below, price+action footer at the bottom) ──────── */
.app-card[data-v-196a6bd9] {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 12px;
  background: var(--color-bg-card, #FFFFFF);
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  box-shadow: var(--shadow-card);
  box-sizing: border-box;
  /* Fixed card height — uniform across every app tab. With the 2-line desc
     block reserved, natural content ≈ this, so the footer sits right under the
     text with no dead space. */
  min-height: 182px;
}
.app-card-top[data-v-196a6bd9] { display: flex; align-items: center; gap: 10px;
}
.app-card-title-block[data-v-196a6bd9] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.app-price-area[data-v-196a6bd9] { display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:6px;min-width:0
}
.price-current[data-v-196a6bd9] { font-family:var(--font-family-body);font-weight:700;font-size:15px;color:#020631;white-space:nowrap
}
.price-original[data-v-196a6bd9] { font-family:var(--font-family-body);font-size:12px;color:#9CA5BE;text-decoration:line-through;white-space:nowrap
}
.price-save[data-v-196a6bd9] { font-family:var(--font-family-body);font-size:10px;font-weight:700;padding:2px 7px;background:#DCFCE7;color:#166534;border-radius:20px;text-align:center;white-space:nowrap
}
.price-save--yearly[data-v-196a6bd9] { background:#DCFCE7;color:#166534
}
.price-included[data-v-196a6bd9] { font-family:var(--font-family-body);font-size:12px;font-weight:600;color:#7C3AED
}
.app-card[data-v-196a6bd9]:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-1px); border-color: #C7CEF0;
}
.app-card--cs[data-v-196a6bd9] {
  background: #FFF7F2;
  border-color: #F9C9A8;
}
.app-card--cs[data-v-196a6bd9]:hover { box-shadow: 0 0 0 3px rgba(249,115,22,0.12); border-color: #F5A876;
}
.coming-soon-ribbon[data-v-196a6bd9] {
  position: absolute;
  top: 16px;
  right: -24px;
  width: 120px;
  background: linear-gradient(135deg, #F97316, #E84040);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-align: center;
  text-transform: uppercase;
  padding: 6px 0;
  transform: rotate(45deg);
  box-shadow: 0 3px 8px rgba(232,64,64,0.35);
  z-index: 1;
  pointer-events: none;
}
.default-ribbon[data-v-196a6bd9] {
  position: absolute;
  top: 13px;
  right: -22px;
  width: 130px;
  background: linear-gradient(135deg, #7C3AED, #5B21B6);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-align: center;
  text-transform: uppercase;
  padding: 4px 0;
  transform: rotate(45deg);
  box-shadow: 0 3px 8px rgba(91,33,182,0.35);
  z-index: 1;
  pointer-events: none;
}

/* App icon — matches AppTileIcon for non-variant cards */
.app-card-icon[data-v-196a6bd9] {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, #5E4ED4, #4353FF);
  display: flex; align-items: center; justify-content: center;
}
.app-initials[data-v-196a6bd9] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 700; font-size: var(--font-size-14, 14px);
  color: #FFFFFF; line-height: 1; user-select: none;
  letter-spacing: -0.3px;
}
.app-icon-img[data-v-196a6bd9] {
  width: 55%; height: 55%; object-fit: contain;
  filter: brightness(0) invert(1);
}
.app-card-name[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-weight: 600;
  font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
  margin: 0;
  line-height: 18px;
}
.app-card-name-row[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.app-card-name-row .app-card-name[data-v-196a6bd9] { flex: 1; min-width: 0;
}

/* DEF-145 — "about this app" affordance. Inline beside the name, never the card corner:
   .coming-soon-ribbon / .default-ribbon are absolutely positioned there and rotated 45deg,
   so a corner button would sit under the ribbon on exactly the tiles that carry one.
   Same rules as MktBrowseView's copy — these are separate scoped stylesheets. */
.app-card-name-wrap[data-v-196a6bd9] { display: flex; align-items: center; gap: 4px; min-width: 0;
}
/* ⚠ `.app-card-name-row .app-card-name { flex: 1 }` above still matches the name INSIDE this
   wrapper, which stretched every name box to a fixed 262px and pushed the glyph to the card's
   right edge — the corner. The in-app marketplace puts it immediately after the text, so this
   screen did the same thing two different ways. Beside the name is the one that survives:
   the corner is where .coming-soon-ribbon / .default-ribbon already sit, rotated 45deg. */
.app-card-name-row .app-card-name-wrap .app-card-name[data-v-196a6bd9] { flex: 0 1 auto;
}
.app-detail-icon[data-v-196a6bd9] {
  flex: 0 0 auto;
  cursor: pointer;
  font-size: 12px;
  line-height: 1;
  background: none;
  border: none;
  padding: 0;
  color: var(--color-text-placeholder, #9CA5BE);
  transition: color 0.15s;
}
.app-detail-icon[data-v-196a6bd9]:hover { color: var(--color-primary, #4353FF);
}
.app-detail-icon[data-v-196a6bd9]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: 2px; border-radius: 3px;
}

/* ── Platform Default section (PLAN-043) ────────────────────────────────────── */
.platform-default-section[data-v-196a6bd9] {
  margin-bottom: 24px;
}
.platform-default-heading[data-v-196a6bd9] {
  font-family: var(--font-family-header);
  font-weight: 700;
  font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
  margin: 0 0 4px;
}
.platform-default-sub[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  color: var(--color-text-label, #47506A);
  margin: 0 0 12px;
}
.platform-default-grid[data-v-196a6bd9] {
  margin-bottom: 0;
}
.app-card--default[data-v-196a6bd9] {
  background: #FBFAFF;
  border-color: #DDD6FE;
}

/* ── Pills (mirrors platform-admin-ui's AdminMarketplaceView "Default" pill) ── */
.pill[data-v-196a6bd9] {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.2px;
  white-space: nowrap;
  flex-shrink: 0;
}
.pill--purple[data-v-196a6bd9] { background: #EDE9FE; color: #5B21B6;
}
.app-card-added-chip[data-v-196a6bd9] {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 18px;
  padding: 0 6px;
  background: #ECEEFF;
  color: var(--color-primary, #4353FF);
  border-radius: 4px;
  font-family: var(--font-family-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2px;
  white-space: nowrap;
}
.suite-info-icon[data-v-196a6bd9] {
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  /* reset button chrome so it matches the inline ⓘ glyph */
  background: none;
  border: none;
  padding: 0 0 0 2px;
  color: inherit;
  line-height: 1;
}
.suite-info-icon[data-v-196a6bd9]:hover { opacity: 0.7;
}

/* Click popover naming the bundle an app was added through. */
.suite-info-overlay[data-v-196a6bd9] { position: fixed; inset: 0; z-index: 9995;
}
.suite-info-pop[data-v-196a6bd9] {
  position: fixed;
  transform: translateX(-50%);
  width: 240px;
  background: #FFFFFF;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(2, 6, 49, 0.18);
  padding: 12px 14px;
  font-family: var(--font-family-body);
}
.suite-info-text[data-v-196a6bd9] { font-size: 12px; color: var(--color-primary-dark, #020631); line-height: 1.5; margin: 0 0 8px;
}
.suite-info-link[data-v-196a6bd9] {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: var(--font-family-body); font-size: 12px; font-weight: 600;
  color: var(--color-primary, #4353FF);
}
.suite-info-link[data-v-196a6bd9]:hover { text-decoration: underline;
}
.platform-default-banner[data-v-196a6bd9] { margin-bottom: 16px;
}
.app-card-variant[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  font-weight: 500;
  color: var(--color-primary, #4353FF);
  margin: 0;
}
.app-card-cat[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  color: var(--color-text-label, #47506A);
  margin: 0 0 4px;
}
.app-card-desc[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  color: var(--color-text-label, #47506A);
  line-height: 16px;
  margin: 0 0 8px;
  /* Reserve exactly 2 lines (clamp + min-height) so every card's content block
     is the same height → no random gaps; full text on hover (title attr). */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 32px;
}
.app-card-footer[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
}
.app-card-price[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  color: var(--color-primary-dark, #020631);
}
.app-card-price strong[data-v-196a6bd9] {
  font-weight: 700;
  font-size: 16px; /* unresolved-typography */
}
.app-card-price--variant[data-v-196a6bd9] {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.price-unit[data-v-196a6bd9] {
  font-size: var(--font-size-12);
  font-weight: 400;
}
.btn-add[data-v-196a6bd9] {
  height: 32px;
  padding: 0 12px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 6px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.btn-add[data-v-196a6bd9]:hover { background: #3243EF;
}
.btn-remove-card[data-v-196a6bd9] {
  height: 32px;
  padding: 0 12px;
  background: none;
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 6px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  font-weight: 500;
  color: var(--color-primary, #4353FF);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.15s;
}
.btn-remove-card[data-v-196a6bd9]:hover { border-color: var(--color-primary, #4353FF);
}
.mp-empty[data-v-196a6bd9] {
  grid-column: 1 / -1;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-text-placeholder, #9CA5BE);
  text-align: center;
  padding: 32px 0;
}

/* ── Suites banner ──────────────────────────────────────────────────────────── */
/* .suites-grid columns/gap come from the shared rule above; only its own
   bottom margin differs. */
.suites-grid[data-v-196a6bd9] { margin-bottom: 24px;
}
.suites-teaser[data-v-196a6bd9] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: none;
  padding: 4px 0;
  margin-top: 16px;
  margin-bottom: 8px;
  font-family: var(--font-family-body);
  font-weight: 500;
  font-size: var(--font-size-14);
  color: var(--color-primary, #4353FF);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: #C4CBFF;
  transition: color 0.15s, text-decoration-color 0.15s;
}
.suites-teaser[data-v-196a6bd9]:hover { color: #3243EF; text-decoration-color: #4353FF;
}

/* ── Footer ─────────────────────────────────────────────────────────────────── */
.mp-footer[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 24px;
  padding-bottom: 24px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-bg-page, #F9F9FC);
  flex-shrink: 0;
}
.btn-back[data-v-196a6bd9] {
  height: 44px;
  padding: 0 20px;
  background: none;
  border: 1px solid var(--color-primary, #4353FF);
  border-radius: 8px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  font-weight: 500;
  color: var(--color-primary, #4353FF);
  cursor: pointer;
  transition: background 0.15s;
}
.btn-back[data-v-196a6bd9]:hover { background: #ECEEFF;
}
.btn-review-pay[data-v-196a6bd9] {
  height: 44px;
  padding: 0 28px;
  background: var(--color-primary, #4353FF);
  border: none;
  border-radius: 8px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  font-weight: 600;
  color: #FFFFFF;
  cursor: pointer;
  transition: background 0.15s;
}
.btn-review-pay[data-v-196a6bd9]:hover { background: #3243EF;
}
.step-clickable[data-v-196a6bd9] { cursor: pointer;
}
.step-clickable .step-lbl[data-v-196a6bd9]:hover { color: var(--color-primary, #4353FF);
}

/* ── Heading row (title + cart button) ─────────────────────────────────────── */
.mp-heading-row[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}

/* ── Cart button (inline in heading row) ───────────────────────────────────── */
.cart-fab[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 28px;
  padding: 10px 18px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(67, 83, 255, 0.25);
  transition: background 0.15s, box-shadow 0.15s;
  flex-shrink: 0;
}
.cart-fab[data-v-196a6bd9]:hover {
  background: #3243EF;
  box-shadow: 0 4px 12px rgba(67, 83, 255, 0.35);
}
.cart-fab-label[data-v-196a6bd9] { line-height: 1;
}
.cart-fab-badge[data-v-196a6bd9] {
  min-width: 18px;
  height: 18px;
  background: #FFFFFF;
  color: var(--color-primary, #4353FF);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  padding: 0 3px;
}

/* ── Cart backdrop ─────────────────────────────────────────────────────────── */
.cart-backdrop[data-v-196a6bd9] {
  position: fixed;
  inset: 0;
  z-index: 1100;
  background: rgba(2, 6, 49, 0.25);
}

/* ── Cart drawer ───────────────────────────────────────────────────────────── */
.cart-drawer[data-v-196a6bd9] {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1200;
  width: 380px;
  background: var(--color-bg-card, #FFFFFF);
  border-left: 1px solid var(--color-border-default, #E5E7EF);
  display: flex;
  flex-direction: column;
  padding: 24px 20px 24px 24px;
  transform: translateX(100%);
  transition: transform 0.25s ease;
  box-shadow: -4px 0 24px rgba(2, 6, 49, 0.1);
}
.cart-drawer.open[data-v-196a6bd9] {
  transform: translateX(0);
}
.cart-drawer-head[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  flex-shrink: 0;
}
.cart-close[data-v-196a6bd9] {
  background: none;
  border: none;
  font-size: 18px;
  color: var(--color-text-label, #47506A);
  cursor: pointer;
  padding: 4px;
  line-height: 1;
}
.cart-close[data-v-196a6bd9]:hover { color: var(--color-primary-dark, #020631);
}

/* ── Cart scroll area ──────────────────────────────────────────────────────── */
.cart-scroll[data-v-196a6bd9] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 4px;
}
.cart-top[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.cart-title[data-v-196a6bd9] {
  font-family: var(--font-family-header);
  font-weight: 700;
  font-size: 18px; /* unresolved-typography */
  color: var(--color-primary-dark, #020631);
}
.cart-tier-pill[data-v-196a6bd9] {
  background: #E9F2FF; /* unresolved-token */
  border-radius: 20px;
  padding: 4px 12px;
  font-family: var(--font-family-body);
  font-size: var(--font-size-12);
  color: var(--color-text-label, #47506A);
  margin-bottom: 16px;
}
.cart-default-group[data-v-196a6bd9] { margin-bottom: 4px;
}
.cart-default-group-title[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  color: #5B21B6;
  margin: 0 0 6px;
}

/* ── Cart sections ────────────────────────────────────────────────────────── */
.cart-section[data-v-196a6bd9] {
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
  margin-bottom: 2px;
}
.cart-section-hdr[data-v-196a6bd9] {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  gap: 8px;
}
.cart-section-label[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--color-text-label, #47506A);
  flex: 1;
}
.cart-section-hdr-right[data-v-196a6bd9] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.cart-section-count[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  background: var(--color-primary, #4353FF);
  border-radius: 20px;
  padding: 1px 7px;
  line-height: 16px;
}
.cart-section-chevron[data-v-196a6bd9] {
  width: 14px; height: 14px;
  color: #9CA5BE;
  transition: transform 0.15s;
}
.cart-section-chevron--open[data-v-196a6bd9] { transform: rotate(180deg);
}
.cart-section-body[data-v-196a6bd9] { padding-bottom: 4px;
}
.cart-tier-link[data-v-196a6bd9] {
  color: var(--color-primary, #4353FF);
  cursor: pointer;
  text-decoration: none;
}
.cart-item[data-v-196a6bd9] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border-default, #E5E7EF);
}
.cart-item-info[data-v-196a6bd9] { flex: 1; min-width: 0;
}
.cart-item-name[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-weight: 600;
  font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
  margin: 0 0 2px;
}
.cart-item-sub[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: 11px;
  color: var(--color-text-label, #47506A);
  margin: 0;
}
.cart-item-right[data-v-196a6bd9] { text-align: right; flex-shrink: 0;
}
.cart-item-price[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-weight: 600;
  font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
  margin: 0 0 2px;
}
.cart-item-price--free[data-v-196a6bd9] {
  color: #16a34a;
  font-size: 12px;
  font-weight: 600;
  background: #DCFCE7;
  border-radius: 20px;
  padding: 2px 8px;
}
.cart-item-remove[data-v-196a6bd9] {
  background: none; border: none;
  font-family: var(--font-family-body);
  font-size: 11px;
  color: #DC2626; /* unresolved-token */
  cursor: pointer; padding: 0;
}
.cart-item-remove[data-v-196a6bd9]:hover { text-decoration: underline;
}
.cart-suite-group[data-v-196a6bd9] {
}
.cart-savings-price[data-v-196a6bd9] { color: #16a34a;
}
.cart-rule[data-v-196a6bd9] {
  border: none;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  margin: 8px 0;
}
.cart-rule--bold[data-v-196a6bd9] {
  border-top: 2px solid var(--color-primary-dark, #020631);
  margin: 12px 0;
}
.cart-platform-row[data-v-196a6bd9] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
}
.cart-platform-label[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-text-label, #47506A);
}
.cart-platform-price[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
}
.cart-empty[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: var(--font-size-14);
  color: var(--color-text-placeholder, #9CA5BE);
  text-align: center;
  padding: 24px 0;
}
.cart-prorate[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-size: 11px;
  color: var(--color-primary, #4353FF);
  margin: 0 0 4px;
}
.cart-total-row[data-v-196a6bd9] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 16px;
}
.cart-total-label[data-v-196a6bd9] {
  font-family: var(--font-family-body);
  font-weight: 600;
  font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631);
}
.cart-total-price[data-v-196a6bd9] {
  font-family: var(--font-family-header);
  font-weight: 700;
  font-size: 18px; /* unresolved-typography */
  color: var(--color-primary, #4353FF);
}
.btn-checkout[data-v-196a6bd9] {
  width: 100%;
  height: 48px;
  background: var(--color-primary, #4353FF);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font-family: var(--font-family-body);
  font-weight: 600;
  font-size: var(--font-size-14);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background 0.15s;
}
.btn-checkout[data-v-196a6bd9]:hover:not(:disabled) { background: #3243EF;
}
.btn-checkout[data-v-196a6bd9]:disabled { background: var(--color-text-placeholder, #9CA5BE); cursor: not-allowed;
}
.btn-chev[data-v-196a6bd9] { font-size: 18px; line-height: 1;
}

.mkt-return[data-v-d600cd5a] {
  display: flex; align-items: center; justify-content: center;
  min-height: 100vh; background: var(--color-bg-page, #F9F9FC);
}
.mkt-return-card[data-v-d600cd5a] {
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 16px; padding: 48px; max-width: 420px; width: 90%;
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px;
}
.mkt-return-spinner[data-v-d600cd5a] {
  width: 40px; height: 40px; border-radius: 50%;
  border: 3px solid var(--color-border-default, #E5E7EF);
  border-top-color: var(--color-primary, #4353FF);
  animation: mkt-spin-d600cd5a 0.8s linear infinite;
  margin-bottom: 8px;
}
@keyframes mkt-spin-d600cd5a {
to { transform: rotate(360deg);
}
}
.mkt-return-icon[data-v-d600cd5a] { margin-bottom: 4px;
}
.mkt-return-title[data-v-d600cd5a] {
  font-family: var(--font-family-header, 'Poppins', sans-serif);
  font-weight: 700; font-size: 20px; color: var(--color-primary-dark, #020631); margin: 0;
}
.mkt-return-sub[data-v-d600cd5a] {
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-size: 14px; color: var(--color-text-label, #47506A); margin: 0;
}
.mkt-return-btn[data-v-d600cd5a] {
  margin-top: 12px; height: 44px; padding: 0 24px;
  background: var(--color-primary, #4353FF); color: #FFF;
  border: none; border-radius: 8px;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  font-weight: 600; font-size: 14px; cursor: pointer;
}
.mkt-return-btn[data-v-d600cd5a]:hover { background: #3243EF;
}

/* ── Success-dialog details: Platform / App Suites / Apps panels (shared type scale) ── */
[data-v-ba842296] .pay-group { display: flex; flex-direction: column; gap: 6px;
}
[data-v-ba842296] .pay-grp-head {
  font: 700 11px/16px 'Poppins', sans-serif; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--color-text-placeholder, #9CA5BE);
}
[data-v-ba842296] .pay-panel { border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 10px; padding: 2px 12px;
}
[data-v-ba842296] .pay-panel--static { padding: 8px 12px; display: flex; flex-direction: column; gap: 6px;
}
[data-v-ba842296] .pay-panel + .pay-panel { margin-top: 6px;
}
[data-v-ba842296] .pay-panel-head { width: 100%; background: none; border: none; padding: 9px 0; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
[data-v-ba842296] .pay-panel-title { font: 600 14px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
[data-v-ba842296] .pay-panel-count { font: 400 12px/16px 'Poppins', sans-serif; color: var(--color-text-placeholder, #9CA5BE);
}
[data-v-ba842296] .pay-panel-right { display: inline-flex; align-items: center; gap: 8px; font: 600 14px/20px 'Poppins', sans-serif; color: var(--color-primary-dark, #020631); white-space: nowrap;
}
[data-v-ba842296] .pay-savechip { background: #E7F7EE; color: #15803D; border-radius: 4px; padding: 1px 7px; font: 600 11px/16px 'Poppins', sans-serif;
}
[data-v-ba842296] .pay-caret { transition: transform 0.15s; display: inline-block; color: var(--color-text-placeholder, #9CA5BE);
}
[data-v-ba842296] .pay-caret--open { transform: rotate(180deg);
}
[data-v-ba842296] .pay-panel-body { padding: 2px 0 8px; border-top: 1px solid var(--color-border-default, #E5E7EF); margin-top: 2px; display: flex; flex-direction: column; gap: 6px;
}
[data-v-ba842296] .pay-line { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 400 13px/20px 'Poppins', sans-serif; color: var(--color-text-label, #47506A);
}
[data-v-ba842296] .pay-line-name { color: var(--color-text-label, #47506A); min-width: 0;
}
[data-v-ba842296] .pay-line-price { color: var(--color-primary-dark, #020631); font-weight: 600; white-space: nowrap;
}
[data-v-ba842296] .pay-line--savings,[data-v-ba842296] .pay-line--savings span { color: #16a34a; font-weight: 600;
}
[data-v-ba842296] .pay-strike { color: var(--color-text-placeholder, #9CA5BE); text-decoration: line-through; font-size: 11px; font-weight: 400; margin-right: 4px;
}
[data-v-ba842296] .pay-totals { display: flex; flex-direction: column; gap: 8px;
}
[data-v-ba842296] .pay-success-row--muted { color: var(--color-text-placeholder, #9CA5BE); font-size: var(--font-size-12, 12px);
}
[data-v-ba842296] .pay-success-row--savings { color: #16a34a; font-weight: 600;
}
/* ── Confirming-payment dialog ─────────────────────────────────────────────────
   Deliberately has NO close affordance in the 'working' state: dismissing it would
   drop the customer back onto an order form for a purchase they have already paid
   for, which is exactly the confusion this dialog exists to remove. */
.pc-backdrop[data-v-ba842296] {
  position: fixed; inset: 0; z-index: 100;
  display: flex; align-items: center; justify-content: center;
  background: rgba(2, 6, 49, 0.45);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  padding: 24px;
}
.pc-panel[data-v-ba842296] {
  width: 100%; max-width: 420px; box-sizing: border-box;
  background: var(--color-bg-card, #FFFFFF);
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 18px 48px rgba(2, 6, 49, 0.22);
  padding: 28px 26px 24px;
  text-align: center;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
}
.pc-spinner[data-v-ba842296] {
  width: 40px; height: 40px; margin: 0 auto 16px;
  border: 3px solid #E5E7EF;
  border-top-color: var(--color-primary, #4353FF);
  border-radius: 50%;
  animation: pc-spin-ba842296 0.8s linear infinite;
}
@keyframes pc-spin-ba842296 {
to { transform: rotate(360deg);
}
}
/* Honour a reduced-motion preference — a spinner is decoration, the text carries the meaning. */
@media (prefers-reduced-motion: reduce) {
.pc-spinner[data-v-ba842296] { animation-duration: 2.4s;
}
}
.pc-icon[data-v-ba842296] { font-size: 34px; line-height: 1; margin-bottom: 12px;
}
.pc-title[data-v-ba842296] {
  margin: 0 0 8px;
  font: 700 18px/26px var(--font-family-header, 'Poppins', sans-serif);
  color: var(--color-primary-dark, #020631);
}
.pc-body[data-v-ba842296] {
  margin: 0 0 10px;
  font-size: var(--font-size-14, 14px); line-height: 21px;
  color: var(--color-text-label, #47506A);
}
.pc-note[data-v-ba842296] {
  margin: 0;
  font-size: var(--font-size-12, 12px); line-height: 18px;
  color: var(--color-text-placeholder, #9CA5BE);
}
.pc-error[data-v-ba842296] {
  margin: 12px 0 0; padding: 8px 10px;
  background: #FEF2F2; border: 1px solid #FECACA; border-radius: 8px;
  font-size: var(--font-size-12, 12px); line-height: 18px; color: #B91C1C;
  text-align: left;
}
.pc-actions[data-v-ba842296] { display: flex; gap: 10px; margin-top: 20px;
}
.pc-btn[data-v-ba842296] {
  flex: 1; padding: 10px 14px; border-radius: 8px; cursor: pointer;
  font: 600 14px/20px var(--font-family-body, 'Poppins', sans-serif);
  transition: background 0.15s, opacity 0.15s;
}
.pc-btn[data-v-ba842296]:disabled { opacity: 0.6; cursor: default;
}
.pc-btn--primary[data-v-ba842296] { background: var(--color-primary, #4353FF); color: #FFFFFF; border: 1px solid var(--color-primary, #4353FF);
}
.pc-btn--primary[data-v-ba842296]:hover:not(:disabled) { background: #3444E6;
}
.pc-btn--ghost[data-v-ba842296] { background: #FFFFFF; color: var(--color-text-label, #47506A); border: 1px solid var(--color-border-default, #E5E7EF);
}
.pc-btn--ghost[data-v-ba842296]:hover:not(:disabled) { background: #F9F9FC;
}
.checkout-page[data-v-ba842296] {
  position: fixed; inset: 0;
  box-sizing: border-box;
  display: flex; overflow: hidden;
  background: var(--color-bg-page, #F9F9FC);
  padding: 24px 48px 24px 24px; gap: 40px;
}

/* ── Sidebar — shared style with WorkspaceSetupView ───────────────────────── */
.setup-sidebar[data-v-ba842296] {
  width: 240px; flex-shrink: 0;
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-default, #E5E7EF);
  border-radius: 20px; padding: 28px 24px;
  display: flex; flex-direction: column; gap: 40px;
  align-self: stretch; overflow-y: auto;
}
.sidebar-brand[data-v-ba842296]  { display: flex; flex-direction: column; gap: 8px;
}
.sidebar-logo[data-v-ba842296]   { width: 140px; height: 26px; display: block;
}
.sidebar-tagline[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); line-height: 20px; margin: 0;
}
.sidebar-steps[data-v-ba842296] { display: flex; flex-direction: column;
}
.sidebar-step[data-v-ba842296]  { display: flex; align-items: flex-start; gap: 12px;
}
.step-clickable[data-v-ba842296] { cursor: pointer;
}
.step-clickable .step-lbl[data-v-ba842296]:hover { color: var(--color-primary, #4353FF);
}
.step-track[data-v-ba842296]    { display: flex; flex-direction: column; align-items: center; flex-shrink: 0;
}
.step-dot[data-v-ba842296]      { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.dot-active[data-v-ba842296]    { background: var(--color-primary, #4353FF);
}
.dot-done[data-v-ba842296]      { background: var(--color-primary, #4353FF);
}
.dot-idle[data-v-ba842296]      { background: #D1D5DB; border: none;
}
.dot-check[data-v-ba842296]     { width: 12px; height: 12px;
}
.step-vline[data-v-ba842296]    { width: 2px; height: 32px; background: var(--color-border-default, #E5E7EF); margin: 1px 0;
}
.step-vline.done[data-v-ba842296] { background: var(--color-primary, #4353FF);
}
.step-lbl[data-v-ba842296]      { font-family: var(--font-family-body); font-size: var(--font-size-14); line-height: 24px;
}
.step-sublbl[data-v-ba842296]   { display: block; font-size: 11px; font-weight: 600; color: var(--color-primary, #4353FF); line-height: 16px;
}
.lbl-on[data-v-ba842296]        { color: var(--color-primary-dark, #020631); font-weight: 500;
}

/* ── Sidebar sign-out ── */
.sidebar-bottom[data-v-ba842296] { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--color-border-default, #E5E7EF);
}
.signout-btn[data-v-ba842296] {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 10px 12px; border: none; border-radius: 8px; background: none;
  font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 400;
  color: var(--color-text-helper, #535F7F); cursor: pointer; transition: background 0.12s, color 0.12s;
}
.signout-btn[data-v-ba842296]:hover { background: #F5F5F5; color: var(--color-primary-dark, #020631);
}
.signout-icon[data-v-ba842296] { width: 18px; height: 18px; flex-shrink: 0;
}

/* ── Main ─────────────────────────────────────────────────────────────────── */
.co-main[data-v-ba842296] { flex: 1; display: flex; flex-direction: column; padding-top: 24px; min-width: 0; overflow: hidden;
}
.co-heading[data-v-ba842296] { font-family: var(--font-family-header); font-size: var(--font-size-24); font-weight: 700; color: var(--color-primary-dark, #020631); margin: 0 0 20px; line-height: 32px; flex-shrink: 0;
}

/* Centred 620px column, matching .mkt-co-single in MktCheckoutView so the onboarding checkout and
   the in-workspace checkout read as the same screen rather than two different products. The cards
   themselves already shared styling (.co-card / .mkt-co-card are near-identical); only the container
   differed — onboarding stretched them the full width of the viewport. The scroller stays full-width
   so the scrollbar sits at the window edge; the constraint is on its children. */
.co-scroll[data-v-ba842296] {
  flex: 1; min-height: 0; overflow-y: auto;
  display: flex; flex-direction: column; align-items: center; gap: 20px;
}
.co-scroll > *[data-v-ba842296] { width: 100%; max-width: 620px;
}

/* Card container */
.co-card[data-v-ba842296] { background: var(--color-bg-card, #FFFFFF); border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 12px; padding: 24px;
}
.co-card-title[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600; color: var(--color-primary-dark, #020631); margin: 0 0 16px;
}

/* Summary rows */
.co-summary-row[data-v-ba842296] { display: flex; justify-content: space-between; align-items: center; padding: 10px 0;
}
.co-summary-row--muted .co-key[data-v-ba842296],
.co-summary-row--muted .co-val[data-v-ba842296] { color: var(--color-text-placeholder, #9CA5BE); font-size: var(--font-size-12);
}
.co-add-apps-link[data-v-ba842296] {
  color: var(--color-primary, #4353FF); font-size: var(--font-size-12);
  text-decoration: none; cursor: pointer; font-weight: 500;
}
.co-add-apps-link[data-v-ba842296]:hover { text-decoration: underline;
}
.co-includes-note[data-v-ba842296] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: #5B21B6; background: #EDE9FE; border-radius: 8px;
  padding: 8px 12px; margin: 8px 0 0;
}
.co-suite-group[data-v-ba842296] { margin: 8px 0;
}
.co-savings-row .co-key[data-v-ba842296],
.co-savings-row .co-val[data-v-ba842296] { color: #16a34a; font-weight: 600;
}
.co-key-block[data-v-ba842296] { display: flex; flex-direction: column; gap: 2px;
}
.co-key[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A);
}
.co-key-sub[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-text-placeholder, #9CA5BE);
}
.co-val[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-primary-dark, #020631); font-weight: 500; text-align: right; white-space: nowrap;
}
.co-val--price[data-v-ba842296] { font-weight: 600;
}
.co-divider[data-v-ba842296] { border: none; border-top: 1px solid var(--color-border-default, #E5E7EF); margin: 0;
}
.co-divider--bold[data-v-ba842296] { border-top: 2px solid var(--color-border-default, #E5E7EF);
}
.co-cycle-pill[data-v-ba842296] {
  display: inline-block; padding: 2px 10px; border-radius: 20px;
  font-size: var(--font-size-12, 12px); font-weight: 600;
}
.co-cycle-pill--monthly[data-v-ba842296] { background: #E9F2FF; color: #47506A;
}
.co-cycle-pill--yearly[data-v-ba842296] { background: #EEF0FF; color: #4353FF;
}
.co-billing-range[data-v-ba842296] {
  font-size: var(--font-size-12, 12px); font-weight: 500;
  color: var(--color-primary-dark, #020631); letter-spacing: 0.01em;
}
.co-prorate-notice[data-v-ba842296] {
  display: flex; align-items: flex-start; gap: 6px;
  background: #EEF2FF; border-radius: 8px; padding: 10px 12px; margin: 8px 0;
  font-family: var(--font-family-body); font-size: var(--font-size-12); color: #2D3FE5; line-height: 18px;
}
.co-total-row[data-v-ba842296] { padding: 14px 0 4px; align-items: flex-start;
}
.co-total-label[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-14); font-weight: 600; color: var(--color-primary-dark, #020631);
}
.co-total-breakdown[data-v-ba842296] { color: var(--color-text-placeholder, #9CA5BE);
}
.co-total-val[data-v-ba842296] { font-family: var(--font-family-header); font-size: 24px; font-weight: 700; color: var(--color-primary, #4353FF); display: flex; align-items: baseline; gap: 6px;
}
.co-total-sub[data-v-ba842296] { font-size: var(--font-size-12); font-weight: 400; color: var(--color-text-placeholder, #9CA5BE); font-family: var(--font-family-body);
}
.co-key-hint[data-v-ba842296] { font-weight: 400; font-size: 11px; color: var(--color-text-placeholder, #9CA5BE);
}
.co-renewal-line[data-v-ba842296] {
  font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-text-label, #47506A); line-height: 18px; margin: 6px 0 0;
}

/* Payment note (real processing not wired yet) */

/* Payment method card — deliberately mirrors .mkt-co-card in MktCheckoutView so the onboarding and
   in-workspace checkouts are visually the same component. Values come from the shared design tokens
   rather than the other file's literals, so a token change moves both. */
.co-paycard[data-v-ba842296] {
  margin: 12px 0 0; padding: 14px 16px;
  background: var(--color-bg-card, #FFFFFF);
  border: 1px solid var(--color-border-subtle, #E6E8F0);
  border-radius: 10px;
  font-family: var(--font-family-body);
}
.co-paycard-title[data-v-ba842296] {
  font-size: var(--font-size-14); font-weight: 600;
  color: var(--color-text-body, #1F2439); margin: 0 0 10px;
}
.co-paycard-row[data-v-ba842296] { display: flex; align-items: center; gap: 12px;
}
.co-paycard-glyph[data-v-ba842296] {
  width: 40px; height: 40px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--color-bg-subtle, #F7F8FC);
  border-radius: 8px;
}
.co-paycard-lines[data-v-ba842296] { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.co-paycard-main[data-v-ba842296] { font-size: var(--font-size-14); color: var(--color-text-body, #1F2439); font-weight: 500;
}
.co-paycard-sub[data-v-ba842296]  { font-size: 11px; color: var(--color-text-label, #47506A);
}
.co-paycard-explain[data-v-ba842296] {
  font-size: 11px; color: var(--color-text-label, #47506A);
  line-height: 1.5; margin: 10px 0 0;
}
.co-paycard-foot[data-v-ba842296] {
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--color-border-subtle, #E6E8F0);
}
.co-paycard-secure[data-v-ba842296] {
  display: flex; align-items: center; gap: 6px;
  font-size: 10px; color: var(--color-text-label, #47506A);
}
.co-payment-note[data-v-ba842296] { display: flex; align-items: flex-start; gap: 8px; font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A); line-height: 20px; margin: 12px 0 0;
}
.co-payment-note svg[data-v-ba842296] { margin-top: 3px;
}

/* Free notice */
.co-free-notice[data-v-ba842296] {
  display: flex; align-items: flex-start; gap: 8px;
  background: #F0FDF4; border-radius: 8px; padding: 12px 14px;
  font-family: var(--font-family-body); font-size: var(--font-size-14); color: #15803D; line-height: 20px;
}

/* Payment fields */
.co-field-row[data-v-ba842296] { display: flex; gap: 16px; margin-bottom: 12px;
}
.co-field[data-v-ba842296] { display: flex; flex-direction: column; gap: 4px; flex: 1;
}
.co-field--full[data-v-ba842296] { flex: 1;
}
.co-label[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-14); color: var(--color-text-label, #47506A);
}
.co-input[data-v-ba842296] {
  height: 44px; border: 1px solid var(--color-border-default, #E5E7EF); border-radius: 8px;
  padding: 0 12px; font-family: var(--font-family-body); font-size: var(--font-size-14);
  color: var(--color-primary-dark, #020631); background: var(--color-bg-card, #FFFFFF); outline: none;
}
.co-input[data-v-ba842296]:focus { border-color: var(--color-primary, #4353FF);
}
.co-input[data-v-ba842296]::placeholder { color: var(--color-text-placeholder, #9CA5BE);
}

/* Footer */
.co-footer[data-v-ba842296] {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding-top: 24px; padding-bottom: 24px;
  border-top: 1px solid var(--color-border-default, #E5E7EF);
  flex-shrink: 0;
  background: var(--color-bg-page, #F9F9FC);
  /* Same 620px column as .co-scroll's children, so Back / legal / Confirm line up with the cards
     above instead of drifting to the viewport edges. */
  width: 100%; max-width: 620px; margin: 0 auto;
}
.btn-back[data-v-ba842296] {
  height: 44px; padding: 0 20px; background: none;
  color: var(--color-primary, #4353FF); border: 1px solid var(--color-primary, #4353FF);
  border-radius: 8px; font-family: var(--font-family-body); font-weight: 500; font-size: var(--font-size-14);
  cursor: pointer; white-space: nowrap;
}
.btn-back[data-v-ba842296]:hover { background: #ECEEFF;
}
.co-legal[data-v-ba842296] {
  flex: 1; font-family: var(--font-family-body); font-size: var(--font-size-12);
  color: var(--color-text-helper, #535F7F); line-height: 18px; margin: 0; text-align: center;
}
.co-legal a[data-v-ba842296] { color: var(--color-text-helper, #535F7F); text-decoration: underline;
}
.btn-confirm[data-v-ba842296] {
  height: 44px; padding: 0 28px; background: var(--color-primary, #4353FF);
  color: #FFFFFF; border: none; border-radius: 8px;
  font-family: var(--font-family-body); font-weight: 600; font-size: var(--font-size-14);
  cursor: pointer; white-space: nowrap;
}
.btn-confirm[data-v-ba842296]:hover:not(:disabled) { background: #3243EF;
}
.btn-confirm[data-v-ba842296]:disabled { background: var(--color-text-placeholder, #9CA5BE); cursor: not-allowed;
}
.co-error[data-v-ba842296]   { font-family: var(--font-family-body); font-size: var(--font-size-12); color: var(--color-error, #D60000); background: rgba(214,0,0,0.05); border-radius: 8px; padding: 10px 12px; margin: 0;
}
.co-warning[data-v-ba842296] { font-family: var(--font-family-body); font-size: var(--font-size-12); color: #7A5200; background: rgba(255,193,7,0.12); border-radius: 8px; padding: 10px 12px; margin: 0;
}

/* Payment success dialog markup/styling lives in PaymentSuccessDialog.vue,
   including its .pay-success-row rules (:deep, since slot content here keeps
   this component's scope attribute but the shared component styles it). */

.nf[data-v-2b0a0460] {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 48px 24px;
  text-align: center;
  font-family: var(--font-family-body, 'Poppins', sans-serif);
  background: var(--color-surface-page, #F9F9FC);
}

/* Large, quiet, and not the loudest thing on the page — the sentence is what people read. */
.nf-code[data-v-2b0a0460] {
  margin: 0;
  font-size: 44px;
  font-weight: 600;
  line-height: 1;
  color: var(--color-border-default, #E5E7EF);
  font-variant-numeric: tabular-nums;
}
.nf-title[data-v-2b0a0460] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--color-primary-dark, #020631);
  text-wrap: balance;
  max-width: 30ch;
}
.nf-body[data-v-2b0a0460] {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-text-label, #47506A);
  max-width: 46ch;
}
.nf-actions[data-v-2b0a0460] { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 8px;
}
.nf-btn[data-v-2b0a0460] {
  height: 36px;
  padding: 0 16px;
  border-radius: 8px;
  border: 1px solid var(--color-border-default, #E5E7EF);
  background: var(--color-background-card, #FFFFFF);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-primary-dark, #020631);
  cursor: pointer;
}
.nf-btn--primary[data-v-2b0a0460] {
  background: var(--color-primary, #4353FF);
  border-color: var(--color-primary, #4353FF);
  color: #FFFFFF;
}
.nf-btn[data-v-2b0a0460]:focus-visible { outline: 2px solid var(--color-primary, #4353FF); outline-offset: 2px;
}
.nf-hint[data-v-2b0a0460] { margin: 14px 0 0; font-size: 11px; color: var(--color-text-helper, #535F7F);
}
