/* ================================================================
   APP.CSS: app design system and components (admin, org, team, auth)
   Single source of truth. No inline styles. No duplication.
   ================================================================ */
/* ── 1. DESIGN TOKENS ── */
/* Moved to variables.css (loaded before this file) — do not redefine :root here. */
/* ── 2. BASE ── */
body { font-family:var(--font-body); line-height:var(--lh-base); letter-spacing:var(--ls-base); }
html[data-theme="dark"] { color-scheme:dark; background:var(--bg-alt); }
body.plx-app { background:var(--bg-alt); }

/* ── Scrollbars (overrides the theme's white-track / teal-thumb defaults in style.css) ── */
*::-webkit-scrollbar { height: var(--size-9); width: var(--size-9); }
*::-webkit-scrollbar-track, *::-webkit-scrollbar-corner { background: transparent; }
*::-webkit-scrollbar-button { display: none; }
*::-webkit-scrollbar-thumb { background: var(--white-a25); background-clip: padding-box; border: 2px solid transparent; border-radius: var(--br-full); transition: background-color var(--t-default) ease; }
*::-webkit-scrollbar-thumb:hover { background: var(--lime-a50); background-clip: padding-box; }
@supports not selector(::-webkit-scrollbar) {
  * { scrollbar-color: var(--white-a25) transparent; scrollbar-width: thin; }
}
/* PACKAGE EXCEPTION — SimpleBar: vendor CSS hardcodes the thumb colour (#308e87); overridden with our token */
.simplebar-scrollbar:before { background: var(--lime-a80); }
.loader-wrapper { z-index: var(--z-99999); }
/* ── 3. LAYOUT UTILITIES ── */
/* .page-title on nearly every page wraps a raw Bootstrap .row (title +
   action, e.g. "row align-items-center") directly — no .container parent
   to cancel Bootstrap's negative gutter margins (-12px each side from
   --bs-gutter-x:1.5rem), and .page-title itself has no horizontal padding
   either. That pushes the row 12px past the viewport edge on every one of
   these pages, causing a page-wide horizontal scrollbar. These rows are
   simple two-item headers, not real multi-column grids needing gutters. */
.page-title > .row { margin-left: 0; margin-right: 0; }
.plx-flex    { display:flex; }
.plx-col     { flex-direction:column; }
.plx-center  { align-items:center;justify-content:center; }
.plx-between { align-items:center;justify-content:space-between; }
.plx-start   { align-items:flex-start; }
.plx-wrap    { flex-wrap:wrap; }
.plx-flex-1  { flex:1; }
.plx-shrink0 { flex-shrink:0; }
.plx-grid-2  { display:grid;grid-template-columns:repeat(2,1fr); }
.plx-grid-3  { display:grid;grid-template-columns:repeat(3,1fr); }
.plx-grid-4  { display:grid;grid-template-columns:repeat(4,1fr); }

.gap-4 { gap:var(--sp-4); }

.plx-gap-6,

.plx-gap-8  { gap:var(--sp-8); }
.plx-gap-10 { gap:var(--sp-10); }
.plx-gap-12 { gap:var(--sp-12); }
.plx-gap-14 { gap:var(--sp-14); }
.plx-gap-16 { gap:var(--sp-16); }

/* ── 4. TYPOGRAPHY ── */
.plx-t1 { color:var(--t1); }
.plx-t2 { color:var(--t2); }
.plx-t3 { color:var(--t3); }
.plx-t4 { color:var(--t4); }
.plx-t5 { color:var(--t5); }
.plx-t6 { color:var(--t6); }
.plx-c-lime   { color:var(--lime); }
.plx-c-cyan   { color:var(--cyan); }
.plx-c-purple { color:var(--purple); }
.plx-c-green  { color:var(--green); }
.plx-c-amber  { color:var(--amber); }
.plx-c-orange { color:var(--orange); }
.plx-c-red    { color:var(--red); }
.plx-fw4 { font-weight:var(--fw-regular); }
.plx-fw5 { font-weight:var(--fw-medium); }
.plx-fw6 { font-weight:var(--fw-semibold); }
.plx-fw7 { font-weight:var(--fw-bold); }
.plx-fw8 { font-weight:var(--fw-extrabold); }
.plx-fw9 { font-weight:var(--fw-black); }
.plx-fs10 { font-size:var(--fs-10); }
.plx-fs11 { font-size:var(--fs-12); }
.plx-fs10 { font-size:var(--fs-10); }
.plx-fs11 { font-size:var(--fs-12); }
.plx-fs12 { font-size:var(--fs-12); }
.plx-text-meta { font-size:var(--fs-12);color:var(--t4); }
.plx-text-sub { font-size:var(--fs-14);color:var(--t4); }
.plx-text-title { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1); }
.plx-surface { background:var(--bg-card);border-radius:var(--br-outer);border:1px solid var(--border); }
.plx-surface-md { background:var(--bg-card);border-radius:var(--br-outer);border:1px solid var(--border-md); }
.plx-row-center { display:flex;align-items:center;justify-content:center; }
.plx-row-gap-10 { display:flex;align-items:center;gap:var(--sp-10); }
.plx-row-between { display:flex;align-items:center;justify-content:space-between; }
.plx-row-gap-8 { display:flex;align-items:center;gap:var(--sp-8); }
.plx-row-wrap { display:flex;align-items:center;flex-wrap:wrap; }
.plx-row-gap-12 { display:flex;align-items:center;gap:var(--sp-12); }
.plx-fs13,
.plx-fs14 { font-size:var(--fs-14); }

.plx-fs16 { font-size:var(--fs-16); }
.plx-fs18 { font-size:var(--fs-18); }
.plx-fs20 { font-size:var(--fs-20); }
.plx-fs22 { font-size:var(--fs-22); }
.plx-fs24 { font-size:var(--fs-24); }
.plx-fs26 { font-size:var(--fs-26); }
.plx-fs28 { font-size:var(--fs-28); }
.plx-fs32 { font-size:var(--fs-32); }
.plx-uc   { text-transform:uppercase; }
.plx-tc   { text-align:center; }

.plx-ls2  { /* letter-spacing:1.4px; */ }

/* micro-label pattern */
.plx-micro-lbl {
  font-size:var(--fs-12);font-weight:var(--fw-bold);/* letter-spacing:1.2px; */
  text-transform:uppercase;color:var(--t5);
}
/* ── 5. SPACING ── */
.plx-mb4  { margin-bottom:var(--sp-4); }
.plx-mb6,
.plx-mb8 { margin-bottom:var(--sp-8); }

.plx-mb10 { margin-bottom:var(--sp-10); }
.plx-mb12 { margin-bottom:var(--sp-12); }
.plx-mb14 { margin-bottom:var(--sp-14); }
.plx-mb16 { margin-bottom:var(--sp-16); }
.plx-mb20 { margin-bottom:var(--sp-20); }
.plx-mt3,
.plx-mt4 { margin-top:var(--sp-4); }

.plx-mt6,
.plx-mt8 { margin-top:var(--sp-8); }

.plx-mt10 { margin-top:var(--sp-10); }
.plx-mt12 { margin-top:var(--sp-12); }
.plx-mt14 { margin-top:var(--sp-14); }
.plx-mt16 { margin-top:var(--sp-16); }
/* ── 6. CARD COMPONENTS ── */
/* Base dark card */
.plx-card { padding:var(--sp-16); }

.plx-card-subtle {
  background:var(--bg-subtle);
  border:1px solid var(--border);
  border-radius:var(--br-outer);
  padding:var(--sp-16);
}

/* Colored card accents */
.plx-card-lime   { border-color:var(--lime-bd);background:var(--lime-a10); }
.plx-card-cyan   { border-color:var(--cyan-bd);background:var(--cyan-a10); }
.plx-card-purple { border-color:var(--purple-bd);background:var(--purple-a10); }

.plx-card-amber  { border-color:var(--amber-bd);background:var(--amber-a10); }

/* ── 7. BUTTON COMPONENTS ── */

.plx-btn-primary:disabled,
.plx-btn-secondary:disabled,
.plx-btn-ghost:disabled,
.plx-btn-ghost-pill:disabled {
  cursor: not-allowed;
  opacity: var(--opacity-disabled);
  transform: none;
  box-shadow: none;
}
.plx-btn-primary:disabled:hover {
  opacity: var(--opacity-disabled);
  transform: none;
  cursor: not-allowed;
}
/* Primary gradient */
.plx-btn-primary {
  background:var(--grad);color:var(--bg);border:1px solid transparent;
  border-radius:var(--br-full);padding:var(--sp-12) var(--sp-28);font-size:var(--fs-14);font-weight:var(--fw-bold);
cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);
  text-decoration:none;transition:opacity var(--t-default),transform var(--t-default);
}
.plx-btn-primary:hover { opacity:var(--opacity-hover);transform:translateY(-1px);color: var(--bg); }

/* Ghost */
.plx-btn-ghost {
  background:var(--bg-card);
  border:1px solid var(--border-md);
  border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-16);font-size:var(--fs-12);font-weight:var(--fw-semibold);
  color:var(--t3);cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);
  text-decoration:none;transition:all var(--t-default);
}
.plx-btn-ghost:hover { background:var(--border-md);color:var(--t1); }
.plx-btn-ghost-pill {
  background:transparent;border:1px solid var(--border-md);
  border-radius:var(--br-full);padding:var(--sp-12) var(--sp-28);font-size:var(--fs-14);font-weight:var(--fw-semibold);
color:var(--t3);cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;gap:var(--sp-8);text-decoration:none;
  justify-content: center;transition:all var(--t-default);
}
.plx-btn-ghost-pill:hover { background:var(--border-md);color:var(--t1); }
/* Small size modifiers (added by x-ui.button next to the base class) */
.plx-btn-primary-sm,
.plx-btn-ghost-pill-sm { border-radius:var(--br-inner);padding:var(--sp-10) var(--sp-20); }
/* Secondary (lime-tinted secondary action) */
.plx-btn-secondary {
  background:var(--lime-bg);border:1px solid var(--lime-bd);
  color:var(--lime);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-16);font-size:var(--fs-12);font-weight:var(--fw-bold);
  cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);transition:all var(--t-default);
}
.plx-btn-secondary:hover { background:var(--lime-a15); }
/* Warning (amber) */
.plx-btn-warning {
  background:var(--amber-bg);border:1px solid var(--amber-bd);
  color:var(--amber);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-16);font-size:var(--fs-12);font-weight:var(--fw-bold);
  cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);transition:all var(--t-default);
}
.plx-btn-warning:hover { background:var(--amber-bd); }
/* Accent variants */
.plx-btn-lime {
  background:var(--lime-bg);border:1px solid var(--lime-bd);
  color:var(--lime);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-16);font-size:var(--fs-12);font-weight:var(--fw-bold);
  cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);transition:all var(--t-default);
}
.plx-btn-lime:hover { background:var(--lime-a15); }
.plx-btn-cyan {
  background:var(--cyan-a10);border:1px solid var(--cyan-bd);
  color:var(--cyan);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-16);font-size:var(--fs-12);font-weight:var(--fw-bold);
  cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);
}
.plx-btn-purple {
  background:var(--purple-a10);border:1px solid var(--purple-bd);
  color:var(--purple);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-16);font-size:var(--fs-12);font-weight:var(--fw-bold);
  cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);transition:all var(--t-default);
}
.plx-btn-purple:hover { background:var(--purple-a10); }
/* Full-width pill (CTA) */

/* ── 8. BADGE / PILL COMPONENTS ── */
/* Base badge */
.badge {
  display:inline-flex;align-items:center;
  border-radius:var(--br-full);padding:var(--sp-4) var(--sp-10);
  font-size:var(--fs-10);font-weight:var(--fw-bold);
  border:1px solid transparent;
}
.plx-badge-lg { padding:var(--sp-4) var(--sp-16);font-size:var(--fs-12); }

/* Semantic badge colours */
.plx-badge-lime   { background:var(--lime-bg);border-color:var(--lime-bd);color:var(--lime); }
.plx-badge-cyan   { background:var(--cyan-bg);border-color:var(--cyan-bd);color:var(--cyan); }
.plx-badge-purple { background:var(--purple-bg);border-color:var(--purple-bd);color:var(--purple); }
.plx-badge-green  { background:var(--green-bg);border-color:var(--green-bd);color:var(--green); }
.plx-badge-amber  { background:var(--amber-bg);border-color:var(--amber-bd);color:var(--amber); }

.plx-badge-red    { background:var(--red-bg);border-color:var(--red-bd);color:var(--red); }
.plx-badge-ghost  { background:var(--bg-mid);border-color:var(--border-md);color:var(--t4); }
/* Solid grade pills */
.plx-grade-established { background:var(--green);color:var(--t1);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold); }
.plx-grade-managed     { background:var(--amber);color:var(--bg);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold); }
.plx-grade-developing  { background:var(--orange);color:var(--t1);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold); }
.plx-grade-high-risk   { background:var(--red);color:var(--t1);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold); }
/* Inline status badges */

/* Admin/table badge variants */

.plx-badge-inactive   { background:var(--bg-mid);border:1px solid var(--border-md);color:var(--t4);border-radius:var(--br-full);padding:var(--sp-2) var(--sp-10);font-size:var(--fs-10);font-weight:var(--fw-bold); }
.plx-badge-submitted  { background:var(--lime-a10);border:1px solid var(--lime-a15);color:var(--lime);border-radius:var(--br-full);padding:var(--sp-2) var(--sp-10);font-size:var(--fs-10);font-weight:var(--fw-bold); }

.plx-badge-inprog     { background:var(--cyan-bg);border:1px solid var(--cyan-bd);color:var(--cyan);border-radius:var(--br-full);padding:var(--sp-2) var(--sp-10);font-size:var(--fs-10);font-weight:var(--fw-bold); }
.plx-badge-overdue    { background:var(--red-bg);border:1px solid var(--red-bd);color:var(--red);border-radius:var(--br-full);padding:var(--sp-2) var(--sp-10);font-size:var(--fs-10);font-weight:var(--fw-bold); }

/* Plan tier badges */

/* ── 9. ICON CONTAINERS ── */
.plx-icon {
  border-radius:var(--br-outer);display:flex;align-items:center;
  justify-content:center;font-size:var(--fs-18);flex-shrink:0;
}
.plx-icon-sm { width: var(--size-32);height: var(--size-32);font-size:var(--fs-14);border-radius:var(--br-inner); }
.plx-icon-md { width: var(--size-40);height: var(--size-40);font-size:var(--fs-16); }
.plx-icon    { width: var(--size-44);height: var(--size-44);font-size:var(--fs-18); }
.plx-icon-lg { width: var(--size-52);height: var(--size-52);font-size:var(--fs-22); }
.plx-icon-xl { width: var(--size-64);height: var(--size-64);font-size:var(--fs-32); }
/* Circle icon */
.plx-icon-circle { border-radius:50%; }
/* Icon colour variants */
.plx-vi-lime   { background:var(--lime-bg);color:var(--lime); }
.plx-vi-cyan   { background:var(--cyan-bg);color:var(--cyan); }
.plx-vi-purple { background:var(--purple-bg);color:var(--purple); }
.plx-vi-green  { background:var(--green-bg);color:var(--green); }
.plx-vi-amber  { background:var(--amber-bg);color:var(--amber); }
.plx-vi-orange { background:var(--orange-bg);color:var(--orange); }
.plx-vi-red    { background:var(--red-bg);color:var(--red); }
.plx-vi-ghost  { background:var(--bg-mid);color:var(--t4); }
/* Avatar initials circle */
.plx-avatar { border-radius:50%;background:var(--grad);font-weight:var(--fw-bold);color:var(--bg);flex-shrink:0; }
.plx-avatar-sm { width: var(--size-30);height: var(--size-30);font-size:var(--fs-12); }
.plx-avatar-md { width: var(--size-34);height: var(--size-34);font-size:var(--fs-12); }
.plx-avatar-lg { width: var(--size-40);height: var(--size-40);font-size:var(--fs-14); }
.plx-avatar-img { object-fit:cover; }
/* ── 10. INFO ROW (key-value pairs) ── */

/* ── 11. DIVIDER ── */
.plx-divider { border:none;border-top:1px solid var(--border);margin:var(--sp-14) 0; }
/* ── 12. TAGS ── */
.plx-tag { display:inline-flex;align-items:center;border-radius:var(--br-full);padding:var(--sp-4) var(--sp-12);font-size:var(--fs-12);font-weight:var(--fw-bold);border:1px solid transparent; }

.plx-tag-purple { background:var(--purple-bg);border-color:var(--purple-bd);color:var(--purple); }

/* ── 13. DONUT WIDGET ── */

/* ── 14. PROGRESS BARS ── */

/* ── 15. TABLES ── */
.plx-table { width:100%;border-collapse:collapse;display:table; }
.plx-table thead { display:table-header-group; }
.plx-table tbody { display:table-row-group; }
.plx-table tbody tr { display:table-row; width:100%; }
.plx-table tbody td { display:table-cell; }
.plx-table th {
  background:var(--bg-mid);
  color:var(--white-a35);font-size:var(--fs-10);font-weight:var(--fw-bold);
  text-transform:uppercase;/* letter-spacing:.7px; */
  padding:var(--sp-10) var(--sp-14);text-align:left;
  border-bottom:1px solid var(--border);
}
.plx-table td {
  padding:var(--sp-14) var(--sp-14);font-size:var(--fs-14);color:var(--t3);
  border-bottom:1px solid var(--bg-card);vertical-align:middle;
}
.plx-table th.plx-tc { text-align:center; }
.plx-table tbody tr:last-child td { border-bottom:none; }
.plx-table tbody tr:hover td { background:var(--bg-subtle); }

/* Alias for existing usage */

/* Admin table */

/* ── 16. FORM ELEMENTS ── */
/* x-forms.input/select/textarea fall back to plain .form-control whenever
   no custom inputClass prop is passed — Bootstrap's .form-control has a
   hardcoded font-size:1rem that never changes with viewport, bypassing
   the var(--fs-14) responsive token every other input on the site uses.
   Same specificity as Bootstrap's rule (0,1,0); wins on source order since
   this file loads after style.css. */
.form-control { font-size: var(--fs-14);}
.form-control:disabled,
.form-control[readonly] { color: var(--t3); -webkit-text-fill-color: var(--t3); opacity: 1; cursor: not-allowed; }
.plx-input {
  width:100%;padding:var(--sp-12) var(--sp-14);
  background:var(--bg-mid);border:1px solid var(--border-md);
  border-radius:var(--br-inner);color:var(--t1);font-size:var(--fs-14);font-family:var(--font-body);
  transition:border var(--t-default);box-sizing:border-box;color-scheme:dark;
}
.plx-input[type="number"]::-webkit-inner-spin-button,
.plx-input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.plx-input[type="number"] {
  -moz-appearance: textfield;
}
.plx-input::placeholder { color:var(--t5); }
.plx-input:focus { outline:none;border-color:var(--lime-a60); }
.plx-input:disabled { color:var(--t4);cursor:default; }
.plx-input option,
.plx-input optgroup { background:var(--dark-navy);color:var(--t1); }
.plx-label { display:block;font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--t4);margin-bottom:var(--sp-8); }
.plx-select {
  width:100%;padding:var(--sp-12) var(--sp-14);
  background:var(--bg-mid);border:1px solid var(--border-md);
  border-radius:var(--br-inner);color:var(--t3);font-size:var(--fs-14);font-family:var(--font-body);
  box-sizing:border-box;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='var(--t6)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}
.plx-select option { background:var(--dark-navy); }
/* ── 17. AUTH PAGES ── */
.plx-auth-bg { min-height:100vh;flex-direction:column;padding:var(--sp-40) var(--sp-16);background:radial-gradient(ellipse 80% 60% at 50% -20%,var(--purple-bd) 0%,transparent 70%),
             radial-gradient(ellipse 60% 50% at 80% 100%,var(--cyan-a10) 0%,transparent 60%),
             var(--bg-alt);position:relative;overflow:hidden; }
.plx-auth-bg::before {
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 60px,var(--bg-subtle) 60px,var(--bg-subtle) 61px),
                   repeating-linear-gradient(90deg,transparent,transparent 60px,var(--bg-subtle) 60px,var(--bg-subtle) 61px);
}
.plx-auth-logo { text-align:center;margin-bottom:var(--sp-32);position:relative;z-index: var(--z-1); }
.plx-auth-logo h1 { font-size:var(--fs-36);font-weight:var(--fw-black);color:var(--t1);/* letter-spacing:-1px; */margin-bottom:var(--sp-4); }
.plx-auth-logo p  { font-size:var(--fs-14);color:var(--t4); }
.plx-auth-logo .logo { display:flex;justify-content:center;margin-bottom:var(--sp-4); }
.plx-auth-logo .logo img { max-width:100%;height: var(--size-60); }
.plx-auth-card { backdrop-filter:blur(20px);padding:var(--sp-20);width:100%;max-width: var(--size-540);position:relative;z-index: var(--z-1); }
.plx-auth-card h2  { font-size:var(--fs-24);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-8);text-align:center; }
.plx-auth-card p.plx-sub { font-size:var(--fs-14);color:var(--t4);text-align:center;margin-bottom:var(--sp-28); }
.plx-auth-card .alert-danger { background:transparent;border:none;color:var(--red);padding:0 0 var(--sp-12) 0;margin-bottom:var(--sp-12);font-size:var(--fs-12);}
/* auth-card size modifiers */
.plx-auth-card-wide   { max-width: var(--size-640); }

/* plx-card-lime compact (smaller padding) */

/* no-underline utility */

/* SVG utility */

/* letter-spacing utilities */
.plx-section-label { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--lime);margin:var(--sp-20) 0 var(--sp-14); }
.form-group    { margin-bottom:var(--sp-16); }
.form-group > label { display:block;font-size:var(--fs-14);color:var(--t3);margin-bottom:var(--sp-8); }
.form-group label .plx-req,.plx-req { color:var(--red);margin-left:var(--sp-2); }
.plx-form-row   { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-14); }
.plx-form-row-3 { display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-14); }
/* keep auth-input alias for backward compat */
.plx-auth-input {
  width:100%;padding:var(--sp-12) var(--sp-14);
  background:var(--bg-mid);border:1px solid var(--border-md);
  border-radius:var(--br-inner);color:var(--t1);font-size:var(--fs-14);font-family:var(--font-body);
  transition:border var(--t-default);box-sizing:border-box;
}
.plx-auth-input::placeholder { color:var(--t5); }
.plx-auth-input:focus { outline:none;border-color:var(--lime-a60); }
.plx-auth-input:disabled { color:var(--t4);cursor:default; }
.plx-select-input {
  width:100%;padding:var(--sp-12) var(--sp-14);background:var(--bg-mid);
  border:1px solid var(--border-md);border-radius:var(--br-inner);color:var(--t3);
  font-size:var(--fs-14);font-family:var(--font-body);box-sizing:border-box;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='var(--t6)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}
.plx-select-input option { background:var(--dark-navy); }
body select { transition: border-color var(--t-default) ease, box-shadow var(--t-default) ease; }

.plx-select.plx-select { transition: border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.plx-select-input.plx-select-input { transition: border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.plx-select-input.plx-select-input:focus,
.plx-select.plx-select:focus,
select.form-control.form-control:focus,
body select:focus,
body select:focus-visible,
body select:active {
  outline: none;
  border: 1px solid var(--border-md);
  box-shadow: none;
}
.plx-input-btn-row { display:flex;gap:var(--sp-10); }
.plx-input-btn-row .plx-auth-input { flex:1; }
.plx-verify-btn {
  background:transparent;border:1px solid var(--lime-a60);border-radius:var(--br-inner);
  padding:0 var(--sp-16);font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--lime);cursor:pointer;
  white-space:nowrap;font-family:var(--font-body);transition:all var(--t-default);
}
.plx-verify-btn:hover { background:var(--lime-a10); }
.plx-verify-btn-success { background:var(--green-a05);border-color:var(--green-bd);color:var(--green);cursor:default; }
.plx-verify-btn-error   { background:var(--red-a10);border-color:var(--red-bd);color:var(--red);cursor:default; }
/* Alert / info banners */
.plx-alert-box { border-radius:var(--br-outer);padding:var(--sp-14) var(--sp-16);display:flex;gap:var(--sp-12);align-items:flex-start; }
.plx-alert-box-amber { background:var(--orange-a15);border:1px solid var(--orange-bd); }

/* Auto-verified block */

/* Terms of service row */
.plx-tos-row { display:flex;align-items:flex-start;gap:var(--sp-10);margin-bottom:var(--sp-20);margin-top:var(--sp-8); }
.plx-tos-checkbox { accent-color:var(--lime);width: var(--size-16);height: var(--size-16);margin-top:var(--sp-2);flex-shrink:0; }
.plx-tos-label { font-size:var(--fs-14);color:var(--t3);cursor:pointer;}
.plx-tos-link { color:var(--lime);text-decoration:none; }
.plx-error-msg     { font-size:var(--fs-12);color:var(--orange);display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-4); }
.plx-doc-upload-section { border:1px dashed var(--border-md);border-radius:var(--br-outer);padding:var(--sp-16);margin-bottom:var(--sp-16); }
.plx-doc-upload-section .plx-section-label { margin-top:0; }
.plx-file-row { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-14); }
.plx-file-btn { background:var(--grad);border:none;border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--bg);cursor:pointer;white-space:nowrap;font-family:var(--font-body); }

.plx-note-text { font-size:var(--fs-12);color:var(--t6);margin-top:var(--sp-10); }
.plx-submit-btn {
  width:100%;background:var(--grad);border:none;border-radius:var(--br-full);
  padding:var(--sp-14);font-size:var(--fs-16);font-weight:var(--fw-bold);color:var(--bg);cursor:pointer;
  font-family:var(--font-body);margin-top:var(--sp-10);transition:all var(--t-default);
}
.plx-submit-btn:hover { opacity:var(--opacity-hover);transform:translateY(-1px); }
.plx-otp-boxes { display:flex;gap:var(--sp-12);justify-content:center;margin:var(--sp-24) 0; }
.plx-otp-box {
  width: var(--size-52);height: var(--size-56);border-radius:var(--br-outer);
  background:var(--bg-mid);border:1px solid var(--border-lg);
  text-align:center;font-size:var(--fs-22);font-weight:var(--fw-bold);color:var(--t1);font-family:var(--font-body);
  transition: border-color var(--t-default) ease;
}
.plx-otp-box:focus { outline:none;border-color:var(--lime); }
.plx-resend-link { font-size:var(--fs-14);color:var(--t3);text-align:center; }
.plx-resend-link a, .plx-resend-link .plx-resend-btn { color:var(--lime);font-weight:var(--fw-semibold);text-decoration:none;transition:opacity var(--t-fast); }
.plx-resend-link a:hover, .plx-resend-link .plx-resend-btn:hover { opacity:var(--opacity-hover);text-decoration:underline; }
.plx-success-icon { width: var(--size-72);height: var(--size-72);border-radius:50%;background:var(--green);margin:0 auto var(--sp-20);font-size:var(--fs-32);color:var(--t1); }
.plx-auth-link { text-align:center;font-size:var(--fs-14);color:var(--t4);margin-top:var(--sp-16); }
.plx-auth-link a { color:var(--lime);text-decoration:none; }
/* Password field with inline eye-toggle */
.plx-pwd-field-wrap { position:relative; }
.plx-pwd-field-wrap .plx-auth-input,
.plx-pwd-field-wrap .form-control { padding-right:var(--sp-40); }

.plx-pwd-field-wrap .form-control.form-control.is-invalid,
.plx-pwd-field-wrap .plx-auth-input.plx-auth-input.is-invalid,
.plx-pwd-field-wrap input.is-invalid.is-invalid { background-image:none; padding-right:var(--sp-40); }
.plx-pwd-toggle-btn { position:absolute; right:var(--pos-12); top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:var(--t5); font-size:var(--fs-16); padding:var(--sp-4); transition:color var(--t-fast); z-index: var(--z-2);}
.plx-pwd-toggle-btn:hover { color:var(--t2); }
/* Form control validation feedback: prevent error icon from overlapping entered text */
.form-control.is-invalid,
.modal-body .form-control.is-invalid,
.was-validated .form-control:invalid,
.was-validated .modal-body .form-control:invalid {
  padding-right: var(--sp-40);
  background-position: right 0.75rem center;
}
textarea.form-control.is-invalid,
.modal-body textarea.form-control.is-invalid,
.was-validated textarea.form-control:invalid,
.was-validated .modal-body textarea.form-control:invalid {
  padding-right: var(--sp-40);
  background-position: top 0.75rem right 0.75rem;
}
/* Date inputs with validation error: align error icon and calendar picker icon without overlapping */
input[type="date"].is-invalid,
input[type="datetime-local"].is-invalid,
input[type="time"].is-invalid,
.modal-body input[type="date"].is-invalid,
.modal-body input[type="datetime-local"].is-invalid,
.modal-body input[type="time"].is-invalid,
.was-validated input[type="date"]:invalid,
.was-validated input[type="datetime-local"]:invalid,
.was-validated input[type="time"]:invalid,
.was-validated .modal-body input[type="date"]:invalid,
.was-validated .modal-body input[type="datetime-local"]:invalid,
.was-validated .modal-body input[type="time"]:invalid {
  padding-right: var(--sp-64);
  background-position: right 0.625rem center;
  background-size: 1rem 1rem;
}
input[type="date"].is-invalid::-webkit-calendar-picker-indicator,
input[type="datetime-local"].is-invalid::-webkit-calendar-picker-indicator,
input[type="time"].is-invalid::-webkit-calendar-picker-indicator,
.was-validated input[type="date"]:invalid::-webkit-calendar-picker-indicator,
.was-validated input[type="datetime-local"]:invalid::-webkit-calendar-picker-indicator,
.was-validated input[type="time"]:invalid::-webkit-calendar-picker-indicator {
  margin-right: var(--sp-28);
  cursor: pointer;
}
/* Assessment Domain Start page */
.plx-dstart-card       { overflow:hidden; }
.plx-dstart-domain-cell.plx-dstart-domain-cell { border-color:var(--lime-a15); background:var(--lime-a10); }
.plx-recaptcha-box { border:1px solid var(--border-md);border-radius:var(--br-inner);padding:var(--sp-14) var(--sp-16);margin-bottom:var(--sp-20);background:var(--bg-card); }
.plx-recaptcha-check { display:flex;align-items:center;gap:var(--sp-10);font-size:var(--fs-14);color:var(--t3); }
.plx-recaptcha-check input[type=checkbox] { width: var(--size-18);height: var(--size-18);accent-color:var(--lime);cursor:pointer; }
.plx-recaptcha-logo { font-size:var(--fs-10);color:var(--white-a35);text-align:right;}
/* Terms row */
.plx-tos-row       { display:flex;align-items:flex-start;gap:var(--sp-10);cursor:pointer;margin-bottom:0; }
.plx-tos-checkbox  { width: var(--size-16);height: var(--size-16);accent-color:var(--lime);cursor:pointer;flex-shrink:0;margin-top:var(--sp-2); }
.plx-tos-label     { font-size:var(--fs-14);color:var(--t3);}
.plx-tos-link      { color:var(--lime);text-decoration:none;font-weight:var(--fw-semibold); }
.plx-tos-link:hover { text-decoration:underline; }
.plx-recaptcha-check { display:flex;align-items:center;gap:var(--sp-10);font-size:var(--fs-14);color:var(--t3); }
.plx-recaptcha-logo { font-size:var(--fs-10);color:var(--white-a35);text-align:right;}
.plx-center-card { padding:var(--sp-40) var(--sp-40);max-width: var(--size-480);width:100%;text-align:center;position:relative;z-index: var(--z-1); }
.plx-center-card h2 { font-size:var(--fs-26);font-weight:var(--fw-extrabold);color:var(--t1);margin-bottom:var(--sp-12); }
.plx-center-card p  { font-size:var(--fs-14);color:var(--t4);margin-bottom:var(--sp-28); }
.plx-btn-row { display:flex;gap:var(--sp-12);justify-content:center; }
.btn-primary { background:var(--grad);border:none;border-radius:var(--br-full);padding:var(--sp-12) var(--sp-28);font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--bg);cursor:pointer;font-family:var(--font-body);text-decoration:none; }

/* ── 18. LOGO COMPONENT ── */
.plx-logo { text-decoration:none; }

/* ── 19. SIDEBAR ENTERPRISE WIDGET ── */

.plx-hub-start-row { display:flex;align-items:flex-end;gap:var(--sp-10);flex-wrap:wrap;padding-bottom:var(--sp-16); }
.plx-hub-start-row .form-group { margin-bottom:0;position:relative; }
.plx-hub-start-row .form-control { height: var(--size-40); }

.plx-hub-start-row .plx-field-error { position:absolute;top:100%;left:0;white-space:nowrap; }

.plx-hub-tags   { display:flex;gap:var(--sp-8); }

.plx-overview-grid         { display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-14);margin-bottom:var(--sp-16); }
.plx-ov-cell               { padding:var(--sp-16);display:flex;align-items:center;gap:var(--sp-14); }
.plx-domain-assign-grid    { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-14);margin-bottom:var(--sp-16); }
.plx-da-card               { background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--br-outer);padding:var(--sp-16); }
.plx-da-title              { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-4); }
.plx-da-meta-row           { margin-bottom:var(--sp-4); }
.plx-da-date               { font-size:var(--fs-12);color:var(--white-a35);display:inline-flex;align-items:center;gap:var(--sp-4);flex-shrink:0; }
.plx-da-date i             { cursor:help; transition:color var(--t-fast); }
.plx-da-date i:hover       { color:var(--purple); }
/* Bootstrap tooltip styled to match project dark theme */
.tooltip .tooltip-inner { background:var(--bg-alt);border:1px solid var(--purple-bd);color:var(--t2);font-family:var(--font-body);font-size:var(--fs-12);font-weight:var(--fw-semibold);padding:var(--sp-4) var(--sp-10);border-radius:var(--br-inner);box-shadow:0 4px 16px var(--black-a50); }
.bs-tooltip-top    .tooltip-arrow::before { border-top-color:var(--purple-bd); }
.bs-tooltip-bottom .tooltip-arrow::before { border-bottom-color:var(--purple-bd); }
.bs-tooltip-start  .tooltip-arrow::before { border-left-color:var(--purple-bd); }
.bs-tooltip-end    .tooltip-arrow::before { border-right-color:var(--purple-bd); }
.plx-da-prog               { height: var(--size-6);background:var(--bg-mid);border-radius:var(--br-inner);overflow:hidden;margin:var(--sp-10) 0 var(--sp-8); }
.plx-da-prog-fill          { height:100%;border-radius:var(--br-inner); }
.plx-da-prog-label         { display:flex;justify-content:space-between;font-size:var(--fs-12);color:var(--t4); }
.plx-da-btn                { display:flex;justify-content:center;width:100%;margin-top:var(--sp-10);background:var(--bg-mid);border:1px solid var(--border-md);border-radius:var(--br-inner);padding:var(--sp-8);font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--t3);cursor:pointer;font-family:var(--font-body); }
.plx-da-btn-start          { background:var(--lime-a10);border-color:var(--lime-a15);color:var(--lime); }
.plx-da-btn-continue       { background:var(--purple-a10);border-color:var(--purple-bd);color:var(--purple); }
.plx-da-btn-done           { background:var(--green-a05);border-color:var(--green-bd);color:var(--green); }
/* ── 21. ASSESSMENT PREVIEW ── */

.plx-val-yes  { color:var(--green); }
.plx-val-no   { color:var(--red); }
.plx-val-num  { color:var(--t2); }

/* ── 22. ASSESSMENT SCREEN ── */
.plx-sc-layout   { display:grid;grid-template-columns:var(--size-220) 1fr var(--size-200);gap:var(--sp-12);align-items:start; }
.plx-ctrl-panel  { background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--br-outer);overflow:hidden;position:sticky;top:var(--pos-20); }
.plx-ctrl-title  { padding:var(--sp-12) var(--sp-16);font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--t4);border-bottom:1px solid var(--bg-mid);/* letter-spacing:.8px; */text-transform:uppercase; }

.plx-ctrl-dot          { width: var(--size-9);height: var(--size-9);border-radius:50%;flex-shrink:0; }

.plx-ctrl-dot.empty    { border:1.5px solid var(--cyan-bd); }
.plx-ctrl-name         { font-size:var(--fs-12);color:var(--t3);flex:1; }

.plx-ctrl-score-lbl    { font-size:var(--fs-10);color:var(--white-a35); }
.plx-q-card   { padding:var(--sp-16); }
.plx-q-num    { width: var(--size-26);height: var(--size-26);border-radius:var(--br-inner);background:var(--lime-a10);border:1px solid var(--lime-a15);color:var(--lime);font-size:var(--fs-12);font-weight:var(--fw-bold);flex-shrink:0; }
.plx-q-head   { display:flex;align-items:flex-start;gap:var(--sp-10);margin-bottom:var(--sp-14); }
.plx-q-text   { font-size:var(--fs-14);color:var(--t2);flex:1; }
.plx-q-help   { color:var(--amber-a50);background:none;border:none;cursor:pointer;padding:0;font-size:var(--fs-14);flex-shrink:0;margin-top:var(--sp-2); }

.plx-toggle:not(:has(.plx-toggle-track))   { width: var(--size-44);height: var(--size-24);border-radius:var(--br-outer);background:var(--border);cursor:pointer;position:relative;border:1px solid var(--border-md);transition:all var(--t-default);flex-shrink:0; }
.plx-toggle:not(:has(.plx-toggle-track))::after { content:'';position:absolute;top:var(--pos-4);left:var(--pos-4);width: var(--size-16);height: var(--size-16);border-radius:50%;background:var(--white-a35);transition:all var(--t-default); }
.plx-toggle:not(:has(.plx-toggle-track)).on { background:var(--lime-a15);border-color:var(--lime); }
.plx-toggle:not(:has(.plx-toggle-track)).on::after { transform:translateX(20px);background:var(--lime); }

.plx-score-btns   { display:flex;gap:var(--sp-8);flex-wrap:wrap; }
.plx-sc-btn       { width: var(--size-42);height: var(--size-42);border-radius:var(--br-inner);border:1px solid var(--border-md);background:var(--bg-card);color:var(--t3);font-size:var(--fs-16);font-weight:var(--fw-bold);cursor:pointer;transition:all var(--t-fast);font-family:var(--font-body); }
.plx-sc-btn:hover { background:var(--lime-a10);border-color:var(--lime-a15);color:var(--lime); }
.plx-sc-btn.plx-sel   { background:var(--lime-a10);border-color:var(--lime);color:var(--lime); }
.plx-q-nav        { margin-top:var(--sp-14);padding-top:var(--sp-12);border-top:1px solid var(--bg-mid); }
.plx-nav-btn         { background:var(--bg-mid);border:1px solid var(--border-md);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-20);font-size:var(--fs-14);color:var(--t3);cursor:pointer;font-family:var(--font-body);display:flex;align-items:center;gap:var(--sp-8); }
.plx-nav-btn-primary { background:var(--grad);border:none;color:var(--bg);font-weight:var(--fw-bold);  transition: color var(--t-default) ease; }
.plx-info-panel  { display:flex;flex-direction:column;gap:var(--sp-10);position:sticky;top:var(--pos-20); }
.plx-info-card   { padding:var(--sp-14); }
.plx-info-title  { font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--lime);margin-bottom:var(--sp-10);display:flex;align-items:center;gap:var(--sp-8);text-transform:uppercase;/* letter-spacing:.7px; */ }
.plx-scale-row   { padding:var(--sp-4) 0;border-bottom:1px solid var(--bg-card); }
.plx-scale-row:last-child { border-bottom:none; }
.plx-scale-num   { font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--lime);width: var(--size-14);flex-shrink:0; }
.plx-scale-lbl   { font-size:var(--fs-12);color:var(--t3);flex:1; }
.plx-stat-row    { padding:var(--sp-4) 0;border-bottom:1px solid var(--bg-card);font-size:var(--fs-12); }
.plx-stat-row:last-child { border-bottom:none; }
.plx-stat-lbl    { color:var(--t4); }
.plx-stat-val    { font-weight:var(--fw-bold);color:var(--lime); }

.modal-title  { font-size:var(--fs-18);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-16); }

.plx-modal-item    { font-size:var(--fs-14);color:var(--t3);margin-bottom:var(--sp-8);padding-left:var(--sp-8); }

.plx-prog-bar-wrap  { flex:1;height: var(--size-8);background:var(--border);border-radius:var(--br-inner);overflow:hidden; }
.plx-prog-bar-fill  { height:100%;border-radius:var(--br-inner);background:var(--grad); }
/* ── 23. DASHBOARD ── */

.plx-grade-pill   { background:var(--amber-bg);border:1px solid var(--amber-bd);border-radius:var(--br-full);padding:var(--sp-8) var(--sp-28);font-size:var(--fs-16);font-weight:var(--fw-bold);color:var(--amber);display:inline-block;margin-bottom:var(--sp-8); }
.plx-grade-desc   { font-size:var(--fs-12);color:var(--t4);}

.plx-dt-score { font-size:var(--fs-28);font-weight:var(--fw-black);margin-bottom:var(--sp-4); }
.plx-dt-name  { font-size:var(--fs-12);font-weight:var(--fw-semibold);margin-bottom:var(--sp-4); }
.plx-dt-grade { font-size:var(--fs-12);font-weight:var(--fw-bold); }
.plx-dt-established { background:var(--green-a05);border-color:var(--green-bd); }
.plx-dt-established .plx-dt-score,.plx-dt-established .plx-dt-grade { color:var(--green); }
.plx-dt-managed     { background:var(--amber-a10);border-color:var(--amber-bd); }
.plx-dt-managed .plx-dt-score,.plx-dt-managed .plx-dt-grade { color:var(--amber); }
.plx-dt-developing  { background:var(--orange-a15);border-color:var(--orange-bd); }
.plx-dt-developing .plx-dt-score,.plx-dt-developing .plx-dt-grade { color:var(--orange); }
.plx-dt-high-risk   { background:var(--red-a10);border-color:var(--red-bd); }
.plx-dt-high-risk .plx-dt-score,.plx-dt-high-risk .plx-dt-grade { color:var(--red); }
.plx-dt-locked      { background:var(--bg-card);border-color:var(--bg-mid);color:var(--white-a35); }
.plx-dt-locked .plx-dt-score { color:var(--white-a35);font-size:var(--fs-22); }

.plx-qa-btn       { padding:var(--sp-12) var(--sp-14);border-radius:var(--br-outer);border:1px solid var(--border);background:var(--bg-subtle);font-size:var(--fs-14);color:var(--t3);text-decoration:none;margin-bottom:var(--sp-8);transition:all var(--t-fast);cursor:pointer; }
.plx-qa-btn:last-child { margin-bottom:0; }
.plx-qa-btn:hover { background:var(--lime-a10);border-color:var(--lime-a15);color:var(--lime); }

.plx-ra-row       { padding:var(--sp-10) 0;border-bottom:1px solid var(--bg-card); }
.plx-ra-row:last-child { border-bottom:none; }

/* Dashboard-1 variant */

.plx-grade-pill-solid  { background:var(--green);color:var(--t1);border-radius:var(--br-full);padding:var(--sp-8) var(--sp-28);font-size:var(--fs-16);font-weight:var(--fw-extrabold);display:inline-block;margin-bottom:var(--sp-8); }
.plx-grade-sub         { font-size:var(--fs-12);color:var(--t6);}

.plx-stats-row-5       { display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-14);margin-bottom:var(--sp-16); }
.plx-stat-box          { padding:var(--sp-20); }
.plx-stat-box-val      { font-size:var(--fs-28);font-weight:var(--fw-extrabold);color:var(--t1);margin:var(--sp-8) 0 var(--sp-2); }
.plx-stat-box-ico      { width: var(--size-40);height: var(--size-40);border-radius:var(--br-inner);font-size:var(--fs-18);margin-bottom:var(--sp-4); }
.plx-two-cols          { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-14);margin-bottom:var(--sp-14); }
.plx-rev-big           { font-size:var(--fs-26);font-weight:var(--fw-extrabold);color:var(--lime);margin-bottom:var(--sp-4); }
.plx-rev-sub           { font-size:var(--fs-12);color:var(--white-a35);margin-top:var(--sp-4); }

.plx-plan-row          { margin-bottom:var(--sp-10); }
.plx-plan-name         { font-size:var(--fs-14);color:var(--t3);width: var(--size-90);flex-shrink:0;margin-bottom:var(--sp-8); }
.plx-plan-orgs         { font-size:var(--fs-12);color:var(--t4);width: var(--size-48); }
.plx-plan-track        { flex:1;height: var(--size-7);background:var(--bg-mid);border-radius:var(--br-inner);overflow:hidden; }
.plx-plan-fill         { height:100%;border-radius:var(--br-inner); }
.plx-plan-fill-lime    { background:var(--lime); }
.plx-plan-rev          { font-size:var(--fs-12);font-weight:var(--fw-semibold);width: var(--size-56);text-align:right;flex-shrink:0; }
.plx-plan-pct          { font-size:var(--fs-12);color:var(--t4);width: var(--size-30);text-align:right;flex-shrink:0; }
.plx-vq-item           { display:flex;align-items:flex-start;gap:var(--sp-12);padding:var(--sp-14) var(--sp-16);border-bottom:1px solid var(--bg-mid); }
.plx-vq-item:last-child { border-bottom:none; }
.plx-vq-left           { display:flex;flex-direction:column;gap:var(--sp-4);flex:1; }
.plx-vq-right          { flex-shrink:0;padding-top:var(--sp-2); }
.plx-vq-name           { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1);gap:var(--sp-8); }
.plx-vq-meta           { gap:var(--sp-4);margin-top:var(--sp-2); }
.plx-vq-date           { gap:var(--sp-4); }
.plx-tracker-table           { width:100%;border-collapse:collapse;background:transparent; }
.plx-tracker-table thead tr  { background:var(--bg-card); }
.plx-tracker-table th        { color:var(--t6);font-size:var(--fs-10);font-weight:var(--fw-bold);text-transform:uppercase;/* letter-spacing:.7px; */padding:var(--sp-10) var(--sp-14);text-align:left;border-bottom:1px solid var(--border); }
.plx-tracker-table td        { padding:var(--sp-12) var(--sp-14);font-size:var(--fs-14);color:var(--t3);border-bottom:1px solid var(--bg-card);vertical-align:middle; }
.plx-tracker-table tbody tr:last-child td { border-bottom:none; }
.plx-tracker-table tbody tr:hover { background:var(--bg-card); }
.plx-funnel-row        { display:grid;grid-template-columns:1fr var(--size-80) var(--size-72);align-items:center;padding:var(--sp-12) 0;border-bottom:1px solid var(--bg-mid); }
.plx-funnel-row:last-child { border-bottom:none; }
.plx-activity-row      { padding:var(--sp-12) 0;border-bottom:1px solid var(--bg-mid); }
.plx-activity-row:last-child { border-bottom:none; }
.plx-activity-ico      { width: var(--size-32);height: var(--size-32);border-radius:50%;background:var(--bg-mid);font-size:var(--fs-12);color:var(--t4);flex-shrink:0; }
.plx-adr-item          { padding:var(--sp-14) var(--sp-16);border-bottom:1px solid var(--bg-mid);display:flex;align-items:flex-start;gap:var(--sp-12); }
.plx-adr-item:last-child { border-bottom:none; }
.plx-adr-left          { flex:1;display:flex;flex-direction:column;gap:var(--sp-4); }
.plx-adr-left h6       { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1);margin-bottom:var(--sp-2);display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-8); }
.plx-adr-left .plx-meta    { display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-4); }
.plx-adr-date          { gap:var(--sp-4); }
.plx-adr-right         { flex-shrink:0;padding-top:var(--sp-2); }
/* ── 23b. ADMIN DASHBOARD — missing utility classes ── */
/* Revenue KPI row */
.plx-rev-card          { display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:var(--sp-16) 0 var(--sp-20);border-bottom:1px solid var(--border);margin-bottom:0; }
.plx-rev-cell          { display:flex;flex-direction:column;justify-content:center;padding:0 var(--sp-24);border-right:1px solid var(--border); }
.plx-rev-cell:first-child { padding-left:0; }
.plx-rev-cell:last-child  { border-right:none; }
/* Big value (non-lime) — same size as .plx-rev-big but no color override */
.plx-rev-val           { font-size:var(--fs-26);font-weight:var(--fw-extrabold);margin-bottom:var(--sp-4);}
/* Color utilities */
.plx-c-muted           { color:var(--t4); }
.plx-c-muted-30,
.plx-c-muted-35 { color:var(--white-a35); }

.plx-c-muted-40        { color:var(--t6); }
.plx-c-muted-75        { color:var(--t2); }
/* Org filter — native select styled as chip */

.plx-org-filter-select {
  appearance:none;-webkit-appearance:none;background:transparent;border:none;
  outline:none;font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--t3);
  font-family:var(--font-body);cursor:pointer;padding:0;min-width: var(--size-130);
}
.plx-org-filter-select option { background:var(--bg-alt);color:var(--gray-light); }

/* Misc utilities */
.plx-cursor-pointer    { cursor:pointer; }
.plx-px-20             { padding-left:var(--sp-20);padding-right:var(--sp-20); }
/* Funnel header labels row */
.plx-funnel-header-row { display:grid;grid-template-columns:1fr var(--size-80) var(--size-72);padding-bottom:var(--sp-8);margin-bottom:var(--sp-4);border-bottom:1px solid var(--border); }
/* Legend dots for revenue split bar */

/* Revenue split bar fill colors (data-color attribute) */

/* Revenue section separator */
.plx-rev-section-sep   { border-top:1px solid var(--bg-mid);margin-top:var(--sp-20);padding-top:var(--sp-20); }
/* Activity icon color variants */
.plx-activity-ico-lime   { background:var(--lime-bg);color:var(--lime); }
.plx-activity-ico-amber  { background:var(--amber-bg);color:var(--amber); }
.plx-activity-ico-cyan   { background:var(--cyan-bg);color:var(--cyan); }
.plx-activity-ico-purple { background:var(--purple-bg);color:var(--purple); }
/* Add-on License Snapshot */
.plx-addon-snap-grid   { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-10);margin-bottom:var(--sp-10); }
.plx-addon-snap-cell   { background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--br-inner);padding:var(--sp-14) var(--sp-12);text-align: center; }
.plx-addon-snap-val    { font-size:var(--fs-20);font-weight:var(--fw-extrabold);color:var(--lime);margin-bottom:var(--sp-4);}
.plx-addon-note        { font-size:var(--fs-12);color:var(--white-a35);margin-top:var(--sp-8);}
/* Top Revenue Organisations */
.plx-top-rev-row       { padding:var(--sp-12) 0;border-bottom:1px solid var(--bg-mid); }
.plx-top-rev-row:last-child { border-bottom:none; }
.plx-top-rev-name      { font-size:var(--fs-14);color:var(--t3); }
.plx-top-rev-amt       { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1); }
/* Two-column layout with vertical divider */
.plx-two-cols-divided  { display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:0; }
.plx-two-cols-divided > :first-child { padding-right:var(--sp-28);border-right:1px solid var(--border); }
.plx-two-cols-divided > :last-child  { padding-left:var(--sp-28); }
/* VQ/ADR colorful org/status icon */
.plx-vq-ico,
.plx-adr-ico { width: var(--size-40);height: var(--size-40);border-radius:var(--br-outer);font-size:var(--fs-18);flex-shrink:0;margin-top:var(--sp-4); }

/* Colorful meta/info chips */
.plx-meta-chip    { display:inline-flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-10);border-radius:var(--br-full);font-size:var(--fs-10);font-weight:var(--fw-medium);white-space:nowrap; }
.plx-chip-default { background:var(--bg-mid);color:var(--t4); }
.plx-chip-lime    { background:var(--lime-a10);color:var(--lime-a80); }
.plx-chip-cyan    { background:var(--cyan-a10);color:var(--cyan-a78); }
.plx-chip-amber   { background:var(--amber-a10);color:var(--amber-a100); }
.plx-chip-orange  { background:var(--orange-a15);color:var(--orange-a82); }
.plx-chip-purple  { background:var(--purple-a10);color:var(--purple-a95); }
.plx-chip-green   { background:var(--green-a05);color:var(--green-a85); }
/* Choices.js org-filter dark theme */
.plx-org-filter-outer { position:relative;display:inline-flex;align-items:center; }
.plx-org-filter-pfx   { position:absolute;left:var(--pos-12);z-index: var(--z-2);font-size:var(--fs-14);color:var(--t6);pointer-events:none; }
.plx-org-filter-outer .choices { margin-bottom:0;min-width: var(--size-220); }
.plx-org-filter-outer .choices__inner {
  background:var(--bg-card);border:1px solid var(--border-md);border-radius:var(--br-inner);
  min-height:auto;padding:var(--sp-8) var(--sp-40);display:flex;align-items:center;
  transition:border-color var(--t-fast);
}
.plx-org-filter-outer .choices__inner:hover { border-color:var(--border-lg); }
.plx-org-filter-outer .choices.is-open .choices__inner,
.plx-org-filter-outer .choices.is-flipped.is-open .choices__inner { border-radius:var(--br-inner); }
.plx-org-filter-outer .choices__list--single { padding:0; }
.plx-org-filter-outer .choices__list--single .choices__item {
  font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--t3);
  font-family:var(--font-body);padding:0;
}
.plx-org-filter-outer .choices__list--dropdown,
.plx-org-filter-outer .choices__list[aria-expanded] {
  background:var(--bg-alt);border:1px solid var(--border-md);
  border-radius:var(--br-inner);margin-top:var(--sp-4);z-index: var(--z-999);
  box-shadow:0 10px 30px var(--black-a65);overflow:hidden;
  width:max-content;min-width: var(--size-280);max-width: var(--size-420);
  right:0;left:auto;
  word-break:normal;overflow-wrap:normal;
}
.plx-org-filter-outer .choices__list--dropdown .choices__input,
.plx-org-filter-outer .choices__list[aria-expanded] .choices__input {
  background:var(--bg-mid);border:none;border-bottom:1px solid var(--border-md);
  color:var(--t2);font-size:var(--fs-12);font-family:var(--font-body);
  padding:var(--sp-10) var(--sp-14);width:100%;margin-bottom:0;box-sizing:border-box;
}
.plx-org-filter-outer .choices__list--dropdown .choices__input:focus,
.plx-org-filter-outer .choices__list[aria-expanded] .choices__input:focus {
  border-bottom-color:var(--lime-a60);outline:none;
}
.plx-org-filter-outer .choices__list--dropdown .choices__item,
.plx-org-filter-outer .choices__list[aria-expanded] .choices__item {
  font-size:var(--fs-14);color:var(--t3);padding:var(--sp-10) var(--sp-16);
  font-family:var(--font-body);transition:background var(--t-fast);
  word-break:normal;overflow-wrap:normal;white-space:normal;
}
.plx-org-filter-outer .choices__list--dropdown .choices__item.is-highlighted,
.plx-org-filter-outer .choices__list[aria-expanded] .choices__item.is-highlighted {
  background:var(--lime-a10);color:var(--lime);
}
.plx-org-filter-outer .choices__list--dropdown .choices__item--selectable,
.plx-org-filter-outer .choices__list[aria-expanded] .choices__item--selectable {
  padding-right:var(--sp-16);
}
.plx-org-filter-outer .choices__list--dropdown .choices__item--selectable::after,
.plx-org-filter-outer .choices__list[aria-expanded] .choices__item--selectable::after,
.plx-org-filter-outer .choices[data-type*='select-one']::after,
.plx-org-filter-outer .choices[data-type*='select-one'].is-open::after {
  display:none;
}
/* hide default Choices caret — replaced by FA chevron */

/* FA chevron suffix — rotates when dropdown is open */
.plx-org-filter-sfx { position:absolute;right:var(--pos-12);z-index: var(--z-2);font-size:var(--fs-12);color:var(--t4);pointer-events:none;transition:transform var(--t-default); }
.plx-org-filter-outer .choices.is-open ~ .plx-org-filter-sfx { transform:rotate(180deg); }
/* Revenue Split — single stacked pill bar */
.plx-rev-split-chart   { display:flex;flex-direction:column;gap:var(--sp-14); }
.plx-rev-split-bar     { height: var(--size-28);border-radius:var(--br-full);display:flex;overflow:hidden;background:var(--bg-mid); }
.plx-rev-split-seg     { height:100%;flex-shrink:0;transition:width var(--t-slow) cubic-bezier(.4,0,.2,1),opacity var(--t-medium) ease; }
.plx-rev-split-legends { gap:var(--sp-24); }
.plx-rsl-btn           { display:inline-flex;align-items:center;gap:var(--sp-8);background:none;border:none;padding:0;cursor:pointer;user-select:none;transition:opacity var(--t-default); }
.plx-rsl-btn.plx-is-off    { opacity:var(--opacity-disabled); }
.plx-rsl-dot           { width: var(--size-10);height: var(--size-10);border-radius:50%;flex-shrink:0; }
.plx-rsl-text          { font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--t3);font-family:var(--font-body); }
/* ── 23c. ORG DETAIL PAGE ── */
.plx-orgd-name         { font-size:var(--fs-22);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-12); }
.plx-orgd-meta-tag     { display:inline-flex;align-items:center;gap:var(--sp-8);font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--t3);padding-right:var(--sp-20);margin-right:var(--sp-20);border-right:1px solid var(--border); }
.plx-orgd-meta-tag:last-of-type { border-right:none;padding-right:0;margin-right:0; }
.plx-orgd-meta-tag i   { font-size:var(--fs-12);color:var(--t5); }
.plx-orgd-stat-grid    { display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-14);margin-top:var(--sp-20); }
.plx-orgd-stat-box     { padding:var(--sp-16) var(--sp-20);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-12); }
.plx-orgd-stat-left    { display:flex;flex-direction:column; }
.plx-orgd-stat-lbl     { font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--t5);margin-bottom:var(--sp-8); }
.plx-orgd-stat-val     { font-size:var(--fs-22);font-weight:var(--fw-extrabold);color:var(--t1);}
.plx-orgd-stat-ico     { width: var(--size-34);height: var(--size-34);border-radius:var(--br-inner);font-size:var(--fs-16);flex-shrink:0; }
.plx-rev-sum-row       { display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:var(--sp-20); }
.plx-rev-sum-cell      { padding:0 var(--sp-20); }
.plx-rev-sum-cell:first-child { padding-left:0; }
.plx-rev-sum-val       { font-size:var(--fs-22);font-weight:var(--fw-extrabold);margin-bottom:var(--sp-4); }
.plx-rev-sum-lbl       { font-size:var(--fs-12);color:var(--t5); }
.plx-plan-lic-row      { padding:var(--sp-10) 0;border-bottom:1px solid var(--bg-card); }
.plx-plan-lic-row:last-of-type { border-bottom:none; }
.plx-plan-lic-val      { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1); }

.plx-lic-util-bar      { height: var(--size-10);border-radius:var(--br-full);background:var(--border);overflow:hidden;margin-bottom:var(--sp-8); }
.plx-lic-util-fill     { height:100%;border-radius:var(--br-full);transition:width var(--t-slow) ease; }
.plx-revlic-grid       { display:grid;grid-template-columns:1fr 1fr; }
.plx-revlic-cell       { padding:var(--sp-20) var(--sp-28); }
.plx-revlic-cell:nth-child(odd)  { padding-left:0;border-right:1px solid var(--border); }
.plx-revlic-cell:nth-child(even) { padding-right:0; }
.plx-revlic-cell:nth-child(-n+2) { padding-top:0;border-bottom:1px solid var(--bg-mid); }
.plx-revlic-cell:nth-child(n+3)  { padding-bottom:0; }
.plx-wflow-grid        { display:grid;grid-template-columns:repeat(3,1fr); }
.plx-wflow-col         { padding:0 var(--sp-24);border-right:1px solid var(--border); }
.plx-wflow-col:first-child { padding-left:0; }
.plx-wflow-col:last-child  { border-right:none; }
.plx-wflow-lbl         { font-size:var(--fs-10);font-weight:var(--fw-bold);text-transform:uppercase;/* letter-spacing:.8px; */color:var(--t5);margin-bottom:var(--sp-10); }
.plx-wflow-val         { font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--t3); }
.plx-od-act-row        { padding:var(--sp-12) 0;border-bottom:1px solid var(--bg-card); }
.plx-od-act-row:last-child { border-bottom:none; }
.plx-od-act-ico        { width: var(--size-30);height: var(--size-30);border-radius:var(--br-inner);background:var(--bg-card);font-size:var(--fs-12);color:var(--t4);flex-shrink:0; }
.plx-od-act-text       { flex:1;font-size:var(--fs-14);color:var(--t3); }
.plx-od-act-date       { font-size:var(--fs-12);color:var(--t5);flex-shrink:0;white-space:nowrap; }

/* ── 23d. REVENUE ANALYTICS PAGE ── */

/* Organization Distribution pie */

/* Top Revenue Organisations list */

/* Revenue Trend: view tabs */

/* Hover tooltip shared by line + bar charts */

/* Group view grouped bar chart */

/* ── 24. DOMAIN DASHBOARD ── */

.plx-grade-pill-amber { background:var(--amber);color:var(--bg);border-radius:var(--br-full);padding:var(--sp-8) var(--sp-24);font-size:var(--fs-16);font-weight:var(--fw-extrabold);display:inline-block;margin-bottom:var(--sp-8); }

/* ── 25. DOMAIN DRILLDOWN ── */
/* ── Page title header ── */
.plx-drilldown-header    { padding-top:var(--sp-20);margin-bottom:var(--sp-20);gap:var(--sp-20);flex-wrap:wrap; }
.plx-dd-title-block      { display:flex; flex-direction:column; }
.plx-dd-back-btn         { display:inline-flex; align-items:center; gap:var(--sp-8); padding:var(--sp-8) var(--sp-14); background:var(--bg-mid); border:1px solid var(--border-md); border-radius:var(--br-full); font-size:var(--fs-12); font-weight:var(--fw-semibold); color:var(--t3); text-decoration:none; margin-bottom:var(--sp-12); width:fit-content; transition:background var(--t-fast), color var(--t-fast); }
.plx-dd-back-btn:hover   { background:var(--border-md); color:var(--t1); }
.plx-dd-main-title       { font-size:var(--fs-22); font-weight:var(--fw-extrabold); color:var(--t1); margin:0 0 var(--sp-4); /* letter-spacing:-0.3px; */ }
.plx-dd-main-sub         { font-size:var(--fs-14); color:var(--t4); margin:0; }
.plx-overall-score-badge { display:flex; align-items:center; gap:var(--sp-16);
  /* background:var(--bg-card);
  border:1px solid var(--border-md);  */
  border-radius:var(--br-outer);
  /* padding:var(--sp-14) var(--sp-20);  */
  flex-shrink:0; }
#plxDdScoreChartJs        { width: var(--size-130); min-height: var(--size-130); }
.plx-dd-score-info       { display:flex; flex-direction:column; gap:var(--sp-8); }
.plx-dd-score-lbl        { font-size:var(--fs-14); font-weight:var(--fw-bold); color:var(--t2); white-space:nowrap; }
/* ── Domain section headers ── */
.plx-dd-domain-hdr     { font-size:var(--fs-12); font-weight:var(--fw-bold); /* letter-spacing:1.2px; */ text-transform:uppercase; color:var(--t1); padding:var(--sp-20) var(--sp-16) var(--sp-16); background:transparent; }
/* .dd-domain-hdr-sep — top spacing comes from accordion margin-bottom below */
/* ── Bootstrap accordion overrides ── */
.plx-dd-accordion {
  --bs-accordion-bg:           transparent;
  --bs-accordion-border-color: transparent;
  --bs-accordion-btn-bg:       transparent;
  --bs-accordion-btn-color:    var(--t2);
  --bs-accordion-active-bg:    var(--bg-subtle);
  --bs-accordion-active-color: var(--t1);
  border: 1px solid var(--border-md);
  border-radius: var(--br-outer);
  overflow: hidden;
  margin: 0 0 var(--sp-24);
}
.plx-dd-acc-item { background:transparent; border:none; border-top:1px solid var(--bg-mid); }
.plx-dd-acc-item:first-child { border-top:none; }
.plx-dd-acc-btn.plx-dd-acc-btn {
  display: flex; align-items: center; gap: var(--sp-12);
  padding: var(--sp-14) var(--sp-16); width: 100%;
  background: transparent; box-shadow: none;
  border: none; font-size:var(--fs-14); font-weight:var(--fw-medium);
  font-family:var(--font-body); color: var(--t2);
  transition: background var(--t-fast);
}
.plx-dd-acc-btn::after   { display: none; }
/* remove Bootstrap's default chevron */
.plx-dd-acc-btn.plx-dd-acc-btn:focus { box-shadow: none; outline: none; }
.plx-dd-acc-btn:not(.collapsed) { background: var(--bg-subtle); color: var(--t1); }
.plx-dd-acc-btn:hover    { background: var(--bg-card); }
/* Left chevron — rotates when open */
.plx-dd-acc-chev { font-size:var(--fs-12); color:var(--t5); transition:transform var(--t-default) ease, color var(--t-default); flex-shrink:0; }
.plx-dd-acc-btn:not(.collapsed) .plx-dd-acc-chev { transform:rotate(90deg); color:var(--lime); }
/* Control name */
.plx-dd-acc-name { flex:1; font-size:var(--fs-14); color:inherit; text-align:left; }
/* Right-side: score + badge */
.plx-dd-acc-meta  { gap:var(--sp-10);margin-left:auto;min-width: var(--size-260);flex-shrink:0; }
.plx-dd-acc-score { font-size:var(--fs-14); font-weight:var(--fw-semibold); color:var(--t3); }
/* Accordion body */
.plx-dd-acc-body { padding:var(--sp-12) var(--sp-16) var(--sp-16) var(--sp-40); background:var(--bg-subtle); border-top:1px solid var(--bg-card); }
/* Questions label inside accordion body */
.plx-dd-q-lbl { font-size:var(--fs-10); font-weight:var(--fw-bold); color:var(--t5); /* letter-spacing:.5px; */ text-transform:uppercase; padding:var(--sp-8) 0 var(--sp-8); }
/* Existing shared badge / panel styles (unchanged) */
.gb-reactive    { background:linear-gradient(135deg, var(--red-bd), var(--red-bg));color:var(--red);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold);white-space:nowrap; border:1px solid var(--red-bd); }
.gb-managed     { background:var(--amber-a10);color:var(--amber);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold);white-space:nowrap; border:1px solid var(--amber-bd); }
.gb-established { background:var(--lime-a15);color:var(--lime);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold);white-space:nowrap; border:1px solid var(--lime-a15); }
.gb-optimized   { background:var(--cyan-bg);color:var(--cyan);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold);white-space:nowrap; border:1px solid var(--cyan-bg); }
.gb-intelligent { background:var(--purple-bg);color:var(--purple);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold);white-space:nowrap; border:1px solid var(--purple-bd); }

.plx-improvement-panel    { background:var(--amber-a10);border:1px solid var(--amber-bd);border-radius:var(--br-inner);padding:var(--sp-12) var(--sp-14);margin-bottom:var(--sp-10);display:none; }
.plx-improvement-panel.open { display:block; }
.plx-improvement-title    { font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--amber);margin-bottom:var(--sp-8);display:flex;align-items:center;gap:var(--sp-4); }
.plx-improvement-bullets  { list-style:disc;padding-left:var(--sp-16);font-size:var(--fs-12);color:var(--t3);margin:0; }

.plx-q-assessed-row       { padding:var(--sp-8) 0;border-bottom:1px solid var(--bg-card); }
.plx-q-assessed-row:last-child { border-bottom:none; }
.plx-q-assessed-text      { font-size:var(--fs-14);color:var(--t3);flex:1; }
.plx-q-assessed-val       { font-size:var(--fs-14);font-weight:var(--fw-bold);flex-shrink:0;min-width: var(--size-30);text-align:right; }
/* Legacy table classes (kept for other pages) */

/* ── 26. REPORTS ── */
.plx-rep-overview-card { padding:var(--sp-24) var(--sp-28);margin-bottom:var(--sp-14); }
.plx-rep-grid-top      { display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp-24);align-items:center;margin-bottom:var(--sp-24); }
.plx-heatmap-grid      { display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-10); }
/* heatmap-grid tiles — mirrors d1-dt exactly */
.plx-hm-tile {
  border-radius:var(--br-outer); padding:var(--sp-16) var(--sp-14); text-decoration:none; display:block;
  position:relative; overflow:hidden; min-height: var(--size-110); cursor:pointer;
  transition:transform var(--t-default) cubic-bezier(0.34,1.56,0.64,1), box-shadow var(--t-default) ease, background var(--t-default) ease, border-color var(--t-default) ease;
}
.plx-hm-tile::before {
  content:''; position:absolute; top:0; left:0;
  width:55%; height:100%;
  background:linear-gradient(105deg, transparent 0%, var(--border) 50%, transparent 100%);
  transform:translateX(-160%); transition:transform var(--t-slow) ease;
  pointer-events:none; border-radius:inherit;
}
.plx-hm-tile:hover::before { transform:translateX(260%); }
.plx-hm-tile > * { position:relative; z-index: var(--z-1); }
.plx-hm-tile .score { font-size:var(--fs-28); font-weight:var(--fw-black);margin-bottom:var(--sp-4); display:inline-block; transition:transform var(--t-default) cubic-bezier(0.34,1.56,0.64,1); transform-origin:left center; }
.plx-hm-tile:hover .score { transform:scale(1.13); }
.plx-hm-tile .name  { font-size:var(--fs-12); font-weight:var(--fw-semibold);margin-bottom:var(--sp-4); }
.plx-hm-tile .grade { font-size:var(--fs-12); font-weight:var(--fw-semibold); opacity:var(--opacity-hover); }
.plx-hm-tile .arrow { position:absolute; right:var(--pos-12); bottom:var(--pos-12); width: var(--size-24); height: var(--size-24); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:var(--fs-10); transition:transform var(--t-default) cubic-bezier(0.34,1.56,0.64,1), background var(--t-default) ease; }
.plx-hm-tile:hover .arrow { transform:translateX(4px); }
/* Arrow colour variants — mirrors d1-arrow-* */
.plx-hm-arrow-green  { background:var(--green-bd);  color:var(--green); }
.plx-hm-arrow-amber  { background:var(--amber-bd);  color:var(--amber); }

.plx-hm-arrow-red    { background:var(--red-bd);   color:var(--red); }
/* Arrow brightens on hover — mirrors d1-dt-*:hover .plx-d1-dt-arrow */

/* Grade colour variants — mirrors d1-dt-* */

/* Hover — lift + deep colored glow + inset rim — mirrors d1-dt-*:hover */

/* Reports page utilities */
.plx-rep-overview-lbl { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-16); }
.plx-rep-org-name     { font-size:var(--fs-22);font-weight:var(--fw-extrabold);color:var(--t1);}
.plx-rep-meta-item    { display:inline-flex;align-items:center;gap:var(--sp-8);font-size:var(--fs-14);color:var(--t3); }
.plx-rep-meta-ico     { color:var(--t5);font-size:var(--fs-12); }

#plxRepScoreChartJs    { width: var(--size-130);min-height: var(--size-130);flex-shrink:0; }
/* ── 27. PDF REPORT (dark theme — matches project color system) ── */

/* Logo: lime→cyan gradient text */

/* Org card: glass card + lime left-border accent */

.plx-grade-badge      { background:var(--green); color:var(--t1); border-radius:var(--br-full); padding:var(--sp-8) var(--sp-20); font-size:var(--fs-14); font-weight:var(--fw-bold); display:inline-block; margin-top:var(--sp-8); }
/* Section titles: lime underline accent */

/* rb-* badges: dark-theme adaptation using project color tokens */

/* ── PDF Report: multi-page layout ── */

/* Each page sits as a card in the scroll; remove min-height for non-first pages */

/* Repeat header on each inner page */

/* Control breakdown (static report rows — no accordion) */

/* Improvement Recommendations */

/* Azvizory Expert Recommendations */

/* Assessment Details */

/* Footer note */

/* Invoice-specific classes */

/* ================================================================
   SETUP PAGE — Dark Mode (single source, no duplication)
   ================================================================ */
/* Outer scroll container */
.plx-setup-outer {
  min-height:100vh;
  background:var(--bg-alt);
  padding:var(--sp-40) var(--sp-24) var(--sp-60);
  font-family:var(--font-body);
}
/* Centered content column */
.plx-setup-wrapper {
  max-width: var(--size-960);
  margin:0 auto;
}
/* Page heading */
.plx-setup-heading  { text-align:center;margin-bottom:var(--sp-32); }
.plx-setup-title    { font-size:var(--fs-26);font-weight:var(--fw-extrabold);color:var(--t1);margin-bottom:var(--sp-8);/* letter-spacing:-0.3px; */ }
/* Section card */
.plx-setup-card { padding:var(--sp-24) var(--sp-24);margin-bottom:var(--sp-14); }
/* Section label (lime accent) */
.plx-setup-section-lbl {
  font-size:var(--fs-14);font-weight:var(--fw-bold);
  color:var(--lime);
  margin-bottom:var(--sp-16);
  display:block;
}
.plx-setup-section-inline { margin-bottom:0;display:inline; }
/* Two-column layout for form fields */
.plx-setup-two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-60);
}
/* Logo + fields grid */
.plx-setup-logo-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-60);
  align-items:start;
}
.plx-setup-logo-col   { display:flex;flex-direction:column;gap:var(--sp-8); }
.plx-setup-fields-col { display:flex;flex-direction:column; }
/* FilePond wrapper — controls the visible drop-zone size */
.plx-setup-logo-drop {
  border: 2px dashed var(--border-lg);
  border-radius: var(--br-outer);
  cursor: pointer;
  transition: border-color var(--t-default);
  background: var(--bg-subtle);
  min-height: var(--size-168);
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--sp-12);
  justify-content: center;
}
.plx-setup-logo-drop:hover { border-color: var(--lime); }
/* FilePond idle label — custom HTML injected via labelIdle option */
.plx-fp-idle { flex-direction: column;gap: var(--sp-8);padding: var(--sp-20) var(--sp-16);text-align: center;width: 100%;box-sizing: border-box; }
.plx-fp-idle-icon {
  font-size:var(--fs-24);
  color: var(--t3);
  display: block;
  margin-bottom: var(--sp-2);
}
.plx-fp-idle-lbl {
  font-size:var(--fs-12);
  font-weight:var(--fw-medium);
  color: var(--t2);

  white-space: normal;
  word-break: break-word;
}
.plx-fp-idle-hint {
  font-size:var(--fs-12);
  color: var(--t5);
  white-space: normal;
}
/* FilePond dark-mode overrides — scoped to logo drop area only */
/* Root must fill the flex container width-AND-height */
.plx-setup-logo-drop .filepond--root.filepond--root {
  width: 100%;
  height: 100%;
  min-height: var(--size-168);
  margin-bottom: 0;
}
.plx-setup-logo-drop .filepond--wrapper {
  width: 100%;
  height: 100%;
  min-height: var(--size-168);
}
/* Background panels — transparent so our dashed border shows */
.plx-setup-logo-drop .filepond--panel-root.filepond--panel-root,
.plx-setup-logo-drop .filepond--panel.filepond--panel { background:transparent; }
/* Drop-label: full-width flex centering container */
.plx-setup-logo-drop .filepond--drop-label.filepond--drop-label {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: var(--size-168);
  left: auto;
  right: auto;
  color: var(--t4);
}
/* Label action: block + full width so fp-idle content centres properly */
.plx-setup-logo-drop .filepond--label-action.filepond--label-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.plx-setup-logo-drop .filepond--drip-blob.filepond--drip-blob { background: var(--lime); }
.plx-setup-logo-drop .filepond--item-panel.filepond--item-panel { background: var(--bg-mid); }
.plx-setup-logo-drop .filepond--file-action-button.filepond--file-action-button { background: var(--border-lg); }
/* Field group */
.plx-setup-field-group            { margin-bottom:var(--sp-12); }
.plx-setup-field-group:last-child { margin-bottom:0; }

/* Dark inputs — used exclusively on setup page */
.plx-setup-inp {
  width:100%;padding:var(--sp-10) var(--sp-12);
  background:var(--bg-mid);
  border:1px solid var(--border-md);
  border-radius:var(--br-inner);color:var(--t1);
  font-size:var(--fs-14);font-family:var(--font-body);
  box-sizing:border-box;transition:border var(--t-default);
}
.plx-setup-inp::placeholder { color:var(--t5); }
.plx-setup-inp:focus        { outline:none;border-color:var(--lime-a60); }
.plx-setup-inp:disabled     { color:var(--t4);cursor:default;opacity:var(--opacity-hover); }
/* Dark select — used exclusively on setup page */

/* Auto Verified badge */

.plx-setup-note {
  font-size:var(--fs-12);color:var(--t5);
margin-bottom:var(--sp-14);
}
/* Document upload dashed box */

/* Choose File row */

.plx-setup-file-btn {
  background:var(--grad);border:none;border-radius:var(--br-inner);
  padding:var(--sp-8) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold);
  color:var(--bg);cursor:pointer;font-family:var(--font-body);
  white-space:nowrap;flex-shrink:0;transition:opacity var(--t-fast);
  align-self:center;
}
.plx-setup-file-btn:hover    { opacity:var(--opacity-hover); }
.plx-setup-file-name         { align-self:center;max-width:100%;padding:0 var(--sp-12);font-size:var(--fs-12);color:var(--t5);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

.plx-setup-hidden-input      { display:none; }
/* Scrollable table wrapper */
.plx-setup-table-wrap { overflow-x:auto;margin-bottom:0; }
/* Tables */
.plx-setup-table           { width:100%;border-collapse:collapse;min-width: var(--size-480); }
.plx-setup-table th {
  font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--t6);
  text-transform:uppercase;/* letter-spacing:.6px; */
  padding:var(--sp-10) var(--sp-12);text-align:left;
  border-bottom:1px solid var(--border);
  white-space:nowrap;
}
.plx-setup-table td {
  padding:var(--sp-12) var(--sp-12);font-size:var(--fs-14);color:var(--t2);
  border-bottom:1px solid var(--bg-card);
  vertical-align:middle;
}
.plx-setup-table tbody tr:last-child td { border-bottom:none; }
.plx-setup-table tbody tr:hover td      { background:var(--bg-subtle); }

/* Action icon buttons */

/* Add-location row */
.plx-setup-add-row {
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr auto;
  gap:var(--sp-8);align-items:center;
  padding-top:var(--sp-12);
  border-top:1px solid var(--bg-mid);
}
/* Shared add / invite button */

/* Invite header */
.plx-setup-invite-hd { margin-bottom:var(--sp-12);flex-wrap:wrap;gap:var(--sp-8); }

.plx-setup-seats-txt     { font-size:var(--fs-14);color:var(--t4); }

/* Invite row — 6 fields + button */

.plx-table-toolbar .plx-choices { white-space:nowrap; }
/* Status & role badges for dark mode */

/* Footer buttons */
.plx-setup-footer { margin-top:var(--sp-20);gap:var(--sp-12); }

.plx-setup-btn-complete {
  background:var(--grad);border:none;
  border-radius:var(--br-full);padding:var(--sp-12) var(--sp-28);
  font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--bg);
  cursor:pointer;font-family:var(--font-body);
  transition:opacity var(--t-default);
}
.plx-setup-btn-complete:hover { opacity:var(--opacity-hover); }
/* Responsive */
/* ── 29. PLAN SELECTION (light page) ── */

/* plan-selection.html plan cards (light page) */

/* .plx-plan-badge       { position:absolute;top:calc(var(--pos-4) * -1);right:var(--pos-16);background:var(--indigo-600);color:var(--t1);font-size:var(--fs-10);font-weight:var(--fw-extrabold);padding:var(--sp-4) var(--sp-12);border-radius:0 0 var(--br-inner) var(--br-inner); } */

/* comparison table wrapper */
/* ── 30. ADMIN SCREENS ── */

.plx-table-toolbar    { gap:var(--sp-10);margin-bottom:var(--sp-16); }

.search-box       { position:relative;display:flex;align-items:center;gap:var(--sp-8);background:var(--bg-card);border:1px solid var(--border-md);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-14);flex:1;min-width: var(--size-200);box-sizing:border-box; }
.search-box input { position:static;max-width:100%;padding:0;background:none;border:none;
  outline:none;
  color:var(--t1);font-size:var(--fs-14);font-family:var(--font-body);width:100%;pointer-events: auto; }
.search-box input::placeholder { color:var(--t5); }
.plx-filter-select    { position:relative;z-index: var(--z-2);background:var(--bg-card);border:1px solid var(--border-md);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-14);font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t3);cursor:pointer;font-family:var(--font-body);appearance:none;-webkit-appearance:none;box-sizing:border-box;white-space:nowrap; }
.plx-filter-select option { background:var(--dark-green);color:var(--t1); }

.plx-field-label      { font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--t4);text-transform:uppercase;/* letter-spacing:.6px; */margin-bottom:var(--sp-8); }

/* ── 31. BILLING PAGE — pixel-perfect dark rebuild ── */
/* Outer scroll / centering shell */
/* Outer rounded card (matches File Cover-25 white card) */
/* Back link — pill outline */
/* Two-column grid: form | summary */
/* ── Form card (left column) ── */
/* Form field */
/* Two-column field row */
/* Dark input — scoped to billing page */
/* Horizontal separator */
/* Payment Method heading */
/* Payment method container */
.plx-bill-pay-methods {
  display: flex;
  flex-direction: column;
  gap: var(--sp-10);
  margin-bottom: var(--sp-24);
}
/* Payment option card (radio) */
.plx-bill-pay-opt {
  display: flex;
  align-items: center;
  gap: var(--sp-12);
  border: 1.5px solid var(--border-lg);
  border-radius: var(--br-inner);
  padding: var(--sp-14) var(--sp-16);
  cursor: pointer;
  background: var(--bg-subtle);
  transition: border-color var(--t-fast), background var(--t-fast);
}
/* Selected AND hover look identical */
.plx-bill-pay-opt.selected,
.plx-bill-pay-opt:hover {
  border-color: var(--lime-a60);
  background: var(--lime-a10);
}
/* Hide native radio */
.plx-bill-pay-opt input[type="radio"] { display: none; }
/* Custom radio dot */
.plx-bill-pay-radio { width: var(--size-18);height: var(--size-18);border-radius: 50%;border: 2px solid var(--white-a35);flex-shrink: 0;transition: all var(--t-fast);box-sizing: border-box; }
.plx-bill-pay-opt.selected .plx-bill-pay-radio,
.plx-bill-pay-opt:hover    .plx-bill-pay-radio {
  background: var(--lime);
  border-color: var(--lime);
}
.plx-bill-pay-opt.selected .plx-bill-pay-radio::after,
.plx-bill-pay-opt:hover    .plx-bill-pay-radio::after {
  content: '';
  width: var(--size-7);
  height: var(--size-7);
  border-radius: 50%;
  background: var(--bg);
  display: block;
}

/* Payment icon */

/* Payment label */

/* ── Order summary card (right column) ── */
/* Summary rows */
.plx-bill-summary-rows { margin-bottom: var(--sp-8); }
/* Separator before total */
/* Total row */
/* Pay button */
/* Responsive */
/* ── Kept: subscription page classes (still used by subscription.html) ── */

.plx-sub-plan-current  { background:var(--lime-a10);border:2px solid var(--lime-a15);position:relative; }

/* ══ Subscription page — redesigned components ══ */
/* Plan identity row */
/* 4-col and 2-col stat tile grids */
/* Individual stat tile */
/* Tile color variants — each inherits its accent color for label + value */
/* Features grid */
/* Monthly / Yearly pill toggle */
/* Suppress ps-grid's standalone-page margins inside a card */
/* Advanced card — "Current Plan" (lime accent) */

/* Gradient ribbon for current plan (overrides default amber ribbon) */

/* "Current Plan" disabled button */

/* Pinnacle card — amber accent */

/* Period label */
/* Plan Comparison table */
/* Highlight the current plan column header */
/* Highlight the current plan column (4th) */
/* Responsive */
/* ══ Plan Upgrade Cards — sb-pc redesign ══ */
/* Grid */
/* Base card */
/* Card body (flex-grows to push button to bottom) */
/* Plan icon */
/* Plan name */
/* Plan description */
/* Inline price row */
/* Feature list */
/* Bottom button — full-width pill */
/* Diagonal ribbon (current plan) */
/* ── Color variants ── */
/* Foundation — cyan */
/* Enhanced — purple */
/* Advanced (current) — lime, more vibrant */
/* Pinnacle — amber */
/* Responsive */
/* Company profile avatar */
.plx-co-avatar { width: var(--size-60);height: var(--size-60);border-radius:var(--br-outer);background:var(--lime-a10);border:1px solid var(--lime-a15);font-size:var(--fs-24);font-weight:var(--fw-extrabold);color:var(--lime);flex-shrink:0; }
/* ── Company Profile: field layout ── */
.plx-cp-fields-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-16) var(--sp-28); }
.plx-cp-field         { display:flex; flex-direction:column; gap:var(--sp-4); }
.plx-cp-field-sep     { padding-bottom:var(--sp-14); margin-bottom:var(--sp-14); border-bottom:1px solid var(--border); }

.plx-cp-field-lbl     { font-size:var(--fs-12);color:var(--t4); }
/* Card-header icon+title pairs (e.g. team/profile.blade.php's "Personal
   Details" header) use the .plx-gap-8 utility, whose token (--sp-8) the Stage 0
   mobile scaling system shrinks to 2px at sm/xs — same legibility-floor
   issue as .plx-cp-field-lbl above. Scoped to card-header icon+title only, not
   the shared .plx-gap-8 utility itself (used in 39+ other, unrelated contexts
   where the scaling is intentional). */
.card-header > h5.plx-flex,
.card-header > h6.plx-flex { gap: var(--sp-8); align-items: center; }
.plx-cp-field-icon    { font-size:var(--fs-12); color:var(--t4); flex-shrink:0; }
.plx-cp-field-val     { font-size:var(--fs-14); font-weight:var(--fw-bold); color:var(--t1); margin-top:var(--sp-2); padding-left:var(--sp-20); }


/* Team page seats banner */
.plx-seats-banner { background:var(--lime-a10);border:1px solid var(--lime-a15);border-radius:var(--br-outer);padding:var(--sp-16) var(--sp-20); }
/* Team note bullet list */
.plx-tm-note-list { padding-left:var(--sp-20); margin:0; }
/* ── Team page modals — Redesigned ── */
/* Modal shell: deep dark background with strong depth shadow */
.plx-tm-modal-content {
  --bs-modal-bg: var(--bg-alt);
  --bs-modal-border-color: var(--border-md);
  --bs-modal-border-radius: var(--br-outer);
  background: var(--bg-alt);
  border: 1px solid var(--border-md);
  border-radius: var(--br-outer);
  overflow: hidden;
  box-shadow: 0 32px 80px var(--black-a65), 0 0 0 1px var(--bg-card);
}
/* Gradient top accent bar — creative touch */
.plx-tm-modal-accent {
  height: var(--size-3);
  background: var(--grad);
  flex-shrink: 0;
}
/* Lift input/select contrast inside modal */
.plx-tm-modal-content .plx-auth-input,
.plx-tm-modal-content .plx-select-input {
  /* background: var(--border);  */
  border-color: var(--border-md);   transition: border-color var(--t-default) ease, box-shadow var(--t-default) ease;
}
.plx-tm-modal-content .plx-auth-input:focus,
.plx-tm-modal-content .plx-select-input:focus { border-color: var(--purple-a45); box-shadow: 0 0 0 3px var(--purple-a10); }
/* Header */
.plx-tm-modal-hdr  { display:flex; align-items:flex-start; justify-content:space-between; padding:var(--sp-24) var(--sp-24) 0; gap:var(--sp-12); width: 100%;}
.plx-tm-modal-title { font-size:var(--fs-20); font-weight:var(--fw-extrabold); color:var(--t1); margin:0 0 var(--sp-4); /* letter-spacing:-0.3px; */ }
.plx-tm-modal-sub  { font-size:var(--fs-14); color:var(--t4); margin:0;}
/* Close button — circular with hover rotation */
.plx-tm-modal-close { width: var(--size-30);height: var(--size-30);border-radius: 50%;background: var(--bg-mid);border: 1px solid var(--border-md);color: var(--t4);cursor: pointer;font-size:var(--fs-14);flex-shrink: 0;padding: 0;margin-top: var(--sp-2);transition: all var(--t-default); }
.plx-tm-modal-close:hover { background:var(--border-md); border-color:var(--border-lg); color:var(--t1); transform:rotate(90deg); }
/* Body / footer */
.plx-tm-modal-body-pad {
    padding: var(--sp-20) var(--sp-24);
    width: 100%;
}
.plx-tm-modal-foot { padding:var(--sp-4) var(--sp-24) var(--sp-24); display:flex; justify-content:center; }
/* Dialog widths */
.plx-tm-dialog-md { max-width: var(--size-520); }
.plx-tm-dialog-lg { max-width: var(--size-600); }
.plx-modal-dialog-430 { max-width: var(--size-430); }
.plx-modal-dialog-480 { max-width: var(--size-480); }
.plx-modal-body-confirm { text-align:center; padding:var(--sp-40) var(--sp-32) var(--sp-32); }
/* 2-col form grid */
.plx-tm-form-grid  { display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-16); margin-bottom:var(--sp-16); }
/* Form group */
.plx-tm-form-group { display:flex; flex-direction:column; gap:var(--sp-8); }
.plx-tm-form-lbl   { font-size:var(--fs-14); font-weight:var(--fw-semibold); color:var(--t2); }
.plx-tm-req        { color:var(--red); margin-left:var(--sp-2); }
/* Textarea */
textarea.plx-auth-input { resize:vertical; min-height: var(--size-100); }
/* Purple info/notice box */
.plx-tm-info-box { background:var(--purple-a10); border:1px solid var(--purple-bd); border-radius:var(--br-outer); padding:var(--sp-14) var(--sp-16); font-size:var(--fs-14); color:var(--purple-a95);}
.plx-tm-info-box-note { display:block; font-size:var(--fs-14); font-weight:var(--fw-bold); color:var(--t1); margin-top:var(--sp-8); }
.plx-tm-info-box-lbl  { display:block; font-size:var(--fs-10); font-weight:var(--fw-bold); text-transform:uppercase; /* letter-spacing:0.6px; */ opacity:var(--opacity-muted); }
/* Domain info box */
.plx-tm-domain-box { padding:0 var(--sp-16);margin-bottom:var(--sp-16); }
.plx-tm-domain-row { padding:var(--sp-12) 0;border-bottom:1px solid var(--bg-mid); }
.plx-tm-domain-row:last-child { border-bottom:none; }
.plx-tm-domain-val { font-size:var(--fs-14); font-weight:var(--fw-semibold); color:var(--t1); }
/* "What would you like to do?" heading */

/* Radio list — card-style interactive options */

/* CTA button */
.plx-tm-modal-btn { background:var(--grad); border:none; border-radius:var(--br-full); padding:var(--sp-14) var(--sp-60); font-size:var(--fs-14); font-weight:var(--fw-bold); color:var(--bg); cursor:pointer; font-family:var(--font-body); transition:opacity var(--t-default), transform var(--t-default); min-width: var(--size-200); }
.plx-tm-modal-btn:hover { opacity:var(--opacity-hover); transform:translateY(-1px); }
/* Table action icon buttons */
.plx-tm-act-btn { background:none; border:none; padding:0; cursor:pointer; display:inline-flex; align-items:center; }
/* Misc utilities */
.plx-ws-nowrap { white-space:nowrap; }
.plx-mt2 { margin-top:var(--sp-2); }
.plx-mb3 { margin-bottom:var(--sp-4); }
/* Header utilities */

.plx-cursor-ptr   { cursor:pointer; }

/* Back-link-dark kept for legacy pages */

/* ── Azvizory Review page ── */

.plx-textarea { width:100%; padding:var(--sp-12) var(--sp-14); background:var(--bg-mid); border:1px solid var(--border-md); border-radius:var(--br-inner); color:var(--t1); font-size:var(--fs-14); font-family:var(--font-body); transition:border var(--t-default); box-sizing:border-box; resize:vertical; min-height: var(--size-130); }
.plx-textarea::placeholder { color:var(--t5); }
.plx-textarea:focus { outline:none; border-color:var(--lime-a60); }

.plx-input:disabled { background:var(--bg-card); color:var(--t3); cursor:default; }

/* ── Assessment Hub page ── */
/* Utility positions & ghost text */
.plx-c-ghost    { color:var(--white-a35); }

/* Header progress tracker (right column) */
.plx-hub-prog-section { flex-shrink:0; text-align:right; min-width: var(--size-240); }
.plx-hub-prog-count   { font-size:var(--fs-14); font-weight:var(--fw-semibold); color:var(--t3); margin-bottom:var(--sp-8); }
.plx-hub-prog-track   { height: var(--size-8); background:var(--border); border-radius:var(--br-inner); overflow:hidden; width: var(--size-240); margin-left:auto; }
.plx-hub-prog-fill    { height:100%; border-radius:var(--br-inner); background:var(--purple); width:62.5%; }
/* Overview wrapper label */
.plx-hub-section-hdr { font-size:var(--fs-12); font-weight:var(--fw-bold); color:var(--t4); /* letter-spacing:.5px; */ margin-bottom:var(--sp-14); }
/* Domain card state borders — replaces inline style="border-color:…" */
.plx-da-card-inprog { border-color:var(--purple-bd); }
.plx-da-card-done   { border-color:var(--green-bd); }
/* Domain progress fill — color-only, no width here */
.plx-da-prog-purple { background:var(--purple); }
.plx-da-prog-green  { background:var(--green); }

/* Domain progress fill widths — per-domain, replaces inline style="width:…" */

/* visual zero (Not Started) */

/* Operational Risk  12/80 */

/* G&L 45/80 */

/* Third-Party 70/80 */

/* Cybersecurity 50/50 — complete */
/* Maturity Journey dot variants — replace inline style="background:…;border:…;box-shadow:…" */
.plx-mj-dot-red    { background:var(--red);   border:2px solid var(--red);   box-shadow:0 0 12px var(--red-bd); }
.plx-mj-dot-amber  { background:var(--amber); border:2px solid var(--amber); box-shadow:0 0 16px var(--amber-a50); }
.plx-mj-dot-lime   { background:var(--lime-a10); border:2px solid var(--lime-a15); }
.plx-mj-dot-cyan   { background:var(--cyan-a10);   border:2px solid var(--cyan-bd); }
.plx-mj-dot-purple { background:var(--purple-a10);  border:2px solid var(--purple-bd); }
/* MJ dot icon colours */
.plx-mj-icon-red    { color:var(--t1);         font-size:var(--fs-16); }
.plx-mj-icon-amber  { color:var(--bg);      font-size:var(--fs-18); }
.plx-mj-icon-lime   { color:var(--lime);  font-size:var(--fs-16); }
.plx-mj-icon-cyan   { color:var(--cyan);  font-size:var(--fs-16); }
.plx-mj-icon-purple { color:var(--purple);font-size:var(--fs-16); }
/* "YOU ARE HERE" label */
.plx-mj-here-lbl { position:absolute; top:calc(var(--pos-28) * -1); left:50%; transform:translateX(-50%); white-space:nowrap; background:var(--amber); color:var(--bg); font-size:var(--fs-10); font-weight:var(--fw-extrabold); border-radius:var(--br-inner); padding:var(--sp-2) var(--sp-8); }
/* Maturity journey body padding */
.plx-mj-body       { padding:var(--sp-20) 0 var(--sp-10); }

/* ── Assessment Preview standalone page ── */

/* Header row */

.plx-ap-back      { display:inline-flex; align-items:center; gap:var(--sp-8); border:1px solid var(--border-lg); border-radius:var(--br-full); padding:var(--sp-8) var(--sp-20); font-size:var(--fs-14); font-weight:var(--fw-semibold); color:var(--t3); text-decoration:none; font-family:var(--font-body); transition:all var(--t-fast); flex-shrink:0; }
.plx-ap-back:hover { background:var(--border); color:var(--t1); }
.plx-ap-pg-title  { font-size:var(--fs-22); font-weight:var(--fw-extrabold); color:var(--t1); margin:0; /* letter-spacing:-.3px; */ }
/* Tab strip */
/* Bootstrap tab pane visibility — required when not loading Bootstrap CSS globally */
.tab-content > .tab-pane            { display:none; }
.tab-content > .tab-pane.active     { display:block; }
.tab-content > .tab-pane.fade       { opacity:0; transition:opacity var(--t-fast) linear; }
.tab-content > .tab-pane.fade.show  { opacity:1; }
/* Tab strip */
.plx-ap-tab-strip { border-bottom:1px solid var(--border); background:var(--bg-subtle); overflow:hidden; }
.plx-ap-tab-nav   { display:flex; list-style:none; padding:0; margin:0; }
.plx-ap-tab-nav .nav-item { flex:1; border-right:1px solid var(--border); }
.plx-ap-tab-nav .nav-item:last-child { border-right:none; }
.plx-ap-tab-btn   { width:100%;height: 100%; background:none; border:none; border-bottom:3px solid transparent; padding:var(--sp-14) var(--sp-16) var(--sp-12); cursor:pointer; font-family:var(--font-body); text-align:left; display:flex; flex-direction:column; gap:var(--sp-4); color:var(--t4); transition:background var(--t-fast), color var(--t-fast), opacity var(--t-fast); }
.plx-ap-tab-btn:not(.active) { transition: background-color var(--t-default) ease, color var(--t-default) ease; }
.plx-ap-tab-btn:hover:not(.active) { background:var(--bg-mid); color:var(--t2); }
/* Creative active tab: project primary gradient with dark text */
.plx-ap-tab-btn.active { background:var(--grad); color:var(--bg); border-bottom-color:transparent; }
.plx-ap-tab-nm    { font-size:var(--fs-14); font-weight:var(--fw-semibold);}
.plx-ap-tab-ct    { font-size:var(--fs-12); font-weight:var(--fw-medium); opacity:var(--opacity-hover); }
.plx-ap-tab-btn.active .plx-ap-tab-nm { font-weight:var(--fw-bold); color:var(--bg); }
.plx-ap-tab-btn.active .plx-ap-tab-ct { opacity:1; color:var(--black-a65); }
/* Domain icon colour modifiers — one per domain for creative depth */
.plx-ap-dom-ico-lime   { border-color:var(--lime);   color:var(--lime);   background:var(--lime-bg); }
.plx-ap-dom-ico-cyan   { border-color:var(--cyan);   color:var(--cyan);   background:var(--cyan-bg); }
.plx-ap-dom-ico-orange { border-color:var(--orange); color:var(--orange); background:var(--orange-bg); }
.plx-ap-dom-ico-amber  { border-color:var(--amber);  color:var(--amber);  background:var(--amber-bg); }
.plx-ap-dom-ico-red    { border-color:var(--red);    color:var(--red);    background:var(--red-bg); }
.plx-ap-dom-ico-purple { border-color:var(--purple); color:var(--purple); background:var(--purple-bg); }
/* Body / panel */

/* Domain section */
.plx-ap-dom-hdr  { margin-bottom:var(--sp-20); }
.plx-ap-dom-ico  { width: var(--size-28);height: var(--size-28);border-radius:50%;border:2px solid var(--orange);font-size:var(--fs-14);color:var(--orange);flex-shrink:0; }
.plx-ap-dom-nm   { font-size:var(--fs-20); font-weight:var(--fw-bold); color:var(--t1); margin:0; }
/* Control block */
.plx-ap-ctrl     { margin-bottom:var(--sp-20); }
.plx-ap-ctrl-lbl { font-size:var(--fs-12); color:var(--t4); padding:var(--sp-8) 0 var(--sp-4); }
/* Question row */
.plx-ap-q-row    { display:flex; align-items:baseline; justify-content:space-between; gap:var(--sp-16); padding:var(--sp-10) 0; border-bottom:1px solid var(--bg-card); font-size:var(--fs-14); color:var(--t2); }
.plx-ap-q-row:last-child { border-bottom:none; }
.plx-ap-q-val    { flex-shrink:0; font-weight:var(--fw-bold); min-width: var(--size-36); text-align:right; }
/* ── Assessment Guidelines page ── */
/* Numbered section badges */
.plx-ag-num        { display:inline-flex;align-items:center;justify-content:center;width: var(--size-28);height: var(--size-28);border-radius:50%;font-size:var(--fs-14);font-weight:var(--fw-extrabold);flex-shrink:0; }
.plx-ag-num-lime   { background:var(--lime-bg);   border:1.5px solid var(--lime-bd);   color:var(--lime); }
.plx-ag-num-cyan   { background:var(--cyan-bg);   border:1.5px solid var(--cyan-bd);   color:var(--cyan); }
.plx-ag-num-amber  { background:var(--amber-bg);  border:1.5px solid var(--amber-bd);  color:var(--amber); }
.plx-ag-num-orange { background:var(--orange-bg); border:1.5px solid var(--orange-bd); color:var(--orange); }
/* Beats vendor `.card-header > span` (display:block;font-size:12px;margin-top:5px;letter-spacing:1px;color:var(--t3)) which otherwise breaks the flex centering above */
.card-header > .plx-ag-num {
  display:inline-flex;align-items:center;justify-content:center;
  font-size:var(--fs-14);margin-top:0;letter-spacing:normal;
}
.card-header > .plx-ag-num-lime   { color:var(--lime); }
.card-header > .plx-ag-num-cyan   { color:var(--cyan); }
.card-header > .plx-ag-num-amber  { color:var(--amber); }
.card-header > .plx-ag-num-orange { color:var(--orange); }
.card-header > .plx-ag-num-purple { color:var(--purple); }
.plx-ag-num-purple { background:var(--purple-bg); border:1.5px solid var(--purple-bd); color:var(--purple); }
/* Maturity score pills (0-5) */
.plx-ag-score      { display:inline-flex;align-items:center;justify-content:center;width: var(--size-26);height: var(--size-26);border-radius:50%;font-size:var(--fs-12);font-weight:var(--fw-extrabold);flex-shrink:0; }
.plx-ag-s0 { background:var(--red-bg);    color:var(--red); }
.plx-ag-s1 { background:var(--red-bg);    color:var(--red);    opacity:var(--opacity-muted); }
.plx-ag-s2 { background:var(--orange-bg); color:var(--orange); }
.plx-ag-s3 { background:var(--amber-bg);  color:var(--amber); }
.plx-ag-s4 { background:var(--lime-bg);   color:var(--lime); }
.plx-ag-s5 { background:var(--green-bg);  color:var(--green); }
/* Yes / No response pills */
.plx-ag-yes { background:var(--green-bg); color:var(--green); padding:var(--sp-2) var(--sp-12); border-radius:var(--br-full); font-size:var(--fs-14); font-weight:var(--fw-bold); }
.plx-ag-no  { background:var(--red-bg);   color:var(--red);   padding:var(--sp-2) var(--sp-12); border-radius:var(--br-full); font-size:var(--fs-14); font-weight:var(--fw-bold); }
.plx-ag-scoring-list { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-8);}
.plx-ag-scoring-list li { display:flex;align-items:flex-start;gap:var(--sp-8);font-size:var(--fs-14);color:var(--t2); }
.plx-heg-badge { display:inline-flex;align-items:center;gap:var(--sp-4);background:var(--lime-a10);border:1px solid var(--lime-a15);color:var(--lime);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-semibold); }
.plx-how-step  { padding:var(--sp-20) var(--sp-20);position:relative; }
.plx-how-num   { display:inline-flex;align-items:center;justify-content:center;width: var(--size-32);height: var(--size-32);border-radius:50%;background:var(--lime-bg);border:1.5px solid var(--lime-bd);color:var(--lime);font-size:var(--fs-12);font-weight:var(--fw-extrabold);margin-bottom:var(--sp-12); }
/* Domain weight highlights */

/* Checkmark list item (After Completion) */
.plx-ag-chk   { display:flex;align-items:flex-start;gap:var(--sp-8);padding:var(--sp-4) 0;font-size:var(--fs-14);color:var(--t2);}
.plx-ag-chk i { color:var(--green);flex-shrink:0;margin-top:var(--sp-2); }
/* Bullet list item */

/* Bottom note box */
.plx-ag-note  { padding:var(--sp-16) var(--sp-20);font-size:var(--fs-14);color:var(--t3); }
/* Bottom action row */

/* ── Assessment Screen fine-tuned ── */
.plx-sc-back-link { display:inline-flex;align-items:center;gap:var(--sp-8);font-size:var(--fs-14);color:var(--t4);text-decoration:none;transition:color var(--t-fast);margin-bottom:var(--sp-10); }
.plx-sc-back-link:hover { color:var(--t2); }
.plx-sc-domain-bar { gap:var(--sp-16);margin-bottom:var(--sp-16); }
.plx-sc-domain-title { font-size:var(--fs-22);font-weight:var(--fw-extrabold);color:var(--t1);margin:0;white-space:nowrap; }
.plx-sc-prog-wrap { flex:1;min-width:0; }
.plx-sc-prog-pct { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--cyan);flex-shrink:0; }
/* Bootstrap ctrl tab buttons — override nav-link visuals */
.plx-ctrl-tab-btn { background:transparent;border:none;border-bottom:1px solid var(--bg-card);border-left:3px solid transparent;padding:var(--sp-12) var(--sp-14);text-align:left;width:100%;color:var(--t3);cursor:pointer;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast);font-family:var(--font-body);border-radius:0; }
.plx-ctrl-tab-btn:not(.active) { transition: background-color var(--t-default) ease, color var(--t-default) ease; }
.plx-ctrl-tab-btn:hover:not(.active) { background:var(--bg-card);color:var(--t2);border-left-color:var(--cyan-bd); }
.plx-ctrl-tab-btn.active { background:var(--cyan-a10);border-left-color:var(--cyan);color:var(--cyan); }
.plx-ctrl-tab-btn.active .plx-ctrl-score-lbl { color:var(--cyan-a78); }

/* Ctrl dot states — cyan theme */
.plx-ctrl-dot.on  { background:var(--cyan);box-shadow:0 0 6px var(--cyan-bd); }
.plx-ctrl-dot.plx-off { background:transparent;border:1.5px solid var(--cyan-bd); }
/* Bootstrap form-switch — flex alignment fix + cyan checked state */
.plx-sc-toggle-wrap.plx-sc-toggle-wrap { display:flex;align-items:center;flex-wrap:nowrap;gap:var(--sp-10);padding:0;margin:0;min-height:auto; }
.plx-sc-toggle-wrap .plx-sc-switch.plx-sc-switch { float:none;margin-left:0;margin-top:0; }
.plx-sc-switch.plx-sc-switch { width: var(--size-44);height: var(--size-24);cursor:pointer;flex-shrink:0;background-color:var(--border);border-color:var(--border-lg);border-radius:var(--br-outer);transition:background-color var(--t-default),border-color var(--t-default); }
.plx-sc-switch.plx-sc-switch:focus { box-shadow:none; }
.plx-sc-switch.plx-sc-switch:checked { background-color:var(--cyan-bd);border-color:var(--cyan); }
.plx-sc-switch-lbl.plx-sc-switch-lbl { font-size:var(--fs-14);color:var(--t4);cursor:pointer;flex-shrink:0;user-select:none;margin-bottom:0;}
.plx-sc-yn-hint { margin-left:auto;font-size:var(--fs-12);color:var(--t5);flex-shrink:0;white-space:nowrap; }
/* Bootstrap modal — dark theme shell */
.plx-sc-modal .modal-content { background:var(--bg-alt);border:1px solid var(--border-md);border-radius:var(--br-outer);overflow:hidden;box-shadow:0 32px 80px var(--black-a65); }
.plx-sc-modal .modal-header { border-bottom:1px solid var(--border);padding:var(--sp-16) var(--sp-24); }
.plx-sc-modal .modal-title { font-size:var(--fs-16);font-weight:var(--fw-bold);color:var(--t1); }
.plx-sc-modal .modal-body { padding:var(--sp-20) var(--sp-24); }
.plx-sc-modal .modal-footer { border-top:1px solid var(--bg-mid);padding:var(--sp-14) var(--sp-24); }
.plx-sc-modal .btn-close { filter:invert(1) grayscale(1) opacity(.35);transition:filter var(--t-fast); }
.plx-sc-modal .btn-close:hover { filter:invert(1) grayscale(0) opacity(.75); }
/* Score buttons — purple active theme */
.plx-sc-btn.plx-sc-btn:hover { background:var(--cyan-a10);border-color:var(--cyan-bd);color:var(--cyan); }
.plx-sc-btn.plx-sc-btn.plx-sel { background:var(--cyan-a10);border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 0 2px var(--cyan-a10); }
/* Dynamic score display (right panel) */
.plx-sc-score-empty { font-size:var(--fs-12);color:var(--t5);text-align:center;padding:var(--sp-10) 0; }
.plx-sc-score-live { text-align:center; }
.plx-sc-score-live-num { font-size:var(--fs-26);font-weight:var(--fw-black);margin-bottom:var(--sp-4); }
.plx-sc-score-live-lbl { font-size:var(--fs-12);font-weight:var(--fw-bold);margin-bottom:var(--sp-4); }
.plx-scale-row-hl.plx-scale-row-hl { background:var(--cyan-a10);border-radius:var(--br-inner);margin:0 calc(var(--sp-4) * -1);padding:var(--sp-2) var(--sp-4); }
/* q-help button */
.plx-q-help { background:var(--amber-a10);border:1px solid var(--amber-bd);border-radius:50%;width: var(--size-26);height: var(--size-26);display:flex;align-items:center;justify-content:center;color:var(--amber);cursor:pointer;flex-shrink:0;font-size:var(--fs-12);transition:background var(--t-fast);padding:0; }
.plx-q-help:hover { background:var(--amber-bd); }
/* ── Assessment Preview pre-submit (asprv) ── */
.plx-asprv-top-bar       { display:flex; align-items:center; gap:var(--sp-16); margin-bottom:var(--sp-20); }
/* Sticky confirmation bar — sticks to viewport bottom while scrolling, settles at natural page end */
.plx-asprv-confirm-bar   { position:sticky; bottom:0; z-index: var(--z-100); background:var(--bg-alt); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-top:1px solid var(--border-md); margin-top:var(--sp-20); padding: var(--sp-14) 0 var(--sp-14) var(--sp-14);}
.plx-asprv-confirm-inner { gap:var(--sp-16);flex-wrap:wrap; }
.plx-asprv-confirm-check { font-size:var(--fs-14);color:var(--t3);cursor:pointer;flex:1;min-width: var(--size-200);transition:color var(--t-fast); }
.plx-asprv-confirm-check:hover { color:var(--t1); }
.plx-asprv-confirm-input { accent-color:var(--lime); width: var(--size-16); height: var(--size-16); cursor:pointer; flex-shrink:0; margin:0; }

/* ── Trends & Analytics page ── */
.plx-kpi-card { padding:var(--sp-20) var(--sp-24);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-12);position:relative;overflow:hidden;transition:transform var(--t-default),box-shadow var(--t-default); }
.plx-kpi-card:hover { transform:translateY(-2px); box-shadow:0 8px 28px var(--black-a25); }
.plx-kpi-card-lime  { border-left:3px solid var(--lime);  background:var(--lime-a10); }
.plx-kpi-card-green { border-left:3px solid var(--green); background:var(--green-a05); }
.plx-kpi-card-amber { border-left:3px solid var(--amber); background:var(--amber-a10); }
.plx-kpi-card-red   { border-left:3px solid var(--red);   background:var(--red-a10); }
/* Progress fill colour variants for reports/highlights */

.plx-select-sm { padding:var(--sp-8) var(--sp-28) var(--sp-8) var(--sp-10); background:var(--bg-mid); border:1px solid var(--border-md); border-radius:var(--br-inner); color:var(--t3); font-size:var(--fs-12); font-family:var(--font-body); appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='var(--white-a35)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 7px center; cursor:pointer; min-width: var(--size-110);  transition: border-color var(--t-default) ease; }
.plx-select-sm option { background:var(--dark-navy); }
.plx-select-sm:focus  { outline:none; border-color:var(--purple-a45); }

.plx-apex-trend-tt,.plx-apex-domain-tt,.plx-apex-bar-tt { background:var(--bg-alt); border:1px solid var(--border-md); border-radius:var(--br-inner); padding:var(--sp-10) var(--sp-14); min-width: var(--size-168); box-shadow:0 8px 24px var(--black-a50); font-family:var(--font-body); }
.plx-apex-tt-title,.plx-apex-dt-title,.plx-apex-bt-title { font-size:var(--fs-12); font-weight:var(--fw-bold); color:var(--t4); margin-bottom:var(--sp-4); }
.plx-apex-tt-score { font-size:var(--fs-14); font-weight:var(--fw-bold); color:var(--purple); margin-bottom:var(--sp-2); }
.plx-apex-tt-plan  { font-size:var(--fs-12); color:var(--t6); margin-top:var(--sp-4); }
.plx-apex-dt-plan  { font-size:var(--fs-12); color:var(--t6); margin-bottom:var(--sp-8); }
.plx-apex-dt-row,.plx-apex-bt-row { display:flex; align-items:center; gap:var(--sp-8); font-size:var(--fs-12); margin-bottom:var(--sp-4); }
.plx-apex-dt-dot,.plx-apex-bt-dot { width: var(--size-8); height: var(--size-8); border-radius:50%; flex-shrink:0; }
.plx-apex-dt-name,.plx-apex-bt-lbl { color:var(--t3); flex:1; }
.plx-apex-dt-val,.plx-apex-bt-val  { font-weight:var(--fw-bold); color:var(--t1); }
.plx-apex-bt-curr { font-weight:var(--fw-bold); color:var(--purple); }

/* Line-circle legend marker (─●─) */

.plx-legend-inactive { opacity:var(--opacity-disabled); }
/* Legacy billing classes (kept for backward compat if referenced elsewhere) */

/* ── 32. ASSESSMENT COMPLETION (animations) ── */
@keyframes pulse-ring  { 0%,100%{transform:scale(1);opacity:var(--opacity-muted)} 50%{transform:scale(1.08);opacity:1} }
@keyframes shield-pop  { 0%{transform:scale(0.3);opacity:0} 80%{transform:scale(1.08)} 100%{transform:scale(1);opacity:1} }
@keyframes sparkle1    { 0%,100%{transform:scale(1) rotate(0deg);opacity:var(--opacity-muted)} 50%{transform:scale(1.4) rotate(20deg);opacity:1;color:var(--lime)} }
@keyframes sparkle2    { 0%,100%{transform:scale(1) rotate(0deg);opacity:var(--opacity-disabled)} 50%{transform:scale(1.3) rotate(-15deg);opacity:1} }
@keyframes float-up    { 0%{opacity:0;transform:translateY(20px)} 100%{opacity:1;transform:translateY(0)} }

/* ── 33. LOGIN SPLIT-PANEL PAGE ── */
/* Left marketing panel */
/* Right auth panel */

/* ── 34. LANDING / MARKETING PAGE ── */

/* Hero mock frame */

/* Trust bar */
/* Sections */

/* Domain cards */
/* How it works */
/* Journey stages */
/* Stats bar */
/* Plans */
/* CTA section */
/* Footer */
/* ── 35. MISC APP COMPONENTS ── */
/* Gradient text helper */
/* Glow radial overlay (hero backgrounds) */

/* Page-level glow card (assessment submitted etc.) */

/* Inline trust badge row */

/* Step number circle */

/* Small step circle (28px) used in verification flow */

/* Step connector vertical line */

/* Registration success ring */
/* Plan activated hero ring */

/* Sparkle dots */
/* Timeline / journey step */
/* Assessment maturity journey mini */
.plx-mj-stage { text-align:center;z-index: var(--z-1);flex:1;position:relative; }
/* .plx-mj-track uses align-items:flex-start (not center) so column height
   differences — from the larger current dot, or per-column subtext wrapping —
   never shift dot vertical position. Every dot's own center must therefore
   land at the same offset from the column top: the 40px dots get a 4px
   top-margin so their center matches the 48px current dot's, which sits
   flush against the column top. */
.plx-mj-stage-dot { width: var(--size-40);height: var(--size-40);border-radius:50%;margin:var(--sp-4) auto var(--sp-8);font-size:var(--fs-14); }
.plx-mj-stage-dot-current { width: var(--size-48);height: var(--size-48);font-size:var(--fs-18);position:relative;margin-top:0; }
.plx-mj-stage-lbl { font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--t2);margin-top:var(--sp-8);}
.plx-mj-stage-sub { font-size:var(--fs-12);color:var(--t4);margin-top:var(--sp-4);}
.plx-mj-dot-inactive { background:var(--bg-mid);border:1px solid var(--border-md); }
.plx-mj-ico-inactive { color:var(--border-lg);font-size:var(--fs-14); }
/* Compliance badge row */
/* Feature item (assessment flow step) */
/* Report include card */

/* Maturity journey progress line container */
.plx-mj-body  { overflow-x:auto; }
.plx-mj-track { position:relative;display:flex;justify-content:space-between;align-items:flex-start;padding:var(--sp-10) 0;min-width: var(--size-560); }
.plx-mj-track::before { content:'';position:absolute;top:var(--pos-34);left:10%;right:10%;height: var(--size-3);background:var(--border);border-radius:var(--br-inner);z-index:0; }
.plx-mj-progress-line { position:absolute;top:var(--pos-34);left:10%;height: var(--size-3);border-radius:var(--br-inner);background:linear-gradient(90deg,var(--red),var(--amber),var(--lime));z-index:0; }
/* Glow ring for shield icon */

/* Section label (app pages) */

.plx-mt-n5 {
  margin-top: calc(var(--sp-4) * -1);
}
.plx-fx,
.form-group .plx-fx {
  display: flex;
}
.plx-submit-btn.plx-cst-w-a {
  width: auto;
  padding-left: var(--sp-32);
  padding-right: var(--sp-32);
}
/* ================================================================
   DASHBOARD-1  (dashboard-1.html)  — pixel-perfect File Cover-28
   ================================================================ */
/* ── Logo wrapper — distinct darker panel matching screenshot ── */
.plx-d1-logo-wrapper {
  background: var(--black-a25);
  border-right: 1px solid var(--bg-mid);
  padding: 0 var(--sp-20);
  min-width: var(--size-220);
  justify-content: space-between;
}
.plx-d1-logo-name { font-size:var(--fs-20); font-weight:var(--fw-black); color: var(--t1); /* letter-spacing: -0.5px; */ display: block; }
.plx-d1-logo-tag  { font-size:var(--fs-10); color: var(--t1); /* letter-spacing: 0.3px; */ display: block; margin-top: var(--sp-2); }
.plx-d1-toggle-btn {
  color: var(--t4);
  font-size:var(--fs-16);
  text-decoration: none;
  transition: color var(--t-default);
  padding: var(--sp-8);
}
.plx-d1-toggle-btn:hover { color: var(--lime); }
/* Mobile-only logo + close button shown inside the sidebar once the
   header logo is hidden at ≤768px (see .plx-d1-logo-wrapper .plx-logo below).
   The close button reuses .toggle-sidebar (see sidebar.js) so it collapses
   the sidebar the same way the header hamburger opens it — needed because
   .page-sidebar and header share z-index:3 on mobile and the sidebar
   renders later in the DOM, so an open sidebar visually covers the header
   (hamburger included), leaving no other way to close it. */
.plx-d1-sidebar-mobile-header {
  display: none;
  align-items: center;
  justify-content: space-between;
}
.plx-d1-sidebar-mobile-logo img { height: var(--size-28); }
.plx-d1-sidebar-close-btn { width: var(--size-44);height: var(--size-44);color: var(--t4);font-size: var(--fs-18);flex-shrink: 0;transition: color var(--t-default) ease; }
.plx-d1-sidebar-close-btn:hover { color: var(--lime); }
/* ── Sidebar icons (Font Awesome per item) ── */
.plx-sidebar-icon {
  font-size:var(--fs-14);
  width: var(--size-16);
  text-align: center;
  flex-shrink: 0;
  transition: color var(--t-fast);
}
.page-sidebar .sidebar-link:not(.active) { transition: background-color var(--t-default) ease, color var(--t-default) ease; }
/* ── Sidebar link hover — lime accent consistent with palette ── */
/* Redundant with global block's higher-specificity rule; kept for specificity parity */
.page-sidebar .sidebar-link:not(.active):hover {
  background: var(--lime-a10);
  color: var(--lime);
}
.page-sidebar .sidebar-link:not(.active):hover h6 { color: var(--lime); }
.page-sidebar .sidebar-link:not(.active):hover .plx-sidebar-icon { color: var(--lime); }
/* ── Redesigned main header ── */
/* .page-main-header inherits Bootstrap's .col (flex: 1 0 0 — note
   flex-shrink:0). Combined with .page-header's .row (flex-wrap:wrap), a
   flex-shrink:0 item refuses to shrink below its content's min-content
   width, so the row wraps it onto its own line no matter how much content
   is trimmed inside it. min-width:0 is what actually lets it shrink and
   stay on the same row as .logo-wrapper at narrow widths. */
.plx-d1-main-header {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0;
  padding: 0 var(--sp-16) 0 var(--sp-24);
}
/* Breadcrumb — left-anchored */
.plx-d1-breadcrumb { font-size:var(--fs-14);flex-shrink: 0; }
.plx-d1-bc-home {
  color: var(--t4); text-decoration: none;
  display: flex; align-items: center; gap: var(--sp-4);
  transition: color var(--t-fast);
}
.plx-d1-bc-home:hover { color: var(--t2); }
.plx-d1-bc-sep    { font-size:var(--fs-10); color: var(--t5); }
.plx-d1-bc-active { font-size:var(--fs-14); font-weight:var(--fw-semibold); color: var(--t2); }
/* Flex spacer — pushes search+right to far right */
.plx-d1-header-spacer { flex: 1; }
/* Search bar — icon sits inside, icon is absolutely positioned */
.plx-d1-search-wrap {
  position: relative;
  width: var(--size-200);
  flex-shrink: 0;
}
.plx-d1-search-icon {
  position: absolute;
  right: var(--pos-12);
  top: 50%;
  transform: translateY(-50%);
  font-size:var(--fs-14);
  color: var(--white-a35);
  pointer-events: none;
  z-index: var(--z-1);
}
.plx-d1-search-input {
  width: 100%;
  padding: var(--sp-8) var(--sp-32) var(--sp-8) var(--sp-14);
  background: var(--bg-mid);
  border: 1px solid var(--border-md);
  border-radius: var(--br-inner);
  color: var(--t2);
  font-size:var(--fs-14);
  font-family:var(--font-body);
  outline: none;
  box-sizing: border-box;
  transition: border-color var(--t-default), background var(--t-default);
}
.plx-d1-search-input::placeholder { color: var(--t5); }
.plx-d1-search-input:focus {
  border-color: var(--lime-a60);
  background: var(--border);
}
.plx-d1-search-wrap .plx-d1-search-icon { transition: color var(--t-default) ease; }
.plx-d1-search-input + .plx-d1-search-icon { transition: color var(--t-default) ease; }
.plx-d1-search-input:focus + .plx-d1-search-icon,
.plx-d1-search-wrap:focus-within .plx-d1-search-icon { color: var(--lime); }
/* Bell + profile cluster */
.plx-d1-header-right {
  display: flex; align-items: center;
  gap: var(--sp-16); margin-left: var(--sp-16); flex-shrink: 0;
}
.plx-d1-notif-outer { position: relative; }
.plx-d1-bell-wrap  { position: relative; cursor: pointer; padding: var(--sp-4); }
.plx-d1-bell-icon  { font-size:var(--fs-18); color: var(--amber); transition: transform var(--t-fast); }
.plx-d1-bell-wrap:hover .plx-d1-bell-icon { transform: rotate(-12deg) scale(1.1); }
.plx-d1-notif-dot {
  position: absolute; top: var(--pos-4); right: var(--pos-4);
  width: var(--size-8); height: var(--size-8); border-radius: 50%;
  background: var(--red); border: 1.5px solid var(--dark-navy);
}
/* Notification dropdown */
.plx-d1-notif-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + var(--pos-8));
  right: 0;
  width: var(--size-320);
  max-height: var(--size-380);
  overflow-y: auto;
  background: var(--dark-navy);
  border: 1px solid var(--border-md);
  border-radius: var(--br-outer);
  box-shadow: 0 12px 36px var(--black-a50);
  z-index: var(--z-9999);
  animation: d1-dd-in var(--t-fast) ease;
}
.plx-d1-notif-dropdown.open { display: block; }
.plx-d1-notif-item { gap: var(--sp-8);padding: var(--sp-10) var(--sp-16);border-bottom: 1px solid var(--bg-mid);text-decoration: none;cursor: pointer;transition: background var(--t-fast); }
.plx-d1-notif-item:hover {
  background: var(--bg-mid);
  text-decoration: none;
}
.plx-d1-notif-item-content {
  flex: 1;
  min-width: 0;
}
.plx-d1-notif-item:last-child { border-bottom: 0; }
.plx-d1-notif-item-title { font-size:var(--fs-12); font-weight:var(--fw-medium); color: var(--t2); transition: color var(--t-fast); }
.plx-d1-notif-item:hover .plx-d1-notif-item-title { color: var(--t1); }
.plx-d1-notif-item-meta { font-size:var(--fs-10); color: var(--t5); margin-top: var(--sp-2); }
.plx-d1-notif-item-sep { margin: 0 var(--sp-4); }
.plx-d1-notif-item-arrow { font-size: var(--fs-10); color: var(--t5); opacity: var(--opacity-disabled); transition: all var(--t-fast); flex-shrink: 0; }
.plx-d1-notif-item:hover .plx-d1-notif-item-arrow { color: var(--t1); opacity: 1; transform: translateX(2px); }
.plx-d1-notif-empty { padding: var(--sp-20) var(--sp-16); text-align: center; font-size:var(--fs-12); color: var(--t5); }
/* All Notifications page items */

/* Notification footer with action buttons */
.plx-d1-notif-footer {
  display: flex;
  gap: var(--sp-8);
  padding: var(--sp-12) var(--sp-16);
  border-top: 1px solid var(--bg-mid);
  background: var(--bg-subtle);
}
.plx-d1-notif-btn {
  flex: 1;
  padding: var(--sp-8) var(--sp-12);
  border: none;
  border-radius: var(--br-inner);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  transition: all var(--t-fast);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.plx-d1-notif-btn-primary {
  background: var(--amber);
  color: var(--bg);
  transition: background-color var(--t-default) ease, transform var(--t-default) ease, box-shadow var(--t-default) ease;
}
.plx-d1-notif-btn-primary:hover {
  background: var(--amber-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px var(--amber2-a20);
}
.plx-d1-notif-btn-secondary {
  background: var(--amber2-a05);
  color: var(--amber);
  border: 1px solid var(--amber2-a30);
  transition: background-color var(--t-default) ease, border-color var(--t-default) ease, transform var(--t-default) ease;
}
.plx-d1-notif-btn-secondary:hover {
  background: var(--amber2-a15);
  border-color: var(--amber2-a50);
  transform: translateY(-1px);
}
/* Profile trigger */
.plx-d1-profile-outer { position: relative; }
.plx-d1-profile-wrap  { cursor: pointer;padding: var(--sp-4) var(--sp-8);border-radius: var(--br-inner);transition: background var(--t-fast); }
.plx-d1-profile-wrap:hover { background: var(--bg-mid); }
.plx-d1-profile-wrap.open  { background: var(--border); }
.plx-d1-avatar { width: var(--size-32);height: var(--size-32);border-radius: 50%;background: var(--grad);font-size:var(--fs-12);font-weight:var(--fw-extrabold);color: var(--bg);flex-shrink: 0;object-fit: cover; }
.plx-d1-profile-name  { font-size:var(--fs-14); font-weight:var(--fw-semibold); color: var(--t2); }
.plx-d1-profile-caret {
  font-size:var(--fs-10); color: var(--t4);
  transition: transform var(--t-default);
}
.plx-d1-profile-wrap.open .plx-d1-profile-caret { transform: rotate(180deg); }
/* Profile dropdown */
.plx-d1-profile-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + var(--pos-8));
  right: 0;
  width: var(--size-200);
  background: var(--dark-navy);
  border: 1px solid var(--border-md);
  border-radius: var(--br-outer);
  box-shadow: 0 12px 36px var(--black-a50);
  z-index: var(--z-9999);
  overflow: hidden;
  animation: d1-dd-in var(--t-fast) ease;
}
.plx-d1-profile-dropdown.open { display: block; }
@keyframes d1-dd-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.plx-d1-pd-header { padding: var(--sp-14) var(--sp-16);border-bottom: 1px solid var(--border); }
.plx-d1-pd-avatar { width: var(--size-36);height: var(--size-36);border-radius: 50%;background: var(--grad);font-size:var(--fs-12);font-weight:var(--fw-extrabold);color: var(--bg);flex-shrink: 0;object-fit: cover; }
.plx-d1-pd-role { font-size:var(--fs-12); color: var(--t5); margin-top: var(--sp-2); }
.plx-d1-pd-divider { height: 1px; background: var(--border); }
.plx-d1-pd-item { padding: var(--sp-10) var(--sp-16);font-size:var(--fs-14);font-weight:var(--fw-medium);color: var(--t3);text-decoration: none;transition: all var(--t-fast); }
.plx-d1-pd-item:hover { background: var(--bg-mid); color: var(--t1); }
.plx-d1-pd-item i { font-size:var(--fs-14); width: var(--size-16); text-align: center; color: var(--t4); }
.plx-d1-pd-item:hover i { color: var(--lime); }
.plx-d1-pd-logout { color: var(--red);  transition: background-color var(--t-default) ease; }
.plx-d1-pd-logout:hover { background: var(--red-a10); }
.plx-d1-pd-logout i { color: var(--red); }
/* ── Page title row ── */
.plx-d1-pt-row     { flex-wrap: wrap;gap: var(--sp-12); }
.plx-d1-page-title { font-size:var(--fs-22); font-weight:var(--fw-extrabold); color: var(--t1); margin-bottom: var(--sp-4); /* letter-spacing: -0.3px; */ }
/* Period select — dark on open/focus */
.plx-d1-period-select {
  background: var(--bg-mid);
  border: 1px solid var(--border-md);
  border-radius: var(--br-inner);
  padding: var(--sp-8) var(--sp-40) var(--sp-8) var(--sp-14);
  font-size:var(--fs-14); color: var(--t2);
  font-family:var(--font-body);
  appearance: none; cursor: pointer;
  transition: border-color var(--t-fast), background var(--t-fast);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='var(--t6)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.plx-d1-period-select:focus,
.plx-d1-period-select:active {
  outline: none;
  background-color: var(--black-a50);
  border-color: var(--lime-a60);
}
.plx-d1-period-select option { background: var(--dark-navy); color: var(--t1); }
/* ── Score summary strip ── */
.plx-d1-strip .card-body { padding: 0; }
.plx-d1-strip-inner {
  display: grid;
  grid-template-columns: var(--size-220) 1fr var(--size-260);
  border: 1px solid var(--border);
  border-radius: var(--br-outer);
  overflow: hidden;
}
.plx-d1-strip-col        { padding: var(--sp-24) var(--sp-28); border-right: 1px solid var(--border); }
.plx-d1-strip-col:last-child { border-right: none; }
.plx-d1-strip-lbl  { font-size:var(--fs-14); font-weight:var(--fw-bold); /* letter-spacing: 1.4px; */ text-transform: uppercase; color: var(--white-a35); margin-bottom: var(--sp-12); }
.plx-d1-strip-col-score { text-align: center; }
#plxD1ScoreChartJs  { margin: 0 auto; }
.plx-d1-score-caption { font-size:var(--fs-14); color: var(--t5); margin-top: var(--sp-4);}
.plx-d1-strip-col-grade { flex-direction: column;text-align: center; }
.plx-d1-grade-pill { background: var(--green); color: var(--t1); border-radius: var(--br-full); padding: var(--sp-10) var(--sp-32); font-size:var(--fs-18); font-weight:var(--fw-extrabold); display: inline-block; margin-bottom: var(--sp-10); box-shadow: 0 4px 16px var(--green-bd); }
.plx-d1-grade-sub  { font-size:var(--fs-14); color: var(--t5);}
.plx-d1-info-row   { padding: var(--sp-8) 0;border-bottom: 1px solid var(--bg-mid);font-size:var(--fs-14); }
.plx-d1-info-row:last-child { border-bottom: none; }
.plx-d1-info-val   { color: var(--t2); }
.plx-d1-info-bold  { font-weight:var(--fw-bold); color: var(--t1); }
.plx-d1-plan-val   { font-weight:var(--fw-bold);color: var(--t1); }
.plx-d1-plan-icon  { width: var(--size-20);height: var(--size-20);border-radius: var(--br-inner);background: var(--lime-a15);font-size:var(--fs-10);color: var(--lime); }

/* ── Domain Dashboard extras ── */
.plx-d1-domain-title-row { flex-wrap:wrap;gap:var(--sp-12); }
.plx-d1-domain-title-h   { font-size:var(--fs-24); font-weight:var(--fw-black); color:var(--t1); margin:0; /* letter-spacing:-.3px; */ }
.plx-d1-org-info         { gap:var(--sp-20); }
.plx-d1-org-item         { display:inline-flex; align-items:center; gap:var(--sp-8); font-size:var(--fs-14); color:var(--t4); }
.plx-d1-org-item i       { color:var(--t5); font-size:var(--fs-12); }
.plx-d1-grade-pill-amber  { background:var(--amber);  color:var(--bg); border-radius:var(--br-full); padding:var(--sp-10) var(--sp-32); font-size:var(--fs-18); font-weight:var(--fw-extrabold); display:inline-block; margin-bottom:var(--sp-10); box-shadow:0 4px 16px var(--amber-bd); }
.plx-d1-grade-pill-orange { background:var(--orange); color:var(--t1);    border-radius:var(--br-full); padding:var(--sp-10) var(--sp-32); font-size:var(--fs-18); font-weight:var(--fw-extrabold); display:inline-block; margin-bottom:var(--sp-10); box-shadow:0 4px 16px var(--amber2-a30); }
.plx-d1-grade-pill-red    { background:var(--red);    color:var(--t1);    border-radius:var(--br-full); padding:var(--sp-10) var(--sp-32); font-size:var(--fs-18); font-weight:var(--fw-extrabold); display:inline-block; margin-bottom:var(--sp-10); box-shadow:0 4px 16px var(--red-bd); }
.plx-d1-grade-pill-lime   { background:var(--lime);   color:var(--bg); border-radius:var(--br-full); padding:var(--sp-10) var(--sp-32); font-size:var(--fs-18); font-weight:var(--fw-extrabold); display:inline-block; margin-bottom:var(--sp-10); box-shadow:0 4px 16px var(--lime-a15); }
.plx-d1-ctrl-stat        { font-size:var(--fs-14);color:var(--t3);padding:var(--sp-4) 0; }
.plx-d1-ctrl-stat i      { font-size:var(--fs-12); flex-shrink:0; }
.plx-d1-impr-badge-row   { flex-shrink:0; }
.plx-d1-impr-score-val   { font-size:var(--fs-14); font-weight:var(--fw-bold); color:var(--t2); }
/* ── Domain Risk Overview ── */

.plx-d1-domain-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: var(--sp-10); }
/* Base card */
.plx-d1-dt {
  border-radius: var(--br-outer); padding: var(--sp-16) var(--sp-14); text-decoration: none; display: block;
  position: relative; overflow: hidden; min-height: var(--size-110); cursor: pointer;
  transition: transform var(--t-default) cubic-bezier(0.34,1.56,0.64,1), box-shadow var(--t-default) ease, background var(--t-default) ease, border-color var(--t-default) ease;
}
/* Diagonal shimmer sweep on hover */
.plx-d1-dt::before {
  content: ''; position: absolute; top: 0; left: 0;
  width: 55%; height: 100%;
  background: linear-gradient(105deg, transparent 0%, var(--border) 50%, transparent 100%);
  transform: translateX(-160%); transition: transform var(--t-slow) ease;
  pointer-events: none; border-radius: inherit;
}
.plx-d1-dt:hover::before { transform: translateX(260%); }
/* Lift all content above the shimmer layer */
.plx-d1-dt > * { position: relative; z-index: var(--z-1); }
/* Score — spring-scales up on hover */
.plx-d1-dt-score { font-size:var(--fs-28); font-weight:var(--fw-black);margin-bottom: var(--sp-4); display: inline-block; transition: transform var(--t-default) cubic-bezier(0.34,1.56,0.64,1); transform-origin: left center; }
.plx-d1-dt:hover .plx-d1-dt-score { transform: scale(1.13); }
.plx-d1-dt-name  { font-size:var(--fs-12); font-weight:var(--fw-semibold);margin-bottom: var(--sp-4); }
.plx-d1-dt-grade { font-size:var(--fs-12); font-weight:var(--fw-semibold); opacity: var(--opacity-hover); }
/* Arrow — nudges right and brightens on hover */
.plx-d1-dt-arrow { position: absolute;bottom: var(--pos-12);right: var(--pos-12);width: var(--size-24);height: var(--size-24);border-radius: 50%;font-size:var(--fs-10);transition: transform var(--t-default) cubic-bezier(0.34,1.56,0.64,1), background var(--t-default) ease; }
.plx-d1-dt:hover .plx-d1-dt-arrow { transform: translateX(4px); }

.plx-d1-dt-green:hover  .plx-d1-dt-arrow { background: var(--green-bd); }
.plx-d1-dt-amber:hover  .plx-d1-dt-arrow { background: var(--amber-a50); }
.plx-d1-dt-orange:hover .plx-d1-dt-arrow { background: var(--orange-bd); }
.plx-d1-dt-red:hover    .plx-d1-dt-arrow { background: var(--red-a62); }
/* Lock icon */
.plx-d1-lock-icon { position: absolute; bottom: var(--pos-12); right: var(--pos-12); font-size:var(--fs-14); color: var(--border-lg); transition: color var(--t-default) ease; }
/* Color variants */
.plx-d1-dt-green  { background: var(--green-a05);  border: 1px solid var(--green-bd);  color: var(--green);  transition: transform var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease, color var(--t-default) ease; }
.plx-d1-dt-amber  { background: var(--amber-a10);  border: 1px solid var(--amber-bd);  color: var(--amber);  transition: transform var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease, color var(--t-default) ease; }
.plx-d1-dt-orange { background: var(--orange-a15);  border: 1px solid var(--orange-bd);  color: var(--orange);  transition: transform var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease, color var(--t-default) ease; }
.plx-d1-dt-red    { background: var(--red-a10);   border: 1px solid var(--red-bd);   color: var(--red);  transition: transform var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease, color var(--t-default) ease; }
.plx-d1-dt-locked { background: var(--bg-card); border: 1px solid var(--border); color: var(--white-a35);  transition: transform var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease, color var(--t-default) ease; }
.plx-d1-dt-locked .plx-d1-dt-score { color: var(--border-lg); font-size:var(--fs-22); }
.plx-d1-dt-locked .plx-d1-dt-name  { color: var(--white-a35); }
/* Hover — lift + deep colored glow + inset rim light */
.plx-d1-dt-green:hover  { transform: translateY(-7px); background: var(--green-bd);  border-color: var(--green-a85);  box-shadow: 0 16px 40px var(--green-bd),  0 0 0 1px var(--green-bd)  inset; }
.plx-d1-dt-amber:hover  { transform: translateY(-7px); background: var(--amber-bd);  border-color: var(--amber-a50);  box-shadow: 0 16px 40px var(--amber-bd),  0 0 0 1px var(--amber-bd)  inset; }
.plx-d1-dt-orange:hover { transform: translateY(-7px); background: var(--orange-bd);  border-color: var(--orange-a82);  box-shadow: 0 16px 40px var(--orange-bd),  0 0 0 1px var(--orange-a15)  inset; }
.plx-d1-dt-red:hover    { transform: translateY(-7px); background: var(--red-bd);   border-color: var(--red-a62);   box-shadow: 0 16px 40px var(--red-bd),   0 0 0 1px var(--red-bd)   inset; }
.plx-d1-dt-locked:hover { transform: translateY(-4px); background: var(--bg-mid); border-color: var(--border-lg); box-shadow: 0 10px 28px var(--black-a50); }
.plx-d1-dt-green:hover  {
  color: var(--green-a100);
 }
.plx-d1-dt-amber:hover  {
color: var(--amber-a100);
 }
.plx-d1-dt-orange:hover {
color: var(--orange-a100);
 }
.plx-d1-dt-red:hover    {
color: var(--red-a100);
 }
.plx-d1-dt-locked:hover {
color: var(--t1);
 }
/* Lock shake on hover */
@keyframes d1-lock-shake {
  0%,100% { transform: rotate(0); }
  20% { transform: rotate(-11deg); }
  45% { transform: rotate(11deg); }
  65% { transform: rotate(-6deg); }
  82% { transform: rotate(6deg); }
}
.plx-d1-dt-locked:hover .plx-d1-lock-icon { animation: d1-lock-shake var(--t-slow) ease; color: var(--t4); }
/* ══ Locked Domain Modal ══
   Colors matched to register-org-verified.html:
   card bg → var(--bg-card)  |  border → --border-md
   icon/link accent → --lime family  |  button → --grad (lime→cyan) + var(--bg) text
   ══ */
.plx-d1-locked-dialog  { max-width: var(--size-420); }
.plx-d1-locked-content {
  background: var(--bg);
  border: 1px solid var(--border-md);
  border-radius: var(--br-outer);
  box-shadow: 0 24px 60px var(--black-a50);
}
.plx-d1-locked-body {
  padding: var(--sp-40) var(--sp-40) var(--sp-40);
  text-align: center;
  display: flex; flex-direction: column; align-items: center;
}
/* Lock icon ring — lime accent (matches register page's lime palette) */
.plx-d1-lm-icon-wrap  { margin-bottom: var(--sp-24); }
.plx-d1-lm-icon-ring  { width: var(--size-80);height: var(--size-80);border-radius: 50%;background: var(--lime-bg);border: 2px solid var(--lime-bd); }

/* Title — same as .plx-center-card h2 */
.plx-d1-lm-title {
  font-size:var(--fs-20); font-weight:var(--fw-extrabold); color: var(--t1);
  margin-bottom: var(--sp-10);
}
/* Description — same as .plx-center-card p */
.plx-d1-lm-desc {
  font-size:var(--fs-14); color: var(--t4);
  margin-bottom: var(--sp-20); max-width: var(--size-300);
}
/* "View what's included" link — matches .plx-auth-link a / .plx-resend-link a (lime) */
.plx-d1-lm-view-link {
  display: inline-block; font-size:var(--fs-14); font-weight:var(--fw-medium);
  color: var(--lime); text-decoration: underline;
  text-underline-offset: 3px; margin-bottom: var(--sp-28); cursor: pointer;
  transition: opacity var(--t-fast);
}
.plx-d1-lm-view-link:hover { opacity: var(--opacity-muted); color: var(--lime); }
/* Upgrade Plan — matches .btn-primary (--grad, dark text) */
.plx-d1-lm-upgrade-btn {
  display: inline-block; background: var(--grad); color: var(--bg);
  font-size:var(--fs-16); font-weight:var(--fw-bold); padding: var(--sp-14) var(--sp-40);
  border-radius: var(--br-full); text-decoration: none;
  transition: opacity var(--t-default), transform var(--t-default);
}
.plx-d1-lm-upgrade-btn:hover { opacity: var(--opacity-hover); transform: translateY(-2px); color: var(--bg); }
/* ══ Domain Included Modal (multi-modal detail view) ══
   Same card treatment as modal 1 — var(--bg-card) / --border-md / r-16px
   ══ */
.plx-d1-included-dialog  { max-width: var(--size-520); }
.plx-d1-included-content {
  background: var(--bg);
  border: 1px solid var(--border-md);
  border-radius: var(--br-outer);
  box-shadow: 0 28px 70px var(--black-a65);
  max-height: 88vh;
}
/* Close-only header */
.plx-d1-included-header {
  display: flex; justify-content: flex-end;
  padding: var(--sp-16) var(--sp-20) 0; flex-shrink: 0;
  align-self: end;
}
.plx-d1-included-close { width: var(--size-30);height: var(--size-30);border-radius: 50%;background: var(--border);border: none;color: var(--t4);cursor: pointer;font-size:var(--fs-14);transition: background var(--t-fast), color var(--t-fast); }
.plx-d1-included-close:hover { background: var(--border-lg); color: var(--t1); }
/* Scrollable body */
.plx-d1-included-body  { padding: var(--sp-4) var(--sp-24) 0; overflow-y: auto; flex: 1 1 auto; }
/* Title */
.plx-d1-inc-title  { font-size:var(--fs-18); font-weight:var(--fw-bold); color: var(--t1); margin: 0 0 var(--sp-8); }
/* Description */
.plx-d1-inc-desc   { font-size:var(--fs-14); color: var(--t3);margin: 0 0 var(--sp-20); }
/* "Key Controls Covered" bullet */

/* Table — neutral tokens unchanged; row hover uses same bg-card as other cards */
.plx-d1-inc-table-wrap {
  width: 100%; border-radius: var(--br-outer); overflow: hidden;
  border: 1px solid var(--border-md);
}
.plx-d1-inc-table { width: 100%; border-collapse: collapse; }
.plx-d1-inc-table thead tr  { background: var(--bg-mid); }
.plx-d1-inc-table thead th  {
  padding: var(--sp-12) var(--sp-16); font-size:var(--fs-14); font-weight:var(--fw-bold); color: var(--t2);
  text-align: left;
}
.plx-d1-inc-table thead th:last-child { text-align: right; }
.plx-d1-inc-table tbody tr  { border-top: 1px solid var(--border); transition: background var(--t-fast); }
.plx-d1-inc-table tbody tr:hover { background: var(--bg-card); }
.plx-d1-inc-table tbody td  { padding: var(--sp-10) var(--sp-16); font-size:var(--fs-14); color: var(--t3); text-align: left; }
.plx-d1-inc-table tbody td:last-child { text-align: right; color: var(--t4); }
/* Footer — matches .btn-primary (--grad, dark text) */
.plx-d1-included-footer {
  padding: var(--sp-16) var(--sp-24) var(--sp-24); text-align: center;
  border-top: 1px solid var(--border); flex-shrink: 0;
}
.plx-d1-inc-upgrade-btn {
  display: inline-block; background: var(--grad); color: var(--bg);
  font-size:var(--fs-16); font-weight:var(--fw-bold); padding: var(--sp-14) var(--sp-40);
  border-radius: var(--br-full); text-decoration: none;
  transition: opacity var(--t-default), transform var(--t-default);
}
.plx-d1-inc-upgrade-btn:hover { opacity: var(--opacity-hover); transform: translateY(-2px); color: var(--bg); }
/* ── Bottom two-column layout ── */
.plx-d1-bottom-grid  { display: grid; grid-template-columns: 1fr var(--size-300); gap: var(--sp-16); }

/* Improvement cards */
.plx-d1-impr-card    { border: 1px solid var(--bg-mid); border-radius: var(--br-outer); padding: var(--sp-14) var(--sp-16); margin-bottom: var(--sp-10); background: var(--bg-subtle); }
.plx-d1-impr-card:last-child { margin-bottom: 0; }
.plx-d1-impr-top     { margin-bottom: var(--sp-8);gap: var(--sp-10); }
.plx-d1-impr-left    { gap: var(--sp-8); }
.plx-d1-impr-dot        { width: var(--size-10); height: var(--size-10); border-radius: 50%; flex-shrink: 0; }
.plx-d1-impr-dot-amber  { background: var(--amber); }
.plx-d1-impr-dot-orange { background: var(--orange); }
.plx-d1-impr-dot-red    { background: var(--red); }

.plx-d1-review-link  { display: flex; align-items: center; gap: var(--sp-4); font-size:var(--fs-12); font-weight:var(--fw-semibold); color: var(--t4); text-decoration: none; white-space: nowrap; flex-shrink: 0; transition: color var(--t-fast); }
.plx-d1-review-link:hover { color: var(--t1); }
.plx-d1-impr-bullets { list-style: disc; padding-left: var(--sp-20); margin: 0; font-size:var(--fs-12); color: var(--t3);}
/* Quick Actions */
.plx-d1-qa-body      { display: flex; flex-direction: column; gap: var(--sp-8); }
.plx-d1-qa-btn       { padding: var(--sp-12) var(--sp-14);border-radius: var(--br-inner);text-decoration: none;font-size:var(--fs-14);font-weight:var(--fw-medium);color: var(--t2);background: var(--bg-subtle);border: 1px solid var(--bg-mid);transition: all var(--t-fast); }
.plx-d1-qa-btn:hover { background: var(--lime-a10); border-color: var(--lime-a15); color: var(--lime); }
.plx-d1-qa-btn:hover .plx-d1-qa-icon { background: var(--lime-a15); color: var(--lime); }
.plx-d1-qa-primary   { background: var(--grad); border-color: transparent; color: var(--bg); font-weight:var(--fw-bold);  transition: box-shadow var(--t-default) ease, filter var(--t-default) ease; }
.plx-d1-qa-primary:hover { box-shadow: 0 4px 18px var(--lime-a15); filter: brightness(1.06); }
.plx-d1-qa-icon      { width: var(--size-28);height: var(--size-28);border-radius: var(--br-inner);font-size:var(--fs-14);background: var(--bg-mid);color: var(--t3);flex-shrink: 0;transition: background var(--t-fast), color var(--t-fast); }
.plx-d1-qa-icon-filled { background: var(--black-a15); color: var(--bg); }
/* Recent Activity */
.plx-d1-activity-row { padding: var(--sp-10) var(--sp-6);border-bottom: 1px solid var(--bg-mid);border-radius: var(--br-inner);text-decoration: none;cursor: pointer;transition: background var(--t-fast); }
.plx-d1-activity-row:hover {
  background: var(--bg-card);
  text-decoration: none;
}
.plx-d1-activity-row .plx-d1-act-text { transition: color var(--t-default) ease; }
.plx-d1-activity-row:hover .plx-d1-act-text {
  color: var(--t1);
}
.plx-d1-activity-row:last-child { border-bottom: none; }
.plx-d1-act-icon     { width: var(--size-30);height: var(--size-30);border-radius: 50%;font-size:var(--fs-14);flex-shrink: 0; }
.plx-d1-act-cyan     { background: var(--cyan-bg);  color: var(--cyan); }
.plx-d1-act-lime     { background: var(--lime-bg);  color: var(--lime); }
.plx-d1-act-amber    { background: var(--amber-bg); color: var(--amber); }
.plx-d1-act-body     { flex: 1;gap: var(--sp-8); }
.plx-d1-act-text     { font-size:var(--fs-14); color: var(--t2); }
.plx-d1-act-time     { font-size:var(--fs-12); color: var(--t5); white-space: nowrap; }
/* ApexCharts canvas override */
#plxD1ScoreChartJs .apexcharts-canvas.apexcharts-canvas { background: transparent; }
/* ── Responsive ── */
/* ================================================================
   PLAN SELECTION PAGE  — dark mode, pixel-perfect
   ================================================================ */
/* ── Page wrapper ── */
.plx-ps-page {
  min-height: 100vh;
  background: var(--bg-alt);
  padding: var(--sp-60) var(--sp-40) var(--sp-64);
  font-family:var(--font-body);
}
/* ── Header ── */
.plx-ps-header  { text-align: center; margin-bottom: var(--sp-40); }
.plx-ps-title   { font-size:var(--fs-24); font-weight:var(--fw-extrabold); color: var(--t1); margin-bottom: var(--sp-8); /* letter-spacing: -0.3px; */ }
/* ── 4-column card grid ── */
.plx-ps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-16);
  max-width: var(--size-1060);
  margin: 0 auto var(--sp-40);
  align-items: stretch;
}
/* ── Individual plan card ── */
.plx-ps-card { display: flex;flex-direction: column;position: relative;overflow: hidden;transition: box-shadow var(--t-default) ease, transform var(--t-default) ease, border-color var(--t-default) ease, background-color var(--t-default) ease; }
.plx-ps-card:hover {
  transform: translateY(-3px);
  border-color: var(--border-lg);
  background: var(--bg-mid);
  box-shadow: 0 12px 36px var(--black-a50);
}
/* Featured card (Enhanced) */
.plx-ps-card-featured {
  border-color: var(--purple-bd);
  background: var(--purple-a10);
  box-shadow: 0 4px 24px var(--purple-bd);
}
.plx-ps-card-featured:hover {
  transform: translateY(-3px);
  border-color: var(--purple);
  background: var(--purple-a10);
  box-shadow: 0 14px 40px var(--purple-bd);
}
/* "Most Popular" diagonal ribbon */
.plx-ps-ribbon {
  position: absolute;
  top: var(--pos-22);
  right: calc(var(--pos-30) * -1);
  background: var(--amber);
  color: var(--bg);
  font-size:var(--fs-10);
  font-weight:var(--fw-extrabold);
  /* letter-spacing: 0.6px; */
  text-transform: uppercase;
  padding: var(--sp-4) var(--sp-40);
  transform: rotate(45deg);
  white-space: nowrap;
  z-index: var(--z-2);

}
/* Card body (grows to push pricing to bottom) */
.plx-ps-card-body {
  padding: var(--sp-24) var(--sp-24) var(--sp-16);
  flex: 1;
  display: flex;
  flex-direction: column;
}
/* ── Icon circle ── */

/* ── Plan name & description ── */
.plx-ps-name {
  font-size:var(--fs-20);
  font-weight:var(--fw-extrabold);
  color: var(--t1);
  margin-bottom: var(--sp-8);
  /* letter-spacing: -0.2px; */
}

/* ── Feature list ── */
.plx-ps-features {
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 1;
}
.plx-ps-features li {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-10);
  font-size:var(--fs-12);
  color: var(--t2);
  margin-bottom: var(--sp-10);

}
.plx-ps-features li:last-child { margin-bottom: 0; }
/* Feature check circles */

/* ── Pricing section (pinned to bottom) ── */
.plx-ps-pricing {
  padding: var(--sp-16) var(--sp-24) var(--sp-20);
  border-top: 1px solid var(--border);
  margin-top: var(--sp-4);
}
.plx-ps-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-14) 0;
}

.plx-ps-amount {
  font-size:var(--fs-26);
  font-weight:var(--fw-black);
  color: var(--t1);

  /* letter-spacing: -0.5px; */
}

.plx-ps-period {
  font-size:var(--fs-12);
  color: var(--t5);
  font-weight:var(--fw-medium);
}

/* ── Plan buttons ── */
.plx-ps-btn {
  border-radius: var(--br-full);
  padding: var(--sp-8) var(--sp-16);
  font-size:var(--fs-12);
  font-weight:var(--fw-bold);
  cursor: pointer;
  font-family:var(--font-body);
  white-space: nowrap;
  transition: all var(--t-default);
  flex-shrink: 0;
}
.plx-ps-btn-ghost {
  background: transparent;
  border: 1.5px solid var(--border-lg);
  color: var(--t2);
  transition: border-color var(--t-default) ease, color var(--t-default) ease, background-color var(--t-default) ease;
}
.plx-ps-btn-ghost:hover {
  border-color: var(--t4);
  color: var(--t1);
  background: var(--bg-mid);
}
.plx-ps-btn-primary {
  background: var(--grad);
  border: none;
  color: var(--bg);
  transition: opacity var(--t-default) ease;
}
.plx-ps-btn-primary:hover { opacity: var(--opacity-hover); }
/* ── Comparison table section ── */

.plx-qb-table-wrap { overflow-x: auto; }
/* ── Comparison table ── */

/* Specificity: th.plx-ps-th-feature (0,1,1) beats .plx-ps-comp-table th (0,1,1) via cascade order */

/* Tick and cross marks */

/* ── Responsive ── */
/* ================================================================
   PLAN ACTIVATION MODAL  (SweetAlert2 popup — dark theme)
   ================================================================ */
/* Override SweetAlert2 popup container */
/* Modal inner wrapper */
/* Green check icon with outer glow ring */
/* Title */
/* Description */
/* Go to Dashboard button */
.page-header .logo-wrapper .close-btn {
    flex-shrink: 0;
}
/* ================================================================
   GLOBAL LAYOUT OVERRIDES — Dark App (compact-wrapper)
   File Cover-28 pixel-perfect layout.

   No !important needed: body.plx-app prefix adds (0,1,1)
   over Admiro's base selectors, ensuring our rules always win
   via specificity alone. The sidebar-open compound selector
   adds one more class, beating our own default rule.
   ================================================================ */
/* 1. Sidebar: 185 px wide, dark bg */
body.plx-app .page-sidebar {
  width: var(--size-205);
  margin-top: var(--sp-64);
  background: var(--bg-alt);
  box-shadow: 1px 0 0 var(--bg-mid);
  transition: var(--t-slow) all ease;
}
/* 2. Logo-wrapper — (0,3,1) > Admiro (0,2,0) */
body.plx-app .page-header .logo-wrapper {
  width: var(--size-205);
  min-width: var(--size-205);
  padding: 0 var(--sp-14) 0 var(--sp-20);
  background: var(--black-a25);
  border-right: 1px solid var(--bg-mid);
  height: var(--size-64);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
/* 3. Page-body-wrapper left margin — (0,3,1) > Admiro (0,2,0) */
body.plx-app .page-wrapper .page-body-wrapper {
  position: relative;
  z-index: var(--z-1);
}
/* 4. Header heights */
body.plx-app .page-header {
  height: var(--size-64);
  display: flex;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: var(--z-100);
}
body.plx-app .page-main-header {
  height: var(--size-64);
  display: flex;
  align-items: center;
}
/* 5. Sidebar menu: no dividers, tight padding */
body.plx-app .sidebar-menu {
  padding: var(--sp-8) var(--sp-10);
  height: calc(100vh - 64px);
  flex-direction: column;
}
body.plx-app .sidebar-menu .sidebar-list {
  border-bottom: none;
  width: 100%;
}
/* 6. Section titles */
body.plx-app .sidebar-menu .sidebar-main-title {
  padding: var(--sp-4) 0;
  border-bottom: none;
}
body.plx-app .sidebar-menu .sidebar-main-title h5,
body.plx-app .sidebar-menu .sidebar-main-title .sidebar-title {
  font-size:var(--fs-10);
  font-weight:var(--fw-bold);
  color: var(--white-a35);
  text-transform: uppercase;
  /* letter-spacing: 1.1px; */
  padding: var(--sp-10) var(--sp-8) var(--sp-4);
  margin: 0;
}
/* 7. Sidebar link base — (0,4,1) > Admiro .sm .sl .sl-link (0,3,0) */
body.plx-app .sidebar-menu .sidebar-list .sidebar-link {
  padding: var(--sp-10) var(--sp-10);
  border-radius: var(--br-inner);
  gap: var(--sp-10);
  color: var(--t4);
  background: transparent;
  transition: background var(--t-fast), color var(--t-fast);
}
body.plx-app .sidebar-menu .sidebar-list .sidebar-link h6,
body.plx-app .sidebar-menu .sidebar-list .sidebar-link .h6 {
  font-size:var(--fs-14);
  font-weight:var(--fw-medium);
  color: var(--t1);
  transition: color var(--t-fast);
}
body.plx-app .sidebar-menu .sidebar-list .sidebar-link .plx-sidebar-icon {
  font-size:var(--fs-14);
  width: var(--size-16);
  text-align: center;
  flex-shrink: 0;
  color: var(--t2);
  transition: color var(--t-fast);
}
/* 8. Active — (0,5,1) > Admiro .sm .sl.active .sl-link (0,4,0) */
body.plx-app .sidebar-menu .sidebar-list.active .sidebar-link,
body.plx-app .sidebar-menu .sidebar-list .sidebar-link.active {
  background: var(--lime-a10);
  color: var(--lime);
  border-left: 3px solid var(--lime);
  padding-left: var(--sp-8);
}
body.plx-app .sidebar-menu .sidebar-list.active .sidebar-link h6,
body.plx-app .sidebar-menu .sidebar-list.active .sidebar-link .h6,
body.plx-app .sidebar-menu .sidebar-list .sidebar-link.active h6 {
  color: var(--lime);
  font-weight:var(--fw-semibold);
}
body.plx-app .sidebar-menu .sidebar-list.active .sidebar-link .plx-sidebar-icon,
body.plx-app .sidebar-menu .sidebar-list .sidebar-link.active .plx-sidebar-icon {
  color: var(--lime);
}
body.plx-app .sidebar-menu .sidebar-list .sidebar-link:not(.active) { transition: background-color var(--t-default) ease, color var(--t-default) ease; }
/* 9. Hover — (0,6,1) > Admiro .sm .sl:hover .sl-link (0,4,0) */
body.plx-app .sidebar-menu .sidebar-list:hover .sidebar-link:not(.active) {
  background: var(--lime-a10);
  color: var(--lime);
}
body.plx-app .sidebar-menu .sidebar-list:hover .sidebar-link:not(.active) h6,
body.plx-app .sidebar-menu .sidebar-list:hover .sidebar-link:not(.active) .h6 {
  color: var(--lime);
}
body.plx-app .sidebar-menu .sidebar-list:hover .sidebar-link:not(.active) .plx-sidebar-icon,
body.plx-app .sidebar-menu .sidebar-list:hover .sidebar-link:not(.active) i {
  color: var(--lime);
}
/* 10. Page body padding — (0,4,1) > Admiro .pw .pbw .page-body (0,3,0) */
body.plx-app .page-wrapper .page-body-wrapper .page-body {
  padding: 0 var(--sp-20) var(--sp-20);
}
/* 11. Page title */
body.plx-app .page-title {
  padding: var(--sp-20) 0 var(--sp-14);
}
/* 12. Card spacing */
body.plx-app .page-body .card {
  margin-bottom: var(--sp-16);
}
/* 13. Card header/body inner padding — (0,3,1) > Bootstrap (0,1,0) */
body.plx-app .page-body .card .card-header {
  padding: var(--sp-20) var(--sp-20) var(--sp-14);
}
body.plx-app .page-body .card .card-body {
  padding: var(--sp-14) var(--sp-20) var(--sp-20);
}
body.plx-app .page-body .card .card-header.plx-no-border {
  border-bottom: none;
}
/* 14. Toggle button — (0,4,1) > Admiro .ph .lw .close-btn (0,3,0) */
body.plx-app .page-header .logo-wrapper .close-btn {
  background: transparent;
  color: var(--t6);
  border: none;
  font-size:var(--fs-16);
  width: auto;
  height: auto;
  padding: var(--sp-8);
  border-radius: var(--br-inner);
  transition: color var(--t-fast), background var(--t-fast);
}
body.plx-app .page-header .logo-wrapper .close-btn:hover {
  background: var(--border);
  color: var(--lime);
}
/* 15. Footer */
body.plx-app .footer {
  padding: var(--sp-12) var(--sp-20);
  background: var(--bg-alt);
  border-top: 1px solid var(--bg-mid);
}
/* 16. Sidebar-open state (sidebar slides off-screen)
   Selector (0,4,1) beats our default rule (0,2,1) and
   Admiro's .pw.sidebar-open .page-sidebar (0,3,0)            */
body.plx-app .page-wrapper.sidebar-open .page-sidebar {
  left: calc(var(--pos-215) * -1);
}
/* body.plx-app .pw.sidebar-open .pbw = (0,4,1)
   beats our default (0,3,1) because .pw.sidebar-open
   contributes an extra class in the compound selector.       */
/* 17. Mobile: sidebar is auto-hidden, full-width body */
.plx-nav-btn-primary:hover {
  color: initial;
}

/* ═══════════════════════════════════════════════════════
   ORGANISATIONS PAGE  (DataTables integration)
   ═══════════════════════════════════════════════════════ */
/* Filter select with caret arrow */
.plx-filter-select-caret {
  /* background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='11' height='11'%3E%3Cpath fill='rgba(255%2C255%2C255%2C0.4)' d='M8 11L2 5h12z'/%3E%3C/svg%3E"); */
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 11px center;
  padding-right: var(--sp-32);
}
/* Contact person cell */
.plx-org-cp-name  { font-size:var(--fs-14); font-weight:var(--fw-medium); color: var(--t2); }
.plx-org-cp-email { font-size:var(--fs-12); color: var(--t5); margin-top: var(--sp-2); }
/* Scoped search-box width for toolbar */
.plx-table-toolbar .plx-org-search-box { max-width: var(--size-280); }
/* DataTables: reset wrapper */
.dataTables_wrapper { position: relative; clear: both; width: 100%; }
.dataTables_wrapper table.dataTable.dataTable { margin: 0; }
/* DataTables: foot row (info + pagination side-by-side) */
.plx-org-dt-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-14) 0 0;
  flex-wrap: wrap;
  gap: var(--sp-8);
}
/* DataTables: length + filter controls — unstyled by default since
   dataTables.bootstrap4.min.js (which normally wraps these in themed
   Bootstrap markup) isn't loaded, only the core + Responsive extension. */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
  display: flex;
  align-items: center;
  gap: var(--sp-8);
  margin-bottom: var(--sp-14);
  font-size:var(--fs-12);
  color: var(--t4);
}
.dataTables_wrapper .dataTables_filter label {
  display: flex;
  align-items: center;
  gap: var(--sp-8);
  width: 100%;
}
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
  background: var(--bg-card);
  border: 1px solid var(--border-md);
  border-radius: var(--br-inner);
  color: var(--t2);
  font-size:var(--fs-14);
  font-family:var(--font-body);
  padding: var(--sp-8) var(--sp-10);
  outline: none;

}
.dataTables_wrapper .dataTables_length select { cursor: pointer; }
.dataTables_wrapper .dataTables_length select option { background:var(--dark-green); color: var(--t1); }
.dataTables_wrapper .dataTables_filter input {
  flex: 1;
  min-width: 0;
}
.dataTables_wrapper .dataTables_filter input:focus {
  border-color: var(--lime-a60);
  background: var(--border);
}
/* orgTable / assessTable already have their own styled search-box + filter-select
   toolbar (table-toolbar); hide DataTables' auto-generated length/filter controls
   there to avoid a duplicate search box. */
#orgTable_wrapper > .dataTables_length,
#orgTable_wrapper > .dataTables_filter,
#assessTable_wrapper > .dataTables_length,
#assessTable_wrapper > .dataTables_filter,
#qbTable_wrapper > .dataTables_length,
#qbTable_wrapper > .dataTables_filter {
  display: none;
}
/* DataTables: info text */
.dataTables_wrapper .dataTables_info {
  font-size:var(--fs-12);
  color: var(--t5);
  padding: 0;
  white-space: nowrap;
}
body.plx-app table.dataTable tbody tr,
body.plx-app .dataTables_wrapper table.dataTable tbody tr {
  background-color: transparent;
}
body.plx-app table.dataTable td.dataTables_empty {
  color: var(--t4);
  background-color: transparent;
  text-align: center;
  padding: var(--sp-24) var(--sp-14);
}
/* DataTables: pagination */
.dataTables_wrapper .dataTables_paginate {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  flex-wrap: wrap;
  border: 0;
}
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--size-30);
  height: var(--size-30);
  padding: 0 var(--sp-8);
  border-radius: var(--br-inner);
  background: var(--bg-card);
  border: 1px solid var(--border-md);
  color: var(--t4);
  font-size:var(--fs-12);
  font-weight:var(--fw-semibold);
  cursor: pointer;
  box-sizing: border-box;
  text-decoration: none;
  transition: background var(--t-fast);
  font-family:var(--font-body);
  box-shadow: none;

}
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button:hover:not(.current):not(.disabled) {
  background: var(--border);
  color: var(--t2);
  border-color: var(--border-md);
}
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button.current,
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button.current:hover {
  background: var(--lime-a10);
  border-color: var(--lime-a15);
  color: var(--lime);

}
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button.disabled,
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button.disabled:hover {
  opacity: var(--opacity-disabled);
  cursor: default;
  color: var(--t5);
  background: var(--bg-card);
  border-color: var(--border-md);

}
.dataTables_wrapper .dataTables_paginate span { display: flex; gap: var(--sp-4); }
/* DataTables: sorting arrows on admin-table / tracker-table */
.plx-tracker-table thead th.sorting,
.plx-tracker-table thead th.sorting_asc,
.plx-tracker-table thead th.sorting_desc { cursor: pointer; position: relative; padding-right: var(--sp-24); }
.plx-tracker-table thead th.sorting::after { content: '⇅'; position:absolute; right:var(--pos-8); top:50%; transform:translateY(-50%); opacity:var(--opacity-disabled); font-size:var(--fs-10); }
.plx-tracker-table thead th.sorting_asc::after { content: '↑'; position:absolute; right:var(--pos-8); top:50%; transform:translateY(-50%); opacity:var(--opacity-muted); font-size:var(--fs-10); }
.plx-tracker-table thead th.sorting_desc::after { content: '↓'; position:absolute; right:var(--pos-8); top:50%; transform:translateY(-50%); opacity:var(--opacity-muted); font-size:var(--fs-10); }
/* badge variant for Manually Verified (same colour family as badge-verified) */

/* org-dt-wrap & qb-table-wrap: only scroll when table is wider than container */

.plx-org-search-box input {
  opacity: 1;
  position: static;
  max-width: 100%;
}
/* ── ORG-DETAIL PAGE ── */
/* Back link */

/* Org Header */
.plx-od-header { display:flex;align-items:center;gap:var(--sp-24);padding:var(--sp-24);margin-bottom:var(--sp-24); }
.plx-od-logo { width: var(--size-72);height: var(--size-72);border-radius:var(--br-outer);background:var(--purple-bg);border:1px solid var(--purple-bd);display:flex;align-items:center;justify-content:center;font-size:var(--fs-26);font-weight:var(--fw-extrabold);color:var(--purple);flex-shrink:0;overflow:hidden;/* letter-spacing:-1px; */ }
.plx-od-logo img, .plx-od-logo-img { width:100%;height:100%;object-fit:contain;background:var(--bg-mid);border-radius:inherit; }
.plx-od-header-body { flex:1;min-width:0; }
.plx-od-org-name { font-size:var(--fs-22);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-8);}
.plx-od-meta { gap:var(--sp-16); }
.plx-od-meta-item { font-size:var(--fs-14);color:var(--t3); }
.plx-od-meta-sep { width:1px;height: var(--size-14);background:var(--border-md); }
.plx-od-actions { flex-shrink:0; }
.plx-btn-view-dash { display:inline-flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-20);border-radius:var(--br-full);border:1px solid var(--border-lg);background:transparent;color:var(--t2);font-size:var(--fs-14);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--t-fast); }
.plx-btn-view-dash:hover { border-color:var(--lime);color:var(--lime); }
.plx-btn-deactivate-org { display:inline-flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-20);border-radius:var(--br-full);border:1px solid var(--purple-bd);background:transparent;color:var(--purple);font-size:var(--fs-14);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--t-fast); }
.plx-btn-deactivate-org:hover { background:var(--purple-bg); }
.plx-btn-activate-org { display:inline-flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-20);border-radius:var(--br-full);border:1px solid var(--green-bd);background:transparent;color:var(--green);font-size:var(--fs-14);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--t-fast); }
.plx-btn-activate-org:hover { background:var(--green-bg); }
.plx-btn-reject-org { display:inline-flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-20);border-radius:var(--br-full);border:1px solid var(--red-bd);background:transparent;color:var(--red);font-size:var(--fs-14);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--t-fast); }
.plx-btn-reject-org:hover { background:var(--red-bg); }
/* Tab Nav — Pill Segmented Control */
.plx-od-tab-nav { border-bottom:none;margin-bottom:var(--sp-24);background:var(--bg-card);border:1px solid var(--border-md);border-radius:var(--br-full);padding:var(--sp-4);display:flex; }
.plx-od-tab-nav .nav-item { flex:1; }
.plx-od-tab-nav .nav-link.nav-link { display:block;width:100%;text-align:center;color:var(--t4);font-size:var(--fs-14);font-weight:var(--fw-medium);padding:var(--sp-10) var(--sp-16);border:none;background:transparent;cursor:pointer;transition:all var(--t-default);border-radius:var(--br-full);position:relative; }
.plx-od-tab-nav .nav-link:hover { color:var(--t2); }
.plx-od-tab-nav .nav-link.nav-link.active { color:var(--bg);font-weight:var(--fw-semibold);background:var(--grad); }
.plx-od-tab-nav .nav-link.active::after { display:none; }
/* Info Cards Grid */
.plx-od-info-grid { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-16);margin-bottom:var(--sp-16); }
.plx-od-card { padding:var(--sp-20); }
.plx-od-card-full { grid-column:1/-1; }
.plx-od-card-header { margin-bottom:var(--sp-16);padding-bottom:var(--sp-12);border-bottom:1px solid var(--border); }
.plx-od-card-icon { width: var(--size-32);height: var(--size-32);border-radius:var(--br-inner);background:var(--amber-bg);border:1px solid var(--amber);font-size:var(--fs-12);color:var(--amber);flex-shrink:0; }
.plx-od-card-title { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1); }
.plx-od-fields { display:flex;flex-direction:column;gap:var(--sp-12); }
.plx-od-field-block { display:flex;flex-direction:column;gap:var(--sp-4); }
.plx-od-field-lbl { font-size:var(--fs-12);font-weight:var(--fw-semibold);/* letter-spacing:0.5px; */text-transform:uppercase;color:var(--t4); }
.plx-od-field-val { font-size:var(--fs-14);color:var(--t2);}
.plx-od-field-row { gap:var(--sp-8); }
/* Document Items */
.plx-od-doc-item { padding:var(--sp-10) 0;border-bottom:1px solid var(--border); }
.plx-od-doc-item:last-child { border-bottom:none; }
.plx-od-doc-icon { width: var(--size-30);height: var(--size-30);border-radius:var(--br-inner);background:var(--bg-card);font-size:var(--fs-12);color:var(--t3);flex-shrink:0; }
.plx-od-doc-body { flex:1; }
.plx-od-doc-name { font-size:var(--fs-14);color:var(--t2);font-weight:var(--fw-medium); }

/* Branch Items */
.plx-od-branch-list {
    display: grid;
    /* flex-direction: column; */
    gap: var(--sp-10);
    grid-template-columns: 1fr 1fr;
}
.plx-od-branch-item { padding:var(--sp-12) var(--sp-14);border-radius:var(--br-inner);background:var(--bg-subtle);border:1px solid var(--border); }
.plx-od-branch-icon { width: var(--size-28);height: var(--size-28);border-radius:var(--br-inner);background:var(--purple-bg);border:1px solid var(--purple-bd);font-size:var(--fs-12);color:var(--purple);flex-shrink:0; }
.plx-od-branch-body { flex:1; }
.plx-od-branch-name { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1);margin-bottom:var(--sp-2); }
/* Badge Role */

/* Assessments Tab — Section Header */
.plx-od-assess-header { gap:var(--sp-12);margin-bottom:var(--sp-20); }
.plx-od-assess-title { font-size:var(--fs-18);font-weight:var(--fw-bold);color:var(--t1); }
.plx-btn-full-preview { display:inline-flex;align-items:center;gap:var(--sp-8);padding:var(--sp-10) var(--sp-20);border-radius:var(--br-full);border:1px solid var(--purple-bd);background:transparent;color:var(--purple);font-size:var(--fs-14);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--t-fast);white-space:nowrap; }
.plx-btn-full-preview:hover { background:var(--purple-bg); }
.plx-od-assess-history-title { font-size:var(--fs-18);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-14); }
/* Domain Assessment Cards */
.plx-od-domain-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-14);margin-bottom:var(--sp-32); }
.plx-od-domain-card { padding:var(--sp-16) var(--sp-20);display:flex;flex-direction:column; }
.plx-od-domain-card-top { display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-8);margin-bottom:var(--sp-8); }
.plx-od-domain-score-inline { font-size:var(--fs-14);color:var(--t3);white-space:nowrap;flex-shrink:0;padding-top:var(--sp-2); }
.plx-od-domain-score-inline strong { color:var(--lime);font-weight:var(--fw-extrabold);font-size:var(--fs-16); }
.plx-od-domain-card-status { margin-bottom:var(--sp-12); }
.plx-od-domain-fields { flex:1;display:flex;flex-direction:column;gap:var(--sp-8);margin-bottom:var(--sp-16); }
.plx-od-domain-assign { font-size:var(--fs-14);color:var(--t3);}
.plx-od-domain-assign strong { color:var(--t1);font-weight:var(--fw-semibold); }
.plx-od-domain-actions { display:flex;gap:var(--sp-8);margin-top:auto; }
.plx-btn-domain-preview,
.plx-btn-domain-report { flex:1;display:inline-flex;align-items:center;justify-content:center;padding:var(--sp-8) var(--sp-10);border-radius:var(--br-inner);border:1px solid var(--border-lg);background:transparent;color:var(--t3);font-size:var(--fs-12);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--t-fast); }
.plx-btn-domain-preview:hover { border-color:var(--lime);color:var(--lime); }
.plx-btn-domain-report:hover { border-color:var(--purple);color:var(--purple); }
.plx-btn-domain-dim { opacity:var(--opacity-disabled);pointer-events:none; }
/* Assessment History action icons */

/* Users Tab - License & Notes */

/* Timeline */
.plx-od-timeline { display:flex;flex-direction:column; }
.plx-od-timeline-item { display:flex;gap:var(--sp-16);padding:var(--sp-14) 0;border-bottom:1px solid var(--border); }
.plx-od-timeline-item:last-child { border-bottom:none;padding-bottom:0; }
.plx-od-timeline-dot-col { display:flex;flex-direction:column;align-items:center;padding-top:var(--sp-4); }
.plx-od-timeline-dot { width: var(--size-10);height: var(--size-10);border-radius:50%;background:var(--purple);flex-shrink:0; }
.plx-od-timeline-body { flex:1;min-width:0; }
.plx-od-timeline-title { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1);margin-bottom:var(--sp-4); }
.plx-od-timeline-meta { gap:var(--sp-8);font-size:var(--fs-12);color:var(--t4); }
.plx-od-timeline-sep { color:var(--border-lg);font-size:var(--fs-10); }
.plx-od-timeline-date { font-size:var(--fs-12);color:var(--t4);white-space:nowrap;flex-shrink:0;padding-top:var(--sp-4); }
/* Users Tab — Section Header */
.plx-od-users-header { gap:var(--sp-16);margin-bottom:var(--sp-20);flex-wrap:wrap; }
.plx-od-users-license { display:flex;align-items:center;gap:var(--sp-20); }
.plx-od-license-stat { font-size:var(--fs-14);color:var(--t3); }
.plx-od-license-stat strong { color:var(--t1);font-weight:var(--fw-bold); }
/* Pending status badge */

/* Users Tab — Role Notes */
.plx-od-role-notes { margin-top:var(--sp-20); }
.plx-od-role-notes-lbl { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t2);margin-bottom:var(--sp-8); }
.plx-od-role-notes-list { list-style:disc;padding-left:var(--sp-20);display:flex;flex-direction:column;gap:var(--sp-4); }
.plx-od-role-notes-list li { font-size:var(--fs-14);color:var(--t4);}
.plx-od-role-notes-list li strong { color:var(--t2);font-weight:var(--fw-semibold); }
/* Bootstrap Modal Dark Override — Deactivate */
.plx-od-deactivate-modal .modal-content { background:var(--bg);border:1px solid var(--border-md);border-radius:var(--br-outer);color:var(--t1); }
.plx-od-deactivate-modal .modal-header { border-bottom:1px solid var(--border);padding:var(--sp-20) var(--sp-24) var(--sp-16); }
.plx-od-deactivate-modal .modal-title { color:var(--t1);font-size:var(--fs-18);font-weight:var(--fw-bold); }
.plx-od-deactivate-modal .btn-close { filter:invert(1) brightness(0.5);opacity:var(--opacity-muted); }
.plx-od-deactivate-modal .btn-close:hover { opacity:1; }
.plx-od-deactivate-modal .modal-body { padding:var(--sp-20) var(--sp-24); }
.plx-od-deactivate-modal .modal-body p { font-size:var(--fs-14);color:var(--t3);margin:0; }
.plx-od-deactivate-modal .modal-footer { border-top:1px solid var(--border);padding:var(--sp-14) var(--sp-24);gap:var(--sp-10); }
.plx-btn-deactivate-confirm { padding:var(--sp-10) var(--sp-24);border-radius:var(--br-full);border:none;background:var(--purple);color:var(--t1);font-size:var(--fs-14);font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--t-fast); }
.plx-btn-deactivate-confirm:hover { background:var(--purple); }

/* ═══════════════════════════════════════════════════════
   ASSESSMENTS (ADMIN) PAGE
   ═══════════════════════════════════════════════════════ */
/* Export button - outlined purple/indigo pill */

/* Action column icon buttons */
.plx-tbl-icon-btn { background:none;border:none;font-size:var(--fs-16);cursor:pointer;padding:0;width: var(--size-24);height: var(--size-24);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:opacity var(--t-fast);vertical-align:middle; }
.plx-tbl-icon-btn:hover { opacity:var(--opacity-muted); }
.plx-tbl-icon-green, .plx-tbl-icon-lime { color:var(--lime); }
.plx-tbl-icon-cyan   { color:var(--cyan); }
.plx-tbl-icon-purple { color:var(--purple); }
.plx-tbl-icon-orange { color:var(--orange); }
.plx-tbl-icon-red    { color:var(--red); }
.plx-tbl-icon-ghost  { color:var(--t5);cursor:not-allowed;opacity:var(--opacity-disabled);  transition: opacity var(--t-default) ease; }
.plx-tbl-icon-ghost:hover { opacity:var(--opacity-disabled); }
/* ── Send Reminder Modal ── */

/* ═══════════════════════════════════════════════════════
   VERIFICATION & REQUESTS PAGE
   ═══════════════════════════════════════════════════════ */
/* Tab nav — left-aligned, auto-width pill tabs */
.plx-vr-tab-nav { border-bottom:none;margin-bottom:var(--sp-24);background:var(--bg-card);border:1px solid var(--border-md);border-radius:var(--br-full);padding:var(--sp-4);display:flex;gap:var(--sp-4); }
.plx-vr-tab-nav .nav-link.nav-link { display:inline-flex;align-items:center;gap:var(--sp-8);color:var(--t4);font-size:var(--fs-14);font-weight:var(--fw-medium);padding:var(--sp-10) var(--sp-24);border:none;background:transparent;cursor:pointer;transition:all var(--t-default);border-radius:var(--br-full); }
.plx-vr-tab-nav .nav-link:hover { color:var(--t2); }
.plx-vr-tab-nav .nav-link.nav-link.active { color:var(--bg);background:var(--grad); }
.plx-vr-tab-count { background:var(--border-lg);border-radius:var(--br-full);padding:var(--sp-2) var(--sp-8);font-size:var(--fs-10);font-weight:var(--fw-bold); }
.plx-vr-tab-nav .nav-link.active .plx-vr-tab-count { background:var(--black-a15); }
/* Section title above tables/cards */
.plx-vr-section-title { font-size:var(--fs-16);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-16); }
/* Uploaded document chips */
.plx-vr-doc-list { display:flex;flex-direction:column;gap:var(--sp-8); }
.plx-vr-doc-chip { display:inline-flex;align-items:center;gap:var(--sp-8);background:var(--bg-card);border:1px solid var(--border-md);border-radius:var(--br-inner);padding:var(--sp-4) var(--sp-10);font-size:var(--fs-12);color:var(--t3);white-space:nowrap;width:fit-content; }
.plx-vr-doc-chip i { color:var(--t4);font-size:var(--fs-12); }
/* Action icon — red variant (reject) */
.plx-tbl-icon-red { color:var(--red); }
/* Role transfer cards */

/* Reject button — purple outline pill */

/* ═══════════════════════════════════════════════════════
   VERIFICATION DETAIL PAGE
   ═══════════════════════════════════════════════════════ */
/* Back link — pill with border */
.plx-vd-back-link { display:inline-flex;align-items:center;gap:var(--sp-8);color:var(--t3);font-size:var(--fs-14);font-weight:var(--fw-medium);text-decoration:none;border:1px solid var(--border-lg);border-radius:var(--br-full);padding:var(--sp-8) var(--sp-20);margin-bottom:var(--sp-20);transition:all var(--t-fast); }
.plx-vd-back-link:hover { color:var(--t1);border-color:var(--t3); }
/* Org Header */
.plx-vd-header { margin-bottom:var(--sp-24); }
.plx-vd-org-name { font-size:var(--fs-24);font-weight:var(--fw-extrabold);color:var(--t1);margin-bottom:var(--sp-10);}
.plx-vd-meta { gap:var(--sp-16);padding-bottom:var(--sp-20);border-bottom:1px solid var(--border); }
.plx-vd-meta-item { font-size:var(--fs-14);color:var(--t4); }
.plx-vd-meta-icon { font-size:var(--fs-14);color:var(--t4); }
.plx-vd-meta-icon-purple { color:var(--purple); }
.plx-vd-meta-val { color:var(--t1);font-weight:var(--fw-bold); }
.plx-vd-meta-sep { width:1px;height: var(--size-14);background:var(--border-md); }
/* Card header icon — colour variants */
.plx-od-card-icon-purple { background:var(--purple-bg);border-color:var(--purple-bd);color:var(--purple); }
.plx-od-card-icon-cyan   { background:var(--cyan-bg);border-color:var(--cyan-bd);color:var(--cyan); }
.plx-od-card-icon-green  { background:var(--green-bg);border-color:var(--green-bd);color:var(--green); }
.plx-od-card-icon-orange { background:var(--orange-bg);border-color:var(--orange-bd);color:var(--orange); }
/* Field-level icon */
.plx-od-field-icon { color:var(--t5);font-size:var(--fs-10);margin-right:var(--sp-8); }
/* Document type icon — red variant (PDF) */
.plx-od-doc-icon-red { background:var(--red-bg);color:var(--red); }
/* Document view button — purple circle */
.plx-vd-doc-view { width: var(--size-32);height: var(--size-32);border-radius:50%;background:var(--purple-bg);border:1px solid var(--purple-bd);color:var(--purple);font-size:var(--fs-14);cursor:pointer;transition:all var(--t-fast);flex-shrink:0; }
.plx-vd-doc-view:hover { background:var(--purple);color:var(--t1); }
/* Rejection reason */

/* Approve / Reject actions */

/* ═══════════════════════════════════════════════════════
   ADVISORY REQUEST DETAIL PAGE
   ═══════════════════════════════════════════════════════ */
/* Status pill (meta row) */
.plx-vd-status-pill { display:inline-flex;align-items:center;padding:var(--sp-4) var(--sp-16);border-radius:var(--br-full);font-size:var(--fs-12);font-weight:var(--fw-bold); }
.plx-vd-status-pending { background:var(--amber-bg);border:1px solid var(--amber-bd);color:var(--amber); }
.plx-vd-status-in-review { background:var(--cyan-bg);border:1px solid var(--cyan-bd);color:var(--cyan); }
.plx-vd-status-completed { background:var(--green-bg);border:1px solid var(--green-bd);color:var(--green); }
/* Assessment stats card */
.plx-ad-stats-card { display:flex;align-items:center;padding:var(--sp-24) 0;margin-bottom:var(--sp-24); }
.plx-ad-stat { flex:1;text-align:center;padding:0 var(--sp-16); }
.plx-ad-stat-lbl { font-size:var(--fs-12);color:var(--t4);margin-bottom:var(--sp-8); }
.plx-ad-stat-val { font-size:var(--fs-18);font-weight:var(--fw-bold);color:var(--t1); }
.plx-ad-stat-score { font-size:var(--fs-18);font-weight:var(--fw-bold);color:var(--cyan); }
.plx-ad-stat-score-max { font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--t4); }
.plx-ad-stat-divider { width:1px;align-self:stretch;background:var(--border-md); }
/* Weak domains report card */
.plx-ad-report-card { padding:var(--sp-24);margin-bottom:var(--sp-24); }
/* Weak domains accordion */

.plx-wd-acc-item { background:transparent;border:none;border-top:1px solid var(--border); }
.plx-wd-acc-item:first-child { border-top:none; }
.plx-wd-acc-btn.plx-wd-acc-btn {
  display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-14) var(--sp-16);width:100%;
  background:transparent;box-shadow:none;border:none;
  font-size:var(--fs-14);font-weight:var(--fw-semibold);font-family:var(--font-body);color:var(--t1);
  transition: box-shadow var(--t-default) ease;
}
.plx-wd-acc-btn::after { display:none; }
.plx-wd-acc-btn.plx-wd-acc-btn:focus { box-shadow:none;outline:none; }
.plx-wd-acc-dot { width: var(--size-8);height: var(--size-8);border-radius:50%;flex-shrink:0; }
.plx-wd-acc-dot-amber  { background:var(--amber); }
.plx-wd-acc-dot-orange { background:var(--orange); }
.plx-wd-acc-dot-red    { background:var(--red); }
.plx-wd-acc-name { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1); }
.plx-wd-acc-score { font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--t4); }

/* System suggestions */

/* Advisory expert recommendations panel */

/* Fixed bottom action bar */

/* ── 32. QUESTION BANK — DOMAIN HIERARCHY & TABLE ── */
.plx-qb-tree-parent      { gap:var(--sp-8);padding:var(--sp-10) var(--sp-10);border-radius:var(--br-inner);cursor:pointer;transition:background var(--t-fast); }
.plx-qb-tree-parent:hover { background:var(--bg-card); }
.plx-qb-tree-parent.active { background:var(--lime-a10); }
.plx-qb-tree-parent-left { min-width:0; }
.plx-qb-tree-parent-left i { font-size:var(--fs-14);color:var(--t5);flex-shrink:0;width: var(--size-14);text-align:center; }
.plx-qb-tree-parent.active .plx-qb-tree-parent-left i { color:var(--lime); }
.plx-qb-tree-parent-name { font-size:var(--fs-14);color:var(--t3);font-weight:var(--fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.plx-qb-tree-parent.active .plx-qb-tree-parent-name { color:var(--lime);font-weight:var(--fw-semibold); }
.plx-qb-tree-count       { font-size:var(--fs-10);font-weight:var(--fw-bold);color:var(--t5);flex-shrink:0; }
.plx-qb-tree-parent.active .plx-qb-tree-count { color:var(--lime); }
.plx-qb-tree-children    { display:none;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) 0 var(--sp-8) var(--sp-28); }
.plx-qb-tree-children.open { display:flex; }
/* Domain tree: scroll within a bounded height instead of growing the page */
#plxDomainTreeJs {
  max-height: 70vh;
  overflow-y: auto;
  padding-right: var(--sp-4);
}
.plx-qb-tree-child       { padding:var(--sp-8) var(--sp-10);border-radius:var(--br-inner);cursor:pointer;font-size:var(--fs-12);color:var(--t4);transition:background var(--t-fast),color var(--t-fast); }
.plx-qb-tree-child:hover { background:var(--bg-card);color:var(--t2); }
.plx-qb-tree-child.active { background:var(--lime-a10);color:var(--lime); }
.plx-qb-tree-child i     { font-size:var(--fs-10);color:var(--t6);flex-shrink:0; }
.plx-qb-tree-child.active i { color:var(--lime); }
.plx-qb-tree-child-code  { font-weight:var(--fw-bold);flex-shrink:0; }
.plx-qb-tree-subdomain { gap:var(--sp-8);padding:var(--sp-6) var(--sp-10) var(--sp-2); }
.plx-qb-tree-subdomain-name { font-size:var(--fs-10);font-weight:var(--fw-bold);text-transform:uppercase;color:var(--t6);letter-spacing:0.4px; }
.plx-qb-tree-subdomain-industry { font-size:var(--fs-10);font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width: var(--size-120);color:var(--t4); }
/* Domain Hierarchy + Question table layout */
.plx-qb-layout-grid       { display:grid;grid-template-columns:var(--size-300) 1fr;gap:var(--sp-16);align-items:start; }

/* Question table */
.plx-qb-table-wrap        { overflow-x:auto;position:relative;min-height: var(--size-120); }
.plx-qb-table-wrap .plx-tracker-table { min-width: var(--size-1180); }
.plx-qb-table-wrap .plx-tracker-table th,
.plx-qb-table-wrap .plx-tracker-table td { white-space:nowrap; }
.plx-qb-table-wrap .plx-tracker-table td.plx-qb-col-text { white-space:normal;min-width: var(--size-280);}

.plx-qb-plan-list { display:flex;flex-wrap:wrap;gap:var(--sp-4); }
/* Question table: server-side DataTables loading overlay (replaces the
   default unstyled "Processing..." text with a proper spinner). */
#qbTable_wrapper { position:relative; }
#qbTable_wrapper .dataTables_processing {
  position: absolute;
  inset: 0;
  /* Vendor DataTables CSS ships several .dataTables_processing rules;
     the highest-specificity one (element+class x2) sets a fixed
     width:200px + margin-left:-100px left over from its own
     left:50%-based centering trick. Since we center via flex + inset
     instead, reset both so that trick can't offset our box. */
  width: auto;
  height: auto;
  margin: 0;
  z-index: var(--z-5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-10);
  background: var(--black-a65);
  backdrop-filter: blur(1px);
  border-radius: var(--br-inner);
  color: var(--t3);
  font-size: var(--fs-12);
  font-weight: var(--fw-medium);
  pointer-events: none;
}
.plx-qb-spinner {
  width: var(--size-28);
  height: var(--size-28);
  border-radius: 50%;
  border: 3px solid var(--lime-a15);
  border-top-color: var(--lime);
  animation: qbSpin calc(var(--t-slow) + var(--t-default)) linear infinite;
}
@keyframes qbSpin { to { transform: rotate(360deg); } }
/* Question Bank: Add/Edit Question modal — reuses the project's dark Bootstrap modal shell (.plx-sc-modal) */
.plx-qedit-dialog { max-width: var(--size-640); }
.plx-qedit-section { margin-bottom:var(--sp-24); }
.plx-qedit-section:last-child { margin-bottom:0; }
.plx-qedit-sec-title { font-size:var(--fs-12);font-weight:var(--fw-extrabold);color:var(--cyan);text-transform:uppercase;/* letter-spacing:.6px; */margin:0 0 var(--sp-12); }
.plx-qedit-grid-4 { display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-16); }
.plx-qedit-hint { font-size:var(--fs-12);font-style:italic;color:var(--t5);margin:var(--sp-8) 0 var(--sp-16); }
.plx-qedit-check-row { gap:var(--sp-28); }
.plx-qedit-check-row-fw { justify-content:space-between; }
.plx-qedit-check { font-size:var(--fs-14);color:var(--t2);cursor:pointer; }
.plx-qedit-check input[type="checkbox"] { width: var(--size-16);height: var(--size-16);accent-color:var(--cyan);cursor:pointer;flex-shrink:0; }
.plx-qedit-toggle-lbl { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t2);cursor:pointer;margin:0; }
.plx-qedit-foot       { justify-content:flex-end;gap:var(--sp-10); }
/* ── SETTINGS & HELP CENTER PAGES ── */
/* Small gap aliases (px-suffixed, used alongside .gap-N) */
.plx-gap-10px { gap:var(--sp-10); }

.plx-end   { align-items:center;justify-content:flex-end; }

/* Subtitle / footer text aliases */

/* Field label (alias of .plx-field-label) */

/* Small button variants */


.plx-btn-danger {
  background:var(--red-bg);border:1px solid var(--red-bd);color:var(--red);
  border-radius:var(--br-inner);font-weight:var(--fw-bold);cursor:pointer;font-family:var(--font-body);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-8);transition:all var(--t-default);
}
.plx-btn-danger    { padding:var(--sp-8) var(--sp-16);font-size:var(--fs-12); }

.plx-btn-danger:hover { background:var(--red-bd); }
/* Small select (used in Preferences) */
.plx-select-sm {
  padding:var(--sp-10) var(--sp-32) var(--sp-10) var(--sp-12);background:var(--bg-mid);border:1px solid var(--border-md);
  border-radius:var(--br-inner);color:var(--t3);font-size:var(--fs-14);font-family:var(--font-body);
  box-sizing:border-box;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='var(--t6)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}

/* Danger-styled input (Delete Account modal) */

.plx-input.is-invalid { border-color:var(--red);  transition: border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.plx-input.is-invalid:focus { outline:none;border-color:var(--red); box-shadow:0 0 0 2px var(--red-a10); }
/* ── Settings: two-column layout ── */
.plx-settings-layout { display:grid;grid-template-columns:var(--size-220) 1fr;gap:var(--sp-16);align-items:start; }
.plx-settings-nav-body { display:flex;flex-direction:column;gap:var(--sp-2); }
.plx-settings-nav-item { padding:var(--sp-10) var(--sp-12);border-radius:var(--br-inner);border-left:3px solid transparent;font-size:var(--fs-14);color:var(--t3);cursor:pointer;transition:all var(--t-fast); }
.plx-settings-nav-item:hover { background:var(--bg-card);color:var(--t1); }
.plx-settings-nav-item.active {
  border-left-color:var(--lime);background:var(--lime-a10);
}
.plx-settings-nav-item.active span,
.plx-settings-nav-item.active i { color:var(--lime); }
.plx-settings-nav-ico { width: var(--size-16);text-align:center;font-size:var(--fs-14);color:var(--t4); }
.plx-settings-nav-lbl { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t3); }

.plx-settings-nav-lbl-danger { color:var(--red); }
.plx-settings-nav-divider { height:1px;background:var(--border);margin:var(--sp-8) var(--sp-4); }
/* ── Settings: My Profile ── */
.plx-settings-avatar-row { display:flex;align-items:center;gap:var(--sp-14); }
.plx-settings-avatar-name { font-size:var(--fs-16);font-weight:var(--fw-bold);color:var(--t1); }
.plx-settings-avatar-meta { font-size:var(--fs-12);color:var(--t4);margin-top:var(--sp-2); }
/* ── Settings: Security ── */
.plx-settings-section { padding-bottom:var(--sp-20);margin-bottom:var(--sp-20);border-bottom:1px solid var(--bg-mid); }
.plx-settings-section:last-child { padding-bottom:0;margin-bottom:0;border-bottom:none; }
.plx-settings-section-title { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-4);display:flex;align-items:center; }

.plx-settings-pw-form { max-width: var(--size-360); }
/* ── Settings: Notifications ── */
.plx-notif-section { padding:var(--sp-16) 0;border-bottom:1px solid var(--bg-mid); }
.plx-notif-section:first-child { padding-top:0; }

/* ── Settings: Preferences ── */

/* ── Settings: Integrations ── */

/* ── Settings: Danger Zone ── */
.plx-card-danger { border-color:var(--red-bd); }
.plx-danger-row {
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-16);
  padding:var(--sp-14) var(--sp-16);border:1px solid var(--red-bd);border-radius:var(--br-outer);background:var(--red-a10);
}

/* ── Confirmation modals (Leave Org / Delete Account) ── */

/* ── Help Center: hero search ── */
.plx-help-hero {
  background:linear-gradient(135deg,var(--lime-a10),var(--cyan-a10));
  border:1px solid var(--border);border-radius:var(--br-outer);padding:var(--sp-32) var(--sp-24);text-align:center;
}
.plx-help-hero-title { font-size:var(--fs-22);font-weight:var(--fw-extrabold);color:var(--t1);margin-bottom:var(--sp-8); }
.plx-help-search-bar { max-width: var(--size-560);margin:0 auto;background:var(--bg-mid);border:1px solid var(--border-md);border-radius:var(--br-inner);padding:var(--sp-8) var(--sp-8) var(--sp-8) var(--sp-20);-webkit-border-radius:var(--br-inner);-moz-border-radius:var(--br-inner);-ms-border-radius:var(--br-inner);-o-border-radius:var(--br-inner); }
.plx-help-search-input { flex:1;background:transparent;border:none;outline:none;color:var(--t1);font-size:var(--fs-14);font-family:var(--font-body); }
.plx-help-search-input::placeholder { color:var(--t5); }
/* ── Help Center: quick contact cards ── */
.plx-help-contact-card { padding:var(--sp-24) var(--sp-16); }
/* ── Help Center: FAQ ── */
.plx-faq-section-lbl { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-10); }
.plx-faq-item { border:1px solid var(--border);border-radius:var(--br-inner);overflow:hidden; }
.plx-faq-header { gap:var(--sp-12);width:100%;padding:var(--sp-12) var(--sp-16);cursor:pointer;background:none;border:0;text-align:left;font-family:inherit;transition:background var(--t-fast); }
.plx-faq-header:hover { background:var(--bg-subtle); }
.plx-faq-question { font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t2); }
.plx-faq-chevron { font-size:var(--fs-12);color:var(--t4);flex-shrink:0;transition:transform var(--t-default) ease; }
.plx-faq-answer { padding:0 var(--sp-16);font-size:var(--fs-12);color:var(--t4);}
.plx-faq-answer.show, .plx-faq-answer.collapsing { padding:var(--sp-12) var(--sp-16) var(--sp-14);border-top:1px solid var(--bg-card); }
.plx-faq-item:has(.plx-faq-header[aria-expanded="true"]) { border-color:var(--lime-a15); }
.plx-faq-header[aria-expanded="true"] { background:var(--lime-a10); }
.plx-faq-header[aria-expanded="true"] .plx-faq-question { color:var(--t1); }
.plx-faq-header[aria-expanded="true"] .plx-faq-chevron { color:var(--lime);transform:rotate(180deg); }
.plx-help-no-results { text-align:center;padding:var(--sp-24) 0;font-size:var(--fs-14);color:var(--t4); }
/* ── Settings: 2FA disabled badge ── */
.plx-grade-disabled { background:var(--border);color:var(--t4);border-radius:var(--br-full);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-12);font-weight:var(--fw-bold); }
/* ── Toast notifications ── */
.plx-toast-wrap { position:fixed;bottom:var(--pos-24);right:var(--pos-24);display:flex;flex-direction:column;gap:var(--sp-10);z-index: var(--z-2000); }
.plx-toast {
  background:var(--bg);border:1px solid var(--border-md);border-left:3px solid var(--lime);border-radius:var(--br-outer);
  padding:var(--sp-12) var(--sp-16);font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--t1);display:flex;align-items:center;gap:var(--sp-10);
  box-shadow:0 8px 24px var(--black-a50);min-width: var(--size-240);max-width: var(--size-360);animation:vzToastIn var(--t-default) ease;
}
.plx-toast i { font-size:var(--fs-14);color:var(--lime); }
.plx-toast-cyan { border-left-color:var(--cyan); }
.plx-toast-cyan i { color:var(--cyan); }
.plx-toast-red { border-left-color:var(--red); }
.plx-toast-red i { color:var(--red); }
.plx-toast-out { animation:vzToastOut var(--t-default) ease forwards; }
@keyframes vzToastIn  { from{opacity:0;transform:translateX(24px);} to{opacity:1;transform:translateX(0);} }
@keyframes vzToastOut { from{opacity:1;transform:translateX(0);} to{opacity:0;transform:translateX(24px);} }
.plx-dl-logo img {
  max-width: 100%;
  height: var(--size-40);
}

/* ── Dashboard: Control Breakdown & Recommendations ────────────── */

/* Domain assignment cards within breakdown */
.plx-d1-bd-domain-hdr    { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--sp-12); margin-bottom:var(--sp-14); }
.plx-d1-bd-domain-name   { font-size:var(--fs-16); font-weight:var(--fw-extrabold); color:var(--t1); }
.plx-d1-bd-domain-meta   { font-size:var(--fs-12); color:var(--t4); margin-top:var(--sp-4); }
.plx-d1-bd-domain-score  { font-size:var(--fs-22); font-weight:var(--fw-black); flex-shrink:0; }
.plx-d1-bd-domain-score span { font-size:var(--fs-14); font-weight:var(--fw-regular); color:var(--t5); }
/* Control breakdown table */

/* Maturity grade colour helpers */
.plx-d1-grade-critical   { color:var(--red); }
.plx-d1-grade-developing { color:var(--orange, var(--orange)); }
.plx-d1-grade-defined    { color:var(--amber); }
.plx-d1-grade-managed    { color:var(--cyan); }
/* Improvement recommendation items */
.plx-d1-rec-item      { padding:var(--sp-16); border-radius:var(--br-outer); border:1px solid var(--border); background:var(--bg-subtle); margin-bottom:var(--sp-10); }
.plx-d1-rec-item:last-child { margin-bottom:0; }
.plx-d1-rec-hdr       { flex-wrap:wrap;gap:var(--sp-10);margin-bottom:var(--sp-12); }
.plx-d1-rec-score-row { font-size:var(--fs-14); }
.plx-d1-rec-tips      { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:var(--sp-8); }
.plx-d1-rec-tip       { display:flex; align-items:flex-start; gap:var(--sp-8); font-size:var(--fs-14); color:var(--t3);}
.plx-d1-rec-tip-dot   { width: var(--size-6); height: var(--size-6); border-radius:50%; background:var(--lime); flex-shrink:0; margin-top:var(--sp-4); }
/* ── Assessment Guidelines page (ag-chain, ag-example, ag-notes) ── */
.plx-ag-score-chain   { justify-content:center;gap:var(--sp-8);padding:var(--sp-16) 0; }
.plx-ag-chain-step    { flex-direction:column;padding:var(--sp-12) var(--sp-20);min-width: var(--size-120);text-align:center; }
.plx-ag-chain-icon    { font-size:var(--fs-20); color:var(--lime); }
.plx-ag-chain-sub     { font-size:var(--fs-12); color:var(--t5); }
.plx-ag-chain-arrow   { font-size:var(--fs-14); color:var(--t5); flex-shrink:0; }

.plx-ag-notes-list    { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:var(--sp-10); }
.plx-ag-notes-list li { display:flex; align-items:flex-start; gap:var(--sp-8); font-size:var(--fs-14); color:var(--t2);}
/* ── Settings Enhancement (Phase 5) ── */
.plx-settings-nav-danger .plx-settings-nav-ico.plx-settings-nav-ico,
.plx-settings-nav-danger .plx-settings-nav-lbl.plx-settings-nav-lbl { color:var(--red); }
.plx-settings-toggle-row   { gap:var(--sp-12);padding:var(--sp-10) 0;border-bottom:1px solid var(--bg-card); }
.plx-settings-toggle-row:last-child { border-bottom:none; }
.plx-settings-toggle-lbl   { font-size:var(--fs-14);color:var(--t2);flex:1; }
.plx-notif-section-title   { font-size:var(--fs-12);font-weight:var(--fw-bold);color:var(--t4);text-transform:uppercase;/* letter-spacing:.6px; */margin-bottom:var(--sp-10); }
.plx-toggle             { display:inline-flex;align-items:center;cursor:pointer;flex-shrink:0;margin:0;position:relative; }
.plx-toggle:has(.plx-toggle-track) { width:auto;height:auto;background:transparent;border:none;padding:0; }
.plx-toggle:has(.plx-toggle-track)::after { display:none;content:none; }
.plx-toggle input       { display:none; }
.plx-toggle-track       { width: var(--size-44);height: var(--size-24);border-radius:var(--br-outer);background:var(--border);position:relative;border:1px solid var(--border-md);transition:all var(--t-default);flex-shrink:0;display:inline-block; }
.plx-toggle-track::after { content:'';position:absolute;top:var(--pos-4);left:var(--pos-4);width: var(--size-16);height: var(--size-16);border-radius:50%;background:var(--white-a35);transition:all var(--t-default); }
.plx-toggle input:checked + .plx-toggle-track { background:var(--lime-a15);border-color:var(--lime); }
.plx-toggle input:checked + .plx-toggle-track::after { transform:translateX(20px);background:var(--lime); }
.plx-settings-integration-card { padding:var(--sp-14); }
.plx-settings-int-icon     { width: var(--size-36);height: var(--size-36);font-size:var(--fs-20);color:var(--t3); }
.plx-settings-int-body     { flex:1;min-width:0; }
.plx-danger-divider        { height:1px;background:var(--red-bg);margin:var(--sp-16) 0; }
.plx-card-danger.plx-card-danger { border-color:var(--red-bd); }
.plx-danger-row            { display:flex;align-items:center;justify-content:space-between;gap:var(--sp-16);flex-wrap:wrap; }
.plx-danger-row-title      { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-4); }
/* ── Subscription & Billing page (Phase 5 TASK-002) ── */
.plx-sub-stat-grid      { display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--size-120),1fr));gap:var(--sp-12); }
.plx-sub-stat-item      { padding:var(--sp-12) var(--sp-16); }
.plx-sub-stat-val       { font-size:var(--fs-22);font-weight:var(--fw-extrabold);color:var(--lime); }
.plx-sub-stat-lbl       { font-size:var(--fs-12);color:var(--t4);margin-top:var(--sp-2); }
.plx-sub-feat-list      { list-style:none;padding:0;margin:0;display:flex;flex:1;flex-direction:column;gap:var(--sp-4);font-size:var(--fs-14);color:var(--t3); }
.plx-sub-cycle-toggle   { display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--br-full);padding:var(--sp-4); }
.plx-sub-cycle-opt      { padding:var(--sp-4) var(--sp-14);border-radius:var(--br-full);font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--t4);cursor:pointer;transition:all var(--t-default); }
.plx-sub-cycle-opt[data-active="true"] { background:var(--lime-bg);color:var(--lime);border:1px solid var(--lime-bd); }
.plx-sub-plan-grid      { display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--size-200),1fr));gap:var(--sp-14); }
.plx-sub-plan-card-inner{ padding:var(--sp-16);display:flex;flex-direction:column;gap:var(--sp-8); }
.plx-sub-plan-card-inner.plx-sub-plan-current { border-color:var(--lime-bd);background:var(--lime-a10); }
.plx-sub-plan-name      { font-size:var(--fs-16);font-weight:var(--fw-extrabold);color:var(--t1); }
.plx-sub-plan-price     { display:flex;align-items:baseline;gap:var(--sp-4); }
.plx-sub-plan-amt       { font-size:var(--fs-24);font-weight:var(--fw-extrabold);color:var(--lime); }
.plx-sub-compare-table th:first-child,
.plx-sub-compare-table td:first-child { min-width: var(--size-200); }
/* ── Trends & Analytics (Phase 5 TASK-003) ── */
.plx-trends-kpi-grid     { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-14); }
.plx-trends-kpi-lbl      { font-size:var(--fs-12);font-weight:var(--fw-bold);text-transform:uppercase;/* letter-spacing:.06em; */color:var(--t5);margin-bottom:var(--sp-8); }
.plx-trends-kpi-val      { font-size:var(--fs-26);font-weight:var(--fw-extrabold); }
.plx-trends-kpi-sub      { font-size:var(--fs-12);color:var(--t4);margin-top:var(--sp-4); }
/* ── Company Logo Upload (Phase 5 TASK-006) ── */
.plx-logo-upload-wrap    { position:relative;display:inline-block; }
.plx-co-logo             { width: var(--size-56);height: var(--size-56);border-radius:var(--br-outer);object-fit:contain;background:var(--bg-mid);border:1px solid var(--border-md);display:block;flex-shrink:0; }
.plx-logo-upload-btn     { position:absolute;bottom:calc(var(--pos-6) * -1);right:calc(var(--pos-6) * -1);width: var(--size-22);height: var(--size-22);border-radius:50%;background:var(--lime);color:var(--bg);cursor:pointer;font-size:var(--fs-10);transition: background-color var(--t-default) ease; }
.plx-logo-upload-btn:hover { background:var(--lime-2); }
/* ── Domain Highlights (Phase 5 TASK-011) ── */
.plx-dh-card          { border-radius:var(--br-outer);padding:var(--sp-14) var(--sp-16);border:1px solid; }
.plx-dh-green         { background:var(--lime-a10);border-color:var(--lime-a15); }
.plx-dh-amber         { background:var(--amber2-a05);border-color:var(--amber2-a20); }
.plx-dh-red           { background:var(--red-a10);border-color:var(--red-bd); }
.plx-dh-card-lbl      { font-size:var(--fs-10);font-weight:var(--fw-bold);text-transform:uppercase;/* letter-spacing:.06em; */color:var(--t5);margin-bottom:var(--sp-8); }
.plx-dh-card-name     { font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--t1);margin-bottom:var(--sp-8); }
.plx-dh-score-bar     { height: var(--size-3);background:var(--border);border-radius:var(--br-inner);margin-bottom:var(--sp-8);overflow:hidden; }
.plx-dh-bar-fill      { height:100%;border-radius:var(--br-inner); }
.plx-bg-lime          { background:var(--lime); }
.plx-bg-amber         { background:var(--amber2); }
.plx-bg-red           { background:var(--red); }
.plx-q-improvement-note { font-size:var(--fs-12);color:var(--t4);font-style:italic;padding:var(--sp-4) var(--sp-16) var(--sp-8);border-left:2px solid var(--amber2-a30); }
/* ── Revenue Analytics (Phase 5 TASK-012) ── */
.plx-rev-overview-row    { display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-14); }
.plx-rev-two-col         { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-14); }
.plx-rev-kpi-icon        { width: var(--size-32);height: var(--size-32);border-radius:var(--br-inner);font-size:var(--fs-14);margin:0 auto var(--sp-8); }
.plx-rev-kpi-val         { font-size:var(--fs-22);font-weight:var(--fw-extrabold);color:var(--t1); }
.plx-rev-kpi-lbl         { font-size:var(--fs-12);color:var(--t4);margin-top:var(--sp-4); }
.plx-rev-plan-row        { margin-bottom:var(--sp-12); }
.plx-rev-bar-track       { height: var(--size-6);background:var(--border);border-radius:var(--br-inner);overflow:hidden; }
.plx-rev-bar-fill        { height:100%;background:var(--lime);border-radius:var(--br-inner);transition:width var(--t-slow); }
.plx-rev-rank            { width: var(--size-24);height: var(--size-24);border-radius:50%;background:var(--border);font-size:var(--fs-12);font-weight:var(--fw-bold);flex-shrink:0; }
.plx-border-bottom-dim   { border-bottom:1px solid var(--bg-mid); }
.plx-tr-danger-soft      { background:var(--red-a10); }
.plx-vi-amber            { background:var(--amber2-a15);color:var(--amber2); }
/* ── Billing Form (Phase 5 TASK-001) ── */
.plx-billing-form-grid    { display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-14);align-items:start; }
.plx-bill-pay-methods     { display:flex;gap:var(--sp-12);flex-wrap:wrap; }
.plx-bill-pay-opt         { display:flex;align-items:center;gap-6px;gap:var(--sp-8);padding:var(--sp-8) var(--sp-14);border:1px solid var(--border-md);border-radius:var(--br-inner);cursor:pointer;font-size:var(--fs-14);transition:border-color var(--t-fast); }
.plx-bill-pay-opt:has(input) { transition: border-color var(--t-default) ease, color var(--t-default) ease; }
.plx-bill-pay-opt:has(input:checked) { border-color:var(--lime);color:var(--lime); }
.plx-bill-pay-fields      { margin-top:var(--sp-12); }
.plx-bill-summary-rows    { display:flex;flex-direction:column;gap:var(--sp-10); }
.plx-bill-summary-row     { display:flex;justify-content:space-between;font-size:var(--fs-14); }
.plx-bill-summary-total   { display:flex;justify-content:space-between;font-size:var(--fs-16);font-weight:var(--fw-extrabold);padding-top:var(--sp-10);border-top:1px solid var(--border); }
/* ── Billing success layout ── */
.plx-bill-success-wrap   { display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%; }
.plx-bill-success-card   { max-width: var(--size-480);width:100%;margin-left:auto;margin-right:auto;text-align:left; }
.plx-bill-success-btns   { gap:var(--sp-12);margin-top:var(--sp-14); }
.plx-bill-success-btns .plx-btn-primary,
.plx-bill-success-btns .plx-btn-ghost-pill { min-width: var(--size-168);justify-content:center;text-align:center; }
/* ── Office add-row flex layout ── */
.plx-office-row-flex     { display:flex;flex-wrap:wrap;gap:var(--sp-8);align-items:flex-start; }
.plx-office-row-flex .form-group { margin-bottom:0; }
.plx-office-inp-name     { flex:2;min-width: var(--size-160); }
.plx-office-inp-sm       { flex:1;min-width: var(--size-120); }
/* ── Misc size classes ── */
.plx-select-sm        { width: var(--size-160); }
.plx-select-xs        { width: var(--size-120); }
.plx-co-logo-lg          { width: var(--size-64);height: var(--size-64); }
/* ── Standards cleanup (phase-wide audit) ── */
.plx-col-score-sm        { width: var(--size-80); }
.plx-col-usage-bar       { min-width: var(--size-100); }
.plx-settings-upload-lbl { cursor:pointer; }
/* widget labels must not inherit the theme's global label bottom margin */
.plx-bill-pay-opt,
.plx-asprv-confirm-check,
.plx-settings-upload-lbl { margin-bottom:0; }
.plx-settings-period-wrap{ max-width: var(--size-300); }
/* ── Heatmap (Phase 6) ── */
.plx-hm-body         { overflow-x:auto; }
.plx-hm-row          { display:flex;flex-wrap:wrap;gap:var(--sp-8); }
.plx-hm-cell         { flex-direction:column;width: var(--size-80);min-height: var(--size-52);border-radius:var(--br-inner);cursor:default;padding:var(--sp-4) var(--sp-8);text-align:center; }
.plx-hm-cell-name    { font-size:var(--fs-10);font-weight:var(--fw-semibold);color:inherit;opacity:var(--opacity-hover);
margin-bottom:var(--sp-2);overflow:hidden;
                   display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical; }
.plx-hm-cell-score   { font-size:var(--fs-14);font-weight:var(--fw-extrabold);color:inherit; }
.plx-hm-cell-red     { background:linear-gradient(135deg, var(--red-bd), var(--red-bg)); color:var(--red); border:1px solid var(--red-bd); }
.plx-hm-cell-orange  { background:var(--orange-bd);   color:var(--orange); border:1px solid var(--orange-a15); }
.plx-hm-cell-amber   { background:var(--amber-bd);   color:var(--amber);  border:1px solid var(--amber-a10); }
.plx-hm-cell-lime    { background:var(--lime-a15);   color:var(--lime);   border:1px solid var(--lime-a15); }
.plx-hm-cell-cyan    { background:var(--cyan-bg);   color:var(--cyan);   border:1px solid var(--cyan-bg); }
.plx-hm-cell-purple,
.plx-hm-cell-violet  { background:var(--purple-bg); color:var(--purple); border:1px solid var(--purple-bd); }
.plx-hm-cell-empty   { background:var(--bg-card);  color:var(--t5);     border:1px solid var(--bg-mid); }
.plx-hm-legend       { display:flex;gap:var(--sp-14);flex-wrap:wrap;font-size:var(--fs-12);color:var(--t3); }
.plx-hm-legend-dot   { display:inline-block;width: var(--size-9);height: var(--size-9);border-radius:50%;margin-right:var(--sp-4);
                   vertical-align:middle; }
.plx-hm-ld-red       { background:var(--red); }

.plx-hm-ld-amber     { background:var(--amber); }
.plx-hm-ld-lime      { background:var(--lime); }
.plx-hm-ld-cyan      { background:var(--cyan); }
.plx-hm-ld-purple { background:var(--purple); }
/* ── Choices.js plx-choices dark theme (admin form selects) ── */
/* choices.min.css loads before verticz.css via @push('head') so same-specificity rules here win */
.plx-choices { margin-bottom:0;display:block; }
.plx-choices .choices__inner {
  background:var(--bg-card);border:1px solid var(--border-md);
  border-radius:var(--br-inner);min-height:auto;padding:var(--sp-8) var(--sp-32) var(--sp-8) var(--sp-12);
  font-family:var(--font-body);font-size:var(--fs-14);color:var(--t3);
  display:flex;align-items:center;transition:border-color var(--t-fast);cursor:pointer;
}
.plx-choices[data-type*='select-multiple'] .choices__inner {
  padding:var(--sp-6) var(--sp-12);min-height: var(--size-42);flex-wrap:wrap;gap:var(--sp-6);
}
.plx-choices .choices__inner:hover,
.plx-choices.is-focused .choices__inner,
.plx-choices.is-open .choices__inner { border-color:var(--white-a35); }
.plx-choices.is-invalid .choices__inner,
.plx-choices.is-invalid:hover .choices__inner,
.plx-choices.is-invalid.is-focused .choices__inner,
.plx-choices.is-invalid.is-open .choices__inner { border-color:var(--red); }
.plx-choices.is-open .choices__inner,
.plx-choices.is-flipped.is-open .choices__inner { border-radius:var(--br-inner); }
.plx-choices .choices__list--single { padding:0;min-width:0;flex:1; }
.plx-choices .choices__list--single .choices__item {
  padding:0;color:var(--t3);font-size:var(--fs-14);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.plx-choices .choices__list--multiple { display:flex;flex-wrap:wrap;gap:var(--sp-6);padding:0;margin:0; }
.plx-choices .choices__list--multiple .choices__item {
  background:var(--cyan-a10);border:1px solid var(--cyan-bd);color:var(--cyan);
  border-radius:var(--br-full);padding:var(--sp-2) var(--sp-10);font-size:var(--fs-12);font-weight:var(--fw-semibold);
  white-space:nowrap;word-break:normal;display:inline-flex;align-items:center;gap:var(--sp-6);margin:0;
}
.plx-choices .choices__list--multiple .choices__item[data-deletable] { padding-right:var(--sp-4); }
.plx-choices .choices__list--multiple .choices__item.is-highlighted { background:var(--cyan-a10);border-color:var(--cyan); }
.plx-choices .choices__list--multiple .choices__item .choices__button {
  text-indent:0;font-size:0;width: var(--size-20);height: var(--size-18);margin:0 0 0 var(--sp-4);
  padding:0;border:0;border-left:1px solid var(--cyan-bd);background:transparent none;
  opacity:var(--opacity-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;box-sizing:border-box;
  transition: opacity var(--t-default) ease;
}
.plx-choices .choices__list--multiple .choices__item .choices__button::after {
  content:'\00d7';text-indent:0;font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--cyan);
  display:inline-flex;align-items:center;justify-content:center;text-align:center;width:100%;height:100%;
}
.plx-choices .choices__list--multiple .choices__item .choices__button:hover { opacity:1; }
.plx-choices .choices__list--multiple .choices__item .choices__button:hover::after { color:var(--t1); }
.plx-choices .choices__placeholder { color:var(--white-a35);opacity:1; }
.plx-choices[data-type*='select-one']::after {
  border-color:var(--white-a35) transparent transparent;right:var(--pos-12);
}
.plx-choices[data-type*='select-one'].is-open::after {
  border-color:transparent transparent var(--white-a35);
}
.plx-choices .choices__list--dropdown,
.plx-choices .choices__list[aria-expanded] {
  background:var(--bg-alt);border:1px solid var(--border-lg);
  border-radius:var(--br-inner);margin-top:var(--sp-4);z-index: var(--z-1055);
  box-shadow:0 10px 28px var(--black-a50);
  min-width:100%;width:max-content;max-width:min(480px, calc(100vw - 32px));
  word-break:normal;overflow-wrap:normal;
}
.plx-choices.is-flipped .choices__list--dropdown,
.plx-choices.is-flipped .choices__list[aria-expanded] {
  top:auto;bottom:100%;margin-top:0;margin-bottom:var(--sp-4);
  border-radius:var(--br-inner);
}
.plx-choices .choices__list--dropdown .choices__list,
.plx-choices .choices__list[aria-expanded] .choices__list {
  max-height: var(--size-260);overflow-y:auto;overflow-x:hidden;word-break:normal;
}
/* 3-class selector to beat choices.min.css .choices[data-type*=select-one] .choices__input (also 3 classes) */
/* Since choices.min.css loads first, equal-specificity rules here win due to later position */
.plx-choices .choices__list--dropdown .choices__input,
.plx-choices .choices__list[aria-expanded] .choices__input {
  background:var(--bg-mid);border:none;border-bottom:1px solid var(--border-md);
  color:var(--t3);font-size:var(--fs-14);font-family:var(--font-body);
  padding:var(--sp-8) var(--sp-12);width:100%;margin-bottom:0;box-sizing:border-box;
}
.plx-choices .choices__list--dropdown .choices__item,
.plx-choices .choices__list[aria-expanded] .choices__item {
  font-size:var(--fs-14);color:var(--t3);padding:var(--sp-10) var(--sp-14);
  font-family:var(--font-body);transition:background var(--t-fast);
  white-space:normal;word-break:normal;overflow-wrap:normal;word-wrap:normal;
  hyphens:none;
}
.plx-choices .choices__list--dropdown .choices__item.is-highlighted,
.plx-choices .choices__list[aria-expanded] .choices__item.is-highlighted {
  background:var(--lime-a10);color:var(--lime);
}
.plx-choices .choices__list--dropdown .choices__item--selectable.choices__item--selectable,
.plx-choices .choices__list[aria-expanded] .choices__item--selectable.choices__item--selectable {
  padding-right:var(--sp-14);
}
.plx-choices .choices__list--dropdown .choices__item--selectable.choices__item--selectable::after,
.plx-choices .choices__list[aria-expanded] .choices__item--selectable.choices__item--selectable::after {
  display:none;
}
.modal .plx-choices .choices__list--dropdown,
.modal .plx-choices .choices__list[aria-expanded] { z-index: var(--z-1060); }
.plx-grid-2 > :nth-child(even) .plx-choices .choices__list--dropdown,
.plx-grid-2 > :nth-child(even) .plx-choices .choices__list[aria-expanded],
.plx-tm-form-grid > :nth-child(even) .plx-choices .choices__list--dropdown,
.plx-tm-form-grid > :nth-child(even) .plx-choices .choices__list[aria-expanded] {
  right:0;left:auto;
}
/* Modals containing Choices dropdowns must allow dropdown to overflow without clipping (non-scrollable modals only) */
#plxBookDemoModalJs .modal-content,
#plxBookDemoModalJs .modal-body,
#plxBookDemoModalJs form,
.plx-sc-modal:not(:has(.modal-dialog-scrollable)):not(.plx-qedit-modal):has(.plx-choices) .modal-content,
.plx-sc-modal:not(:has(.modal-dialog-scrollable)):not(.plx-qedit-modal):has(.plx-choices) .modal-body,
.plx-sc-modal:not(:has(.modal-dialog-scrollable)):not(.plx-qedit-modal):has(.plx-choices) form {
  overflow: visible;
}
#plxBookDemoModalJs .modal-header,
.plx-sc-modal:not(:has(.modal-dialog-scrollable)):not(.plx-qedit-modal):has(.plx-choices) .modal-header {
  border-top-left-radius: var(--br-outer);
  border-top-right-radius: var(--br-outer);
}
#plxBookDemoModalJs .modal-footer,
.plx-sc-modal:not(:has(.modal-dialog-scrollable)):not(.plx-qedit-modal):has(.plx-choices) .modal-footer {
  border-bottom-left-radius: var(--br-outer);
  border-bottom-right-radius: var(--br-outer);
}
/* Scrollable modals (e.g. Question Bank Add/Edit) must keep scroll container intact */
.modal-dialog-scrollable .modal-content,
.plx-qedit-modal .modal-content {
  overflow: hidden;
  max-height: 100%;
}
.modal-dialog-scrollable .modal-body,
.plx-qedit-modal .modal-body {
  overflow-y: auto;
  overflow-x: hidden;
}
/* ── vzToast — global toast notifications ── */
#plx-toast-container {
  position:fixed;bottom:var(--pos-24);right:var(--pos-24);z-index: var(--z-9999);
  display:flex;flex-direction:column;gap:var(--sp-10);pointer-events:none;
}
.plx-toast {
  display:flex;align-items:flex-start;gap:var(--sp-10);
  padding:var(--sp-12) var(--sp-16);border-radius:var(--br-inner);
  min-width: var(--size-260);max-width: var(--size-380);
  background:var(--dark-navy);border:1px solid var(--border-md);
  font-size:var(--fs-14);color:var(--t2);
  box-shadow:0 8px 24px var(--black-a50);
  pointer-events:auto;cursor:pointer;
  animation:plx-toast-in var(--t-default) ease;
  transition:opacity var(--t-medium),transform var(--t-medium);
}
.plx-toast.plx-toast-out { opacity:0;transform:translateX(20px); }
.plx-toast-icon { font-size:var(--fs-16);flex-shrink:0;margin-top:var(--sp-2); }
.plx-toast.plx-toast-success .plx-toast-icon { color:var(--lime); }
.plx-toast.plx-toast-error   .plx-toast-icon { color:var(--red); }
.plx-toast.plx-toast-warning .plx-toast-icon { color:var(--amber-400); }
.plx-toast.plx-toast-info    .plx-toast-icon { color:var(--cyan); }
@keyframes plx-toast-in { from { opacity:0;transform:translateX(20px); } to { opacity:1;transform:none; } }
/* ══════════════════════════════════════════════════════════════
   Classes that replace former inline style="" attributes
   ══════════════════════════════════════════════════════════════ */
/* modal pieces that must not clip dropdown menus */
.modal-content.plx-ov-visible,
.modal-body.plx-ov-visible,
form.plx-ov-visible              { overflow: visible; }
.plx-chip-min                 { border-radius: var(--br-inner); min-width: var(--size-140); }
.plx-filter-box               { min-width: var(--size-220); max-width: var(--size-340); }
.modal-dialog.plx-modal-560   { max-width: var(--size-560); }
.plx-col-40                   { width: 40%; }
.plx-flex-1                   { flex: 1; }
.plx-cursor-pointer              { cursor: pointer; }
.plx-pre-line                    { white-space: pre-line; }
.plx-co-logo.plx-co-logo-32          { width: var(--size-32); height: var(--size-32); }
.plx-co-logo.plx-co-logo-40          { width: var(--size-40); height: var(--size-40); }
.plx-co-logo.plx-co-logo-48          { width: var(--size-48); height: var(--size-48); }
.alert.plx-alert-danger-soft {
  border-radius: var(--br-inner);
  background: var(--red-bg);
  border: 1px solid var(--red-bd);
  color: var(--t1);
}
.plx-field-error.plx-field-error-tight { margin-top: calc(var(--sp-14) * -1); margin-bottom: var(--sp-16); }
/* org advisory cards */
.card.plx-adv-card {
  background: var(--bg-card);
  border: 1px solid var(--border-md);
  border-radius: var(--br-inner);
}
.card.plx-adv-card-purple        { border-left: 3px solid var(--purple); }
.card.plx-adv-card-lime          { border-left: 3px solid var(--lime); }
.plx-adv-label-purple            { color: var(--purple); }
.plx-adv-foot                    { border-color: var(--border); }
.btn.plx-adv-btn {
  background: var(--bg-mid);
  border: 1px solid var(--border-md);
  font-size: var(--fs-12);
}
.btn.plx-adv-btn-cyan            { color: var(--cyan); }
.btn.plx-adv-btn-lime            { color: var(--lime); }
/* notifications page */
.plx-d1-notif-empty.plx-d1-notif-empty-page { padding: var(--sp-40) var(--sp-20); }
.plx-d1-notif-empty-icon {
  font-size: var(--fs-fluid-md-max);
  color: var(--t5);
  margin-bottom: var(--sp-16);
  display: block;
}
.plx-d1-notif-empty-text         { font-size: var(--fs-14); color: var(--t5); }
.plx-d1-notif-item.plx-d1-notif-item-row {
  border-bottom: 1px solid var(--bg-mid);
  padding: var(--sp-16) 0;
}
.plx-d1-notif-item-meta.plx-d1-notif-item-meta-row { margin-top: var(--sp-8); }
.plx-d1-notif-payload.plx-d1-notif-payload-pre {
  margin-top: var(--sp-8);
  font-size: var(--fs-12);
  color: var(--t5);
  font-family: monospace;
}
.plx-d1-pagination.plx-d1-pagination-row {
  margin-top: var(--sp-24);
  display: flex;
  gap: var(--sp-8);
  justify-content: center;
  align-items: center;
}
.plx-d1-pag-btn {
  padding: var(--sp-8) var(--sp-12);
  border: 1px solid var(--border-md);
  border-radius: var(--br-inner);
  color: var(--t2);
  text-decoration: none;
  cursor: pointer;
  transition: all var(--t-fast);
  display: inline-block;
}
.plx-d1-pag-btn:not(.plx-d1-pag-disabled):not(.plx-d1-pag-active) { transition: background-color var(--t-default) ease, border-color var(--t-default) ease; }
.plx-d1-pag-btn:hover:not(.plx-d1-pag-disabled):not(.plx-d1-pag-active) {
  background: var(--bg-mid);
  border-color: var(--border-lg);
}
.plx-d1-pag-active {
  background: var(--amber);
  color: var(--bg);
  border-color: var(--amber);
  font-weight: var(--fw-semibold);
}
.plx-d1-pag-disabled {
  color: var(--t5);
  cursor: not-allowed;
  opacity: var(--opacity-disabled);
}
/* ══════════════════════════════════════════════════════════════
   State + colour classes used by cris.js / modules
   (replace inline style writes; state lives in data attributes)
   ══════════════════════════════════════════════════════════════ */
/* page loader fades out when cris.js sets data-state="leaving" */
.loader-wrapper[data-state="leaving"],
.alert[data-state="leaving"] { opacity: 0; transition: opacity var(--t-slow) ease; }
/* auto-dismissing alerts */

/* chart tooltip legend dots (series order in the domain-progress chart) */
.plx-apex-dt-dot-0 { background: var(--green); }
.plx-apex-dt-dot-1 { background: var(--red); }
.plx-apex-dt-dot-2 { background: var(--orange); }
.plx-apex-dt-dot-3 { background: var(--cyan); }
.plx-apex-dt-dot-4 { background: var(--amber); }
.plx-apex-dt-dot-5 { background: var(--white-a35); }
.plx-apex-bt-dot-prev { background: var(--t5); }
.plx-apex-bt-dot-curr,
.plx-rev-split-seg[data-tone="purple"],
.plx-rsl-dot[data-tone="purple"],
.plx-lic-util-fill[data-tone="purple"] { background: var(--purple); }
/* live score panel (assessment screen): colour per maturity score 0-5 */

/* DataTables prev/next chevrons */
.plx-dt-pg-ico { font-size: var(--fs-10); }
/* revenue split bar: a segment is dimmed out when its legend button is switched off */
.plx-rev-split-seg[data-state="off"] { opacity: 0; }

.plx-rev-split-seg[data-tone="amber"], .plx-rsl-dot[data-tone="amber"], .plx-lic-util-fill[data-tone="amber"] { background: var(--amber); }
/* plan selection: the data-cycle on .plx-ps-page decides which price row shows */
.plx-ps-page[data-cycle="monthly"] .plx-ps-price-yearly,
.plx-ps-page[data-cycle="yearly"]  .plx-ps-price-monthly { display: none; }
/* locked-plan states (team page, assessment hub) */
.plx-lock-banner,
.plx-lock-badge { background: var(--red-bg); border: 1px solid var(--red-bd); }

.plx-lock-note   { background: var(--red-bg); border: 1px dashed var(--red-bd); }
.plx-lock-card   { background: var(--red-bg); border-color: var(--red-bd); opacity: var(--opacity-muted); }
.plx-lock-row    { background: var(--red-a10); }

/* Assessment score colours (class built in JS: plx-sc-score-c + score 0-5) */
.plx-sc-score-c0 { color: var(--red); }
.plx-sc-score-c1 { color: var(--orange); }
.plx-sc-score-c2 { color: var(--amber); }
.plx-sc-score-c3 { color: var(--lime); }
.plx-sc-score-c4 { color: var(--cyan); }
.plx-sc-score-c5 { color: var(--purple); }

/* ── Back to top (same look as the landing page: progress ring + gradient core) ── */
.plx-back-top {
  align-items: center;
  bottom: var(--sp-28);
  cursor: pointer;
  display: flex;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: var(--sp-28);
  transform: translateY(14px) scale(.88);
  transition: opacity var(--t-slow) ease, transform var(--t-slow) ease;
  z-index: var(--z-999);
}
.plx-back-top[data-visible="true"] { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.plx-btt-ring { height: var(--size-56); position: absolute; transform: rotate(-90deg); width: var(--size-56); }
.plx-btt-track { fill: none; stroke: var(--border-md); stroke-width: 2.5; }
.plx-btt-fill {
  fill: none; stroke: var(--lime); stroke-dasharray: 157.08;
  stroke-dashoffset: calc(157.08 * (1 - var(--btt-p, 0)));
  stroke-linecap: round; stroke-width: 2.5; transition: stroke-dashoffset var(--t-fast) linear;
}
.plx-btt-inner {
  align-items: center; background: linear-gradient(135deg,var(--lime) 0%,var(--green) 55%,var(--green) 100%); border-radius: 50%; box-shadow: 0 4px 20px var(--black-a50);
  color: var(--bg); display: flex; height: var(--size-42); justify-content: center; position: relative;
  transition: transform var(--t-default) ease, filter var(--t-default) ease, box-shadow var(--t-default) ease;
  width: var(--size-42); z-index: var(--z-1);
}
.plx-back-top:hover .plx-btt-inner { box-shadow: 0 0 30px var(--green-a85), 0 4px 20px var(--black-a50); filter: brightness(1.1); }
.plx-back-top:active .plx-btt-inner { transform: scale(.94); }
.plx-btt-arrow { display: block; height: var(--size-18); width: var(--size-18); }
.plx-back-top:focus-visible .plx-btt-inner { outline: 2px solid var(--lime); outline-offset: 4px; }
.plx-back-top[data-progress="0"] { --btt-p: 0; }
.plx-back-top[data-progress="1"] { --btt-p: 0.05; }
.plx-back-top[data-progress="2"] { --btt-p: 0.1; }
.plx-back-top[data-progress="3"] { --btt-p: 0.15; }
.plx-back-top[data-progress="4"] { --btt-p: 0.2; }
.plx-back-top[data-progress="5"] { --btt-p: 0.25; }
.plx-back-top[data-progress="6"] { --btt-p: 0.3; }
.plx-back-top[data-progress="7"] { --btt-p: 0.35; }
.plx-back-top[data-progress="8"] { --btt-p: 0.4; }
.plx-back-top[data-progress="9"] { --btt-p: 0.45; }
.plx-back-top[data-progress="10"] { --btt-p: 0.5; }
.plx-back-top[data-progress="11"] { --btt-p: 0.55; }
.plx-back-top[data-progress="12"] { --btt-p: 0.6; }
.plx-back-top[data-progress="13"] { --btt-p: 0.65; }
.plx-back-top[data-progress="14"] { --btt-p: 0.7; }
.plx-back-top[data-progress="15"] { --btt-p: 0.75; }
.plx-back-top[data-progress="16"] { --btt-p: 0.8; }
.plx-back-top[data-progress="17"] { --btt-p: 0.85; }
.plx-back-top[data-progress="18"] { --btt-p: 0.9; }
.plx-back-top[data-progress="19"] { --btt-p: 0.95; }
.plx-back-top[data-progress="20"] { --btt-p: 1; }

/* DataTables "Show N entries": themed Choices select, compact width */
.dataTables_wrapper .dataTables_length label { display: flex; align-items: center; gap: var(--sp-8); margin-bottom: 0; }
.dataTables_wrapper .dataTables_length .choices { min-width: var(--size-80); }

/* Tracker / plain tables: outline and radius on the table itself. Edge-cell borders were not used because
   DataTables Responsive hides trailing columns with display:none, which leaves the last VISIBLE cell
   without the right edge. border-box keeps the outline inside the container's width (the theme's
   DataTables border is content-box and added 2px, causing a stray horizontal scrollbar). */
.plx-tracker-table,
.plx-table { border-collapse: separate; border-spacing: 0; box-sizing: border-box; border: 1px solid var(--border-md); border-radius: var(--br-inner); overflow: hidden; }
.dataTables_wrapper table.dataTable.plx-tracker-table,
.dataTables_wrapper table.dataTable.plx-table { border: 1px solid var(--border-md); }
.dataTables_wrapper table.dataTable.plx-tracker-table,
.dataTables_wrapper table.dataTable.plx-table { box-sizing: border-box; }
/* scrollX splits head and body into two tables: join them into one outline */
.dataTables_scrollHead table.dataTable { border-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.dataTables_scrollBody table.dataTable { border-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }

/* ── Smooth transitions for hover/focus/active/checked states that had none (RULE 06: named properties, token duration) ── */
.plx-btn-primary { transition: opacity var(--t-default),transform var(--t-default), color var(--t-default) ease; }
.plx-table tbody tr td { transition: background-color var(--t-default) ease; }
select.form-control.form-control { transition: border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.plx-dd-acc-btn.plx-dd-acc-btn { transition: background var(--t-fast), box-shadow var(--t-default) ease; }
.plx-dd-acc-btn { transition: background-color var(--t-default) ease; }
.plx-setup-table tbody tr td { transition: background-color var(--t-default) ease; }
.plx-bill-pay-opt .plx-bill-pay-radio::after { transition: background-color var(--t-default) ease; }
.plx-sc-switch.plx-sc-switch { transition: background-color var(--t-default),border-color var(--t-default), box-shadow var(--t-default) ease; }
.plx-sc-btn.plx-sc-btn { transition: background-color var(--t-default) ease, border-color var(--t-default) ease, color var(--t-default) ease; }
.plx-d1-lm-view-link { transition: opacity var(--t-fast), color var(--t-default) ease; }
.plx-d1-lm-upgrade-btn { transition: opacity var(--t-default), transform var(--t-default), color var(--t-default) ease; }
.plx-d1-inc-upgrade-btn { transition: opacity var(--t-default), transform var(--t-default), color var(--t-default) ease; }
.dataTables_wrapper .dataTables_filter input { transition: border-color var(--t-default) ease, background-color var(--t-default) ease; }
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button:not(.current):not(.disabled) { transition: background-color var(--t-default) ease, color var(--t-default) ease, border-color var(--t-default) ease; }
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button.current { transition: background-color var(--t-default) ease, border-color var(--t-default) ease, color var(--t-default) ease; }
div.dataTables_wrapper .dataTables_paginate .paginate_button.paginate_button.disabled { transition: opacity var(--t-default) ease, color var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease; }
.plx-od-tab-nav .nav-link { transition: color var(--t-default) ease; }
.plx-od-deactivate-modal .btn-close { transition: opacity var(--t-default) ease; }
.plx-vr-tab-nav .nav-link { transition: color var(--t-default) ease; }
.plx-choices .choices__list--multiple .choices__item .choices__button::after { transition: color var(--t-default) ease; }
.plx-resend-btn { transition: opacity var(--t-fast), color var(--t-default) ease; }
/* Bootstrap components whose theme rules change state colours without a transition */
.dropdown-item,
.page-link,
.list-group-item-action { transition: color var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease; }
.btn-close { transition: opacity var(--t-default) ease; }

/* ── State transitions for Bootstrap, theme and plugin controls (hover, focus, active, checked) ── */
a { transition: color var(--t-default) ease; }
.btn { transition: color var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.btn-close { transition: opacity var(--t-default) ease, box-shadow var(--t-default) ease; }
.form-control,
.form-select,
input[type=file]::file-selector-button { transition: color var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.form-check-input { transition: background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease, filter var(--t-default) ease; }
.badge,
[class*="badge-"] { transition: background-color var(--t-default) ease, color var(--t-default) ease; }
.nav-link { transition: color var(--t-default) ease, background-color var(--t-default) ease, border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.list-group-item { transition: color var(--t-default) ease, background-color var(--t-default) ease; }
.flatpickr-day,
.flatpickr-time .flatpickr-am-pm { transition: background-color var(--t-default) ease, border-color var(--t-default) ease, color var(--t-default) ease; }
.dt-ext .dataTables_wrapper .dt-button { transition: background-color var(--t-default) ease, border-color var(--t-default) ease, color var(--t-default) ease; }
.swal2-styled { transition: background-color var(--t-default) ease, box-shadow var(--t-default) ease; }
table.dataTable tbody tr,
table.dataTable tbody td { transition: background-color var(--t-default) ease; }
.sidebar-menu .sidebar-list i.fa-thumbtack { transition: opacity var(--t-default) ease; }
.sidebar-body form .form-select { transition: border-color var(--t-default) ease, box-shadow var(--t-default) ease; }
.plx-bill-pay-opt .plx-bill-pay-radio::after { transition: width var(--t-default) ease, height var(--t-default) ease, background-color var(--t-default) ease; }


/* ── Form and component additions (formerly pages/custom.css) ── */
.plx-field-error {
    color: var(--red);
    display: block;
    font-size: var(--fs-12);
    margin-top: var(--sp-4, 4px);
    font-weight: 500;
}

.plx-resend-form {
    display: inline;
}

.plx-resend-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: var(--lime);
    font-weight: var(--fw-semibold);
    font-size: var(--fs-14);
    font-family: inherit;
    text-decoration: none;
    transition: opacity var(--t-fast);
}

.plx-resend-btn:hover {
    color: var(--lime);
    opacity: var(--opacity-hover);
    text-decoration: underline;
}

.plx-resend-btn:disabled {
    opacity: var(--opacity-disabled);
    cursor: not-allowed;
    pointer-events: none;
    text-decoration: none;
}

.plx-dl-logo img {
    max-width: 100%;
    height: var(--size-40);
}

/* Register Organization Parameter Form Styles */
.plx-param-card {
  background: var(--black-a50);
  border: 1px solid var(--border);
  border-radius: var(--br-inner);
  padding: var(--sp-20) var(--sp-20);
  margin-bottom: var(--sp-28);
}
.plx-param-card-header {
  display: flex;
  align-items: center;
  gap: var(--sp-10);
  margin-bottom: var(--sp-16);
  padding-bottom: var(--sp-10);
  border-bottom: 1px solid var(--bg-mid);
}
.plx-param-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--size-24);
  height: var(--size-24);
  border-radius: 50%;
  background: var(--lime-a15);
  color: var(--lime-400);
  font-size: var(--fs-12);
  font-weight: 700;
}
.plx-param-title {
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--slate-100);
  letter-spacing: 0.3px;
}
.plx-param-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-16);
  align-items: start;
}
.plx-param-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-16);
  align-items: start;
}
.plx-param-grid-3 > .form-group:has(.plx-segmented-control) {
  align-self: stretch;
  display: flex;
  flex-direction: column;
}
.plx-param-grid-3 > .form-group:has(.plx-segmented-control) .plx-form-label-sm {
  flex: 1;
}
.plx-form-label-sm {
  display: flex;
  align-items: flex-end;
  min-height: var(--size-34);
  font-size: var(--fs-12);
  font-weight: 500;
  color: var(--slate-400);
  margin-bottom: var(--sp-8);

}
.plx-pill-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-8);
  align-items: center;
}
.plx-pill-checkbox {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  user-select: none;
  margin: 0;
}
.plx-pill-checkbox input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.plx-pill-text {
  display: inline-block;
  padding: var(--sp-6) var(--sp-14);
  border-radius: var(--br-full);
  background: var(--bg-card);
  border: 1px solid var(--border-md);
  font-size: var(--fs-12);
  font-weight: 500;
  color: var(--slate-300);
  transition: all var(--t-default) ease;
  white-space: nowrap;
}
.plx-pill-checkbox:hover .plx-pill-text {
  background: var(--border);
  border-color: var(--white-a25);
  color: var(--t1);
}
.plx-pill-checkbox input:checked + .plx-pill-text {
  background: var(--lime-a15);
  border-color: var(--lime-400);
  color: var(--lime-400);
  font-weight: 600;
}

/* Segmented Control for Yes / No toggles */
.plx-segmented-control {
  display: flex;
  background: var(--black-a65);
  border: 1px solid var(--border-md);
  border-radius: var(--br-inner);
  padding: var(--sp-2);
  width: 100%;
  max-width: var(--size-160);
}
.plx-segmented-control .plx-seg-btn {
  flex: 1;
  position: relative;
  text-align: center;
  cursor: pointer;
  user-select: none;
  margin: 0;
}
.plx-seg-btn input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.plx-seg-btn span {
  display: block;
  padding: var(--sp-6) 0;
  border-radius: var(--br-inner);
  font-size: var(--fs-12);
  font-weight: 500;
  color: var(--slate-500);
  transition: all var(--t-default) ease;
}
.plx-seg-btn:hover span {
  color: var(--slate-300);
}
.plx-seg-btn input:checked + span {
  background: var(--lime-400);
  color: var(--slate-900);
  font-weight: 700;
  box-shadow: 0 2px 4px var(--black-a25);
}