.rq-export-list-wide{min-width:132px!important;width:auto!important;flex:0 0 auto!important;white-space:nowrap!important}
.rq-export-list-wide>*{white-space:nowrap!important}
.rq-export-list-wrap{margin-left:auto!important;flex:0 0 auto!important}
/* Aktis QA 2.13.3 – visual polish layer (loaded after index.css; no rebuild required) */
:root{--rq-ease:cubic-bezier(.2,.8,.2,1);--rq-focus:#6366f1}

/* ---- Boot screen (shown until React mounts) ---- */
.rq-boot{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:linear-gradient(160deg,#f8fafc,#eef2ff)}
.rq-boot-logo{width:52px;height:52px;border-radius:16px;background:url("data:image/png;base64,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") center/68% no-repeat, linear-gradient(135deg,#0f172a,#1e1b4b);box-shadow:0 10px 30px rgba(30,27,75,.28);position:relative;animation:rq-spin 1.6s linear infinite}
.rq-boot-logo:after{content:none}
.rq-boot-bar{width:150px;height:3px;border-radius:3px;background:#e2e8f0;overflow:hidden}
.rq-boot-bar i{display:block;height:100%;width:40%;border-radius:3px;background:#6366f1;animation:rq-slide 1.1s var(--rq-ease) infinite}
.rq-boot-text{font:700 12px/1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#64748b}
@keyframes rq-spin{to{transform:rotate(360deg)}}
@keyframes rq-slide{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}

/* ---- Route loading skeleton (Suspense fallback) ---- */
.rq-skel{display:grid;gap:14px;padding:4px}
.rq-skel>div{height:88px;border-radius:14px;background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%);background-size:200% 100%;animation:rq-shimmer 1.2s linear infinite}
.rq-skel>div:first-child{height:36px;width:min(260px,60%)}
@keyframes rq-shimmer{to{background-position:-200% 0}}

/* ---- Global feel ---- */
html{-webkit-text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:9px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}
::selection{background:rgba(99,102,241,.22)}
:focus-visible{outline:2px solid var(--rq-focus);outline-offset:2px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}

/* ---- Micro-interactions ---- */
button,a,[role=button]{transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease}
button:not(:disabled):active{transform:scale(.98)}
button:disabled{cursor:not-allowed}
tbody tr{transition:background-color .12s ease}
main>*{animation:rq-in .22s ease-out both}
@keyframes rq-in{from{opacity:0}to{opacity:1}}

/* ---- Sidebar ---- */
aside.bg-slate-900{background:linear-gradient(180deg,#0f172a 0%,#0b1120 100%);box-shadow:1px 0 0 rgba(255,255,255,.04)}
aside nav a{border-radius:9px}

/* ---- Dialogs (also applied to the runtime-themed panels) ---- */
.rq2132-backdrop{animation:rq-in .16s ease-out both}
.rq2132-panel{animation:rq-pop .2s var(--rq-ease) both}
@keyframes rq-pop{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}

/* ---- Cheaper blur: same look, far less GPU cost on long tables and low-end laptops ---- */
.backdrop-blur-xs,.backdrop-blur-sm,.backdrop-blur{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.rq2132-backdrop{-webkit-backdrop-filter:blur(2px)!important;backdrop-filter:blur(2px)!important}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{main>*,.rq2132-panel{animation:none!important}}

/* =====================================================================
   2.13.4 – design system, dashboard, sidebar, login, mobile, calendar
   ===================================================================== */

/* ---- 1. Design system: shared tokens (Tailwind v4 reads the --radius-* variables) ---- */
:root{
  --radius-lg:.625rem;--radius-xl:.875rem;--radius-2xl:1.125rem;
  --rq-primary:#4f46e5;--rq-primary-soft:#eef2ff;--rq-ink:#0f172a;--rq-muted:#64748b;--rq-line:#e2e8f0;
  --rq-ok:#10b981;--rq-warn:#f59e0b;--rq-danger:#ef4444;--rq-info:#3b82f6;
  --rq-shadow-1:0 1px 2px rgba(15,23,42,.05),0 1px 1px rgba(15,23,42,.03);
  --rq-shadow-2:0 1px 3px rgba(15,23,42,.08),0 4px 10px -4px rgba(15,23,42,.06);
  --rq-shadow-3:0 10px 24px -8px rgba(15,23,42,.16),0 3px 8px -3px rgba(15,23,42,.08);
}
.shadow-xs{--tw-shadow:0 1px 2px rgba(15,23,42,.05),0 1px 1px rgba(15,23,42,.03)}
.shadow-sm{--tw-shadow:0 1px 3px rgba(15,23,42,.08),0 4px 10px -4px rgba(15,23,42,.06)}
.shadow-md{--tw-shadow:0 10px 24px -8px rgba(15,23,42,.16),0 3px 8px -3px rgba(15,23,42,.08)}
.shadow-xl{--tw-shadow:0 24px 48px -16px rgba(15,23,42,.28),0 6px 14px -6px rgba(15,23,42,.10)}
main .bg-white.border.border-slate-200{border-color:var(--rq-line)}
main h2.uppercase,main h3.uppercase{letter-spacing:.09em}
.tabular-nums,main .text-2xl.font-bold{font-variant-numeric:tabular-nums}

/* ---- 2. Dashboard KPI cards: status accent, lift, gradient bars ---- */
main .group.cursor-pointer.rounded-xl{position:relative;overflow:hidden}
main .group.cursor-pointer.rounded-xl:hover{transform:translateY(-2px)}
main .bg-emerald-500.h-full{background:linear-gradient(90deg,#10b981,#34d399)}
main .bg-amber-500.h-full{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
main .bg-yellow-500.h-full{background:linear-gradient(90deg,#eab308,#facc15)}
main .bg-slate-100.h-1\.5{box-shadow:inset 0 1px 2px rgba(15,23,42,.06)}
.recharts-tooltip-wrapper .recharts-default-tooltip{border-radius:12px!important;border:1px solid var(--rq-line)!important;box-shadow:var(--rq-shadow-3)!important}
.recharts-cartesian-grid line{stroke:#eef2f7}
.recharts-text{fill:#64748b}

/* ---- 4. Sidebar: clear active item, hover, collapsible ---- */
aside nav a.bg-slate-800{background:linear-gradient(90deg,rgba(99,102,241,.24),rgba(99,102,241,.05));box-shadow:inset 3px 0 0 #818cf8}
aside nav a.bg-slate-800 svg{color:#a5b4fc}
aside nav a:hover:not(.bg-slate-800){background:rgba(255,255,255,.06)}
aside nav a svg{transition:color .15s ease,transform .15s ease}
aside nav a:hover svg{color:#e2e8f0;transform:translateX(1px)}
#rq-side-toggle{display:none;margin-left:auto;width:26px;height:26px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#94a3b8;font-size:16px;line-height:1;align-items:center;justify-content:center;cursor:pointer;padding:0}
#rq-side-toggle:hover{background:rgba(255,255,255,.12);color:#fff}
@media (min-width:1024px){
  #rq-side-toggle{display:inline-flex}
  aside.w-48{transition:width .2s var(--rq-ease),transform .2s ease}
  html.rq-side-collapsed aside.w-48{width:4.5rem}
  html.rq-side-collapsed aside .sticky{flex-direction:column;gap:10px;padding:14px 0}
  html.rq-side-collapsed aside .sticky h1{display:none}
  html.rq-side-collapsed aside .sticky svg:first-child{margin:0}
  html.rq-side-collapsed #rq-side-toggle{margin-left:0;transform:rotate(180deg)}
  html.rq-side-collapsed aside nav{padding:12px 8px}
  html.rq-side-collapsed aside nav a{position:relative;justify-content:center;padding-left:0;padding-right:0}
  html.rq-side-collapsed aside nav a>span.tracking-wider{display:none}
  html.rq-side-collapsed aside nav a>span.ml-auto{position:absolute;top:1px;right:4px;min-width:16px;padding:0 4px;font-size:9px}
  html.rq-side-collapsed aside nav a svg{width:18px;height:18px}
}

/* ---- 5. Login screen ---- */
.min-h-screen.bg-slate-50:has(>.max-w-md.rounded-2xl){background:radial-gradient(900px 500px at 8% -10%,#e0e7ff 0,transparent 60%),radial-gradient(800px 480px at 105% 110%,#dbeafe 0,transparent 55%),#f8fafc}
.max-w-md.rounded-2xl.shadow-xl{border:0;box-shadow:0 30px 60px -24px rgba(30,27,75,.38),0 0 0 1px rgba(15,23,42,.05);animation:rq-pop .3s var(--rq-ease) both}
.max-w-md.rounded-2xl>div.bg-slate-900{background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 100%);position:relative;overflow:hidden}
.max-w-md.rounded-2xl>div.bg-slate-900:before{content:"";position:absolute;width:220px;height:220px;right:-70px;top:-90px;border-radius:50%;background:radial-gradient(circle,rgba(129,140,248,.35),transparent 70%)}
.max-w-md.rounded-2xl>div.bg-slate-900>*{position:relative}
.max-w-md.rounded-2xl input{border-radius:10px}

/* ---- 7. Calendar: colour coding + legend ---- */
button.bg-blue-50.border-blue-200.text-blue-800{border-left:3px solid #3b82f6}
button.bg-amber-50.border-amber-200.text-amber-800{border-left:3px solid #f59e0b}
.rq-legend{display:flex;flex-wrap:wrap;gap:14px;padding:8px 16px;border-bottom:1px solid #f1f5f9;background:#fff;font:700 10px/1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#64748b}
.rq-legend span{display:inline-flex;align-items:center;gap:6px}
.rq-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ---- 6. Mobile / touch ---- */
@media (pointer:coarse){
  aside nav a,header button{min-height:40px}
  main button,main a.rounded-lg,main a.rounded-md{min-height:38px}
  main input:not([type=checkbox]):not([type=radio]),main select{min-height:40px}
}
@media (max-width:640px){
  main{padding:12px!important}
  main table.rq-stack{display:block;min-width:0!important;width:100%!important;border:0}
  main table.rq-stack thead{display:none}
  main table.rq-stack tbody{display:block}
  main table.rq-stack tr{display:block;background:#fff;border:1px solid var(--rq-line);border-radius:14px;margin:0 0 12px;padding:4px 14px;box-shadow:var(--rq-shadow-1)}
  main table.rq-stack td{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:9px 0!important;border:0!important;border-bottom:1px dashed #eef2f7!important;text-align:right;white-space:normal!important;min-height:0}
  main table.rq-stack td:last-child{border-bottom:0!important}
  main table.rq-stack td[data-label]:before{content:attr(data-label);flex:none;max-width:46%;text-align:left;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}
  main table.rq-stack td:empty{display:none}
  .rq-legend{padding:8px 12px}
  .grid.grid-cols-1.sm\:grid-cols-2{gap:10px}
}
@media print{
  #rq-side-toggle,.rq-legend{display:none!important}
  main table.rq-stack{display:table!important}
  main table.rq-stack thead{display:table-header-group!important}
  main table.rq-stack tbody{display:table-row-group!important}
  main table.rq-stack tr{display:table-row!important;border:0!important;box-shadow:none!important;padding:0!important}
  main table.rq-stack td{display:table-cell!important;text-align:inherit!important}
  main table.rq-stack td:before{display:none!important}
}


/* =====================================================================
   2.13.5 – "Maintenance Analytics" panel language for dashboards
   ===================================================================== */
.rq-panel{padding:0!important;overflow:hidden;background:rgba(248,250,252,.75)!important;border:1px solid var(--rq-line)!important;border-radius:14px!important;box-shadow:var(--rq-shadow-2)!important}
.rq-panel.rq-flush{background:#fff!important}
.rq-panel>.rq-panel-head{display:flex!important;align-items:center;justify-content:flex-start!important;gap:12px;margin:0!important;padding:16px 20px;background:linear-gradient(135deg,#0f172a 0%,#111827 60%,#1e1b4b 100%);color:#fff;min-height:68px;box-sizing:border-box}
.rq-panel>.rq-panel-head>svg:first-child{flex:none;width:36px;height:36px;box-sizing:border-box;padding:8px;border-radius:10px;background:rgba(79,70,229,.30);border:1px solid rgba(129,140,248,.32);color:#a5b4fc}
.rq-panel-head .rq-ph-title,.rq-panel-head h2{font-size:13px!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase;color:#fff!important;line-height:1.25;margin:0}
.rq-panel-head .rq-ph-sub{font-size:12px;color:#94a3b8;margin-top:3px;font-weight:400;letter-spacing:0;text-transform:none}
.rq-panel-head>span{margin-left:auto;background:rgba(99,102,241,.30)!important;color:#c7d2fe!important;border:1px solid rgba(129,140,248,.32);font-size:10px!important;font-weight:800!important;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px!important;border-radius:999px}
.rq-kpi-head h2:after{content:"Operational status of every registered radiology unit";display:block;font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;color:#94a3b8;margin-top:3px}
.rq-panel>*:not(.rq-panel-head){margin-left:20px!important;margin-right:20px!important}
.rq-panel>.rq-panel-head+*{margin-top:20px!important}
.rq-panel.rq-flexcol>.rq-panel-head+*{margin-top:4px!important}
.rq-panel>*:last-child:not(.rq-panel-head){margin-bottom:20px!important}
.rq-panel.rq-flush>*:not(.rq-panel-head){margin:0!important}
.rq-panel.rq-flexcol{gap:16px}
.rq-panel.rq-flush.rq-flexcol{gap:0}

/* Stat cards inside a panel: compact "analytics" cards */
.rq-panel .group.cursor-pointer.rounded-xl{padding:14px!important;border-radius:10px!important;box-shadow:0 1px 2px rgba(15,23,42,.05)!important;border-color:var(--rq-line)}
.rq-panel .group.cursor-pointer.rounded-xl:hover{box-shadow:var(--rq-shadow-3)!important;transform:translateY(-2px)}
.rq-panel .group.cursor-pointer.rounded-xl>div:first-child p:first-child{font-size:11px!important;font-weight:800;letter-spacing:.07em;color:#64748b}
.rq-panel .group.cursor-pointer.rounded-xl p.text-2xl{font-size:1.25rem!important;font-weight:800!important}
.rq-panel .grid{gap:12px!important}

/* Dashboard chart / list cards: same header rhythm as the analytics panel */
main .space-y-6>.grid>.bg-white.rounded-xl{border-radius:14px;box-shadow:var(--rq-shadow-2)}
main .space-y-6>.grid>.bg-white.rounded-xl>div.mb-2:first-child{margin-bottom:12px!important;padding-bottom:10px;border-bottom:1px solid #f1f5f9}
main .space-y-6>.grid>.bg-white.rounded-xl h3{letter-spacing:.06em}
main .space-y-6>.grid>.bg-white.rounded-xl>div:first-child.border-b{background:#f8fafc;border-bottom-color:#eef2f7}

/* Calendar / QA: tidy inputs inside panels */
.rq-panel select{border-radius:10px}

/* Personnel Directory: page header merged into the panel bar */
.rq-src-hidden{display:none!important}
.rq-panel-head .rq-ph-actions{margin-left:auto;flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.rq-ph-btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border:0;border-radius:9px;background:#fff;color:#0f172a;font:800 11px/1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.rq-ph-btn b{font-size:16px;line-height:1;font-weight:700}
.rq-ph-btn:hover{background:#e0e7ff}
@media (max-width:640px){.rq-panel>.rq-panel-head{flex-wrap:wrap}.rq-panel-head .rq-ph-actions{margin-left:0;width:100%}.rq-ph-btn{width:100%;justify-content:center}}

/* v2.13.5.2: remove the Equipment Fleet Status KPI title bar from the main dashboard while preserving the KPI cards. */
main .space-y-6 > div:first-child > div:has(> h2) { display:none !important; }

/* v2.13.5.14 – all directory/list pages follow the Personnel Directory pattern */
.rq-panel.rq-unified{display:block!important;padding:0!important;overflow:hidden!important;background:#fff!important;border:1px solid var(--rq-line)!important;border-radius:14px!important;box-shadow:var(--rq-shadow-2)!important;gap:0!important}
.rq-panel.rq-unified>.rq-panel-head{margin:0!important;width:100%!important;box-sizing:border-box!important}
.rq-panel.rq-unified>*:not(.rq-panel-head){margin-left:20px!important;margin-right:20px!important}
.rq-panel.rq-unified>.rq-panel-head+*{margin-top:0!important}
.rq-panel.rq-unified>.rq-panel-head~*{margin-bottom:0!important}
/* v2.13.5.18 – when a page's filter/search card has no separate joined
   .rq-unified-content sibling to supply its own top margin (Equipment,
   Quality Assurance), the rule above left the search row flush against the
   card's bottom edge with no breathing room, unlike Personnel (which isn't
   ".rq-unified" and keeps the base .rq-panel bottom-margin rule). Restore a
   20px gap under the DOM-last child specifically; on pages that reorder the
   search row visually (Facilities/Contracts/User Administration) the more
   specific .rq-search-below>.rq-filters-row rule further below still wins
   and keeps their own spacing intact. */
.rq-panel.rq-unified>*:last-child:not(.rq-panel-head){margin-bottom:20px!important}
.rq-panel.rq-unified .border-t{border-top-color:#eef2f7!important}
.rq-panel.rq-unified .bg-white.rounded-xl,.rq-panel.rq-unified .bg-white.rounded-2xl{box-shadow:none!important}
.rq-unified-content{margin:0!important;border:0!important;border-top:1px solid #eef2f7!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}
.rq-unified-content>div:first-child{border-radius:0!important}
.rq-unified-stats{margin:0 20px!important;padding:12px 0!important;gap:10px!important}
.rq-unified-stats>div{box-shadow:none!important;border-radius:10px!important}
/* Keep the page-level title/action row hidden once its content is represented in the panel header. */
main>.rq-src-hidden{display:none!important}
@media(max-width:640px){
  .rq-panel.rq-unified>*:not(.rq-panel-head){margin-left:12px!important;margin-right:12px!important}
  .rq-unified-stats{margin:0 12px!important}
}

/* v2.13.5.15 – single unified Directory pattern */
.rq-panel.rq-unified{display:block!important;width:100%!important;box-sizing:border-box!important;padding:0!important;overflow:hidden!important;background:#fff!important;border:1px solid var(--rq-line)!important;border-radius:14px!important;box-shadow:var(--rq-shadow-2)!important}
.rq-panel.rq-unified>.rq-panel-head{width:100%!important;margin:0!important;box-sizing:border-box!important}
.rq-panel.rq-unified>*:not(.rq-panel-head){margin-left:24px!important;margin-right:24px!important}
.rq-panel.rq-unified>.rq-panel-head+*{margin-top:20px!important}
.rq-panel.rq-unified .rq-search-row{width:100%!important;box-sizing:border-box!important;margin-top:8px!important;padding-top:16px!important;border-top:1px solid #eef2f7!important}
.rq-panel.rq-unified .rq-search-row input{max-width:none!important}
.rq-unified-content{display:block!important;width:calc(100% - 48px)!important;max-width:none!important;margin:20px 24px 24px!important;border:1.5px solid #94a3b8!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important;box-sizing:border-box!important}
/* v2.13.5.19 – the table's own header-row underline should read as the same
   weight/darkness as the card's outer perimeter, not the much lighter
   default border-slate-200. */
.rq-unified-content table thead{border-bottom:1.5px solid #94a3b8!important}
.rq-unified-content>div:first-child{border-radius:0!important}
.rq-unified-content table{width:100%!important;min-width:0!important}
.rq-unified-content .grid{width:100%!important;max-width:none!important}
.rq-unified-content .grid>div{min-width:0!important}
main>.rq-src-hidden{display:none!important}

/* Global Invoices page: same one-panel directory language */
.rq-global-invoices-page{padding:24px!important;min-height:100%;background:#f8fafc;box-sizing:border-box}
.rq-global-invoices-panel{width:100%;box-sizing:border-box;background:#fff;border:1px solid #dbe3ee;border-radius:14px;overflow:hidden;box-shadow:0 4px 16px rgba(15,23,42,.06)}
.rq-global-invoices-head{min-height:68px;padding:14px 20px;background:linear-gradient(135deg,#0f172a 0%,#111827 60%,#1e1b4b 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;box-sizing:border-box}
.rq-global-invoices-title{display:flex;align-items:center;gap:12px}
.rq-global-invoices-title strong{display:block;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.rq-global-invoices-title small{display:block;margin-top:3px;font-size:11px;color:#94a3b8}
.rq-global-icon{width:36px;height:36px;border-radius:10px;background:rgba(79,70,229,.3);border:1px solid rgba(129,140,248,.35);display:flex;align-items:center;justify-content:center;color:#a5b4fc;font-weight:800}
.rq-global-invoices-filters{padding:20px 24px 0;box-sizing:border-box}
.rq-global-invoices-filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(140px,1fr)) minmax(160px,1fr) auto;gap:12px;align-items:end}
.rq-global-search-row{margin-top:16px;padding-top:16px;border-top:1px solid #eef2f7}
.rq-global-search{width:100%;max-width:520px}
.rq-global-search input{width:100%!important}
.rq-gload{height:34px}
.rq-global-invoices-panel>.rq-invoice-summary{margin:18px 24px 12px!important}
.rq-global-invoices-panel>[data-glist]{margin:0 24px 24px!important}
@media(max-width:900px){.rq-global-invoices-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rq-gload{width:100%}}
@media(max-width:640px){.rq-panel.rq-unified>*:not(.rq-panel-head){margin-left:12px!important;margin-right:12px!important}.rq-unified-content{width:calc(100% - 24px)!important;margin:16px 12px 18px!important}.rq-global-invoices-page{padding:12px!important}.rq-global-invoices-filters{padding:14px 12px 0}.rq-global-invoices-filter-grid{grid-template-columns:1fr}.rq-global-invoices-panel>.rq-invoice-summary{margin-left:12px!important;margin-right:12px!important}.rq-global-invoices-panel>[data-glist]{margin-left:12px!important;margin-right:12px!important}}

/* v2.13.5.16 – search bar always below the filter dropdowns, with a divider,
   on every directory/register page (Facilities, Maintenance Contracts, User
   Administration). Pure `order` swap: the DOM itself is left untouched.
   Specificity notes (both matter for correctness, not just polish):
   - ".rq-panel.rq-unified" already sets display:block!important (2 classes),
     so our own display:flex needs 3+ classes on the SAME element to win.
   - An existing dead rule ".rq-panel.rq-unified .rq-search-row" (3 classes)
     sets width:100%!important; combined with the 20-24px side margins every
     ">*" child already gets, width:100% would push the box past the card's
     edge and get clipped by the card's overflow:hidden. We explicitly set
     width:auto (not just omit it) with 4-class selectors to cancel that out;
     the flex container's default align-items:stretch fills the remaining
     width correctly, margins and all. */
.rq-panel.rq-unified.rq-search-below{display:flex!important;flex-direction:column!important;align-items:stretch!important}
.rq-panel.rq-unified.rq-search-below>.rq-filters-row{order:1;display:flex!important;flex-wrap:wrap!important;gap:16px!important;align-items:center!important;width:auto!important;margin-top:20px!important;margin-bottom:0!important}
.rq-panel.rq-unified.rq-search-below>.rq-search-row{order:2;width:auto!important;box-sizing:border-box!important;padding-top:16px!important;margin-top:8px!important;border-top:1px solid #eef2f7!important;margin-bottom:20px!important}
@media(max-width:640px){.rq-panel.rq-unified.rq-search-below>.rq-filters-row{gap:12px!important}}

/* v2.13.5.22 – Facilities' Country/Facility Type filters are natively an
   inline "Label: <select>" pair (span beside select); restyle each pair to
   match Personnel/Equipment's stacked "label above dropdown" look — small
   uppercase label, dropdown below it, same font weight/background. Scoped
   to .rq-facility-filter-groups (set in enhanceRemainingListPages()) so it
   never touches any other page's filters. */
.rq-facility-filter-groups>div{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;width:auto!important}
.rq-facility-filter-groups>div>span{font-size:10px!important;font-weight:800!important;letter-spacing:.08em!important;margin:0!important}
.rq-facility-filter-groups select{background:#fff!important;font-weight:600!important}

/* v2.13.5.19 – Facilities' search box should be the same size as Equipment's
   (max-w-md / 28rem), not stretched full-width. */
.rq-search-capped{max-width:28rem!important}

/* v2.13.5.76 – Facilities: put Search back on the SAME row as Country/Facility
   Type instead of its own row below (overrides the generic rq-search-below
   column-stack above; scoped via the extra .rq-facility-search-inline class
   set only on Facilities, so User Administration/Contracts, which share the
   same rq-search-below column layout, are untouched). All three cells get a
   small uppercase label above an equal-height control, via
   injectFacilitySearchLabel() in index.js for the new "Search" label. */
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline{flex-direction:row!important;flex-wrap:wrap!important;align-items:stretch!important}
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-filters-row{order:1!important;margin-top:20px!important;margin-bottom:20px!important;align-items:stretch!important}
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-search-row{order:2!important;flex:1!important;min-width:220px!important;width:auto!important;box-sizing:border-box!important;padding-top:0!important;margin-top:20px!important;margin-bottom:20px!important;border-top:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-end!important;gap:4px!important}
.rq-facility-search-label{display:block!important;font-size:10px!important;font-weight:800!important;letter-spacing:.08em!important;color:#64748b!important;text-transform:uppercase!important;margin:0!important}
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-search-row .relative{width:100%!important;max-width:none!important}
.rq-facility-filter-groups{align-items:stretch!important}
.rq-facility-filter-groups>div{justify-content:flex-end!important}
.rq-facility-filter-groups select{height:38px!important;box-sizing:border-box!important}
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-search-row input{height:38px!important;box-sizing:border-box!important}
@media(max-width:640px){
  .rq-panel.rq-unified.rq-search-below.rq-facility-search-inline{flex-direction:column!important}
  .rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-search-row{width:auto!important}
}

/* v2.13.5.19 – let the Export List (PDF/CSV) dropdown escape the card's
   overflow:hidden while it's open, instead of being clipped at the card's
   bottom edge. See fixOverflowForOpenMenus() in index.js. */
.rq-panel.rq-unified.rq-menu-open{overflow:visible!important}

/* v2.13.5.16 – Personnel/Equipment "Add" forms as a centered popup.
   The form itself is untouched React content; we only give it fixed,
   centered positioning plus a dedicated backdrop for a real modal feel. */
.rq-inline-modal{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:2147483001!important;width:min(760px,92vw)!important;max-height:88vh!important;overflow-y:auto!important;box-shadow:0 28px 70px rgba(15,23,42,.35)!important;margin:0!important}
.rq-inline-modal.rq-personnel-modal{width:min(1040px,94vw)!important;max-width:1040px!important;max-height:92vh!important;box-sizing:border-box!important}
.rq-inline-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(2px);z-index:2147483000;animation:rq-modal-fade-in .15s ease-out}
body.rq-modal-open{overflow:hidden!important}
@keyframes rq-modal-fade-in{from{opacity:0}to{opacity:1}}
@media(max-width:640px){.rq-inline-modal{width:94vw!important;max-height:92vh!important}}
@media(min-width:900px){.rq-inline-modal.rq-personnel-modal form>div[class~="md:grid-cols-3"]{grid-template-columns:1.18fr 1fr 1fr!important}}
@media(max-width:899px){.rq-inline-modal.rq-personnel-modal form>div[class~="md:grid-cols-3"]{grid-template-columns:minmax(0,1fr)!important}}

/* v2.13.5.18 – Facilities' own native "Add Facility" popup (rq-modal-overlay,
   already fixed+flex-centered in its own source) was rendering with the same
   z-index (50) as the app's dark sidebar. Equal z-index falls back to DOM
   order, which could let the sidebar paint over the popup's left edge,
   making a correctly-centered popup look shifted/cut off. Force it far
   above everything else in the app shell so it always wins regardless of
   DOM order or which stacking context the sidebar happens to be in. */
.rq-modal-overlay{z-index:2147483000!important}

/* v2.13.5.20 – the z-index fix alone didn't fully solve it: this popup was
   the only one still centered purely via flex (fixed+inset:0, then
   align-items/justify-content:center on the SAME element that also carries
   backdrop-blur), while Personnel/Equipment's popups — which DO center
   correctly — use a different, simpler mechanism: the panel itself is
   position:fixed with top/left 50% and a translate(-50%,-50%) offset, no
   flex layout involved. Rather than keep guessing at why the flex approach
   misbehaves only here, switch this popup to that same proven mechanism:
   the overlay becomes a plain full-screen backdrop (no layout duties) and
   the panel positions itself directly. */
.rq-modal-overlay{display:block!important}
.rq-modal-overlay>.rq-modal-panel{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;max-height:88vh!important;z-index:2147483001!important}
@media(max-width:640px){.rq-modal-overlay>.rq-modal-panel{width:94vw!important;max-height:92vh!important}}

/* v2.13.5.17 – neutralize any ancestor that would create a new containing
   block for position:fixed (transform/filter/perspective/will-change),
   which traps our fixed-position modals/backdrops away from the true
   viewport instead of centering on screen. */
.rq-detrap{transform:none!important;filter:none!important;will-change:auto!important;perspective:none!important;contain:none!important}

/* v2.13.5.17 – Maintenance Contracts: rename handled in JS; here we make
   the page span the full width like Facilities by cancelling the
   max-w-7xl/mx-auto Tailwind constraint on its outer wrapper (flagged via
   the rq-full-bleed marker class added at runtime). */
.rq-full-bleed{max-width:none!important;margin-left:0!important;margin-right:0!important;width:100%!important}

/* v2.13.5.18 - replace the generic blue ring "page is loading" spinners
   (used across every list/detail page while data is being fetched) with the
   Aktis QA radiation icon, rotating in place. Matched by attribute
   substring so it applies regardless of the exact border color utility
   class (indigo-600 on most pages, slate-900 on Facilities) — deliberately
   scoped to the w-8 h-8 page/section-level spinner, not the small w-5/w-4
   spinners inside buttons (Save, Cancel, etc.), which are left untouched.
*/
div[class*="animate-spin"][class*="rounded-full"][class*="border-t-transparent"][class*="w-8"]{
  border:0!important;
  border-radius:50%!important;
  background-color:#0f172a!important;
  background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABaCAYAAAASGLCtAAACOGlDQ1BJQ0MgUHJvZmlsZQAAOI2VlL9v00AUx19CxS9BKVB1tkRFGQBVjcSEAMdpE5MSLMeB0s2xXdvEdk72OVAmBgYGJsTIH8BUITEhwcCGOiEhIbGiTIgNxBre2dxdoALEk57uk5d39753eS8AM49sQqLqHECc0NRs1pWNW5vKgc9wCOZgHo7DSdvJiGoY64DG11/t+weosPX9OXbW3u//akddL3MAKgpy382cGPkB+heHpBRgH8H4qTuUMH6CPJ+iQORnjP2SXzHul/yuyLFMDXmMPDtyfLb3G/Jy4oYJwMwi8qU4HrrI6HCmP5XvT3GprbCDjTAjkb39n9f7t8VRzmssoR8J0pbJ6uEbjAfDtuCk37nOOXRLTYyDvNXj7GTaJucs6uqcXbvRFudEnXXOW+GayAmpbnH2stUu53RoirpbqaZytlOpIR/0RDzwdHH+vcC6yXkU3ugIbYNuW+ZoIp7mpriLlzTrsu6aeIc4m7p7qIu9NLBa4h1sqd9LVHlmtiG0uV5jVeb0RD6hdVGLRIbI96KmiGejrthLsdnkXkO84W37qsEZQrgGNjjUu0uZeG1IttPQD6ii4sR4ip44588qK8srFwDY/JXt8HWhmKvKwq6MPcTf6/J4Mpm8lLFmDeA5ajj8WMaWsA+O7QK8/eTk6ehnf1WqmFnOQ/m5nNuC4E9czkxhqG4HF3Zd9T7AC1xPo88is6taV6Baqwnn/V3MGbP9+C+zU3vtv7n48cTiU/jNfgAleb4chhI1WwAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAEygAwAEAAAAAQAAAFoAAAAAQVNDSUkAAABTY3JlZW5zaG90kr4yywAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+OTA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NzY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KLI+g+gAAABxpRE9UAAAAAgAAAAAAAAAtAAAAKAAAAC0AAAAtAAAFvPJfo14AAAWISURBVHgB7Fp7UFRVGP/tsgssr11yRAZD05TJyhyNxpycpge9yMFCa9QoUgtLoQdZOpQgWIwWQw/QlFKjSKmUkiF60XNs1Il0HCsbNE1Nxscoy2thH0Dn7Hr33nPZXffAhb/ON8Pce879zrnn/O7v+77f2UEXn3hDH4QFjYBOABY0Vm5HARgfXhCACcA4EeB0FwwTgHEiwOkuGCYA40SA010wTADGiQCnu2CYAIwTAU53wTABGCcCnO6CYQIwTgQ43QXDBGCcCHC6C4YJwDgR4HQXDBOAcSLA6S4YJgDjRIDTXTBMAMaJAKf7sDIsJqIPU8Y7cdWoHhw+ZcDvR4zoG+Q/Kuh0wI0TnZiU6MK/Z0Nw8JgRbTbSOUQ2bIDdk2xHQUYnQg0yQnsPG1H0cRTOWfUD2l6cpRf5j3Tg5klO73iHS4fCqkh80xjm7dPyZlgAe+K+LixJtYGyQW1/nTAgs8TMzTQ6V+XyVlw71qWe0j3XpvoIvP+Vqd+zwXYMKWB0U7lzOjH/tu6A68yvjEL9b3yMSL3JjqLMjoDzbv8pHKU7I7k/RqBJhxSwnNk2ZN7Vxbzf2QMcP2NA0miZGTQk5xRZ0OXwQUFmtKdhCu3DznwraEhK1nTagHHxLhhDpB7PtfI7E8p2RbCdg2gNGWCzZ9ixiuQXpdmdOrz4XjROnNPjs5dbEWqU89nmr014ty64jT09y4bF98ofwkHmfeg1M8bG9eKNJ9sRppiXvn8NyZO79vAxWLlu5f2QADY+vgdVK1hAaDJ+fmM09v1tdL9/WZoNC+9mNz33VQuaLwQuAAkjerHjFSsD9tZvTVhf6wF7+jVOvLmknXlOAc1YZ8axMyr6KZEI8l5zwGjeqniuDVOvlitXLyFS3pZoNBwI9S4rIswTViPNclh9T56v2Bzt9fF1s25xO+6c6vA+Ot/qCWebXQ7nFPK8eFE79HIXDvxjRNZbMYPOZ5oDdvsUhzssvDsiNxX1JvLXP9xmTbdj9aNs2Ga9HYP9RJ/5smlEb1U828Y8Wv1RFOr29Q+3LFKVs1JlBtNBNB38eFD+aMxEQTY0BYyya9tKKyaOJpn9ku0/asRTBATKMrVRBmwl0uA6hTRo+s+AjNfN6JWJ5x6mJ5Fa9VIrkq6Ui8WfRJIsJJLE39wbCbjTJshMP3I6BAvWWgbFMk0BowKyfJnMAJq35hWbcfKc/9wxeZwLW3JbGY1WvD0SNb+GM/im39KNvPmd3j56QlhUasah4wZvn/pmTFwPqvNILlWI5ez1MaCCeaCmKWDq/FJNdFDJjsjLrq2x/ALj03xRj7T8WKavtqgFCVewtEvOHsH4+Gq8MJfVgcHkSV/zSH2aAUaTeMPaFm916iF7SyuIxdmWwFUvfSZhzjyZOXRhdMz9q1jAvlzTglGxLGDF1YSJu1kmShuTrnRMbWELQi4tg1bMlJWxUBYJyTeYq2aA3TrZgVJSziWjtKf0D2RUApQtbQPNT5JRYUuT8+4/2OQ883pPMVEKU5rncjbEeKWKNIf6StOE8ryZuykavxxi51eP8dfWDLBnHrDhsRS5KpXWRGLbD/6/fkR4n1tPKdV6R5cOywlYjU2+c0xykhMlRJhGmeQKQk8JVL/ZuhUaQrXbBXd0IzddZvGHDSa880X/qq0a5rOpGWBl5CvOUPxqEEge0JU8TkRrNhGvkrkIs5aW+5cUkh+VFhuy22BQ1JFyIlo/IOLVn6nlyB7C/pzLsN/fXJoBVlNgxZiRspx4sNCCU+cVu1KtoDrPigkJsj/PV1ez+WhzCKnGFtUb5GYiWdfnZH2SnSTrSifrG4hpBtin5LhCj0QDNVoglMciehal4vNihx51e8Pwyc9yeNPjEU3kgUz9wyTViJLRI9LDJIwHYv8DAAD//6RBXEgAAAQ5SURBVO2YaWgTQRTH/4lJampsYqv1VrwvVCxq9YMfvMWjiMcXi3iBoEVEEQ88KB6oIIpoFQRv7BcPxAtvwW/1qFTxvlCsQrVtUmPatDXxvdTdNLbWnbTZDTIPwu7Ovpnu/Prmzf+NqV3nQUE0ga2Y4UPmmPKoRgrSFwxblhLR9/KWUrRtFQi1vfxkQdb+JLi9JtXn/r5imMKParuWm1O37dhzLlGLax0fU1MBa+UI4MwmN5yJ4vw/fWuG6dmuiI87sdqD/l2qQ20PX1ux8bgDRW6z6nM+241OrX+qz1pvynwmzNzsQqk3PJbWvuzXZMB4sNbOAKYM9yNjhB9dUiMn87doePbBgpyLich7YeUhVJs1qgIZI/3wVZhw94kNuXeaq+/4Jr1vFbKm+dC/aw3UiJf1PLwqtODKPRuuPUjAV090sHjYJgVWz3f+d00SmOC/NK6AmTmJ0y9Qk+vrTMXMK4lSZEA8TdYZK9qGuAE2qFs1NszxIoXy4IOX1lBOy6MrG+er9D5VGEq/Yso/W3MdePzeEu2cG9UvLoClugI4Szus3aYtdMora3a62rtmoygIdI4LYJvneTF5mF/gs4Er9xOwiaSG3mY4sIG0FI+s9AiLUBa7C3c78UTnpWkoME7yR1d5MOAPLXWAdFk/Eq1K+1PSas8/WrCUdFdt4/YFu5y6bgKGApua7kf2XG9tBli8Nwn5pOzrs7ReVTi0vCziVfZJBy7lJUS0xfLBMGCJCUGco0TP1YFitx7ZsOZwS+Wx3uvORd8xdkil+u4b7ZozqNTx+aMsLNWRtN0YBiwrw4cFE8LFemWVCbO2uvC5uOGypUMK1awb3LBZwzvq0et25FyIrpjWhinsZQiwjlQ0n17viZj04at2HLykbdJLpvqwaFIk7NnbnCikIj7WZgiwHbSsxtVaVqyn+ASB9ZUWY73Guo31m2I3aTmv/cdyVnwbc9UdWEt7ELd2liBU5vz+ctZTrKtEjHUb6zfFuJwauyYZ38u1QVf6iV51B9a740/krnOr38nJellOEgreiZU6g7tXY19WGXjzUGzOdhdeFcZ2WeoOzNkiiJs7SuoI1S8l5lD9+OitFUWlZhTR7qecW7WhnTSVf3QCO6QH1ZVUW7ZPDi9HBsZCdtzaZHh+/GcRxpPbNt+LiUPFSiHu15DxweD6Y7EvlXSPMJ40L6ONmV6MTwvrqYZg/OvdjXwbtpxy6KLFDAGmAOClxWp/9OBKNNd4UqH0raAd9U6BLaTy/zzeVnxicTUUmDIhhsVJPK0n5SYSpkrOavNbNnwl2aHktC8kbPPfWEObBEPT2+ICmN6Tbszfk8AE6UlgEpggAUF3GWESmCABQXcZYRKYIAFBdxlhEpggAUF3GWESmCABQXcZYRKYIAFBdxlhEpggAUF3GWESmCABQXcZYRKYIAFBdxlhEpggAUH3X/r0bfy+2dD/AAAAAElFTkSuQmCC")!important;
  background-position:center!important;
  background-size:60%!important;
  background-repeat:no-repeat!important;
  animation:rq-spin 1.1s linear infinite!important;
  /* v2.13.5.20 – always dead-center on the page, regardless of where it sits
     in the page's own layout (some pages centered it only within their own
     content column, not the full viewport). Centered with `margin`
     (not `transform`) because the spin animation above already owns
     `transform`; combining the two would fight every frame. Width/height
     are fixed to the original w-8/h-8 (32px) so the -16px offset is exact
     regardless of which page's flavor of the spinner this matches. */
  position:fixed!important;
  top:50%!important;
  left:50%!important;
  width:32px!important;
  height:32px!important;
  margin:-16px 0 0 -16px!important;
  z-index:999998!important;
}

/* v2.13.5.25/26 – A Facility's own page and a single Equipment unit's own
   page ("… Dashboard Hero Header") get the same dark navy title-bar
   treatment as Equipment/Facilities/Personnel Directory (same gradient,
   same white text and white pill buttons). enhanceDetailHeroHeader() in
   index.js marks the existing header row and its pieces with these classes
   — nothing is rebuilt, only recolored, so the real content (name, badges,
   address/meta info) stays exactly where it is. */
.rq-hero{background:linear-gradient(135deg,#0f172a 0%,#111827 60%,#1e1b4b 100%)!important;border-bottom:0!important}
.rq-hero-icon{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.18)!important}
.rq-hero-icon svg{color:#c7d2fe!important}
.rq-hero-title{color:#fff!important}
/* Recolor each badge variant on the dark background while keeping its
   original meaning distinct (Equipment's Active/Maintenance/Retired status
   badge must stay readable as blue/amber/slate, not collapse into one color). */
.rq-hero-badge{border:1px solid rgba(255,255,255,.24)!important}
.rq-hero-badge.bg-blue-100{background:rgba(99,102,241,.30)!important;color:#c7d2fe!important}
.rq-hero-badge.bg-amber-100{background:rgba(245,158,11,.22)!important;color:#fde68a!important}
.rq-hero-badge.bg-slate-100{background:rgba(148,163,184,.20)!important;color:#e2e8f0!important}
.rq-hero-meta{color:#94a3b8!important}
.rq-hero-meta svg{color:#94a3b8!important}
.rq-hero-btn{background:#fff!important;color:#0f172a!important;border-color:transparent!important;box-shadow:0 4px 12px rgba(0,0,0,.25)!important}
.rq-hero-btn:hover{background:#e0e7ff!important}

/* v2.13.5.28 – plugin version shown as a small line under the "Aktis QA"
   logo/title in the sidebar header. rq-sidebar-head gets flex-wrap so this
   full-width element (flex-basis:100%) drops onto its own line below the
   existing icon+title+collapse-toggle row, without touching that row's own
   markup. Hidden again when the sidebar is collapsed to its icon-only
   width, same as the title text itself. */
.rq-sidebar-version{flex:0 0 auto!important;margin-top:auto!important;padding:10px 14px 18px!important;font-size:10px!important;font-weight:700!important;letter-spacing:.06em!important;color:#64748b!important;text-transform:uppercase!important}
html.rq-side-collapsed .rq-sidebar-version{display:none!important}

/* v2.13.5.73 - Maintenance Logs page: the Analytics & Visual Summary panel
   now sits in a sticky ~340px rail to the right of the filters+table column
   instead of stacking below the table (a long table used to scroll the
   summary out of view entirely). enhanceMaintenanceSidebar() in index.js
   tags each top-level child of the page's own space-y-6 container with one
   of the classes below - the real React-rendered sections are never moved
   in the DOM, only positioned via CSS grid, so a re-render can't lose them.
   `space-y-6`'s margin-top-on-siblings utility is DOM-order based, so it's
   neutralized here in favor of `gap`. Below ~1100px everything collapses
   back to one stacked column (small screens/narrow browser windows). */
.rq-mnt-sidebar{display:grid!important;grid-template-columns:minmax(0,3fr) minmax(300px,1fr)!important;column-gap:20px!important;row-gap:16px!important;align-items:start!important}
.rq-mnt-sidebar>*{margin-top:0!important;min-width:0!important}
.rq-mnt-sidebar>.rq-mnt-head{grid-column:1/-1!important;grid-row:1!important;width:100%!important}
.rq-mnt-sidebar>.rq-mnt-filters{grid-column:1/-1!important;grid-row:2!important;width:100%!important}
.rq-mnt-sidebar>.rq-mnt-table{grid-column:1!important;grid-row:3!important;width:calc(100% - 14px)!important;max-width:calc(100% - 14px)!important;min-width:0!important;box-sizing:border-box!important}
.rq-mnt-sidebar>.rq-mnt-analytics{grid-column:2!important;grid-row:3!important;position:sticky!important;top:16px!important;align-self:start!important;max-height:calc(100vh - 32px)!important;overflow-y:auto!important;width:100%!important}
@media (max-width:1100px){
  .rq-mnt-sidebar{grid-template-columns:1fr!important}
  .rq-mnt-sidebar>.rq-mnt-analytics{grid-column:1!important;grid-row:auto!important;position:static!important;top:auto!important;max-height:none!important;overflow-y:visible!important}
}
/* The analytics card's own stat strip (2/4-across) and chart grid (12-col,
   7/5/12 spans) are sized for a full-width band - force them to stack
   single-column so they read cleanly inside the narrow rail instead of
   being squeezed into unreadable slivers. */
.rq-mnt-analytics [class*="grid-cols-2"],
.rq-mnt-analytics [class*="grid-cols-4"],
.rq-mnt-analytics [class*="grid-cols-12"]{grid-template-columns:1fr!important}
.rq-mnt-analytics [class*="col-span-"]{grid-column:1/-1!important}
/* The analytics card's own dark header bar (title + Recharts badge on the
   left, the Parsed-PDF-Audit-Log proxy + All Time/12M/YTD toggle on the
   right) is laid out as one row for a full-width band, so at 340px the
   title wrapped to four lines and the right-side controls ran off the
   edge entirely. Stack it into two rows instead. */
.rq-mnt-analytics>div:first-child{flex-direction:column!important;align-items:flex-start!important;gap:10px!important}
.rq-mnt-analytics>div:first-child>div:last-child{width:100%!important;justify-content:flex-start!important;flex-wrap:wrap!important}

/* v2.13.5.75 - Quality Assurance page: same sidebar-analytics treatment as
   Maintenance Logs, but the analytics rail itself doesn't exist in the QA
   page's React tree at all (unlike Maintenance, QA never had this panel) -
   enhanceQaSidebar() in index.js builds and injects a plain DOM node for it
   (never React-rendered, so nothing here needs to worry about a re-render
   replacing it) and tags the existing header/filters/table the same way it
   tags Maintenance's. Distinct class names so this never interacts with the
   Maintenance rules above even though the page-hash guards already keep
   them apart. */
.rq-qa-sidebar{display:grid!important;grid-template-columns:minmax(0,3fr) minmax(300px,1fr)!important;column-gap:20px!important;row-gap:16px!important;align-items:start!important}
.rq-qa-sidebar>*{margin-top:0!important;min-width:0!important}
.rq-qa-sidebar>.rq-qa-head{grid-column:1/-1!important;grid-row:1!important;width:100%!important}
.rq-qa-sidebar>.rq-qa-filters{grid-column:1/-1!important;grid-row:2!important;width:100%!important}
.rq-qa-sidebar>.rq-qa-table{grid-column:1!important;grid-row:3!important;width:calc(100% - 14px)!important;max-width:calc(100% - 14px)!important;min-width:0!important;box-sizing:border-box!important}
.rq-qa-sidebar>.rq-qa-analytics{grid-column:2!important;grid-row:3!important;position:sticky!important;top:16px!important;align-self:start!important;max-height:calc(100vh - 32px)!important;overflow-y:auto!important;background:#fff;border:1px solid var(--rq-line);border-radius:14px;overflow:hidden;box-shadow:var(--rq-shadow-2);width:100%!important}
@media (max-width:1100px){
  .rq-qa-sidebar{grid-template-columns:1fr!important}
  .rq-qa-sidebar>.rq-qa-table{width:100%!important;max-width:100%!important}
  .rq-qa-sidebar>.rq-qa-analytics{grid-column:1!important;grid-row:auto!important;position:static!important;top:auto!important;max-height:none!important;overflow-y:visible!important}
}
.rq-qa-analytics-header{flex-direction:column!important;align-items:stretch!important}
.rq-qa-range{display:flex!important;align-items:center!important;gap:2px!important;width:100%!important;padding:3px!important;background:#1e293b!important;border:1px solid #334155!important;border-radius:10px!important;box-sizing:border-box!important}
.rq-qa-range-button{flex:1 1 0!important;min-width:0!important;padding:7px 5px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:#94a3b8!important;font:600 11px/1.2 system-ui,-apple-system,'Segoe UI',sans-serif!important;white-space:nowrap!important;cursor:pointer!important}
.rq-qa-range-button:hover{color:#fff!important}
.rq-qa-range-button.is-active{background:#4f46e5!important;color:#fff!important;box-shadow:0 1px 2px rgba(0,0,0,.18)!important}
@media(max-width:1100px){.rq-mnt-sidebar>.rq-mnt-table{width:100%!important;max-width:100%!important}}

/* v2.13.5.64 - Certified Inspectors and Master Activity Log, opened from
   Settings, now sit inline under the shared "Settings" dark bar and tab
   strip (.rq-settings-inline-shell) instead of floating as a centered
   pop-up over User Directory. Both their native modals get a
   ".rq-inline-native" marker class (see enhanceInlineSettingsTarget() in
   index.js) that strips the full-screen fixed backdrop down to a plain
   block sitting in the page's own flow. */
.rq-settings-inline-shell{margin-bottom:24px!important}
#rq-inspector-modal.rq-inline-native{position:static!important;inset:auto!important;background:transparent!important;backdrop-filter:none!important;padding:0!important;display:block!important}
.fixed.rq-inline-native{position:static!important;inset:auto!important;background:transparent!important;backdrop-filter:none!important;padding:0!important;display:block!important}
.fixed.rq-inline-native>div{max-width:none!important;width:100%!important}
/* v2.13.5.67 - Certified Inspectors' own modal card is normally capped at
   920px (a sensible width for a centered pop-up) - inline, under the
   shared Settings bar, that left it much narrower than every other
   Settings tab (QA Log Settings' protocol table, User Directory's own
   list), which all fill the available width. Uncapped here so it matches;
   its own "Certified Inspectors" title/subtitle/Close row is redundant
   once inline (the shared Settings bar above already says where you are)
   and gets hidden by index.js (enhanceInlineCertifiedInspectors), same
   treatment as User Directory's own duplicate header. */
#rq-inspector-modal.rq-inline-native .card{width:100%!important;max-width:none!important;box-shadow:none!important;border-radius:0!important;padding:0!important}
#rq-inspector-modal.rq-inline-native .rq-ins-titlerow{display:none!important}
/* A visible divider under every Settings tab strip, separating the tabs
   from whatever tab's content sits below them. */
.rq-settings-tabs,.rq-email-settings-tabs{border-bottom:1px solid #e2e8f0!important;padding-bottom:12px!important;margin-bottom:16px!important}
/* v2.13.5.68 - User Directory's own native table (a real <table>, unlike
   Certified Inspectors' hand-built row list) already matches Certified
   Inspectors' layout closely - uppercase gray header row, divided rows,
   row hover - it's built from the same Tailwind list-page pattern as
   Personnel Directory. The one visible mismatch was its avatar circles
   (plain gray, .rounded-full.bg-slate-100.text-slate-700) versus Certified
   Inspectors' new indigo ones (.rq-ins-avatar) - recolored here to match,
   scoped to just this table (.rq-user-directory-content, set in index.js)
   so Personnel/Equipment/other pages sharing the same avatar classes
   elsewhere in the app are untouched. */
.rq-user-directory-content .rounded-full.bg-slate-100.text-slate-700{background:#eef2ff!important;color:#4338ca!important;border-color:#e0e7ff!important}
/* v2.13.5.69/70 - joinListPanel() (index.js) merges the filter card and the
   table card into one continuous card by setting a few inline styles once,
   but the table card here gets recreated by React often enough (any
   status/role change, approve/revoke) that a fresh copy - without those
   inline styles - was verified live to be what's actually on screen most
   of the time, leaving a visible gap and a second border between the
   filter row and the table. A stylesheet rule doesn't have that problem -
   it's still there after React swaps the element - so the merge is
   guaranteed here too, keyed off the marker classes index.js now adds to
   both cards specifically for User Directory (other panelized list pages
   keep relying on joinListPanel() alone, unchanged).
   v2.13.5.70 - the v69 version above only zeroed the shared corner between
   the two cards, but the filter card kept its own full border/shadow/
   radius on its other three sides, so it still read as a separate boxed
   panel sitting on top of the table - unlike Certified Inspectors, whose
   own card (see the width-cap rule above) has no border/shadow/radius at
   all. Stripped those out here too so both cards are fully flat and read
   as one continuous surface, same as Certified Inspectors.
   v2.13.5.71 - the single-class .rq-user-directory-filter selector above
   never actually won: this same element also matches .rq-panel.rq-unified
   (rule elsewhere in this file, giving every panelized list page its
   border/shadow/radius), which - carrying two classes - has HIGHER CSS
   specificity than a single-class selector, so it kept its border and
   shadow regardless of !important or which rule came later in the file.
   Verified live via getComputedStyle() showing the border was still
   applied even with this rule present. Chaining all three of the
   element's own classes here gives this selector higher specificity than
   .rq-panel.rq-unified, so it actually wins. */
.rq-panel.rq-unified.rq-user-directory-filter{border:0!important;box-shadow:none!important;border-radius:0!important;margin-bottom:0!important}
/* v2.13.5.89 - this only ever reset margin-TOP, border and border-radius -
   never margin-left/right or width. .rq-user-directory-content also carries
   the generic .rq-unified-content class (shared with Facilities/Equipment/
   Personnel's own bordered "unified" table look), whose own rule
   (.rq-unified-content further down this file) sets margin:20px 24px 24px
   and width:calc(100% - 48px) - same specificity (one class each), and
   since that rule comes BEFORE this one in the file, this rule's properties
   win, but margin-left/right/width were never among them, so the table sat
   24px narrower on each side than the filter bar and header above it. That
   is the "different width than QA Protocols" bug reported live - verified
   via getComputedStyle() showing marginLeft/marginRight:24px and
   width:calc(100% - 48px) still in effect here. Explicitly reset every side
   and the width now, so it's flush and full-width like every other part of
   this tab. */
.rq-user-directory-content{margin:0!important;width:100%!important;max-width:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;box-sizing:border-box!important}

/* v2.13.5.89 - User Directory: the shell/filter "continuous surface" rules
   below (originally added in v2.13.5.79/81, further down in v2.13.5.83) all
   used "+"/"~" sibling combinators or :has(+ ...), assuming
   .rq-user-directory-filter is a true DOM sibling of .rq-settings-inline-shell
   under <main>. Verified live this is false - exactly the same bug already
   found and fixed for Master Activity Log further down this file:
   .rq-user-directory-filter is nested one level deeper, inside the #/users
   page's own "space-y-6" content wrapper, never a direct sibling of the
   shell. Every rule below silently matched nothing; measured live a real
   24px gap between the shell's bottom and the filter's top (exactly the
   filter's own un-overridden margin-bottom). Rescoped to
   main.rq-settings-unified-directory (the class ensureInlineSettingsShell()
   in index.js already toggles onto <main> while this tab is active), plain
   descendant selectors that match regardless of DOM depth - the same fix
   already verified live for Master Activity Log. */
main.rq-settings-unified-directory .rq-settings-inline-shell{
  margin-bottom:0!important;
  border-bottom-left-radius:0!important;
  border-bottom-right-radius:0!important;
  box-shadow:none!important;
}
main.rq-settings-unified-directory .rq-user-directory-filter{
  margin-top:0!important;
  border-top:0!important;
  border-left:1px solid var(--rq-line)!important;
  border-right:1px solid var(--rq-line)!important;
  border-bottom:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
body.rq-activity-inline-pending .fixed:has(.rq2132-title){
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body.rq-activity-inline-pending .fixed.rq-inline-native:has(.rq2132-title),
.fixed.rq-inline-native:has(.rq2132-title){
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.fixed.rq-inline-native .rq2132-header:has(.rq2132-title){
  display:none!important;
}

/* v2.13.5.83 – User Directory: make the React-owned filter section visually
   continuous with the shared Settings tabs, matching QA Log Settings. The
   generic .rq-panel rule adds a 20px top margin to the first child after the
   hidden native header; that margin was the visible white gap below the tabs.
   v2.13.5.89: rescoped to main.rq-settings-unified-directory - see the
   explanatory comment above (same sibling-combinator bug, same fix). The
   background/margin-top declarations these two rules set are already
   covered by the main.rq-settings-unified-directory .rq-user-directory-filter
   rule above, so only the nested .rq-panel-head+* margin reset is still
   needed here. */
main.rq-settings-unified-directory .rq-user-directory-filter>.rq-panel-head+*{
  margin-top:0!important;
}

/* v2.13.5.83 – Master Activity Log: hide the React modal at the exact moment
   it is mounted while the Settings tab is being converted from the native
   popup into the inline Settings panel. The previous guard only matched the
   enhanced .rq2132 title, which is added after React has already painted the
   native modal once, causing a brief popup flash. This targets the native
   React backdrop itself while the activity tab is pending. */
body.rq-activity-inline-pending .fixed.inset-0[class*="bg-slate-900/60"]{
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}


/* v2.13.5.83 – Master Activity Log: absolutely no native fixed popup while
   React mounts the audit log for the Settings tab. The native backdrop's
   Tailwind class list varies between builds, so the previous selector that
   required a particular bg-slate class was not reliable. Hide every full-
   viewport overlay (.fixed.inset-0 - a reliable modal-backdrop signature,
   unlike a specific bg-slate class) only during the short pending conversion
   window; once the real audit panel is marked .rq-inline-native, it is
   explicitly made visible below.
   v2.13.5.88 fix: this used to be a bare ".fixed:not(.rq-inline-native)"
   with no ".inset-0" requirement, matching ANY position:fixed element on the
   page by class name alone - including the app's own left sidebar nav
   (class="fixed inset-y-0 left-0 ... lg:static ..."), which is a real,
   unrelated ".fixed" element. That hid the entire sidebar for the ~1s
   pending window every time Master Activity Log was opened - visible live
   as "the whole screen breaks and comes back a second later". The sidebar
   only pins vertically (inset-y-0 left-0), never inset-0, so requiring
   .inset-0 here keeps hiding real full-screen backdrops while leaving it
   alone. */
body.rq-activity-inline-pending .fixed.inset-0:not(.rq-inline-native){
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body.rq-activity-inline-pending .fixed.rq-inline-native{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}

/* v2.13.5.89 - User Directory / Master Activity Log: the "unified" mechanism
   added in v2.13.5.86/87 tried to make <main> itself become the card (forcing
   its own padding/border to 0/1px), while a SEPARATE, later :has()-based
   mechanism did the same thing again with different width math for the
   filter/content underneath (calc(100% - 40px) with 20px margins vs 0
   margins on the first attempt). The two conflicted - which one actually
   won depended on selector specificity, not on how QA Protocols itself is
   laid out - and that's what produced "different width than QA Protocols".
   Replaced both with the same approach QA Protocols (and User Directory
   itself, before v2.13.5.86) already uses successfully: leave <main>'s own
   padding alone and let the shell/filter/content stay normal full-width
   children of it, like every other page - matching widths for free, with
   no explicit width math anywhere. Verified live: shell and content both
   measure the same x/width as QA Protocols' own panel at every size. */
main.rq-settings-unified-directory .rq-user-directory-content{
  margin-top:0!important;
}

/* Master Activity Log: bring the native audit-log dialog into normal page
   flow (instead of a fixed, centered popup) and strip its own card chrome
   so it reads as a direct continuation of the shared Settings shell above
   it - the same "one continuous surface" treatment User Directory's filter
   card gets above (lines ~585-622).
   v2.13.5.89 fix: this first used the same "~" sibling-combinator scoping as
   the User Directory rule above it, copying that working pattern - but
   verified live that the audit dialog's backdrop is NOT actually a sibling
   of .rq-settings-inline-shell in the DOM (its parent is the #/users page's
   own "space-y-6" content wrapper, nested a level deeper), so every "~"
   rule here silently matched nothing and never took effect. Rescoped to
   main.rq-settings-unified-activity (a class already toggled onto <main>
   itself by ensureInlineSettingsShell() in index.js for exactly this tab) -
   an ordinary descendant selector, so it matches regardless of how deep the
   dialog actually sits. Verified live: shell and dialog now merge into one
   continuous card with no gap, same width as QA Protocols. */
main.rq-settings-unified-activity .rq-settings-inline-shell{
  margin-bottom:0!important;
  border-bottom-left-radius:0!important;
  border-bottom-right-radius:0!important;
}
.fixed.rq-inline-native{background:#fff!important}
main.rq-settings-unified-activity .fixed.rq-inline-native{
  margin-top:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  width:100%!important;
}
main.rq-settings-unified-activity .fixed.rq-inline-native > div{
  width:100%!important;
  max-width:none!important;
  max-height:none!important;
  height:auto!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  background:#fff!important;
}
/* The dialog's own native dark title bar ("System Activity & Audit Log") is
   redundant once inline - the shared Settings bar above already says where
   you are, same reasoning as every other Settings tab. */
main.rq-settings-unified-activity .fixed.rq-inline-native .bg-slate-900{
  display:none!important;
}
main.rq-settings-unified-activity .fixed.rq-inline-native .bg-slate-50.border-b,
main.rq-settings-unified-activity .fixed.rq-inline-native .bg-white.border-b{
  margin:0 20px!important;
  border:0!important;
  background:#fff!important;
}
main.rq-settings-unified-activity .fixed.rq-inline-native .overflow-y-auto{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  margin:0 20px 24px!important;
  padding:20px 0!important;
  background:#fff!important;
}

/* v2.13.5.89 - Master Activity Log: the search box used to stretch to fill
   almost the whole filters row (the native input has no width cap of its
   own) - unlike User Directory's, which is capped at 340px. Capped this one
   the same way, via the .rq-activity-search-inline marker class
   enhanceInlineMasterActivityLog() now adds (index.js) to the search
   input's own row-cell, so the two tabs' search boxes match. */
.rq-activity-search-inline{
  flex:0 0 auto!important;
  width:340px!important;
  max-width:340px!important;
  min-width:260px!important;
}
.rq-activity-search-inline input{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

/* v2.13.5.87 - User Directory: compact single-row filters, matching the QA
   Protocols visual rhythm. Search sits immediately after Role and before
   Refresh/Invite, at a fixed width instead of a full-width row above the
   filters. Scoped directly to the marker classes alignUserDirectorySearch()/
   addInviteUserFilterButton() add (index.js) - both only ever exist while
   User Directory is the active Settings tab, so no <main>-level scoping is
   needed (v2.13.5.89: dropped the "main:has(...)" prefix these used to
   carry, part of the same conflicting mechanism removed above). */
.rq-user-filters-inline{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:12px!important;
  width:100%!important;
  margin:0!important;
  padding:14px 0!important;
  box-sizing:border-box!important;
}
/* v2.13.5.91 - the "margin:0!important" above never actually won: a much
   earlier, generic rule - ".rq-panel.rq-unified>*:not(.rq-panel-head)"
   (3 classes, used to give every "unified list page" filter card's direct
   children a 24px horizontal inset now that the panel's own padding is
   zeroed for the flush/merged look) - has higher CSS specificity (3 classes
   vs. this rule's 1), so its margin-left/right:24px!important always won
   over this one regardless of file order. Confirmed live: the filters row
   sat exactly 24px into the card on the left and, since it was ALSO forced
   to width:100% (100% of the card's now-padding-less full width, with the
   24px margin added on top rather than subtracted from it), overflowed
   24px past the card's right edge - pushing "+ Invite User" half outside
   the card, which is what showed up as broken/different from QA Protocols.
   This selector matches the same element with one more class than the
   generic rule (4 vs. 3), so it wins for real. */
.rq-panel.rq-unified.rq-user-directory-filter>.rq-user-filters-inline{
  margin-left:0!important;
  margin-right:0!important;
}
.rq-user-filters-inline > *{
  flex:0 0 auto!important;
  margin:0!important;
}
.rq-user-filters-inline .rq-user-search-inline{
  order:3!important;
  width:340px!important;
  max-width:340px!important;
  min-width:260px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  box-sizing:border-box!important;
}

/* v2.13.5.92 - Settings tabs share the QA Protocols single-panel rhythm. */
.rq-settings-page{overflow:hidden!important}
.rq-settings-page>.rq-settings-body{padding:20px!important;background:#fff!important}
.rq-settings-filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:0}
.rq-settings-filter-row select,.rq-settings-filter-row input{height:38px;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:0 10px;color:#0f172a;font:12px system-ui,-apple-system,'Segoe UI',sans-serif}
.rq-settings-filter-row select{min-width:145px}
.rq-settings-filter-row input[type=search]{width:340px;max-width:100%;min-width:220px}
.rq-settings-primary,.rq-settings-secondary{height:38px;border-radius:8px;padding:0 14px;font:700 12px system-ui,-apple-system,'Segoe UI',sans-serif;cursor:pointer;white-space:nowrap}
.rq-settings-primary{border:0;background:#4f46e5;color:#fff}
.rq-settings-secondary{border:1px solid #cbd5e1;background:#fff;color:#334155}
.rq-sd-invite,.rq-ma-export{margin-left:auto}
.rq-settings-data-table{width:100%;border:1px solid #e2e8f0;border-radius:12px;overflow:auto}
.rq-settings-data-head,.rq-settings-data-row{display:grid;grid-template-columns:minmax(150px,1.35fr) minmax(95px,.65fr) minmax(100px,.7fr) minmax(120px,.9fr) minmax(220px,1.5fr);gap:12px;align-items:center;min-width:850px}
.rq-settings-data-head{padding:10px 16px;background:#f8fafc;border-bottom:1.5px solid #94a3b8;color:#64748b;font:800 10px/1 system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:.06em;text-transform:uppercase}
.rq-sh-list .rq-settings-data-head,.rq-sh-list .rq-settings-data-row{grid-template-columns:minmax(150px,1.1fr) minmax(220px,2fr) minmax(100px,.7fr) minmax(150px,1fr);min-width:700px}
.rq-settings-data-row{padding:12px 16px;border-bottom:1px solid #eef2f7;color:#334155;font:13px system-ui,-apple-system,'Segoe UI',sans-serif}
.rq-settings-data-row:last-child{border-bottom:0}
.rq-settings-data-row b{display:block;color:#0f172a;font-weight:700}
.rq-settings-data-row small{display:block;margin-top:3px;color:#64748b;font-size:11px}
.rq-settings-data-row button,.rq-settings-data-row select{border:1px solid #cbd5e1;border-radius:7px;background:#fff;padding:6px 8px;color:#334155;font:700 10px system-ui,-apple-system,'Segoe UI',sans-serif;cursor:pointer}
.rq-sd-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.rq-sd-self{color:#64748b;font-size:10px;font-weight:700;white-space:nowrap}
.rq-settings-empty{padding:28px 16px;text-align:center;color:#94a3b8;font-size:13px}
.rq-sd-message,.rq-sh-message,.rq-ma-message{margin:0 0 10px;color:#64748b;font-size:12px}
@media(max-width:760px){.rq-settings-page>.rq-settings-body{padding:14px!important}.rq-settings-filter-row input[type=search]{width:100%;min-width:0;flex:1 1 100%}.rq-settings-data-table{overflow-x:auto}}
.rq-settings-page .rq-settings-tabs{border-bottom:1px solid #e2e8f0!important;padding-bottom:12px!important;margin-bottom:0!important}
.rq-filter-control,.rq-panel.rq-unified .rq-filters-row select,.rq-settings-filter-row select{height:38px!important;min-height:38px!important;box-sizing:border-box!important;border:1px solid #cbd5e1!important;border-radius:8px!important;background:#fff!important;padding:0 12px!important;color:#334155!important;font:500 12px/1.2 system-ui,-apple-system,'Segoe UI',sans-serif!important}
.rq-search-cell{position:relative!important;display:block!important;flex:0 1 340px!important;width:340px!important;max-width:100%!important;min-width:220px!important;box-sizing:border-box!important}
.rq-search-cell::before{content:"Search"!important;position:absolute!important;left:12px!important;top:50%!important;transform:translateY(-50%)!important;z-index:2!important;color:#475569!important;font:700 12px/1 system-ui,-apple-system,'Segoe UI',sans-serif!important;pointer-events:none!important;white-space:nowrap!important}
.rq-invoice-field.rq-search-cell>span:not(.rq-search-prefix){display:none!important}
.rq-search-cell>svg{display:none!important}
.rq-search-cell input[placeholder]{display:block!important;width:100%!important;max-width:none!important;height:38px!important;min-height:38px!important;box-sizing:border-box!important;border:1px solid #cbd5e1!important;border-radius:8px!important;background:#fff!important;padding:0 12px 0 62px!important;color:#334155!important;font:400 12px/1.2 system-ui,-apple-system,'Segoe UI',sans-serif!important;box-shadow:none!important}
.rq-search-cell input[placeholder]::placeholder{color:#94a3b8!important;font-weight:500!important;opacity:1!important}
.rq-panel.rq-unified.rq-search-below{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;gap:12px!important}
.rq-panel.rq-unified.rq-search-below>.rq-panel-head{flex:0 0 100%!important}
.rq-panel.rq-unified.rq-search-below>.rq-filters-row{order:1!important;display:flex!important;flex:0 1 auto!important;flex-wrap:nowrap!important;align-items:center!important;gap:10px!important;width:auto!important;max-width:100%!important;margin:20px 0 12px 24px!important}
.rq-panel.rq-unified.rq-search-below>.rq-search-row{order:2!important;display:flex!important;flex:0 1 340px!important;align-items:center!important;width:auto!important;min-width:220px!important;max-width:calc(100% - 48px)!important;margin:20px 24px 12px 0!important;padding:0!important;border:0!important;box-sizing:border-box!important}
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-filters-row{margin-bottom:12px!important}
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-search-row{flex:0 1 340px!important;min-width:220px!important;flex-direction:row!important;gap:0!important;margin:20px 24px 12px 0!important}
.rq-panel.rq-unified.rq-search-below .rq-facility-search-label{display:none!important}
/* Keep Export List at the end of its filter toolbar while leaving the same
   24px inset from the panel edge. Grow the Search row into available space on
   Maintenance, QA, and Personnel instead of leaving the action stranded. */
.rq-panel.rq-unified.rq-search-below.rq-has-export-list:not(.rq-facility-search-inline):not(.rq-equipment-filter-layout)>.rq-search-row{flex:1 1 420px!important;min-width:220px!important;width:auto!important;max-width:calc(100% - 48px)!important}
.rq-panel.rq-unified.rq-search-below.rq-has-export-list:not(.rq-facility-search-inline):not(.rq-equipment-filter-layout)>.rq-search-row>.rq-search-cell{flex:1 1 auto!important;width:auto!important;min-width:180px!important;max-width:none!important}
.rq-panel.rq-unified.rq-search-below.rq-has-export-list:not(.rq-facility-search-inline):not(.rq-equipment-filter-layout)>.rq-search-row>.rq-export-list-wrap{margin-left:auto!important;margin-right:0!important}
/* Facilities renders Export List as a separate child in its inline filter row. */
.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline.rq-has-export-list>.rq-filters-row.rq-export-list-wrap{order:3!important;flex:0 0 auto!important;margin-left:auto!important;margin-right:24px!important}
@media(max-width:900px){.rq-panel.rq-unified.rq-search-below>.rq-filters-row{flex:1 1 100%!important;flex-wrap:wrap!important;margin:14px 12px 0!important}.rq-panel.rq-unified.rq-search-below>.rq-search-row{flex:1 1 100%!important;width:auto!important;max-width:none!important;margin:0 12px 14px!important}.rq-panel.rq-unified.rq-search-below.rq-facility-search-inline>.rq-search-row{margin:0 12px 14px!important}.rq-search-cell{width:100%!important;min-width:0!important;flex-basis:100%!important}}
.rq-settings-filter-row>.rq-search-cell{flex:0 1 340px!important;width:340px!important}
@media(max-width:760px){.rq-settings-filter-row>.rq-search-cell{flex:1 1 100%!important;width:100%!important;min-width:0!important}}
.rq-panel.rq-unified.rq-search-below>.rq-filters-row input:not([type=checkbox]):not([type=radio]){height:38px!important;min-height:38px!important;box-sizing:border-box!important;border:1px solid #cbd5e1!important;border-radius:8px!important;background:#fff!important;color:#334155!important;font:500 12px/1.2 system-ui,-apple-system,'Segoe UI',sans-serif!important}
.rq-global-invoices-filters{display:grid!important;grid-template-columns:minmax(160px,1.2fr) repeat(3,minmax(120px,.85fr)) minmax(280px,1.8fr) auto!important;align-items:end!important;gap:12px!important}
.rq-global-invoices-filter-grid,.rq-global-search-row{display:contents!important}
.rq-global-invoices-filter-grid>.rq-gload{grid-column:6!important;grid-row:1!important}
.rq-global-invoices-filters .rq-global-search{grid-column:5!important;grid-row:1!important;width:100%!important;max-width:none!important;margin:0!important}
.rq-global-invoices-filters .rq-search-cell{width:100%!important;max-width:none!important;min-width:0!important;flex:1 1 auto!important}

/* Equipment filters share one compact row with Search and the actions. Hide
   the redundant captions above the selects and let every cell shrink inside
   the panel instead of pushing the export action past its right edge. */
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)!important;align-items:center!important;gap:12px!important;min-width:0!important;box-sizing:border-box!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-panel-head{grid-column:1/-1!important;min-width:0!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row{display:flex!important;flex:initial!important;flex-wrap:nowrap!important;align-items:center!important;gap:10px!important;min-width:0!important;width:100%!important;max-width:100%!important;margin:0!important;box-sizing:border-box!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row>div{display:flex!important;flex:1 1 0!important;flex-direction:column!important;justify-content:center!important;min-width:0!important;width:auto!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row>div>label{display:none!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row select{width:100%!important;min-width:0!important;max-width:100%!important;height:38px!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row>button{flex:0 1 auto!important;min-width:0!important;white-space:nowrap!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row{display:flex!important;flex:initial!important;align-items:center!important;gap:10px!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important;border:0!important;box-sizing:border-box!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row>.rq-search-cell{flex:1 1 180px!important;width:auto!important;min-width:0!important;max-width:100%!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row>div:last-child{display:flex!important;flex:0 1 auto!important;flex-wrap:wrap!important;justify-content:flex-end!important;align-items:center!important;gap:8px!important;width:auto!important;min-width:0!important;max-width:100%!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row button,
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row a{max-width:100%!important;white-space:nowrap!important}
@media(max-width:1050px){.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout{grid-template-columns:minmax(0,1fr)!important}.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-panel-head{grid-column:1!important}.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row{flex-wrap:wrap!important}.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row>div{flex:1 1 180px!important}.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row{flex-wrap:wrap!important}.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row>.rq-search-cell{flex:1 1 240px!important}}
@media(max-width:560px){.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row>div{flex:1 1 100%!important}.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row>div:last-child{justify-content:flex-start!important}}

/* Filter captions are redundant above the controls throughout the app.
   Scope this to list filter rows so labels in forms and dialogs stay visible. */
.rq-panel.rq-unified.rq-search-below>.rq-filters-row label,
.rq-panel.rq-unified.rq-search-below>.rq-filters-row .rq-filter-label{display:none!important}
.rq-panel.rq-unified.rq-search-below>.rq-facility-filter-groups>div>span{display:none!important}
.rq-certified-inspector-native-value{display:none!important}
.rq-global-invoices-filters .rq-invoice-field input,.rq-global-invoices-filters .rq-invoice-field select,.rq-invoice-toolbar .rq-invoice-field input,.rq-invoice-toolbar .rq-invoice-field select{height:38px!important;min-height:38px!important;border:1px solid #cbd5e1!important;border-radius:8px!important;background:#fff!important;padding:0 12px!important;color:#334155!important;font:500 12px/1.2 system-ui,-apple-system,'Segoe UI',sans-serif!important}
.rq-invoice-toolbar{flex-wrap:nowrap!important;overflow-x:auto!important;align-items:end!important;scrollbar-width:thin}
.rq-invoice-toolbar>.rq-invoice-field,.rq-invoice-toolbar>.rq-invoice-field.rq-search-cell{flex:0 0 auto!important}
@media(max-width:1100px){.rq-global-invoices-filters{display:block!important}.rq-global-invoices-filter-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.rq-global-search-row{display:block!important;margin:12px 0 0!important;padding:0!important;border:0!important}.rq-global-invoices-filters .rq-global-search{display:block!important}.rq-global-invoices-filter-grid>.rq-gload{grid-column:auto!important;grid-row:auto!important}}
@media(max-width:640px){.rq-global-invoices-filter-grid{grid-template-columns:1fr!important}.rq-global-invoices-filters{padding-left:12px!important;padding-right:12px!important}}
.rq-user-search-inline .relative{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.rq-user-search-inline input{
  width:100%!important;
  max-width:none!important;
  height:38px!important;
  box-sizing:border-box!important;
  margin:0!important;
}
.rq-user-filters-inline .rq-invite-user-btn{
  order:5!important;
  margin-left:auto!important;
}
.rq-user-filters-inline button:not(.rq-invite-user-btn){
  order:4!important;
}
@media(max-width:900px){
  .rq-user-filters-inline .rq-user-search-inline{
    flex:1 1 260px!important;
    width:auto!important;
    max-width:none!important;
  }
}
@media(max-width:640px){
  .rq-user-filters-inline{
    align-items:stretch!important;
  }
  .rq-user-filters-inline .rq-user-search-inline{
    flex:1 1 100%!important;
    width:100%!important;
    max-width:none!important;
    order:5!important;
  }
  .rq-user-filters-inline .rq-invite-user-btn{
    margin-left:0!important;
  }
}

/* v2.14.0 – keep the same clear space below Equipment Directory filters as
   the Personnel Directory panel. */
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout{padding-bottom:20px!important}

/* v2.14.0 – inset Equipment Directory controls from the panel edges and
   give the Status filter a little less width than the other filters. */
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row,
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row{width:calc(100% - 40px)!important;max-width:calc(100% - 40px)!important;margin-left:20px!important;margin-right:20px!important}
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row>div:nth-of-type(3){flex:.72 1 0!important}
@media(max-width:560px){.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-filters-row,
.rq-panel.rq-unified.rq-search-below.rq-equipment-filter-layout>.rq-search-row{width:calc(100% - 24px)!important;max-width:calc(100% - 24px)!important;margin-left:12px!important;margin-right:12px!important}}

/* v2.14.5 – keep the QR badge's native close control clickable when the
   shared header replaces its original title bar. */
.rq-qr-badge-generator .rq-qr-badge-close{display:inline-flex!important;position:relative!important;z-index:10001!important;pointer-events:auto!important}

.rq-sd-actions button[data-action="delete"]{color:#b91c1c;border-color:#fecaca;background:#fff}
.rq-sd-actions button[data-action="delete"]:hover{color:#991b1b;border-color:#f87171;background:#fef2f2}

/* v2.14.26 dashboard mockup implementation */
.rq-dashboard-page{display:flex;flex-direction:column;gap:16px;padding-bottom:24px}
.rq-dashboard-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.rq-dashboard-heading h1{margin:0;color:#0f172a;font-size:24px;font-weight:800;letter-spacing:-.03em}
.rq-dashboard-heading p{margin:2px 0 0;color:#64748b;font-size:12px}
.rq-dashboard-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rq-dashboard-tools select,.rq-dashboard-tools button{height:38px;border:1px solid #dbe3ef;border-radius:9px;background:#fff;color:#172554;padding:0 12px;font-size:11px;font-weight:700;box-shadow:0 1px 2px #0f172a0d}
.rq-dashboard-tools button{border-color:#4f46e5;background:#4f46e5;color:#fff;cursor:pointer}
.rq-dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rq-dash-metric{min-height:90px;display:flex;align-items:center;gap:14px;padding:14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;text-align:left;box-shadow:0 1px 3px #0f172a0d;cursor:pointer}
.rq-dash-metric-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-size:22px;font-weight:800;background:#ecfdf5;color:#059669}
.rq-dash-metric.is-red .rq-dash-metric-icon{background:#fff1f2;color:#e11d48}.rq-dash-metric.is-orange .rq-dash-metric-icon{background:#fff7ed;color:#ea580c}.rq-dash-metric.is-purple .rq-dash-metric-icon{background:#eef2ff;color:#4f46e5}
.rq-dash-metric-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.rq-dash-metric-copy strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#172554}.rq-dash-metric-copy small{font-size:10px;color:#7183a5}.rq-dash-metric-copy b{font-size:26px;line-height:1.1;color:#0f172a;margin-top:3px}.rq-dash-metric.is-red .rq-dash-metric-copy b{color:#e11d48}.rq-dash-metric.is-orange .rq-dash-metric-copy b{color:#ea580c}.rq-dash-metric.is-purple .rq-dash-metric-copy b{color:#4f46e5}.rq-dash-chevron{margin-left:auto;color:#6680b5;font-size:22px;line-height:1}
.rq-dashboard-primary,.rq-dashboard-secondary{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:16px;align-items:stretch}
.rq-dashboard-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}
.rq-dash-panel{min-width:0;min-height:280px;display:flex;flex-direction:column}
.rq-dash-panel-head{min-height:54px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e8edf5;background:#f8fafc}
.rq-dash-title{margin:0;display:flex;align-items:center;gap:9px;color:#172554;font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;line-height:1.2}
.rq-dash-icon{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 22px;color:#4f46e5;font-size:18px}
.rq-dash-subtitle{margin:3px 0 0 31px;color:#7183a5;font-size:10px;line-height:1.35}
.rq-dash-link{padding:5px 2px;border:0;background:transparent;color:#4f46e5;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}
.rq-attention-panel{min-height:340px}.rq-attention-controls{display:flex;align-items:center;gap:8px;min-width:0}
.rq-dash-filters{display:flex;align-items:center;gap:4px;white-space:nowrap}
.rq-dash-filter{height:22px;padding:0 8px;border:1px solid #dbe3ef;border-radius:7px;background:#fff;color:#64748b;font-size:9px;font-weight:700;cursor:pointer}
.rq-dash-filter.is-active{background:#4f46e5;border-color:#4f46e5;color:white}
.rq-dash-table-head,.rq-attention-row{display:grid;grid-template-columns:minmax(115px,1.2fr) minmax(92px,.9fr) minmax(110px,1.1fr) 76px minmax(88px,.85fr) 10px;gap:8px;align-items:center}
.rq-dash-table-head{min-height:30px;padding:0 14px;background:#f1f5f9;color:#7183a5;font-size:8px;font-weight:800;letter-spacing:.06em}
.rq-dash-scroll{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.rq-attention-list{max-height:220px;min-height:0}
.rq-attention-row{min-height:52px;padding:6px 14px;border-bottom:1px solid #edf1f6;color:#172554;font-size:9px;cursor:pointer}
.rq-attention-row:hover,.rq-todo-item:hover,.rq-activity-row:hover{background:#f8fafc}
.rq-attention-row b,.rq-attention-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rq-attention-row b{font-size:9px;font-weight:700}.rq-attention-row small{margin-top:2px;color:#7183a5;font-size:8px}
.rq-dash-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:6px;font-size:8px;font-weight:800;letter-spacing:.04em;white-space:nowrap;background:#fff7ed;color:#c2410c}
.rq-dash-badge.is-overdue{background:#ffe4e6;color:#be123c}.rq-dash-badge.is-passed{background:#ecfdf5;border:1px solid #bbf7d0;color:#047857}
.rq-license-panel{min-height:340px}.rq-license-list{padding:12px;max-height:270px}.rq-license-item{padding:12px;margin-bottom:8px;border:1px solid #fde68a;border-radius:9px;background:#fffbeb;color:#713f12}.rq-license-top,.rq-license-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.rq-license-top b,.rq-license-top small{display:block}.rq-license-top b{font-size:11px}.rq-license-top small,.rq-license-bottom small{font-size:9px;color:#64748b}.rq-license-bottom{margin-top:9px;padding-top:8px;border-top:1px solid #f3e8c0}.rq-license-bottom b{font-size:9px;color:#c2410c}
.rq-todo-panel,.rq-status-panel{height:310px}.rq-todo-list{padding:10px;max-height:245px}.rq-todo-item{padding:10px 8px;border-bottom:1px solid #e8edf5;cursor:pointer}.rq-todo-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.rq-todo-top b,.rq-todo-top small{display:block}.rq-todo-top b{font-size:10px;color:#172554}.rq-todo-top small{margin-top:3px;color:#7183a5;font-size:8px}.rq-todo-missing{display:flex;align-items:center;gap:7px;margin-top:8px;padding-top:7px;border-top:1px solid #edf1f6;color:#475569;font-size:9px;font-weight:650}.rq-todo-missing span{width:7px;height:7px;border-radius:50%;background:#f59e0b;flex:0 0 7px}.rq-dash-count{padding:4px 8px;border-radius:12px;background:#e0e7ff;color:#4338ca;font-size:8px;font-weight:800;white-space:nowrap}
.rq-status-content{display:flex;align-items:center;justify-content:center;gap:26px;flex:1;padding:16px}.rq-status-chart{width:142px;height:142px;flex:0 0 142px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;position:relative}.rq-status-chart:before{position:absolute;content:"";inset:18px;border-radius:50%;background:white}.rq-status-chart strong,.rq-status-chart small{position:relative;z-index:1}.rq-status-chart strong{font-size:24px;color:#172554}.rq-status-chart small{font-size:9px;color:#7183a5}.rq-status-legend{flex:1;min-width:130px}.rq-status-legend>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;color:#172554;font-size:9px}.rq-status-legend span{display:flex;align-items:center;gap:7px}.rq-status-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.rq-status-legend b{white-space:nowrap}
.rq-activity-panel{min-height:245px}.rq-activity-head,.rq-activity-row{display:grid;grid-template-columns:130px minmax(170px,1.1fr) minmax(190px,1.2fr) minmax(130px,1fr) 90px;gap:10px;align-items:center;padding:0 14px}.rq-activity-head{min-height:30px;background:#f1f5f9;color:#7183a5;font-size:8px;font-weight:800;letter-spacing:.06em}.rq-activity-list{max-height:168px}.rq-activity-row{min-height:48px;border-bottom:1px solid #edf1f6;color:#172554;font-size:9px;cursor:pointer}.rq-activity-row b,.rq-activity-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rq-activity-row b{font-size:9px}.rq-activity-row small{margin-top:2px;color:#7183a5;font-size:8px}.rq-dash-empty{padding:24px 14px;text-align:center;color:#94a3b8;font-size:10px;font-style:italic}
aside nav{padding-top:10px!important;padding-bottom:10px!important}aside nav a{min-height:36px!important;padding-top:8px!important;padding-bottom:8px!important}
aside>div>div:first-child>svg:first-child{display:none!important}
aside>div>div:first-child:before{content:"";display:block;flex:0 0 30px;width:30px;height:30px;margin-right:10px;border-radius:50%;background:conic-gradient(from -35deg,#818cf8 0 72deg,transparent 72deg 88deg,#4f46e5 88deg 162deg,transparent 162deg 180deg,#22d3ee 180deg 250deg,transparent 250deg 268deg,#6366f1 268deg 344deg,transparent 344deg 360deg);-webkit-mask:radial-gradient(circle,transparent 44%,#000 47%);mask:radial-gradient(circle,transparent 44%,#000 47%)}
aside>div>div:first-child h1{font-size:0!important;letter-spacing:.06em!important}
aside>div>div:first-child h1:after{content:"Aktis QA";font-size:14px;white-space:nowrap;letter-spacing:.04em}
.rq-boot-logo{border-radius:50%!important;background:conic-gradient(from -35deg,#818cf8 0 72deg,transparent 72deg 88deg,#4f46e5 88deg 162deg,transparent 162deg 180deg,#22d3ee 180deg 250deg,transparent 250deg 268deg,#6366f1 268deg 344deg,transparent 344deg 360deg)!important;box-shadow:none!important;animation:rq-spin 2.4s linear infinite!important;-webkit-mask:radial-gradient(circle,transparent 42%,#000 47%);mask:radial-gradient(circle,transparent 42%,#000 47%)}
div[class*="animate-spin"][class*="rounded-full"][class*="border-t-transparent"][class*="w-8"]{border:0!important;background:conic-gradient(from -35deg,#818cf8 0 72deg,transparent 72deg 88deg,#4f46e5 88deg 162deg,transparent 162deg 180deg,#22d3ee 180deg 250deg,transparent 250deg 268deg,#6366f1 268deg 344deg,transparent 344deg 360deg)!important;-webkit-mask:radial-gradient(circle,transparent 42%,#000 47%);mask:radial-gradient(circle,transparent 42%,#000 47%);animation:rq-spin 2.4s linear infinite!important}
@media(max-width:1100px){.rq-dashboard-primary,.rq-dashboard-secondary{grid-template-columns:minmax(0,1fr)}.rq-attention-panel,.rq-license-panel{min-height:unset}.rq-attention-controls{flex-wrap:wrap;justify-content:flex-end}.rq-dashboard-primary{grid-template-columns:minmax(0,1fr) minmax(260px,.8fr)}}
@media(max-width:760px){.rq-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.rq-dashboard-primary{grid-template-columns:1fr}.rq-dashboard-heading{align-items:flex-start}.rq-dashboard-tools{width:100%}.rq-dashboard-tools select{flex:1;min-width:125px}.rq-dash-panel-head{align-items:flex-start;flex-wrap:wrap}.rq-attention-controls{width:100%;justify-content:space-between}.rq-dash-filters{flex-wrap:wrap}.rq-attention-row{grid-template-columns:minmax(100px,1.1fr) minmax(80px,.9fr) 72px minmax(82px,.8fr) 10px}.rq-attention-row .rq-attention-issue{display:none}.rq-dash-table-head{grid-template-columns:minmax(100px,1.1fr) minmax(80px,.9fr) 72px minmax(82px,.8fr) 10px}.rq-dash-table-head span:nth-child(3){display:none}.rq-activity-head,.rq-activity-row{grid-template-columns:80px minmax(120px,1fr) minmax(120px,1fr) 80px}.rq-activity-head span:nth-child(4),.rq-activity-row>div:nth-child(4){display:none}.rq-status-content{gap:12px}.rq-status-chart{width:112px;height:112px;flex-basis:112px}.rq-status-chart:before{inset:14px}}
@media(max-width:430px){.rq-dashboard-metrics{grid-template-columns:1fr 1fr;gap:8px}.rq-dash-metric{min-height:74px;padding:9px;gap:8px}.rq-dash-metric-icon{width:34px;height:34px;font-size:16px}.rq-dash-metric-copy strong{font-size:9px}.rq-dash-metric-copy small{font-size:8px}.rq-dash-metric-copy b{font-size:20px}.rq-dash-filter{padding:0 6px;font-size:8px}.rq-status-content{flex-direction:column}.rq-status-legend{width:100%}}

/* v2.14.27 dashboard refinements */
.rq-dash-panel{border-color:#b7c4d5!important}
.rq-dash-panel-head{border-bottom-color:#b7c4d5}
.rq-dash-table-head,.rq-activity-head{border-bottom:1px solid #aab9cd}
.rq-attention-row,.rq-activity-row,.rq-todo-item{border-bottom-color:#c5d0df}
.rq-todo-missing{border-top-color:#c5d0df}
.rq-attention-alert-icon{color:#dc2626!important}
.rq-equipment-cell{display:flex;align-items:center;gap:8px;min-width:0}
.rq-equipment-copy{display:block;min-width:0;overflow:hidden}
.rq-equipment-type-icon{width:28px;height:28px;display:grid;place-items:center;flex:0 0 28px;border-radius:50%;background:#eef2ff;color:#4f46e5}
.rq-equipment-type-icon svg{width:16px;height:16px}

/* v2.14.28 dashboard typography: modestly larger, scoped to the dashboard */
.rq-dashboard-page .rq-dash-title{font-size:13px}
.rq-dashboard-page .rq-dash-subtitle{font-size:11px}
.rq-dashboard-page .rq-dash-metric-copy strong{font-size:12px}
.rq-dashboard-page .rq-dash-metric-copy small{font-size:11px}
.rq-dashboard-page .rq-dash-metric-copy b{font-size:28px}
.rq-dashboard-page .rq-dash-table-head,.rq-dashboard-page .rq-activity-head{font-size:9px}
.rq-dashboard-page .rq-attention-row{font-size:10px}
.rq-dashboard-page .rq-attention-row b,.rq-dashboard-page .rq-activity-row b{font-size:10px}
.rq-dashboard-page .rq-attention-row small,.rq-dashboard-page .rq-activity-row small{font-size:9px}
.rq-dashboard-page .rq-dash-badge{font-size:9px}
.rq-dashboard-page .rq-dash-filter{font-size:10px}
.rq-dashboard-page .rq-dash-link{font-size:11px}
.rq-dashboard-page .rq-license-top b{font-size:12px}
.rq-dashboard-page .rq-license-top small,.rq-dashboard-page .rq-license-bottom small,.rq-dashboard-page .rq-license-bottom b{font-size:10px}
.rq-dashboard-page .rq-todo-top b{font-size:11px}
.rq-dashboard-page .rq-todo-top small{font-size:9px}
.rq-dashboard-page .rq-todo-missing{font-size:10px}
.rq-dashboard-page .rq-dash-count{font-size:9px}
.rq-dashboard-page .rq-status-legend>div{font-size:10px}
.rq-dashboard-page .rq-status-chart strong{font-size:26px}
.rq-dashboard-page .rq-status-chart small{font-size:10px}
.rq-dashboard-page .rq-dash-empty{font-size:11px}

/* v2.14.29 dashboard refinements */
.rq-dashboard-page .rq-dash-metric{min-height:104px}
.rq-dashboard-page .rq-dash-metric-icon{width:52px;height:52px;font-size:24px}
.rq-dashboard-page .rq-dash-metric-copy strong{font-size:13px}
.rq-dashboard-page .rq-dash-metric-copy small{font-size:12px}
.rq-dashboard-page .rq-dash-metric-copy b{font-size:30px}
.rq-dashboard-page .rq-dash-title{font-size:14px}
.rq-dashboard-page .rq-dash-subtitle{font-size:12px}
.rq-dashboard-page .rq-dash-table-head,.rq-dashboard-page .rq-activity-head{font-size:10px}
.rq-dashboard-page .rq-attention-row b,.rq-dashboard-page .rq-activity-row b{font-size:11px}
.rq-dashboard-page .rq-attention-row small,.rq-dashboard-page .rq-activity-row small{font-size:10px}
.rq-dashboard-page .rq-dash-badge{font-size:10px}
.rq-dashboard-page .rq-dash-filter{font-size:11px}
.rq-dashboard-page .rq-todo-top b{font-size:12px}
.rq-dashboard-page .rq-todo-top small{font-size:10px}
.rq-dashboard-page .rq-todo-missing{font-size:11px}
.rq-dashboard-page .rq-license-top b{font-size:13px}
.rq-dashboard-page .rq-license-top small,.rq-dashboard-page .rq-license-bottom small,.rq-dashboard-page .rq-license-bottom b{font-size:11px}
.rq-dashboard-page .rq-activity-row,.rq-dashboard-page .rq-attention-row{font-size:11px}
.rq-dashboard-page .rq-status-legend>div{font-size:11px}
.rq-dashboard-page .rq-status-chart strong{font-size:28px}
.rq-dashboard-page .rq-status-chart small{font-size:11px}
.rq-dashboard-page .rq-dash-empty{font-size:12px}
@media(max-width:430px){.rq-dashboard-page .rq-dash-metric{min-height:85px}.rq-dashboard-page .rq-dash-metric-icon{width:38px;height:38px;font-size:18px}.rq-dashboard-page .rq-dash-metric-copy strong{font-size:10px}.rq-dashboard-page .rq-dash-metric-copy small{font-size:9px}.rq-dashboard-page .rq-dash-metric-copy b{font-size:22px}}

/* v2.14.30: display all three dashboard summaries on one row */
.rq-dashboard-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}
.rq-dashboard-page .rq-dash-title{font-size:15px}
@media(max-width:1100px){.rq-dashboard-secondary{grid-template-columns:1fr}}
@media(max-width:760px){.rq-dashboard-secondary{grid-template-columns:1fr}}

/* v2.14.31: give To Do more width by narrowing the two charts */
.rq-dashboard-secondary{grid-template-columns:1.2fr .9fr .9fr}

/* v2.14.32: keep the dashboard loading mark and label together */
.rq-dashboard-loading{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}
.rq-dashboard-loading-spinner{width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:conic-gradient(from -35deg,#818cf8 0 72deg,transparent 72deg 88deg,#4f46e5 88deg 162deg,transparent 162deg 180deg,#22d3ee 180deg 250deg,transparent 250deg 268deg,#6366f1 268deg 344deg,transparent 344deg 360deg);-webkit-mask:radial-gradient(circle,transparent 42%,#000 47%);mask:radial-gradient(circle,transparent 42%,#000 47%);animation:rq-spin 1.6s linear infinite}
.rq-dashboard-loading-text{margin:0;color:#64748b;font:700 14px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.12em;text-transform:uppercase}

/* v2.14.33 dashboard activity capacity and heading scale */
.rq-dashboard-page .rq-activity-list{max-height:264px}
.rq-dashboard-page .rq-activity-panel{min-height:340px}
.rq-dashboard-page .rq-dash-icon{width:28px;height:28px;flex-basis:28px;font-size:22.5px}
.rq-dashboard-page .rq-dash-subtitle{margin-left:37px}
.rq-dashboard-page .rq-dash-title{font-size:16.5px}

/* v2.14.34 equipment type icon in missing-report To Do rows */
.rq-dashboard-page .rq-todo-equipment{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.rq-dashboard-page .rq-todo-equipment .rq-equipment-type-icon{width:32px;height:32px;flex:0 0 32px}

/* v2.14.35 equipment directory category icons */
.rq-equipment-directory-cell{display:flex;align-items:center;gap:10px;min-width:0}
.rq-equipment-directory-copy{min-width:0}
.rq-equipment-directory-cell .rq-equipment-type-icon{width:34px;height:34px;flex:0 0 34px}

/* v2.14.36 selected Aktis QA radiation safety logo */
aside>div>div:first-child:before{content:none!important;display:none!important}
aside>div>div:first-child{gap:10px!important;padding-left:14px!important;padding-right:14px!important}
.rq-brand-mark{display:block;width:36px;height:36px;flex:0 0 36px}
.rq-brand-copy{display:flex;flex-direction:column;min-width:0;line-height:1.1;white-space:nowrap}
.rq-brand-copy strong{font-size:12px;font-weight:850;letter-spacing:.055em;color:#fff}
.rq-brand-copy small{margin-top:4px;font-size:7px;font-weight:500;letter-spacing:.005em;color:#94a3b8}
.rq-boot-logo{position:relative;border-radius:0!important;background:none!important;box-shadow:none!important;animation:none!important;-webkit-mask:none!important;mask:none!important}
.rq-boot-logo:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from -35deg,#a5b4fc 0 72deg,transparent 72deg 88deg,#fff 88deg 162deg,transparent 162deg 180deg,#6366f1 180deg 250deg,transparent 250deg 268deg,#818cf8 268deg 344deg,transparent 344deg 360deg);-webkit-mask:radial-gradient(circle,transparent 44%,#000 48%);mask:radial-gradient(circle,transparent 44%,#000 48%);animation:rq-spin 2.4s linear infinite}
.rq-boot-logo:after{content:"☢";position:absolute;inset:0;display:grid;place-items:center;color:#6366f1;font-family:Arial,sans-serif;font-size:29px;font-weight:700;line-height:1}

/* v2.14.37: show the replacement logo SVG (legacy rule hid the first sidebar SVG) */
aside>div>div:first-child>svg.rq-brand-mark{display:block!important;width:36px!important;height:36px!important;flex:0 0 36px!important;visibility:visible!important;opacity:1!important}

/* v2.14.40: visually key the dark logo backdrop into the sidebar */
aside>div>div:first-child{gap:10px!important}
/* v2.14.45: transparent, high-contrast Aktis QA logo for the navy sidebar. */
.rq-brand-logo{display:block;width:100%;height:auto;aspect-ratio:2131/529;flex:1 1 auto;min-width:0;background-color:transparent;background-image:url("./aktis-qa-logo.png");background-position:center;background-size:contain;background-repeat:no-repeat;mix-blend-mode:normal}

/* v2.14.46: use the high-contrast Aktis QA mark on the sign-in header. */
.rq-login-brand-logo{display:block;width:100%;max-width:300px;height:78px;margin:0 auto 12px;background:url("./aktis-qa-logo.png") center/contain no-repeat}


/* v2.14.49: enforce Aktis QA branding in every app entrypoint, including standalone dist. */
.rq-brand-logo{display:block!important;background-image:url("./aktis-qa-logo.png?v=2.14.77")!important;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important}
.rq-login-brand-logo{display:block!important;width:100%!important;max-width:300px!important;height:78px!important;margin:0 auto 12px!important;background-image:url("./aktis-qa-logo.png?v=2.14.77")!important;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important}


/* v2.14.51: the sidebar brand links back to the Dashboard. */
.rq-brand-logo-link{display:flex;align-items:center;flex:1 1 auto;min-width:0;text-decoration:none;cursor:pointer}
.rq-brand-logo-link:focus-visible{outline:2px solid #a5b4fc;outline-offset:3px;border-radius:5px}

/* v2.14.60: Settings -> Equipment (equipment types) */
.rq-et-list .rq-settings-data-head,.rq-et-list .rq-settings-data-row,.rq-et-unlisted .rq-settings-data-head,.rq-et-unlisted .rq-settings-data-row{grid-template-columns:minmax(200px,1.6fr) minmax(130px,.8fr) minmax(90px,.6fr) minmax(220px,1fr);min-width:660px}
.rq-et-actions{display:flex;gap:6px;justify-content:flex-end}
.rq-et-actions button:disabled{opacity:.4;cursor:default}
.rq-settings-data-row .rq-et-remove{color:#b91c1c;border-color:#fecaca}
.rq-settings-data-row .rq-et-remove.rq-et-armed{background:#b91c1c;color:#fff;border-color:#b91c1c}
.rq-et-list code{font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;color:#475569;background:#f1f5f9;border-radius:6px;padding:2px 6px}
.rq-et-message{margin:0 0 10px;min-height:16px;font-size:12px;font-weight:700}
.rq-et-subhead{margin:22px 0 8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#475569}
.rq-et-hint{margin:14px 0 0;max-width:720px;font-size:12px;color:#64748b;line-height:1.5}

/* v2.14.61: every page/section loading spinner uses the same radiation-logo
   loader as the start-up screen (.rq-boot-logo): a rotating segmented ring
   (::before) around a still ☢ (::after). The element itself no longer spins
   - only its ring does - so the symbol stays upright. Covers the React
   bundle's big "border-t-transparent" spinners, the dashboard's "Loading
   Quality Control Database..." spinner, and .rq-radiation-loader (used where
   the bundle had an icon spinner). Small spinners inside buttons
   ("Saving...", "Generating PDF...") are left as they are. */
div[class*="animate-spin"][class*="rounded-full"][class*="border-t-transparent"][class*="w-8"],
.rq-dashboard-loading-spinner,
.rq-radiation-loader{
  position:relative;width:44px!important;height:44px!important;flex:0 0 44px!important;
  border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;
  animation:none!important;-webkit-mask:none!important;mask:none!important
}
div[class*="animate-spin"][class*="rounded-full"][class*="border-t-transparent"][class*="w-8"]{
  position:fixed!important;margin:-22px 0 0 -22px!important
}
div[class*="animate-spin"][class*="rounded-full"][class*="border-t-transparent"][class*="w-8"]::before,
.rq-dashboard-loading-spinner::before,
.rq-radiation-loader::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from -35deg,#a5b4fc 0 72deg,transparent 72deg 88deg,#4f46e5 88deg 162deg,transparent 162deg 180deg,#6366f1 180deg 250deg,transparent 250deg 268deg,#818cf8 268deg 344deg,transparent 344deg 360deg);
  -webkit-mask:radial-gradient(circle,transparent 44%,#000 48%);mask:radial-gradient(circle,transparent 44%,#000 48%);
  animation:rq-spin 2.4s linear infinite
}
div[class*="animate-spin"][class*="rounded-full"][class*="border-t-transparent"][class*="w-8"]::after,
.rq-dashboard-loading-spinner::after,
.rq-radiation-loader::after{
  content:"☢";position:absolute;inset:0;display:grid;place-items:center;
  color:#6366f1;font-family:Arial,sans-serif;font-size:25px;font-weight:700;line-height:1
}
.rq-radiation-loader{display:inline-block}

/* v2.14.62: dashboard "Licences & Permits" items open the facility page */
.rq-license-item.rq-license-clickable{cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}
.rq-license-item.rq-license-clickable:hover{box-shadow:0 4px 14px rgba(15,23,42,.08);transform:translateY(-1px)}
.rq-license-item.rq-license-clickable:focus-visible{outline:2px solid #6366f1;outline-offset:2px}

/* v2.14.64: facility licences and expiring contracts as two tabs in one card */
.rq-license-tabs{display:flex;gap:4px;padding:10px 16px 0;border-bottom:1px solid #e2e8f0}
.rq-license-tab{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:#64748b;font:800 12px system-ui,-apple-system,"Segoe UI",sans-serif;padding:9px 12px;border-radius:9px 9px 0 0;cursor:pointer;margin-bottom:-1px;border-bottom:2px solid transparent}
.rq-license-tab:hover{color:#334155;background:#f8fafc}
.rq-license-tab.is-active{color:#4338ca;background:#eef2ff;border-bottom-color:#4f46e5}
.rq-license-tab-count{min-width:18px;padding:1px 6px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:10px;line-height:16px;text-align:center}
.rq-license-tab.is-active .rq-license-tab-count{background:#4f46e5;color:#fff}
.rq-license-item.is-expired{border-color:#fecdd3;background:#fff1f2;color:#881337}

/* v2.14.65: Needs Attention 15% narrower (62% -> 53% of the row), Licences &
   Permits gets the freed width. Desktop only - narrow screens still stack. */
@media(min-width:1101px){.rq-dashboard-primary{grid-template-columns:minmax(0,1.12fr) minmax(300px,1fr)!important}}

/* v2.14.66: Needs Attention rows for units with no QA/service date */
.rq-dash-badge.is-nodate{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569}
