/* v5.17.1 Global Status Bubble Standardisation
   Applies one visual language to status, result, severity, state and overall cells across the LGFT application.
   Additive only. */
:root{
  --lgft-status-green-bg:#14532d;--lgft-status-green-fg:#dcfce7;--lgft-status-green-border:#22c55e;
  --lgft-status-amber-bg:#78350f;--lgft-status-amber-fg:#ffedd5;--lgft-status-amber-border:#f97316;
  --lgft-status-red-bg:#7f1d1d;--lgft-status-red-fg:#fee2e2;--lgft-status-red-border:#ef4444;
  --lgft-status-blue-bg:#1e3a8a;--lgft-status-blue-fg:#dbeafe;--lgft-status-blue-border:#60a5fa;
  --lgft-status-cyan-bg:#164e63;--lgft-status-cyan-fg:#cffafe;--lgft-status-cyan-border:#22d3ee;
  --lgft-status-gray-bg:#374151;--lgft-status-gray-fg:#f3f4f6;--lgft-status-gray-border:#9ca3af;
  --lgft-status-purple-bg:#4c1d95;--lgft-status-purple-fg:#ede9fe;--lgft-status-purple-border:#a78bfa;
}
.status,
.lgft-status-bubble,
.v517-status-pill{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:20px!important;padding:3px 10px!important;border-radius:999px!important;
  font-size:11px!important;line-height:1.15!important;font-weight:900!important;text-transform:uppercase!important;
  letter-spacing:.018em!important;border:1px solid rgba(255,255,255,.18)!important;white-space:nowrap!important;
  box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 1px 3px rgba(0,0,0,.18)!important;
  vertical-align:middle!important;
}
.lgft-status-bubble.status-pass,.status.pass,.status.approved,.status.active:not(.status-critical),.status.enabled,.status.verified,.status.certified,.status.completed,.status.consumed,.status.released,.status.normal,
.v517-status-pass,.v517-status-approved,.v517-status-certified{background:var(--lgft-status-green-bg)!important;color:var(--lgft-status-green-fg)!important;border-color:rgba(34,197,94,.75)!important;}
.lgft-status-bubble.status-warning,.lgft-status-bubble.status-warn,.status.warning,.status.warn,.status.review,.status.legal-review,.status.draft,.status.pending,.status.missing,.status.open,
.v517-status-warning,.v517-status-review,.v517-status-draft{background:var(--lgft-status-amber-bg)!important;color:var(--lgft-status-amber-fg)!important;border-color:rgba(249,115,22,.75)!important;}
.lgft-status-bubble.status-fail,.lgft-status-bubble.status-failed,.lgft-status-bubble.status-blocked,.status.fail,.status.failed,.status.blocked,.status.error,.status.rejected,.status.invalid,.status.expired,.status.overdue,
.v517-status-blocked,.v517-status-fail{background:var(--lgft-status-red-bg)!important;color:var(--lgft-status-red-fg)!important;border-color:rgba(239,68,68,.82)!important;}
.lgft-status-bubble.status-cron,.lgft-status-bubble.status-worker,.lgft-status-bubble.status-queue,.lgft-status-bubble.status-info,.status.cron,.status.worker,.status.queue,.status.info{background:var(--lgft-status-blue-bg)!important;color:var(--lgft-status-blue-fg)!important;border-color:rgba(96,165,250,.75)!important;}
.lgft-status-bubble.status-installed,.lgft-status-bubble.status-evidence,.lgft-status-bubble.status-required,.status.installed,.status.evidence,.status.required{background:var(--lgft-status-cyan-bg)!important;color:var(--lgft-status-cyan-fg)!important;border-color:rgba(34,211,238,.7)!important;}
.lgft-status-bubble.status-optional,.lgft-status-bubble.status-none,.lgft-status-bubble.status-na,.lgft-status-bubble.status-n-a,.status.optional,.status.none,.status.na,.status.n-a{background:var(--lgft-status-gray-bg)!important;color:var(--lgft-status-gray-fg)!important;border-color:rgba(156,163,175,.7)!important;}
.lgft-status-bubble.status-critical,.lgft-status-bubble.status-high,.lgft-status-bubble.status-blocking,.status.critical,.status.high,.status.blocking{background:var(--lgft-status-red-bg)!important;color:var(--lgft-status-red-fg)!important;border-color:rgba(239,68,68,.82)!important;}
.lgft-status-bubble.status-medium,.status.medium{background:var(--lgft-status-amber-bg)!important;color:var(--lgft-status-amber-fg)!important;border-color:rgba(249,115,22,.75)!important;}
.lgft-status-bubble.status-low,.status.low{background:var(--lgft-status-green-bg)!important;color:var(--lgft-status-green-fg)!important;border-color:rgba(34,197,94,.75)!important;}
.lgft-status-bubble.status-unknown,.status.unknown{background:var(--lgft-status-purple-bg)!important;color:var(--lgft-status-purple-fg)!important;border-color:rgba(167,139,250,.75)!important;}
.table td .lgft-status-bubble,.data-table td .lgft-status-bubble,table td .lgft-status-bubble{margin:0!important;}
td.lgft-status-cell,td.lgft-result-cell,td.lgft-severity-cell{white-space:nowrap!important;text-align:left!important;vertical-align:middle!important;}
.kpi .lgft-status-bubble{margin-top:2px!important;}
@media print{.status,.lgft-status-bubble,.v517-status-pill{border:1px solid #555!important;color:#111!important;background:#fff!important;box-shadow:none!important;}}

/* v5.17.2 recursion/layout hard-lock
   v5.17.1 allowed KPI span rules to stretch status bubbles and its JS could wrap bubbles again.
   These overrides force bubbles to stay small and non-nestable in KPI/cards/tables. */
.lgft-status-bubble .lgft-status-bubble,
.status .lgft-status-bubble,
.v517-status-pill .lgft-status-bubble{display:none!important;}
.kpi .lgft-status-bubble,
.kpi .status,
.kpi .v517-status-pill,
.v517-cert-card .kpi .lgft-status-bubble,
.v517-cert-card .kpi .status,
.v517-cert-card .kpi .v517-status-pill{
  display:inline-flex!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:20px!important;
  padding:3px 10px!important;
  margin-top:2px!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.v517-cert-card .kpi > span:not(.lgft-status-bubble):not(.status):not(.v517-status-pill){
  display:block!important;width:100%!important;font-size:18px!important;line-height:1.2!important;font-weight:800!important;color:#fff!important;word-break:break-word!important;
}
.v517-cert-card .kpi{overflow:hidden!important;position:relative!important;}
.v517-cert-card .kpi-grid{overflow:visible!important;}


/* v5.19 extended severity/result bubble standardization */
.lgft-status-bubble.status-setup-required,.status.setup-required,
.lgft-status-bubble.status-recommended,.status.recommended,
.lgft-status-bubble.status-training,.status.training{
  background:var(--lgft-status-amber-bg)!important;color:var(--lgft-status-amber-fg)!important;border-color:rgba(249,115,22,.75)!important;
}
.lgft-status-bubble.status-security,.status.security,
.lgft-status-bubble.status-hardening,.status.hardening,
.lgft-status-bubble.status-cleanup,.status.cleanup{
  background:var(--lgft-status-blue-bg)!important;color:var(--lgft-status-blue-fg)!important;border-color:rgba(96,165,250,.75)!important;
}
.v519-burndown-card .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.v519-burndown-card .kpi{min-height:72px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px}.v519-section .description-cell{white-space:normal;overflow-wrap:anywhere}.v519-section .data-table td,.v519-section .data-table th{vertical-align:top}.v519-section form.inline{display:flex;gap:4px;flex-wrap:wrap}.v519-section .btn.small{padding:4px 8px;font-size:11px}.helper-document .lgft-status-bubble{margin-left:6px}
