1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[94580],{4108:(e,t,r)=>{r.d(t,{g:()=>o,t:()=>i});var n=r(5418),a=r(38813);function i(){try{let e=window.localStorage.getItem(n.eH);if(!e)return;return(0,a.Np)(JSON.parse(e),"stale")??void 0}catch{return}}function o(e){try{window.localStorage.setItem(n.eH,JSON.stringify(e))}catch{}}},5418:(e,t,r)=>{r.d(t,{Fk:()=>o,Iq:()=>a,KD:()=>c,MU:()=>p,Mo:()=>v,PU:()=>d,Se:()=>u,Sl:()=>w,Zc:()=>l,dF:()=>n,eH:()=>f,fM:()=>m,gJ:()=>h,gW:()=>i,kU:()=>g,qF:()=>s,rM:()=>y,wS:()=>b});let n="/status",a="/api/status",i="/api/status/rss",o="/api/status/atom",s="/api/status/subscribe",l="/api/status/unsubscribe",c="/api/status/stream",d="This unsubscribe link is invalid or has expired.",u=90,m=15e3,p=6e4,h=3,f="bitscaled:public-status:v2",g="Live telemetry temporarily unavailable",b=["live","stale","catalog"],v=["operational","degraded","partial_outage","major_outage","maintenance"],y=["operational","degraded","down","maintenance"],w=["SECURITY","HIPAA","PRIVACY"]},11607:(e,t,r)=>{r.d(t,{q:()=>n});let n={operational:"bg-success",degraded:"bg-amber-400",partial_outage:"bg-orange-500",major_outage:"bg-red-500",maintenance:"bg-violet-500"}},15942:(e,t,r)=>{},17373:(e,t,r)=>{r.d(t,{FooterStatusIndicator:()=>p});var n=r(68987),a=r(2315),i=r(37866),o=r.n(i),s=r(7031),l=r(11607),c=r(4108),d=r(5418),u=r(57692),m=r(44555);function p({className:e}){let t=(0,a.useRef)(null),[r,i]=(0,a.useState)(!1),[h,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=(0,c.t)();e&&f(e.overall)},[]),(0,a.useEffect)(()=>{let e=t.current;if(!e||"u"<typeof IntersectionObserver)return void i(!0);let r=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(i(!0),r.disconnect())},{rootMargin:"200px"});return r.observe(e),()=>r.disconnect()},[]);let{data:g}=(0,m.Ol)({isEnabled:r}),b=g?.overall??h;return(0,n.jsxs)(o(),{ref:t,href:d.dF,prefetch:!1,className:(0,s.cn)("inline-flex min-h-11 items-center gap-1.5 rounded hover:text-foreground transition-colors duration-200","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),"data-status":b??"unknown",children:[(0,n.jsx)("span",{className:(0,s.cn)("h-1.5 w-1.5 shrink-0 rounded-full",b?l.q[b]:"bg-muted-foreground"),"aria-hidden":"true"}),b?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"sr-only",children:"System status:"}),(0,n.jsx)("span",{children:(0,u.Ak)(b)})]}):(0,n.jsx)("span",{children:"System status"})]})}p.displayName="FooterStatusIndicator"},23211:(e,t,r)=>{r.d(t,{v1:()=>o,dw:()=>s,E2:()=>i});let n="https://bitscaled.tech";function a(e){let t=String(e||"").trim();if(!t||!t.replace(/^https?:\/\//i,"").replace(/^\/+/,"").trim())return"";let r=(/^https?:\/\//i.test(t)?t:`https://${t.replace(/^\/+/,"")}`).replace(/\/+$/,"");try{let e=new URL(r),t=e.hostname.toLowerCase();return"www.bitscaled.tech"===t&&(e.hostname="bitscaled.tech"),e.hostname.toLowerCase().endsWith("bitscaled.tech")&&(e.protocol="https:"),e.toString().replace(/\/+$/,"")}catch{return r}}function i(e){return e?e.replace(/<[^>]*>/g," ").replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g,"").replace(/\s+/g," ").trim():""}function o(e){try{let t=new URL(function(e,t=n){let r=a(String(e??""));return r||a(t)||n}(e));if("https:"===t.protocol||"http:"===t.protocol)return t.origin}catch{}return n}function s(e,t){let r=e.trim();if(!(!r||/[\u0000-\u001F\u007F\\]/.test(r)))try{let e=new URL(r,`${o(t)}/`);if(!["https:","http:"].includes(e.protocol)||e.username||e.password)return;return("bitscaled.tech"===e.hostname||"www.bitscaled.tech"===e.hostname)&&(e.hostname="bitscaled.tech",e.protocol="https:",e.port=""),e.toString()}catch{return}}},30908:(e,t,r)=>{r.d(t,{o:()=>n});let n="default-site-shell-root"},34596:(e,t,r)=>{r.d(t,{Avatar:()=>c,AvatarFallback:()=>u,AvatarImage:()=>d});var n=r(68987),a=r(2315),i=r(6445),o=r(7031);let s={xs:"h-6 w-6",sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12",xl:"h-16 w-16"},l={xs:"h-1.5 w-1.5",sm:"h-2 w-2",md:"h-3 w-3",lg:"h-3.5 w-3.5",xl:"h-4 w-4"},c=a.forwardRef(({className:e,statusColor:t,size:r="md",...a},c)=>(0,n.jsxs)("div",{className:"relative inline-flex",children:[(0,n.jsx)(i.bL,{ref:c,className:(0,o.cn)("relative flex shrink-0 overflow-hidden rounded-full bg-muted/10 ring-1 ring-muted/25",s[r],e),...a}),t&&(0,n.jsx)("span",{className:(0,o.cn)("absolute bottom-0 right-0 rounded-full border-2 border-background",l[r],"green"===t&&"bg-success","yellow"===t&&"bg-warning","red"===t&&"bg-error","gray"===t&&"bg-muted-foreground")})]}));c.displayName="Avatar";let d=a.forwardRef(({className:e,onLoadingStatusChange:t,...r},s)=>{let[l,c]=a.useState("idle"),d=a.useCallback(()=>{c("loaded"),t?.("loaded")},[t]),u=a.useCallback(()=>{c("error"),t?.("error")},[t]);return a.useEffect(()=>{r.src&&(c("loading"),t?.("loading"))},[r.src,t]),(0,n.jsx)(i._V,{ref:s,onLoad:d,onError:u,className:(0,o.cn)("aspect-square h-full w-full object-cover transition-opacity duration-300",("loading"===l||"idle"===l)&&"opacity-0","loaded"===l&&"opacity-100",e),...r})});d.displayName="AvatarImage";let u=a.forwardRef(({className:e,delayMs:t=600,...r},a)=>(0,n.jsx)(i.H4,{ref:a,delayMs:t,className:(0,o.cn)("flex h-full w-full items-center justify-center rounded-full text-sm font-medium bg-muted",e),...r}));u.displayName="AvatarFallback"},34784:(e,t,r)=>{function n(e){if(!e)return"/";let[t]=(e.split("#")[0]??e).split("?");return t&&"/"!==t&&t.replace(/\/+$/,"")||"/"}function a(e,t,r=!1){let i=n(e),o=n(t);return"/"===o?"/"===i:r?i===o:i===o||i.startsWith(`${o}/`)}
1function i(e,t,r,n=!1){if(!a(e,t,n))return!1;let o=new URL(t,"https://bitscaled.local");if(o.hash&&o.hash!==r.hash)return!1;let s=new URLSearchParams(r.search);return[...o.searchParams].every(([e,t])=>s.get(e)===t)}function o(e,t,r){let i=function(e,t){let r=[];for(let i of t)for(let t of(a(e,i.href,i.isExact)&&r.push({itemHref:i.href,matchLength:n(i.href).length,isOwnHref:!0}),i.children??[]))a(e,t.href,t.isExact??i.isExact)&&r.push({itemHref:i.href,matchLength:n(t.href).length,isOwnHref:!1});return 0===r.length?null:(r.sort((e,t)=>t.matchLength!==e.matchLength?t.matchLength-e.matchLength:e.isOwnHref!==t.isOwnHref?e.isOwnHref?-1:1:0),r[0]?.itemHref??null)}(e,r);return!!i&&n(i)===n(t.href)}r.d(t,{$t:()=>i,BW:()=>n,Qj:()=>o,xi:()=>a})},36940:(e,t,r)=>{r.r(t),r.d(t,{RiskScorecardLauncher:()=>u});var n=r(68987),a=r(2315),i=r(25850),o=r(67120),s=r(71519);let l=null;function c(){return l??=Promise.all([r.e(22260),r.e(63547),r.e(94833)]).then(r.bind(r,94833)).catch(e=>{throw l=null,e})}function d(){c().catch(()=>void 0)}function u({className:e,variant:t="secondary"}){let r=(0,a.useRef)(null),l=(0,a.useRef)(!0),[m,p]=(0,a.useState)(null),[h,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(!1),[v,y]=(0,a.useState)(!1);async function w(e){if(!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!v&&(e.preventDefault(),!g)){if(m)return void f(!0);b(!0);try{let{RiskScorecardDialog:e}=await c();l.current&&(p(()=>e),f(!0))}catch{l.current&&y(!0)}finally{l.current&&b(!1)}}}return(0,a.useEffect)(()=>(l.current=!0,()=>{l.current=!1}),[]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("a",{ref:r,href:"/risk-scorecard","aria-haspopup":"dialog","aria-busy":g||void 0,onMouseEnter:d,onFocus:d,onClick:w,className:(0,s.cn)(o.ZB,"outline"===t?"border border-foreground
1/40 bg-transparent text-foreground hover:bg-background/70":o.SJ[t],o.tD,"w-full md:w-auto",e),children:[(0,n.jsx)("span",{className:"min-w-0 whitespace-normal break-words text-center",children:"Check your risk in 60 seconds â free"}),(0,n.jsx)(i.A,{className:"!m-0 h-4 w-4 shrink-0","aria-hidden":"true"})]}),(0,n.jsxs)("span",{role:"status",className:"sr-only",children:[g?"Loading your scorecard.":"",v?"Unable to open here. Use the link again to visit the scorecard page.":""]}),h&&m?(0,n.jsx)(m,{onClose:()=>f(!1),returnFocus:()=>r.current?.focus()}):null]})}u.displayName="RiskScorecardLauncher"},38813:(e,t,r)=>{r.d(t,{Np:()=>i});var n=r(5418);function a(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function i(e,t){return a(e)&&n.Mo.includes(e.overall)&&"string"==typeof e.updatedAt&&"number"==typeof e.historyDays&&Array.isArray(e.components)&&Array.isArray(e.incidents)&&Array.isArray(e.maintenance)&&(null==e.source||n.wS.includes(e.source))&&(null==e.message||"string"==typeof e.message)&&e.components.every(e=>!!a(e)&&n.rM.includes(e.status))?{...e,source:e.source??t}:null}},40504:(e,t,r)=>{r.d(t,{y:()=>n});function n(e){let t,r=e.trim();if(!r)return"tel:";let n=(t=(r.toLowerCase().startsWith("tel:")?r.slice(4):r).trim().replace(/[^\d+]/g,""))?t.startsWith("+")?`+${t.slice(1).replace(/\+/g,"")}`:t:"";return n?`tel:${n}`:"tel:"}},40506:(e,t,r)=>{r.d(t,{q:()=>M});var n=r(68987),a=r(2315),i=r(25002),o=r(63849),s=r(61376),l=r(41935),c=r(16260),d=r(52655),u=r(67130),m=r(69900),p=r(1343),h=r(7031),f=r(81885),g=r(35585),b=r(47659),v=r(81727),y=r(57938),w=r(40504),x=r(30908),k=r(34784),A=r(67120);function S(e,t,r="item"){return`${r}:${t}:${e.href}::${e.label}`}function I(e,t="#"){if(!e||"string"!=typeof e)return g.vF.security("warn","[MobileMenu] Invalid href URL type, using fallback",{urlType:typeof e}),t;let r=e.replace(/[\x00-\x1F\x7F-\x9F]/g,"").trim();if(!r)return g.vF.security("warn","[MobileMenu] Empty URL after cleaning, using fallback"),t;let n=r.toLowerCase();for(let e of[/javascript\s*:/i,/data\s*:/i,/vbscript\s*:/i,/livescript\s*:/i,/mocha\s*:/i,/about\s*:/i,/chrome\s*:/i,/chrome-extension\s*:/i,/moz-extension\s*:/i,/ms-its\s*:/i,/mk\s*:/i,/jar\s*:/i,/file\s*:/i,/ftp\s*:/i,/on\w+\s*=/i,/<\s*script/i,/<\s*iframe/i,/<\s*object/i,/<\s*embed/i,/<\s*form/i,/<\s*input/i,/<\s*link/i,/<\s*meta/i,/expression\s*\(/i,/url\s*\(/i,/import\s+/i,/eval\s*\(/i,/function\s*\(/i,/new\s+Function/i,/setTimeout/i,/setInterval/i,/alert\s*\(/i,/confirm\s*\(/i,/prompt\s*\(/i,/document\./i,/window\./i,/location\./i,/history\./i,/navigator\./i,/parent\./i,/top\./i,/self\./i,/frames\[/i])if(e.test(n))return g.vF.security("warn","[MobileMenu] XSS pattern detected in URL, using fallback",{pattern:e.source}),t;let a=(0,f.d3)(r,t);if(a===t)return g.vF.security("warn","[MobileMenu] URL failed sanitization, using fallback"),t;if(a.includes("://"))try{let e=new URL(a);if(!["http:","https:"].includes(e.protocol))return g.vF.security("warn","[MobileMenu] Disallowed protocol detected",{protocol:e.protocol}),t}catch(e){return g.vF.security("warn","[MobileMenu] Invalid URL structure detected",{errorType:e instanceof Error?e.constructor.name:"Unknown"}),t}return a}function M({links:e=[],className:t,buttonClassName:r,menuClassName:f,menuIcon:g,closeIcon:C,customTrigger:N,onOpen:j,onClose:P,isSearchEnabled:R=!1,searchPlaceholder:E="Search navigation...",onSearch:L,hasGlassmorphism:T=!0,hasEnhancedAnimations:F=!0,hasAnimatedBackground:D=!1}){let[W,O]=(0,a.useState)(!1),[B,$]=(0,a.useState)({}),[H,U]=(0,a.useState)(""),[_,z]=(0,a.useState)(!1),[q,K]=(0,a.useState)(!1),G=(0,p.usePathname)(),[V,J]=(0,a.useState)({search:"",hash:""});(0,a.useEffect)(()=>{let e=()=>{J({search:window.location.search,hash:window.location.hash})};return e(),window.addEventListener("hashchange",e),window.addEventListener("popstate",e),()=>{window.removeEventListener("hashchange",e),window.removeEventListener("popstate",e)}},[G,W]);let X=e=>{if(e.isActive){if(e.isActive&&(0,k.$t)(G,e.href,V,!0))return"page";if((0,k.$t)(G,e.href,V,!1))return"true"}},Q=(0,a.useRef)(null),Y=(0,a.useRef)(null),Z=(0,a.useRef)(null),ee=(0,a.useRef)(null),et=(0,a.useRef)(null),er=(0,a.useRef)(null),en=(0,a.useRef)(null),ea=(0,a.useRef)(!1),ei=(0,a.useRef)(0),eo=(0,a.useRef)(W);eo.current=W;let es=(0,a.useRef)(G),el=(0,a.useCallback)(()=>{z(!0),O(!1),P?.(),er.current&&(clearTimeout(er.current),er.current=null),et.current&&clearTimeout(et.current),et.current=setTimeout(()=>{et.current=null,z(!1),$({}),U("")},500)},[P]);(0,a.useEffect)(()=>()=>{et.current&&clearTimeout(et.current),er.current&&clearTimeout(er.current),en.current&&clearTimeout(en.current)},[]),(0,a.useEffect)(()=>{W&&!ea.current?(en.current&&clearTimeout(en.current),en.current=setTimeout(()=>{ee.current?.focus()},0)):!W&&ea.current&&(en.current&&clearTimeout(en.current),en.current=setTimeout(()=>{Q.current?.focus()},0)),ea.current=W},[W]),(0,a.useEffect)(()=>
1{if(!W)return;let e=Y.current;if(!e)return;let t=t=>{if("Tab"!==t.key)return;let r=Array.from(e.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>!e.closest("[inert]"));if(0===r.length)return void t.preventDefault();let n=r[0],a=r[r.length-1],i=document.activeElement;t.shiftKey?i!==n&&e.contains(i)||(t.preventDefault(),a.focus()):i!==a&&e.contains(i)||(t.preventDefault(),n.focus())};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[W]),(0,a.useEffect)(()=>{es.current!==G&&(es.current=G,eo.current&&el())},[G,el]),(0,a.useEffect)(()=>{let e=({key:e})=>{W&&"Escape"===e&&el()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[W,el]),(0,a.useEffect)(()=>{if(!W)return;let e=window.innerWidth-document.documentElement.clientWidth;return ei.current=window.scrollY,document.body.style.overflow="hidden",document.body.style.paddingRight=`${e}px`,document.body.style.position="fixed",document.body.style.top=`-${ei.current}px`,document.body.style.left="0",document.body.style.right="0",document.body.style.width="100%",()=>{let e=ei.current;document.body.style.overflow="",document.body.style.paddingRight="",document.body.style.position="",document.body.style.top="",document.body.style.left="",document.body.style.right="",document.body.style.width="";try{window.scrollTo(0,e)}catch{}}},[W]),(0,a.useEffect)(()=>{K(!0)},[]),(0,a.useEffect)(()=>{let e=document.getElementById(x.o)??document.querySelector(".default-site-shell:not([data-public-nav-overlay])");if(e instanceof HTMLElement)return W?(e.setAttribute("inert",""),e.setAttribute("aria-hidden","true")):(e.removeAttribute("inert"),e.removeAttribute("aria-hidden")),()=>{e.removeAttribute("inert"),e.removeAttribute("aria-hidden")}},[W]),(0,a.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let e=window.matchMedia(o.h),t=()=>{!e.matches&&eo.current&&el()};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[el]),(0,a.useEffect)(()=>{if(!Y.current||!W)return;let e=0,t=0,r=0,n=n=>{e=n.touches[0].clientX,t=n.touches[0].clientY,r=Date.now()},a=n=>{let a=n.touches[0].clientX,i=n.touches[0].clientY,o=a-e,s=Math.abs(t-i),l=Date.now()-r;o>70&&s<50&&l<300&&el()},i=Y.current;return i.addEventListener("touchstart",n,{passive:!0}),i.addEventListener("touchmove",a,{passive:!0}),()=>{i.removeEventListener("touchstart",n),i.removeEventListener("touchmove",a)}},[W,el]);let ec=""!==H.trim()?e.filter(e=>e.label.toLowerCase().includes(H.toLowerCase())||e.children?.some(e=>e.label.toLowerCase().includes(H.toLowerCase()))):e;return(0,n.jsxs)("div",{className:(0,h.cn)("xl:hidden",t),children:[N||(0,n.jsxs)("button",{type:"button",ref:Q,className:(0,h.cn)("relative flex items-center justify-center min-h-11 min-w-11 h-11 w-11 rounded-lg transition-all duration-300 ease-standard motion-reduce:transition-none","text-muted-foreground hover:text-foreground","hover:bg-accent/50 dark:hover:bg-accent/30 active:bg-accent/70 dark:active:bg-accent/50","border border-transparent hover:border-border/50","shadow-sm hover:shadow-md",A.tD,W&&"bg-primary/10 text-primary border-primary/20",r),"aria-controls":"mobile-nav","aria-expanded":W,"aria-label":W?"Close menu":"Open menu","aria-haspopup":"dialog",onClick:()=>{W?el():(et.current&&(clearTimeout(et.current),et.current=null),$({}),U(""),O(!0),z(!0),j?.(),er.current&&clearTimeout(er.current),er.current=setTimeout(()=>{er.current=null,z(!1)},500))},children:[(0,n.jsx)("span",{className:"sr-only",children:W?"Close menu":"Open menu"}),(0,n.jsx)("div",{className:"relative w-6 h-6 flex items-center justify-center",children:F?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:(0,h.cn)("absolute h-0.5 w-6 bg-current transform transition-all duration-300 ease-standard motion-reduce:transition-none",W?"rotate-45 translate-y-0":"-translate-y-2")}),(0,n.jsx)("span",{className:(0,h.cn)("absolute h-0.5 w-6 bg-current transform transition-all duration-300 ease-standard motion-reduce:transition-none",W?"opacity-0":"opacity-100")}),(0,n.jsx)("span",{className:(0,h.cn)("absolute h-0.5 w-6 bg-current transform transition-all duration-300 ease-standard motion-reduce:transition-none",W?"-rotate-45 translate-y-0":"translate-y-2")})]}):W?C||(0,n.jsx)(s.A,{className:"w-6 h-6"}):g||(0,n.jsx)(l.A,{className:"w-6 h-6"})})]}),q&&(W||_)?(0,i.createPortal)((0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{id:"mobile-nav",ref:Y,className:(0,h.cn)("public-site default-site-shell fixed top-0 right-0 w-[min(100%,24rem)] h-screen supports-[height:100dvh]:h-[100dvh] z-[100] transition-all duration-500 ease-emphasized motion-reduce:transition-none","pt-[env(safe-area-inset-top)]","bg-card dark:bg-card","border-l border-border dark:border-border","shadow-2xl dark:shadow-2xl","flex flex-col",F&&"transform",f),style:W?{opacity:1,transform:"translateX(0)",visibility:"visible",pointerEvents:"auto"}:{opacity:0,transform:"translateX(100%)",visibility:"hidden",pointerEvents:"none"},inert:!W||void 0,role:"dialog","aria-modal":"true","aria-label":"Mobile navigation menu","data-public-nav-overlay":!0,children:[D&&T&&(0,n.jsx)("div",{className:"absolute inset-0 pointer-events-none bg-muted/10"}),(0,n.jsx)("div",{className:(0,h.cn)("flex-shrink-0 p-6 border-b border-border dark:border-border","bg-card dark:bg-card"),children:(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)(b.v,{className:"min-h-11",markClassName:"h-8 w-8",labelClassName:"text-sm",ariaLabel:"Bitscaled - Home"}),(0,n.jsx)("button",{type:"button",ref:ee,onClick:el,className:(0,h.cn)("flex items-center justify-center min-h-11 min-w-11 h-11 w-11 rounded-lg transition-colors duration-200 motion-reduce:transition-none","text-muted-foreground hover:text-foreground hover:bg-accent/50 dark:hover:bg-accent/30","border border-transparent hover:border-border",A.tD),"aria-label":"Close menu",children:(0,n.jsx)(s.A,{className:"w-5 h-5","aria-hidden":"true"})})]})}),R&&(0,n.jsx)("div",{className:"flex-shrink-0 p-4 border-b border-border dark:border-border bg-card dark:bg-card",children:(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault(),H.trim()&&L&&(L(H.trim()),el())},className:"relative",children:[(0,n.jsx)("input",{type:"text",ref:Z,value:H,onChange:e=>U(e.target.value),placeholder:E,className:(0,h.cn)("w-full px-12 py-3 rounded-xl border border-border dark:border-border transition-all duration-200","focus:outline-none focus:ring-2 focus:ring-primary focus:border-primary","bg-background/80 dark:bg-background/80","text-foreground placeholder:text-muted-foreground"),"aria-label":"Search navigation"}),(0,n.jsx)(c.A,{className:"absolute left-4 top-3.5 w-5 h-5 text-muted-foreground","aria-hidden":"true"}),H&&(0,n.jsx)("button",{type:"button",className:(0,h.cn)("absolute right-1 top-1 inline-flex h-11 w-11 min-h-11 min-w-11 items-center justify-center rounded-md text-muted-foreground hover:text-foreground transition-colors duration-200 motion-reduce:transition-none",A.tD),onClick:()=>U(""),"aria-label":"Clear search",children:(0,n.jsx)(s.A,{className:"w-4 h-4","aria-hidden":"true"})})]})}),(0,n.jsx)("nav",{"aria-label":"Mobile navigation",className:(0,h.cn)("flex-1 min-h-0 overflow-y-auto overscroll-contain p-4 bg-card dark:bg-card","webkit-overflow-scrolling-touch","scrollbar-thin scrollbar-track-transparent scrollbar-thumb-border/20 hover:scrollbar-thumb-border/40"),children:(0,n.jsx)("ul",{className:"space-y-2 pb-4",children:ec.map((e,t)=>{var r,a;let i,o=S(e,t),s=B[o]||!1,l=(r=e,a=t,i=r.label.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),`mobile-submenu-${a}${i?`-${i}`:""}`),c=e.ctaVariant??(e.isPrimary?"primary":void 0);return(0,n.jsx)("li",{className:(0,h.cn)("rounded-xl transition-colors duration-200 motion-reduce:transition-none",e.children&&s&&"bg-accent/10 dark:bg-accent/5 border border-accent/20 dark:border-accent/10",e.isActive&&!e.children&&"bg-primary/10 dark:bg-primary/5 border border-primary/20 dark:border-primary/10"),children:e.children?(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:(0,h.cn)("flex w-full items-stretch rounded-xl border border-border bg-background transition-colors duration-200 motion-reduce:transition-none",s&&"bg-accent",e.isActive&&"border-primary/40 bg-primary/10"),children:[(0,n.jsx)(v.K,{href:I(e.href),isExternal:e.isExternal,className:(0,h.cn)("flex min-w-0 flex-1 items-center gap-3 py-4 pl-4 pr-2 roun
1ded-l-xl","hover:bg-accent/20 dark:hover:bg-accent/15 active:bg-accent/30","font-semibold no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary",e.isActive?"bg-primary/10 text-[color:var(--public-nav-text)]":"text-foreground"),"aria-current":X(e),onClick:el,...e.isExternal&&{target:"_blank",rel:"noopener noreferrer"},children:(0,n.jsxs)("span",{className:"flex items-center min-w-0 flex-1 text-left",children:[e.icon&&(0,n.jsx)("span",{className:"mr-3 shrink-0 text-xl text-primary",children:e.icon}),(0,n.jsx)("span",{className:"text-current font-medium whitespace-normal break-words",children:e.label}),e.badge&&(0,n.jsx)("span",{className:"ml-2 px-2 py-1 text-xs font-bold bg-primary text-primary-foreground rounded-full shadow-sm",children:e.badge}),e.isFeatured&&(0,n.jsx)(d.A,{className:"ml-2 w-4 h-4 text-primary"})]})}),(0,n.jsx)("button",{type:"button",className:(0,h.cn)("flex min-h-11 min-w-11 shrink-0 items-center justify-center py-4 pl-2 pr-4 rounded-r-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary","hover:bg-accent/20 dark:hover:bg-accent/15 active:bg-accent/30","text-muted-foreground",A.tD),onClick:()=>{$(e=>e[o]?{}:{[o]:!0})},"aria-expanded":s,"aria-controls":l,"aria-label":`${s?"Collapse":"Expand"} ${e.label} menu`,children:(0,n.jsx)(u.A,{className:(0,h.cn)("w-5 h-5 shrink-0 transition-transform duration-200 text-muted-foreground motion-reduce:transition-none",s&&"transform rotate-180 text-foreground"),"aria-hidden":"true"})})]}),(0,n.jsx)("div",{className:(0,h.cn)("grid transition-[grid-template-rows] duration-500 ease-out motion-reduce:transition-none",s?"grid-rows-[1fr]":"grid-rows-[0fr]"),inert:!s||void 0,children:(0,n.jsx)("ul",{id:l,className:"space-y-1 overflow-hidden",children:e.children.map((e,t)=>{let r=S(e,t,"child"),a=1!==e.depth,i=e.isActive&&(0,k.$t)(G,e.href,V,e.isExact);return(0,n.jsx)("li",{className:(0,h.cn)(t>0&&(a?"mt-2 pt-2 border-t border-border/40":void 0)),children:e.isDisabled?(0,n.jsxs)("div",{className:(0,h.cn)("min-h-11 text-sm flex items-center justify-between gap-2 py-3 px-4 rounded-lg",a?"font-semibold":"pl-8 font-medium","border border-dashed border-border bg-muted/25 dark:border-border-strong dark:bg-muted/15","text-muted-foreground cursor-default"),"aria-disabled":"true",children:[(0,n.jsx)("span",{className:"flex-1 text-left",children:e.label||""}),e.badge&&(0,n.jsx)("span",{className:"shrink-0 whitespace-nowrap rounded-full border border-border/80 bg-background/80 px-2 py-0.5 text-[10px] font-semibold text-foreground",children:e.badge})]}):(0,n.jsxs)(v.K,{href:I(e.href),isExternal:e.isExternal,className:(0,h.cn)("btn text-sm flex min-h-11 min-w-0 w-full items-start py-3 px-4 rounded-lg transition-all duration-300",a?"font-semibold":"pl-8 font-medium","bg-background/70 dark:bg-background/50",i?"text-[color:var(--public-nav-text)] bg-primary/15 dark:bg-primary/10 font-semibold border border-primary/30 dark:border-primary/20":"text-foreground hover:text-primary hover:bg-accent/30 dark:hover:bg-accent/20 border border-transparent hover:border-accent/40",{"btn-primary bg-primary text-primary-foreground dark:text-primary-foreground hover:text-primary-foreground dark:hover:text-primary-foreground hover:bg-primary/90 shadow-sm border-primary":e.isPrimary}),onClick:el,...e.isExternal&&{target:"_blank",rel:"noopener noreferrer"},"aria-current":X(e),children:[e.icon&&(0,n.jsx)("span",{className:"mr-3 shrink-0 text-lg text-primary",children:e.icon}),(0,n.jsxs)("span",{className:"relative flex-1 min-w-0 text-left whitespace-normal break-words",children:[(0,n.jsx)("span",{className:"text-current",children:e.label||""}),i&&(0,n.jsx)("span",{className:"absolute -bottom-0.5 left-0 h-0.5 w-full bg-primary rounded-full"})]}),e.isExternal&&(0,n.jsx)(m.A,{className:"ml-2 w-4 h-4 text-muted-foreground"})]})},r)})})})]}):(0,n.jsxs)(v.K,{href:I(e.href),isExternal:e.isExternal,className:(0,h.cn)("w-full",A.tD,c?(0,h.cn)(A.ZB,A.SJ[c]):(0,h.cn)("flex min-h-11 items-center py-4 px-4 rounded-xl transition-colors duration-200 motion-reduce:transition-none","bg-background/50 dark:bg-background/30 border border-border/50 dark:border-border/30",e.isActive?"text-[color:var(--public-nav-text)] bg-primary/15 dark:bg-primary/10 font-semibold border border-primary/30 dark:border-primary/20":"text-foreground hover:text-primary hover:bg-accent/30 dark:hover:bg-accent/20 border border-transparent hover:border-accent/40",e.isFeatured&&"bg-primary/10 font-semibold border border-primary/30 dark:border-primary/20")),onClick:el,...e.isExternal&&{target:"_blank",rel:"noopener noreferrer"},"aria-current":X(e),children:[e.icon&&(0,n.jsx)("span",{className:"mr-3 shrink-0 text-xl text-primary",children:e.icon}),(0,n.jsxs)("span",{className:(0,h.cn)("relative flex-1 min-w-0
1whitespace-normal break-words",c?"text-center":"text-left"),children:[(0,n.jsx)("span",{className:"text-current font-medium",children:e.label||""}),e.badge&&(0,n.jsx)("span",{className:"ml-2 px-2 py-1 text-xs font-bold bg-primary text-primary-foreground rounded-full shadow-sm",children:(0,n.jsx)("span",{children:e.badge||""})}),e.isFeatured&&(0,n.jsx)(d.A,{className:"ml-2 w-4 h-4 text-primary inline"}),e.isActive&&(0,n.jsx)("span",{className:"absolute -bottom-0.5 left-0 h-0.5 w-full bg-primary rounded-full"})]}),e.isExternal&&(0,n.jsx)(m.A,{className:"ml-2 w-5 h-5 text-muted-foreground"})]})},o)})})}),(0,n.jsxs)("div",{className:"flex-shrink-0 space-y-1 border-t border-border bg-card p-4 pb-[max(1rem,env(safe-area-inset-bottom))]",children:[(0,n.jsxs)("a",{href:(0,w.y)(y.Ux.phone),className:(0,h.cn)("flex min-h-11 items-center rounded-lg px-3 text-sm text-foreground no-underline hover:bg-accent",A.tD),onClick:el,children:["Call ",y.Ux.phone]}),(0,n.jsx)("a",{href:`mailto:${y.Ux.email}`,className:(0,h.cn)("flex min-h-11 items-center rounded-lg px-3 text-sm text-foreground no-underline hover:bg-accent",A.tD),onClick:el,children:y.Ux.email}),(0,n.jsx)(v.K,{href:"/workspace/login",onClick:el,className:(0,h.cn)("flex min-h-11 items-center rounded-lg px-3 text-sm text-foreground no-underline hover:bg-accent",A.tD),children:"Client Portal Login"})]})]}),(0,n.jsx)("div",{className:(0,h.cn)("fixed inset-0 z-[90] xl:hidden transition-opacity duration-500 ease-standard backdrop-blur-sm motion-reduce:transition-none","bg-[rgba(var(--overlay-rgb),0.78)]",W?"opacity-100":"opacity-0 pointer-events-none"),"aria-hidden":"true",onClick:el})]}),document.body):null]})}},43251:(e,t,r)=>{r.d(t,{G:()=>c,h:()=>d});var n=r(68987),a=r(2315);let i=(0,r(13264).h)("SidebarUtils");var o=r(970),s=r(1343);let l=(0,a.createContext)(void 0),c=({initialMode:e="client",children:t,onModeChange:r,storageKey:c="sidebar-mode-manual",shouldAllowModeToggle:d=!0})=>{let{user:u,isAuthenticated:m,isLoading:p}=(0,o.useAuth)(),h=(0,s.usePathname)(),[f,g]=(e=>{let[t,r]=(0,a.useState)(()=>{try{let t=window.localStorage.getItem(e);return t?JSON.parse(t):null}catch(e){return i.error("handler",'Error reading localStorage key "${key}":',e),null}});return(0,a.useEffect)(()=>{let t=t=>{if(t.key===e&&null!==t.newValue)try{let e=JSON.parse(t.newValue);r(e)}catch(e){i.error("handler",'Error parsing localStorage value for key "${key}":',e)}};window.addEventListener("storage",t);let n=t=>
1{t.detail.key===e&&r(t.detail.value)};return window.addEventListener("localStorageChange",n),()=>{window.removeEventListener("storage",t),window.removeEventListener("localStorageChange",n)}},[e]),[t,t=>{try{r(t),window.localStorage.setItem(e,JSON.stringify(t)),window.dispatchEvent(new CustomEvent("localStorageChange",{detail:{key:e,value:t}}))}catch(e){i.error("handler",'Error setting localStorage key "${key}":',e)}}]})(c),[b,v]=(0,a.useState)(e),[y,w]=(0,a.useState)(!0),x=function(e=[]){return["admin:access","admin:dashboard","admin:manage","super_admin"].some(t=>e.includes(t))}(u?.permissions||[]),k=function(e=[]){return["intranet:access","intranet:dashboard","employee:access"].some(t=>e.includes(t))}(u?.permissions||[])||x;(0,a.useEffect)(()=>{let e;!p&&m&&("admin"!=(e=h?.startsWith("/admin")?"admin":h?.startsWith("/intranet")?"intranet":"client")||x||(e=k?"intranet":"client"),"intranet"!==e||k||(e="client"),(x||k)&&null!==f&&d&&h?.startsWith("/workspace")&&(e=f),b!==e&&(v(e),w(null===f),r?.(e)))},[u,m,p,x,k,f,d,b,r,h]);let A="client"===b,S="intranet"===b,I="admin"===b;return(0,n.jsx)(l.Provider,{value:{mode:b,switchToClient:()=>{d&&(g("client"),v("client"),w(!1),r?.("client"))},switchToIntranet:()=>{k&&(g("intranet"),v("intranet"),w(!1),r?.("intranet"))},switchToAdmin:()=>{x&&(g("admin"),v("admin"),w(!1),r?.("admin"))},toggleMode:()=>{let e;d&&(g(e="client"===b?k?"intranet":"client":"intranet"===b&&x?"admin":"client"),v(e),w(!1),r?.(e))},isClientMode:A,isIntranetMode:S,isAdminMode:I,isInternalMode:S||I,isAutoMode:y,hasAdminPermissions:x,hasIntranetPermissions:k},children:t})},d=()=>{let e=(0,a.useContext)(l);if(void 0===e)throw Error("useSidebarMode must be used within a SidebarProvider");return e}},44555:(e,t,r)=>{r.d(t,{pf:()=>d,Ol:()=>u});var n=r(2315),a=r(1717),i=r(5418),o=r(4108),s=r(38813),l=r(81716);async function c(e){let t=await fetch(e,{cache:"no-store",credentials:"omit"}),r=await t.json().catch(()=>null),n=r&&"object"==typeof r?r:null,a=n&&"data"in n&&n.data?n.data:r,i=(0,s.Np)(a,"live");if(i)return(0,o.g)(i),i;if(!t.ok)throw Error(n&&"string"==typeof n.message?n.message:`Status request failed (${t.status})`);throw Error("Status response was not a public snapshot")}function d(e){let t=e?.fallbackData??(0,l.$)(),r=e?.isStreamEnabled??!0,[d,u]=(0,n.use
1State)(!1),m=(0,n.useRef)(!1),p=(0,n.useRef)(null),h=r&&"u">typeof EventSource,f=(0,n.useCallback)(async e=>{let t=await c(e);return m.current&&p.current?p.current:t},[]),{data:g,error:b,isLoading:v,isValidating:y,mutate:w}=(0,a.u)(i.Iq,f,{fallbackData:t,refreshInterval:r=>{var n;return"number"==typeof(n={isStreamOpen:d,source:r?.source??t.source,overrideMs:e?.refreshIntervalMs}).overrideMs&&Number.isFinite(n.overrideMs)?Math.max(0,Math.floor(n.overrideMs)):n.isStreamOpen?0:"live"===n.source?i.fM:i.MU},revalidateOnMount:!h,revalidateOnFocus:!d,revalidateOnReconnect:!d,dedupingInterval:1e4,errorRetryCount:8,onErrorRetry:(e,t,r,n,{retryCount:a})=>{!(a>=8)&&setTimeout(()=>n({retryCount:a}),Math.min(3e4,1e3*2**a)+Math.floor(400*Math.random()))},keepPreviousData:!0});(0,n.useEffect)(()=>{let e;if(!h){m.current=!1,p.current=null,u(!1);return}let t=0;try{e=new EventSource(i.KD)}catch{m.current=!1,p.current=null,u(!1);return}let r=()=>{m.current=!0,u(!0)},n=e=>{if(t=0,"data"in e&&"string"==typeof e.data){let t;(t=function(e){try{let t=JSON.parse(e);return(0,s.Np)(t,"live")}catch{return null}}(e.data))&&(p.current=t,r(),(0,o.g)(t),w(t,{revalidate:!1}))}else r()},a=()=>{t=0,r()},l=()=>{(function(e,t=i.gJ){return e>=t})(t+=1)&&(m.current=!1,p.current=null,u(!1))};return e.addEventListener("snapshot",n),e.addEventListener("open",a),e.addEventListener("error",l),()=>{e.removeEventListener("snapshot",n),e.removeEventListener("open",a),e.removeEventListener("error",l),e.close(),m.current=!1,p.current=null,u(!1)}},[h,w]);let x=(0,n.useCallback)(async()=>{await w()},[w]),k=g??t;return{data:k,error:b,isLoading:v,isValidating:y,refresh:x,source:k.source,isLive:"live"===k.source,isStreaming:d}}function u(e){let t=e?.isEnabled??!0,{data:r,error:n,isLoading:o}=(0,a.u)(t?i.Iq:null,c,{refreshInterval:0,revalidateOnFocus:!1,revalidateOnReconnect:!1,dedupingInterval:i.MU,errorRetryCount:2,keepPreviousData:!0});return{data:r,error:n,isLoading:o}}},45147:(e,t,r)=>{r.d(t,{YO:()=>g});var n=r(37524),a=r(62178),i=r(41143),o=r(67854),s=r(75696),l=r(60754),c=r(34219),d=r(54636);r(64074),r(71123),r(59174);var u=r(75935),m=r(57938);m.yx,m.yx,m.yx;let p="/industries",h={healthcare:{slug:"healthcare",legacyId:"healthcare",title:"Healthcare & Life Sciences",shortTitle:"Healthcare",navLabel:"Healthcare & Life Sciences",navDescription:"HIPAA, EHR uptime, and protected clinical workflows",eyebrow:"Healthcare & life sciences",description:"HIPAA-aligned operations, EHR uptime, and clinical workflow protection for clinics, specialty practices, and outpatient networks â with i
1dentity, imaging, and scheduling treated as revenue-critical systems.",answerFirst:"Bitscaled runs an AI-native healthcare MSP stack: EHR and imaging continuity, HIPAA-ready identity and audit trails, immutable backups, and a clinical control plane so downtime does not stall care or collections.",controlPlane:"Operators see EHR health, identity exceptions, backup proof, and ticket aging in one client control plane instead of chasing vendors across portals.",metaDescription:"AI-native HIPAA MSP for healthcare and life sciences â EHR uptime, clinical workflow protection, identity security, and immutable PHI recovery.",path:`${p}/healthcare`,cardImage:(0,u.rS)("healthcare"),contactIndustryParam:"Healthcare",Icon:n.A,pains:[{title:"Clinical downtime",body:"EHR, imaging, and scheduling outages delay care, starve billable encounters, and force staff onto paper workarounds."},{title:"Credential theft",body:"Phishing and MFA-bypass campaigns target clinicians, billing teams, and vendors with standing access to PHI."},{title:"Fragmented site support",body:"Multi-location practices cannot standardize patching, backups, and access reviews when each clinic runs a different stack."}],outcomes:[{title:"Protected clinical uptime",body:"Self-healing playbooks, redundant backups, and documented recovery paths tied to care continuity â not office-hours tickets."},{title:"HIPAA-ready controls",body:"Access reviews, encryption, audit logging, and BAA-aware vendor workflows your compliance lead can defend in an OCR inquiry."},{title:"Faster clinic onboarding",body:"Repeatable deployment blueprints for new sites so identity, imaging, and EHR baselines do not get reinvented per location."}],services:[{title:"Managed security & MDR",body:"AI-assisted triage, endpoint hardening, and incident response tuned for clinical hours and PHI blast radius.",href:"/services/security/cybersecurity"},{title:"Backup & disaster recovery",body:"Immutable backups, restore testing, and runbooks that protect EHR and imaging data through outages and weather events.",href:"/services/data/backup-recovery"},{title:"vCIO & compliance planning",body:"Quarterly roadmaps that align IT spend with HIPAA risk assessments, HITECH evidence, and growth plans.",href:"/services/strategic/consulting"}],automationModules:[{title:"Clinical identity hygiene",body:"Joiner-mover-leaver workflows for providers, locums, and billing staff with audit-ready access evidence."},{title:"EHR health signals",body:"Priority alerting on EHR, PACS, and scheduling dependencies so operations sees risk before the waiting room does."},{title:"Restore proof for PHI",body:"Scheduled restore tests with evidence packets your HIPAA officer can attach to the risk analysis."}],referenceBlueprints:[{title:"Clinic expansion",scaleIndicator:"Multi-clinic care network",primaryRisk:"Inconsistent workstation and identity baselines across new locations.",controlPlaneMechanism:"Workspace deployment runbooks track clinic readiness, endpoint baselines, and operator-approved handoffs."},{title:"Clinical identity lifecycle",scaleIndicator:"Care teams spanning shared clinical workstations",primaryRisk:"Access delays and excessive privileges during staff transitions.",controlPlaneMechanism:"Workspace identity workflows connect role-based provisioning, MFA recovery, and access review ownership."},{title:"Care continuity recovery",scaleIndicator:"Multi-site clinical records and backup systems",primaryRisk:"Loss of access to patient records during site or weather disruption.",controlPlaneMechanism:"Workspace recovery queues schedule restore validation, capture evidence, and route failed checks to accountable operators."}],compliance:["HIPAA","HITECH","Business associate agreements"]},manufacturing:{slug:"manufacturing",legacyId:"manufacturing",title:"Manufacturing & Industrial",shortTitle:"Manufacturing",navLabel:"Manufacturing & Industrial",navDescription:"Shop-floor IoT, OT/IT convergence, and supply continuity",eyebrow:"Manufacturing & industrial",description:"Plant-to-cloud reliability, OT-aware segmentation, and shop-floor IoT resilience for manufacturers that cannot trade a shift of margin for a LAN outage or an unpatched PLC jump box.",answerFirst:"Bitscaled delivers AI-native industrial MSP architecture: OT/IT segmentation, production-line visibility, ERP-aligned roadmaps, and a plant control plane so supply continuity is an operating metric â not a hope.",controlPlane:"Plant managers and IT leads share one view of line-adjacent systems, vendor access, patch debt, and incident aging without exposing the OT network to office tooling.",metaDescription:"AI-native MSP for manufacturing and industrial operations â OT/IT convergence, shop-floor IoT resilience, ERP support, and production continuity.",path:`${p}/manufacturing`,cardImage:(0,u.rS)("manufacturing"),contactIndustryParam:"Manufacturing",Icon:a.A,pains:[{title:"OT/IT convergence r
1isk",body:"Production equipment and corporate networks share exposure when VLANs, jump hosts, and vendor access lag growth."},{title:"Unplanned downtime",body:"A single line stoppage can erase a shift of margin â yet monitoring often stops at the office LAN and ignores shop-floor IoT."},{title:"IP and supplier data theft",body:"Design files, BOMs, and vendor portals need consistent DLP and identity controls across engineering and finance."}],outcomes:[{title:"Segmented plant networks",body:"Clear boundaries between shop floor, corporate, and vendor access without blocking legitimate production workflows."},{title:"Operational visibility",body:"AI-assisted alerting across sites with escalation paths plant managers and IT leads both trust."},{title:"ERP-aligned roadmaps",body:"vCIO planning that ties infrastructure upgrades to production targets, NIST CSF controls, and audit calendars."}],services:[{title:"Infrastructure & networking",body:"Site connectivity, industrial Wi-Fi, and firewall policy built for plants, remote yards, and vendor access windows.",href:"/services/infrastructure/managed-it"},{title:"Cybersecurity",body:"Endpoint protection, email security, and vulnerability management for engineering, finance, and OT jump boxes.",href:"/services/security/cybersecurity"},{title:"Automation & integrations",body:"Workflow automation around ERP, time clocks, quality systems, and access control.",href:"/services/automation"}],automationModules:[{title:"OT access windows",body:"Time-bound vendor and integrator access with logging â no standing VPN accounts on the plant floor."},{title:"Line-adjacent monitoring",body:"Health signals for MES, historians, and industrial Wi-Fi so production sees risk before a stoppage."},{title:"Change control packets",body:"Documented maintenance windows and rollback evidence aligned to ISO-style and NIST CSF expectations."}],referenceBlueprints:[{title:"Plant-floor identity boundary",scaleIndicator:"Single plant with shared operator stations",primaryRisk:"Uncontrolled access between business systems and production environments.",controlPlaneMechanism:"Workspace access reviews connect HR provisioning, role assignments, and production-owner approval."},{title:"Industrial remote access",scaleIndicator:"Plant network with multiple vendor access paths",primaryRisk:"Persistent vendor sessions expose production-critical assets.",controlPlaneMechanism:"Workspace vendor-access workflows record approved access windows, expiration, and monitoring exceptions."},{title:"ERP change governance",scaleIndicator:"Manufacturing group with multiple production sites",primaryRisk:"An ERP change disrupts dependencies during production windows.",controlPlaneMechanism:"Workspace change runbooks link dependency checks, maintenance approvals, and rollback evidence to each site."}],compliance:["NIST CSF","CMMC supply chain (when applicable)","ISO-aligned controls"]},"logistics-warehousing":{slug:"logistics-warehousing",legacyId:"logistics-warehousing",title:"Logistics, Warehousing & Distribution",shortTitle:"Logistics",navLabel:"Logistics, Warehousing & Distribution",navDescription:"Fleet dispatch, WMS reliability, and 24/7 operations",eyebrow:"Logistics, warehousing & distribution",description:"Always-on warehouse Wi-Fi, TMS/WMS continuity, and fleet-dispatch uptime for distribution hubs that run through the night â where a scanner outage is a throughput problem, not an IT ticket.",answerFirst:"Bitscaled operates an AI-native logistics MSP stack: high-density Wi-Fi, WMS/TMS failover, scanner mobility, and a 24/7 operations control plane so dispatch and fulfillment keep moving through weather, carrier, and provider incidents.",controlPlane:"Dispatch, warehouse, and finance leads share one view of WMS health, RF coverage exceptions, backup proof, and after-hours incidents without waiting on a morning ticket queue.",metaDescription:"AI-native MSP for logistics, warehousing, and distribution â WMS/TMS reliability, fleet dispatch uptime, high-density Wi-Fi, and 24/7 continuity.",path:`${p}/logistics-warehousing`,cardImage:(0,u.rS)("logistics-warehousing"),contactIndustryParam:"Logistics & Warehousing",Icon:i.A,pains:[{title:"Warehouse Wi-Fi dead zones",body:"Scanning and inventory apps fail when RF planning does not match rack density, metal interference, and shift-change load."},{title:"TMS and WMS fragility",body:"Transportation and warehouse systems need real-time replication â regional outages cannot stall dispatch or dock appointments."},{title:"Third-party software risk",body:"Carrier portals, EDI, and vendor integrations expand attack surface across a 24/7 supply chain."}],outcomes:[{title:"Floor-ready wireless",body:"Surveyed, monitored Wi-Fi that keeps handheld scanners and tablets online across nights, weekends, and peak season."},{title:"Continuity for critical apps",body:"Backup and failover strategies that protect TMS/WMS data through weather, fiber, and provider incidents."},{title:"Unified 24/7 support model",body:"One accountable MSP for HQ, yard offices, and high-throughput fulfillment sites â not a helpdesk that sleeps when docks do not."}
1],services:[{title:"Managed IT support",body:"Around-the-clock helpdesk, device lifecycle, and vendor coordination for decentralized logistics teams.",href:"/services/infrastructure/managed-it"},{title:"Backup & disaster recovery",body:"Offsite replication and tested restores for transportation, warehouse, and dispatch systems.",href:"/services/data/backup-recovery"},{title:"Security monitoring",body:"MDR, email security, and access reviews for finance, dispatch, and driver-management tools.",href:"/services/security/cybersecurity"}],automationModules:[{title:"RF exception routing",body:"Coverage and scanner-failure signals escalate to the night supervisor path, not a next-morning ticket pile."},{title:"WMS failover drills",body:"Scheduled restore and replica checks with evidence your operations lead can use in carrier and customer reviews."},{title:"Yard and HQ identity",body:"Joiner-mover-leaver workflows for dispatchers, temps, and 3PL staff with time-bound access."}],referenceBlueprints:[{title:"Warehouse connectivity",scaleIndicator:"High-density warehouse with handheld device fleets",primaryRisk:"Wireless faults interrupt picking and dispatch workflows.",controlPlaneMechanism:"Workspace network exception queues correlate device and access-point signals with the warehouse escalation owner."},{title:"Transport-system recovery",scaleIndicator:"Regional transport network with multiple depots",primaryRisk:"A primary system outage blocks routing and dispatch visibility.",controlPlaneMechanism:"Workspace recovery runbooks track replication checks, restore validation, and operator-approved failover."},{title:"Distribution support routing",scaleIndicator:"Multi-site distribution network",primaryRisk:"Local incidents stall when site ownership and escalation paths differ.",controlPlaneMechanism:"Workspace site-aware service queues standardize intake, incident context, and dispatch priorities."}],compliance:["SOC 2 vendor diligence","PCI for payment touchpoints","DOT partner security"]},"law-firms":{slug:"law-firms",legacyId:"law-firms",title:"Legal & Professional Practices",shortTitle:"Legal",navLabel:"Legal & Professional Practices",navDescription:"Matter confidentiality, discovery, and document automation",eyebrow:"Legal & professional practices",description:"Confidentiality-first security, matter-centric access, and document automation for law firms and professional practices handling privileged client data â where a leak is a malpractice and reputation event, not an inconvenience.",answerFirst:"Bitscaled runs an AI-native legal MSP stack: ethical walls, secure discovery environments, identity-hardened email, and a practice control plane that protects billable hours and client confidentiality at the same time.",controlPlane:"Managing partners see matter-aware access exceptions, impersonation risk, backup proof, and after-hours filing support in one governed workspace.",metaDescription:"AI-native MSP for legal and professional practices â matter confidentiality, secure discovery, document automation, and Florida Bar-aligned cybersecurity.",path:`${p}/law-firms`,cardImage:(0,u.rS)("law-firms"),contactIndustryParam:"Law Firm",Icon:o.A,pains:[{title:"Privilege and ethical walls",body:"Matter conflicts require precise access controls â generic file shares create malpractice exposure and client-conflict risk."},{title:"Client data exfiltration",body:"Wire fraud and document theft target firms with weak email authentication, MFA gaps, and overshared discovery folders."},{title:"Billable-hour interruption",body:"Partners need same-day response before filings, depositions, and client deadlines â not a ticket that waits until morning."}],outcomes:[{title:"Matter-aware access",body:"Role and matter-based permissions with logging your managing partner and ethics counsel can audit."},{title:"Email and identity hardening",body:"DMARC enforcement, MFA, and phishing resilience aligned to Florida Bar cybersecurity guidance."},{title:"Secure collaboration",body:"Document automation, time-bound guest access, and discovery workspaces that expire with the engagement."}],services:[{title:"Cybersecurity & email protection",body:"SPF/DKIM/DMARC, MDR, and DLP policies tuned for privileged legal workflows.",href:"/services/security/cybersecurity"},{title:"Managed IT & helpdesk",body:"Priority support for partners, paralegals, and remote attorneys around filing windows.",href:"/services/infrastru
1cture/managed-it"},{title:"Backup & retention",body:"Immutable backups and retention policies that support litigation holds and client file duties.",href:"/services/data/backup-recovery"}],automationModules:[{title:"Ethical-wall provisioning",body:"Matter-based access templates so conflicts do not rely on tribal knowledge in a shared drive."},{title:"Discovery workspace lifecycle",body:"Time-bound external sharing and revocation when a matter closes or a vendor engagement ends."},{title:"Filing-window escalation",body:"After-hours priority routing for docket, e-filing, and court-system dependencies."}],referenceBlueprints:[{title:"Legal finance identity",scaleIndicator:"Multi-office practice with finance and matter teams",primaryRisk:"Email impersonation redirects sensitive instructions or payments.",controlPlaneMechanism:"Workspace identity and email-security exception queues assign MFA, domain-control, and escalation reviews."},{title:"Matter collaboration",scaleIndicator:"Legal practice with external counsel and client collaborators",primaryRisk:"Client records remain accessible after a matter or collaboration ends.",controlPlaneMechanism:"Workspace access reviews track matter-scoped sharing, expiry, and responsible attorney approval."},{title:"Filing continuity",scaleIndicator:"Practice with after-hours trial and filing deadlines",primaryRisk:"An unresolved service dependency interrupts a filing window.",controlPlaneMechanism:"Workspace priority routing connects docket dependencies, escalation ownership, and continuity runbooks."}],compliance:["ABA Model Rules","Florida Bar cybersecurity","Client confidentiality duties"]},"financial-professional-services":{slug:"financial-professional-services",legacyId:"financial-professional-services",title:"Financial & Professional Services",shortTitle:"Financial Services",navLabel:"Financial & Professional Services",navDescription:"GLBA, SEC, and FTC Safeguards examination readiness",eyebrow:"Financial & professional services",description:"Security-first MSP programs for RIAs, wealth managers, insurance agencies, and CPAs â built for GLBA, SEC, and FTC Safeguards examination cycles where missing logs are a finding, not a footnote.",answerFirst:"Bitscaled delivers an AI-native financial-services MSP stack: exam-ready logging, BEC and wire-fraud hardening, advisor endpoint control, and a CCO-facing control plane that does not get assembled the week before an exam.",controlPlane:"Chief compliance officers see access reviews, incident playbooks, DMARC posture, and endpoint exceptions in one governed workspace.",metaDescription:"AI-native MSP for financial and professional firms â GLBA/SEC-aligned MDR, identity security, and exam-ready documentation for RIAs and agencies.",path:`${p}/financial-professional-services`,cardImage:(0,u.rS)("law-firms"),contactIndustryParam:"Financial & Professional Services",Icon:s.A,pains:[{title:"Examination readiness gaps",body:"SEC and state regulators expect written policies, access logs, and incident playbooks â not ad hoc spreadsheets assembled before a Tampa exam."},{title:"Wire fraud and BEC",body:"High-value transfers and client impersonation attacks target Westshore finance teams with weak DMARC, MFA gaps, and unmonitored custodian portals."},{title:"Hybrid advisor sprawl",body:"Home offices, client sites, and satellite branches across Hillsborough and Pinellas expand unmanaged endpoints and shadow SaaS outside your security stack."}],outcomes:[{title:"Exam-ready security posture",body:"Documented controls, logging, and remediation tracking your CCO can present to SEC and state examiners without last-minute scramble."},{title:"Continuous threat detection",body:"MDR and SOC monitoring with playbooks for ransomware, BEC, and custodian portal compromise scenarios common in wealth management."},{title:"Aligned technology budgets",body:"vCIO guidance mapping investments to Safeguards Rule updates, branch expansion, and custodian integration changes across Tampa Bay."}],services:[{title:"Managed detection & response",body:"24/7 monitoring, threat hunting, and incident response sized for regulated RIA and agency teams.",href:"/services/security/cybersecurity"},{title:"Virtual CIO",body:"Quarterly business reviews, risk registers, and roadmap alignment with SEC, FTC, and state examiner expectations.",href:"/services/strategic/consulting"},{title:"Identity & email security",body:"MFA, privileged access management, and DMARC enforcement for client-facing advisors and back-office staff.",href:"/services/security/cybersecurity"}],automationModules:[{title:"Exam evidence packets",body:"Access-review and incident-log exports your CCO can attach to Safeguards and
1SEC exam binders."},{title:"Wire-fraud controls",body:"DMARC, MFA, and dual-control playbooks for high-value transfers and custodian portal access."},{title:"Advisor endpoint baselines",body:"Standardized, monitored workstations for home offices and branch sites â not unmanaged laptops."}],referenceBlueprints:[{title:"Safeguards control evidence",scaleIndicator:"Multi-office financial services practice",primaryRisk:"Control gaps and missing evidence complicate examination readiness.",controlPlaneMechanism:"Workspace control registers link Safeguards Rule tasks, named owners, and review evidence."},{title:"Advisor incident coordination",scaleIndicator:"Advisor organization with branch and remote staff",primaryRisk:"A security alert lacks a clear response owner or investigation trail.",controlPlaneMechanism:"Workspace incident queues connect approved MDR signals, operator review, and incident-response evidence."},{title:"Advisor workstation baseline",scaleIndicator:"Branch and home-office workstation fleet",primaryRisk:"Unmanaged endpoints expose financial records outside the office.",controlPlaneMechanism:"Workspace endpoint posture queues route baseline exceptions, patch actions, and access review tasks."}],compliance:["GLBA","SEC cybersecurity guidance","FTC Safeguards Rule","FINRA (when applicable)"]},"defense-aerospace":{slug:"defense-aerospace",legacyId:"defense-aerospace",title:"Defense & Aerospace",shortTitle:"Defense",navLabel:"Defense & Aerospace",navDescription:"CMMC, CUI enclaves, and NIST 800-171 evidence",eyebrow:"Defense & aerospace",description:"CMMC-aware managed services for defense suppliers, engineering firms, and aerospace manufacturers that must protect CUI without stalling contract delivery.",answerFirst:"Bitscaled delivers AI-native defense MSP architecture: CMMC readiness, CUI enclaves, NIST 800-171 control monitoring, and a contract-facing control plane so evidence stays current between assessments.",controlPlane:"Program managers see POA&M status, MFA coverage, CUI access exceptions, and patch evidence in one governed workspace.",metaDescription:"AI-native MSP for defense and aerospace â CMMC Level 1/2 readiness, CUI enclaves, NIST 800-171 controls, and continuous audit preparation.",path:`${p}/defense-aerospace`,cardImage:(0,u.rS)("manufacturing"),contactIndustryParam:"Defense & Aerospace",Icon:l.A,pains:[{title:"CMMC certification pressure",body:"DFARS 252.204-7021 makes verified CMMC status a gate for maintaining DoD contract revenue."},{title:"CUI handling complexity",body:"Controlled Unclassified Information requires segmented environments â not shared drives on consumer SaaS."},{title:"Supply chain attestation",body:"Prime contractors demand evidence of NIST 800-171 controls across subcontractors."}],outcomes:[{title:"Structured CMMC readiness",body:"Gap assessments, SSP/SRM alignment, and mock audits that reduce surprise findings."},{title:"Secure enclaves for CUI",body:"Isolated workspaces, access logging, and encryption patterns sized for SMB defense firms."},{title:"Ongoing control monitoring",body:"Continuous validation that patching, MFA, and logging stay exam-ready between assessments."}],services:[{title:"Cybersecurity & compliance",body:"NIST 800-171 control implementation, POA&M tracking, and incident response planning.",href:"/services/security/cybersecurity"},{title:"Infrastructure hardening",body:"Segmented networks, secure remote access, and backup strategies for engineering data.",href:"/services/infrastructure/managed-it"},{title:"vCIO for defense SMBs",body:"Roadmaps that balance CMMC timelines with contract delivery and staffing constraints.",href:"/services/strategic/consulting"}],automationModules:[{title:"POA&M tracking",body:"Control gaps stay owned, dated, and reviewable â not a spreadsheet that goes stale after the last mock audit."},{title:"CUI enclave access",body:"Joiner-mover-leaver for engineers and subcontractors with logging sized for SMB defense firms."},{title:"Continuous control checks",body:"MFA, patching, and logging validation between CMMC assessments so first-pass findings stay rare."}],referenceBlueprints:[{title:"CMMC readiness planning",scaleIndicator:"Small defense supplier with a defined assessment boundary",primaryRisk:"Unresolved control gaps block a coherent readiness plan.",controlPlaneMechanism:"Workspace control registers connect CMMC gap findings, POA&M actions, and accountable owners."}
1,{title:"CUI enclave access",scaleIndicator:"Engineering team under 50 seats within a scoped enclave",primaryRisk:"Controlled technical data crosses an unmanaged access boundary.",controlPlaneMechanism:"Workspace access workflows record enclave roles, approval checkpoints, and recurring access-review evidence."},{title:"Assessment evidence review",scaleIndicator:"Defense supplier preparing a Level 2 assessment",primaryRisk:"Control implementation and assessment evidence drift out of alignment.",controlPlaneMechanism:"Workspace evidence tasks map control checks, operator review, and remediation closure to the assessment boundary."}],compliance:["CMMC","NIST SP 800-171","DFARS 252.204-7021"]},construction:{slug:"construction",legacyId:"construction",title:"Construction & Civil Engineering",shortTitle:"Construction",navLabel:"Construction & Engineering",navDescription:"Jobsite connectivity, BIM sharing, and subcontractor access",eyebrow:"Construction & civil engineering",description:"Mobile-first file collaboration, jobsite connectivity, and secure sharing for contractors whose field teams cannot wait on a VPN or an outdated model file.",answerFirst:"Bitscaled runs an AI-native construction MSP stack: jobsite connectivity, BIM/model sharing, time-bound subcontractor access, and a project control plane so field version-control chaos does not burn a critical path.",controlPlane:"PMs and IT leads see project folder access, jobsite connectivity exceptions, and vendor offboarding in one workspace.",metaDescription:"AI-native MSP for construction and civil engineering â jobsite connectivity, BIM sharing, and auditable subcontractor access.",path:`${p}/construction`,cardImage:(0,u.rS)("manufacturing"),contactIndustryParam:"Construction & Engineering",Icon:c.A,pains:[{title:"Field version-control chaos",body:"Crews working from outdated plans when model files live on slow VPNs or personal drives."},{title:"Decentralized jobsites",body:"Trailers, cranes, and remote superintendents need reliable connectivity without shadow IT."},{title:"Subcontractor access risk",body:"External partners need time-bound folder access â not permanent VPN accounts."}],outcomes:[{title:"Jobsite-ready collaboration",body:"Cloud file platforms with standardized folder structures and mobile access for field teams."},{title:"Role-based external sharing",body:"Subcontractor permissions that expire with project milestones and are fully auditable."},{title:"Lower mobile data costs",body:"Optimized sync workflows that reduce redundant downloads on cellular connections."}],services:[{title:"Managed IT & field support",body:"Helpdesk, device management, and vendor coordination for HQ and jobsite staff.",href:"/services/infrastructure/managed-it"},{title:"Cloud & collaboration",body:"Microsoft 365 governance, SharePoint structure, and secure guest access patterns.",href:"/services/infrastructure/cloud"},{title:"Cybersecurity",body:"Email protection, MFA, and monitoring for firms handling bid documents and lien data.",href:"/services/security/cybersecurity"}],automationModules:[{title:"Project access lifecycle",body:"Subcontractor permissions expire with milestones â no leftover VPN accounts after closeout."},{title:"Model-sync hygiene",body:"Standardized folder templates and sync paths so field crews are not working from last weekâs drawings."},{title:"Jobsite connectivity signals",body:"Trailer and cellular failover alerts route to the superintendent path during pour and inspection windows."}],referenceBlueprints:[{title:"Model-to-field delivery",scaleIndicator:"Construction program with multiple active jobsites",primaryRisk:"Outdated design models reach crews during execution.",controlPlaneMechanism:"Workspace change workflows connect approved model versions, field handoffs, and site-specific exception routing."},{title:"Subcontractor access lifecycle",scaleIndicator:"Project teams spanning multiple subcontractors",primaryRisk:"External access persists after a milestone or engagement ends.",controlPlaneMechanism:"Workspace project-scoped access reviews track sponsor approval, expiry, and revocation evidence."},{title:"Jobsite information baseline",scaleIndicator:"Regional builder with concurrent projects",primaryRisk:"Inconsistent folder and permission structures expose project records.",controlPlaneMechanism:"Workspace deployment runbooks track project templates, role baselines, and readiness checks for each site."}],compliance:["PCI for vendor payments","Insurance cyber riders","Client IT security addenda"]},"real-estate-property-management":{slug:"real-estate-property-management",legacyId:"real-estate-property-management",title:"Real Estate & Property Management",shortTitle:"Property Management",navLabel:"Real Estate & Property Management",navDescription:"PMS security, tenant PII, and IoT access governance",eyebrow:"Real estate & property management",description:"Secure PMS hosting, tenant payment protection, and smart-building integrations for property managers whose leasing portals and access systems are high-value fraud targets.",answerFirst:"Bitscaled delivers an AI-native property-operations MSP stack: hardened PMS, PCI-aware payments, tenant PII controls, IoT access governance, and a portfolio control plane for multi-site operators.",controlPlane:"Regional managers see PMS health, payment-vendor diligence, camera/lock vendor access, and identity exceptions in one workspace.",metaDescription:"AI-native MSP for real estate and property management â PMS security, PCI-aware payments, tenant PII protection, and IoT access systems.",path:`${p}/real-estate-property-management`,cardImage:(0,u.rS)("real-estate-property-management"),contactIndustryParam:"Real Estate & Property Management",Icon:d.A,pains:[{title:"Tenant PII exposure",body:"Leasing portals aggregate background checks and payment data â prime targets for credential stuffing."},{title:"Decentralized portfolios",body:"Multi-property operators juggle PMS instances, cameras, and smart locks without central governance."}
1,{title:"PCI and fraud pressure",body:"Online rent collection requires encryption, monitoring, and vendor diligence often missing in SMB stacks."}],outcomes:[{title:"Hardened PMS environments",body:"Secure hosting, patching, and backup policies aligned to property management workflows."},{title:"Payment and identity controls",body:"MFA, encryption, and monitoring for staff accessing financial and tenant records."},{title:"IoT and access governance",body:"Documented administration for cameras, smart locks, and vendor remote access."}],services:[{title:"Managed IT",body:"Support for leasing teams, maintenance staff, and executive reporting across properties.",href:"/services/infrastructure/managed-it"},{title:"Cybersecurity",body:"MDR, email security, and access reviews for firms handling high-volume tenant data.",href:"/services/security/cybersecurity"},{title:"Cloud services",body:"Microsoft 365 and PMS integration with role-based access for regional managers.",href:"/services/infrastructure/cloud"}],automationModules:[{title:"PMS identity reviews",body:"MFA and role reviews for leasing, maintenance, and accounting staff who touch tenant PII."},{title:"Payment vendor diligence",body:"PCI-aware monitoring and vendor access evidence for online rent collection stacks."},{title:"IoT access attestation",body:"Quarterly camera, lock, and vendor remote-access reviews instead of unmanaged smart-building sprawl."}],referenceBlueprints:[{title:"Property-system migration",scaleIndicator:"Property portfolio with multiple payment touchpoints",primaryRisk:"A system migration disrupts payment-data boundaries or leasing workflows.",controlPlaneMechanism:"Workspace change runbooks link migration approvals, payment-control checks, and rollback evidence."},{title:"Leasing identity lifecycle",scaleIndicator:"Multi-site leasing and property management teams",primaryRisk:"Staff transitions leave orphaned accounts or inconsistent MFA coverage.",controlPlaneMechanism:"Workspace identity workflows track joiner-mover-leaver tasks, access exceptions, and location owners."},{title:"Building-vendor access",scaleIndicator:"Property portfolio with smart locks and camera vendors",primaryRisk:"Unreviewed vendor sessions expose connected building systems.",controlPlaneMechanism:"Workspace access attestations record vendor scope, expiration, and quarterly review ownership."}],compliance:["PCI-DSS","Fair housing data handling","State privacy expectations"]}},f=Object.keys(h);["healthcare","manufacturing","logistics-warehousing","law-firms","financial-professional-services","defense-aerospace","construction","real-estate-property-management"].map(e=>h[e]),f.map(e=>h[e]);let g=f.map(e=>{let t=h[e];return{href:t.path,title:t.title,description:t.navDescription,Icon:t.Icon,links:[]}})},46586:(e,t,r)=>{r.d(t,{Px:()=>c,Zv:()=>l,yr:()=>d});let n={intranet:"/intranet",admin:"/admin",workspace:"/workspace"},a=["login","unauthorized","accept-invite","resend-confirmation","reset-password","verify-email"],i=["/accept-invite","/resend-confirmation","/reset-password","/verify-email","/unauthorized","/register"];function o(e){let t=(e||"").split("?")[0]?.split("#")[0]?.toLowerCase()||"";return t.length>1&&t.endsWith("/")?t.slice(0,-1):t}function s(e,t){return e===t||e.startsWith(`${t}/`)}function l(e,t){let r;return`${n["admin"===(r=String(e||"").trim().toLowerCase())?"admin":"intranet"===r?"intranet":"workspace"]}/${t}`}function c(e){let t=o(e);for(let e of Object.values(n))for(let r of a)if(s(t,`${e}/${r}`))return!0;for(let e of i)if(s(t,e))return!0;return!1}function d(e){let t=o(e),r=["login","accept-invite","resend-confirmation","reset-password","verify-email"];for(let e of Object.values(n))for(let n of r)if(s(t,`${e}/${n}`))return!0;for(let e of["/accept-invite","/resend-confirmation","/reset-password","/verify-email","/register"])if(s(t,e))return!0;return!1}},47659:(e,t,r)=>{r.d(t,{v:()=>c});var n=r(68987),a=r(37866),i=r.n(a),o=r(37182),s=r(7031),l=r(67120);function c({href:e="/",className:t,markClassName:r,labelClassName:a,ariaLabel:d="Bitscaled - Home",markSize:u=40,shouldShowLabel:m=!0,prefetch:p,isHardNavigation:h=!1}){let f=(0,s.cn)("inline-flex min-h-11 min-w-11 items-center gap-2 rounded-md no-underline",l.tD,t),g=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.default,{src:"/images/site-logo-square.svg",alt:"",width:u,height:u,className:(0,s.cn)("logo-image h-10 w-10 shrink-0 rounded object-contain",r),sizes:`${u}px`}),m?(0,n.jsx)("span",{className:(0,s.cn)("text-base font-semibold leading-none tracking-tight text-foreground",a),children:"Bitscaled"}):null]});return h?(0,n.jsx)("a",{href:e,className:f,"aria-label":d,children:g}):(0,n.jsx)(i(),{href:e,prefetch:p,className:f,"aria-label":d,children:g})}},48908:(e,t,r)=>{r.d(t,{Y9:()=>eI});var n=r(68987),a=r(2315),i=r(37866),o=r.n(i),s=r(1343),l=r(96349),c=r(62639),d=r(61389),u=r(41827),m=r(93035),p=r(67120),h=r(71519),f=r(40506),g=r(98969),b=r(46217),v=r(81727),y=r(33282);function w({isCtaShown:e,isAuthenticated:t,user:r,isLoginButtonShown:a,loginText:i,finalMobileLinks:o}){return(0,n.jsxs)("div",{className:"flex items-center justify-end ml-auto gap-2 shrink-0",children:[(0,n.jsx)(b.t,{variant:"ghost",size:"icon",className:"h-11 w-11 min-h-11 min-w-11 shrink-0 text-muted-foreground hover:text-foreground"}),(0,n.jsxs)("div",{className:"hidden xl:flex items-center gap-3 2xl:gap-4",children:[e&&(t&&r?
1(0,n.jsx)(g.v,{user:r,shouldShowAdminLink:r.permissions?.includes("admin:access")}):(0,n.jsx)(v.K,{href:y.OK.headerHref,className:(0,h.cn)(p.ZB,p.SJ.primary,p.tD,"px-4 2xl:px-5 text-xs 2xl:text-sm"),children:y.OK.label})),!e&&a&&i&&(0,n.jsx)(v.K,{href:"/workspace/login",className:(0,h.cn)(p.ZB,p.SJ.secondary,p.tD,"px-4"),children:i})]}),(0,n.jsx)("div",{className:"flex xl:hidden items-center gap-1.5",children:(0,n.jsx)(f.q,{links:o,className:"flex items-center",buttonClassName:"min-h-11 min-w-11 h-11 w-11 rounded-lg flex items-center justify-center"})})]})}var x=r(7031);function k({children:e,className:t,shouldShrinkOnScroll:r,variant:i}){let[o,s]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!r)return void s(!1);let e=0,t=()=>{e=0;let t=window.scrollY;s(e=>t>48||!(t<16)&&e)};t();let n=()=>{e||(e=window.requestAnimationFrame(t))};return window.addEventListener("scroll",n,{passive:!0}),()=>{e&&window.cancelAnimationFrame(e),window.removeEventListener("scroll",n)}},[r]);let l=a.useMemo(()=>{let e="site-public-header fixed top-[var(--site-status-banner-height,0px)] left-0 right-0 z-[60] w-full border-b pr-[var(--removed-body-scroll-bar-size,0px)] transition-[top,background-color,border-color,box-shadow,backdrop-filter] duration-500 ease-standard motion-reduce:transition-none";return"minimal"===i?(0,x.cn)(e,"bg-background border-border dark:border-border-strong shadow-sm"):(0,x.cn)(e,"bg-background supports-[backdrop-filter]:backdrop-blur-frosted supports-[backdrop-filter]:backdrop-saturate-frosted","border-border dark:border-border-strong",o?"shadow-md supports-[backdrop-filter]:bg-background/90":"shadow-sm supports-[backdrop-filter]:bg-background/80")},[i,o]);return(0,n.jsx)("header",{className:(0,x.cn)(l,t),"data-scrolled":o,children:e})}var A=r(47659),S=r(83839),I=r(25002),M=r(7132),C=r(94023),N=r(67130),j=r(63849),P=r(34784),R=r(81885);let E="bitscaled:public-nav-dropdown-open";function L(e,t){return!!(e&&t instanceof Node&&e.contains(t))}let T=(0,a.forwardRef)(({children:e,title:t,isActive:r=!1,position:i="right",variant:o="default",size:l="md",triggerIcon:c,containerClassName:d,triggerClassName:u,menuClassName:m,menuZIndex:p=100,hasChevron:h=!0,isHoverToOpen:f=!0,hoverDelay:g=150,isCloseOnItemClick:b=!0,onOpen:y,onClose:w,onTriggerClick:k,id:A,triggerHref:S},T)=>{let F,[D,W]=(0,a.useState)(!1),[O,B]=(0,a.useState)(null),[$,H]=(0,a.useState)(!1),U=(0,a.useRef)(null),_=(0,a.useRef)(null),z=(0,a.useRef)(null),q=(0,a.useRef)(null),K=(0,a.useRef)(0),G=(0,a.useRef)(void 0),V=(0,a.useRef)(!1),J=S?(0,R.d3)(S):"",X=!!(J&&"#"!==J),Q=(0,s.usePathname)(),Y=(0,a.useRef)(void 0),Z=(0,a.useRef)(0),ee=(0,a.useRef)(!1),et=(0,a.useRef)(!1);V.current=D;let er=(0,a.useId)(),en=A||er,ea=(0,a.useMemo)(()=>{let e=t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),r=en.replace(/[^a-zA-Z0-9_-]/g,"");return`dropdown-${e||"menu"}-${r||"id"}`},[t,en]),ei=`${ea}-trigger`,eo=`${ea}-content`,es=(0,a.useCallback)(()=>{void 0!==G.current&&(cancelAnimationFrame(G.current),G.current=void 0)},[]),el=(0,a.useCallback)(()=>{Y.current&&(clearTimeout(Y.current),Y.current=void 0)},[]),ec=(0,a.useCallback)(()=>{el(),et.current=!1,es(),K.current=0,q.current=null,W(!1),B(null)},[el,es]),ed=(0,a.useCallback)(()=>{V.current||B(null)},[]);(0,a.useImperativeHandle)(T,()=>({closeDropdown:ec}),[ec]),(0,a.useEffect)(()=>{H(!0)},[]);let eu=(0,a.useCallback)(()=>{if(!U.current||!V.current)return;if(!z.current){if(K.current>=30)return;K.current+=1,es(),G.current=requestAnimationFrame(()=>eu());return}let e=U.current.getBoundingClientRect(),t=z.current,r=t.offsetWidth,n=t.offsetHeight||200,a=window.innerWidth,o=window.innerHeight;if(r<1){if(K.current>=30)return;K.current+=1,es(),G.current=requestAnimationFrame(()=>eu());return}K.current=0;let s=e.left+e.width/2,l=t=>{switch(t){case"right":return e.left;case"left":return e.right-r;default:return s-r/2}},c=i,d=l(i),u=d+r;"center"===i?d<16?c="right":u>a-16&&(c="left"):"right"===i?u>a-16&&(c="left"):"left"===i&&d<16&&(c="right");let m=Math.max(16,a-16-r),p=Math.min(Math.max(l(c),16),m),h=o-e.bottom-0,f=e.top-0;if(h<n&&f>h)B({left:p,top:Math.max(16,e.top-0-n),maxHeight:Math.max(120,e.top-0-16)});else{let t=e.bottom+0;B({left:p,top:t,maxHeight:Math.max(120,o-t-16)})}},[es,i]),em=e=>{if(!f)return;if(e.target instanceof Node&&z.current?.contains(e.target)){if(!et.current)return;et.current=!1}if(L(U.current,e.relatedTarget)||L(z.current,e.relatedTarget)||(el(),!V.current))return;let t=Z.current;Y.current=setTimeout(()=>{Y.current=void 0,t===Z.current&&ec()},2*g)},ep=e=>{e.preventDefault(),e.stopPropagation(),el(),W(e=>!e),k?.()};(0,a.useLayoutEffect)(()=>{D&&!ee.current&&(Z.current+=1,el(),et.current=!1),ee.current=D,D?("u">typeof document&&document.dispatchEvent(new CustomEvent(E,{detail:{id:en}})),K.current=0,eu(),y?.()):w?.()},[D,en,y,w,eu,t,el]),(0,a.useLayoutEffect)(()=>
1{if(!D||!O||!q.current)return;let e=z.current?.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])');if(!e?.length)return;let t="last"===q.current?e.length-1:0;q.current=null,e[t]?.focus()},[D,O]),(0,a.useEffect)(()=>{if("u"<typeof document)return;let e=e=>{let t=e.detail;t&&t.id!==en&&ec()};return document.addEventListener(E,e),()=>document.removeEventListener(E,e)},[ec,en]),(0,a.useEffect)(()=>{if(!D)return;let e=()=>{eu()};return window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[D,eu]),(0,a.useEffect)(()=>{if("function"!=typeof window.matchMedia||!D)return;let e=window.matchMedia(j.h),t=()=>{e.matches&&ec()};return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[ec,D]),(0,a.useEffect)(()=>{if(!D)return;let e=({target:e})=>{!(e instanceof Node)||U.current?.contains(e)||z.current?.contains(e)||ec()};return document.addEventListener("focusin",e),()=>document.removeEventListener("focusin",e)},[ec,D]),(0,a.useEffect)(()=>{if("u"<typeof document||!D)return;let e=({target:e})=>{let t=e instanceof Node?e:null;!t||U.current?.contains(t)||z.current?.contains(t)||ec()};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[ec,D]),(0,a.useEffect)(()=>{if("u"<typeof document)return;let e=({key:e})=>{D&&"Escape"===e&&(ec(),_.current?.focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[ec,D]);let eh=(0,a.useRef)(Q);(0,a.useEffect)(()=>{eh.current!==Q&&(eh.current=Q,(0,a.startTransition)(ec))},[ec,Q]),(0,a.useEffect)(()=>()=>{el(),es()},[el,es]);let ef=()=>{let e={default:(0,x.cn)("bg-background hover:bg-accent hover:text-accent-foreground","border border-input shadow-sm",r&&"bg-accent text-accent-foreground border-primary/50"),ghost:(0,x.cn)("hover:bg-accent hover:text-accent-foreground",r&&"bg-accent text-accent-foreground"),outline:(0,x.cn)("border bg-background hover:bg-accent hover:text-accent-foreground",r?"border-primary bg-accent text-accent-foreground":"border-input"),glass:(0,x.cn)("bg-popover/10 backdrop-blur-md border border-border/20 hover:bg-popover/20","shadow-lg hover:shadow-md",r&&"bg-popover/20 border-primary/30")};return(0,x.cn)("inline-flex items-center justify-center rounded-md font-medium no-underline transition-[color,background-color,border-color,box-shadow,transform] duration-200 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 motion-reduce:transform-none motion-reduce:transition-none",{sm:"h-8 px-3 text-sm gap-1",md:"h-9 px-4 text-sm gap-1.5",lg:"h-10 px-6 text-base gap-2"}[l],e[o])},eg=h&&!c?D?(0,n.jsx)(C.A,{className:"w-4 h-4 transition-transform duration-200","aria-hidden":"true"}):(0,n.jsx)(N.A,{className:"w-4 h-4 transition-transform duration-200","aria-hidden":"true"}):null,eb=(0,x.cn)(ef(),"max-w-none shrink-0",u);return(0,n.jsxs)("div",{className:(0,x.cn)("relative shrink-0",d),ref:U,onKeyDown:e=>{let t=e.target===_.current;if(!D){t&&("ArrowDown"===e.key||"ArrowUp"===e.key)&&(e.preventDefault(),el(),q.current="ArrowUp"===e.key?"last":"first",W(!0));return}if(t&&"Tab"===e.key&&!e.shiftKey&&!O){e.preventDefault(),q.current="first";return}let r=z.current?.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])')||[];if(0===r.length)return;let n=Array.from(r).findIndex(e=>e===document?.activeElement);switch(e.key){case"ArrowDown":e.preventDefault(),n<r.length-1?r[n+1].focus():r[0].focus();break;case"ArrowUp":e.preventDefault(),n>0?r[n-1].focus():r[r.length-1].focus();break;case"Home":e.preventDefault(),r[0].focus();break;case"End":e.preventDefault(),r[r.length-1].focus();break;case"Tab":t&&!e.shiftKey?(e.preventDefault(),r[0]?.focus()):e.shiftKey&&0===n?(e.preventDefault(),ec(),_.current?.focus()):(t||!e.shiftKey&&n===r.length-1)&&(_.current?.focus(),ec())}},onMouseEnter:()=>{f&&(el(),Y.current=setTimeout(()=>{W(!0)},g))},onMouseLeave:em,role:"presentation",children:[X?(0,n.jsxs)("div",{className:"relative inline-flex h-11 max-w-none shrink-0 items-center",children:[(0,n.jsxs)(v.K,{href:J,"aria-current":r&&(0,P.xi)(Q,J,!0)?"page":void 0,className:(0,x.cn)(eb,"h-11 items-center rounded-r-none pr-1"),children:[(0,n.jsx)("span",{className:"shrink-0 whitespace-nowrap no-underline",children:t}),r&&(0,n.jsx)("span",{className:"absolute bottom-1 left-1/2 h-0.5 w-4 -translate-x-1/2 bg-primary rounded-full"})]}),(0,n.jsxs)("button",{type:"button",ref:_,className:(0,x.cn)(ef(),"h-11 max-w-none shrink-0 rounded-l-none px-1.5 min-w-11","text-muted-foreground hover:text-foreground hover:bg-accent"),id:ei,"aria-expanded":D,"aria-controls":eo,"aria-label":`${t} menu`,onClick:ep,children:[eg,c&&(0,n.jsx)("div",{className:"ml-auto",children:c})]})]}):(0,n.jsxs)("button",{type:"button",ref:_,className:eb,id:ei,"aria-expanded":D,"aria-controls":eo,onClick:ep,children:[(0,n.jsx)("span",{className:"shrink-0 whitespace-nowrap no-underline",children:t}),eg?(0,n.jsx)("div",{className:"shrink-0",children:eg}):null,c&&(0,n.jsx)("div",{className:"ml-auto",children:c}),r&&(0,n.jsx)("span",{className:"absolute bottom-1 left-1/2 h-0.5 w-4 -translate-x-1/2 bg-primary rounded-full"})]}),$?(0,I.createPortal)((0,n.jsx)(M.e,{show:D,as:a.Fragment,enter:"transition ease-out duration-200 motion-reduce:transition-none",enterFrom:"opacity-0 -translate-y-2 scale-95",enterTo:"opacity-100 translate-y-0 scale-100",leave:"transition ease-in duration-150 motion-reduce:transition-none",leaveFrom:"opacity-100 translate-y-0 scale-100",leaveTo:"opacity-0 -translate-y-2 scale-95",afterEnter:eu,afterLeave:ed,children:(0,n.jsx)("div",{ref:z,className:(0,x.cn)("public-site default-site-shell",(F={default:"bg-popover text-popover-foreground border border-border",ghost:"bg-popover text-popover-foreground border border-border",outline:"bg-popover text-popover-foreground border border-border",glass:(0,x.cn)("bg-popover/98 backdrop-blur-xl border border-border/20","shadow-2xl ring-border/10")},(0,x.cn)("fixed mt-0 py-1 rounded-lg shadow-lg ring-1 ring-border ring-opacity-20 focu
1s:outline-none overflow-y-auto",F[o],{sm:"min-w-[140px] text-sm",md:"min-w-[160px] text-sm",lg:"min-w-[200px] text-base"}[l])),m,(!D||!O)&&"pointer-events-none"),"aria-labelledby":ei,inert:!D||void 0,id:eo,tabIndex:-1,onMouseEnter:()=>{el(),V.current&&(et.current=!0)},onMouseMove:()=>{V.current&&!et.current&&(el(),et.current=!0)},onMouseLeave:em,onKeyDown:e=>{"Escape"===e.key&&(ec(),_.current?.focus())},onClick:e=>{if(!b)return void e.stopPropagation();let t=e.target,r=t instanceof Element?t:null;r&&r.closest("a, button, [data-dropdown-item]")&&(r.closest("[data-nested-dropdown]")||ec()),e.stopPropagation()},style:{zIndex:p,willChange:"transform, opacity",position:"fixed",left:O?.left??0,top:O?.top??0,maxHeight:O?.maxHeight,right:"auto",bottom:"auto",marginTop:0,marginBottom:0,visibility:O?"visible":"hidden"},"data-dropdown-menu":!0,"data-public-nav-overlay":!0,children:(0,n.jsx)("div",{className:"py-1",role:"none",children:e})})}),document.body):null]})});T.displayName="Dropdown";var F=r(83334);function D({label:e,children:t,className:r}){let i=(0,s.usePathname)(),[o,l]=(0,a.useState)({search:"",hash:""});(0,a.useEffect)(()=>{let e=()=>{l({search:window.location.search,hash:window.location.hash})};return e(),window.addEventListener("hashchange",e),window.addEventListener("popstate",e),()=>{window.removeEventListener("hashchange",e),window.removeEventListener("popstate",e)}},[i]);let c=[];for(let e of t){let t=c.at(-1);1===e.depth&&t?t.links.push(e):c.push({heading:e,links:[]})}let d=(e,t=!1)=>{let r=(0,P.$t)(i,e.href,o,e.isExact);return(0,n.jsxs)(v.K,{href:e.href,"aria-current":r&&(0,P.xi)(i,e.href,!0)?"page":void 0,className:(0,h.cn)("group flex min-h-11 min-w-0 items-center justify-between gap-2 rounded-md px-3 py-2 text-sm no-underline transition-colors motion-reduce:transition-none","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",t?"font-semibold":"font-normal",r?"bg-primary/10 text-foreground dark:text-primary-300":"text-foreground hover:bg-accent hover:text-foreground"),children:[(0,n.jsx)("span",{className:"min-w-0 break-words",children:e.label}),(0,n.jsx)(F.A,{className:"h-4 w-4 shrink-0 text-muted-foreground","aria-hidden":"true"})]})};return(0,n.jsxs)("div",{className:(0,h.cn)("w-[min(64rem,calc(100vw_-_2rem))] max-h-[calc(100dvh_-_8rem)] overflow-y-auto overscroll-contain p-4",r),children:[(0,n.jsx)("p",{className:"mb-3 px-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:e}),(0,n.jsx)("ul",{className:"grid grid-cols-2 items-start gap-3 xl:grid-cols-4",children:c.map((e,t)=>(0,n.jsxs)("li",{className:"min-w-0 rounded-lg border border-border bg-background p-1",children:[d(e.heading,!0),e.links.length>0?(0,n.jsx)("ul",{className:"mt-1 border-t border-border pt-1",children:e.links.map((e,t)=>(0,n.jsx)("li",{children:d(e)},`${e.href}:${t}`))}):null]},`${e.heading.href}:${t}`))})]})}D.displayName="BuyerIntentDropdown";let W=new Set(["/services","/platform","/industries","/resources"]),O=new Set(["/resources","/about"]);function B({links:e}){let t=(0,s.usePathname)(),r=(0,a.useCallback)((e,r=!1)=>(0,P.xi)(t,e,r),[t]),i=(0,a.useCallback)(r=>(0,P.Qj)(t,r,e),[t,e]);return(0,n.jsx)("nav",{className:"hidden xl:flex flex-1 self-stretch items-center overflow-visible","aria-label":"Main navigation",children:(0,n.jsx)("ul",{className:"flex h-11 items-center justify-end xl:justify-center gap-0.5 xl:gap-1 2xl:gap-1.5",children:e.map(e=>(0,n.jsx)("li",{className:"shrink-0",children:e.children?(0,n.jsx)(T,{id:`nav-dropdown-${e.label.toLowerCase().replace(/[^a-z0-9]+/g,"-")}`,title:e.label,triggerHref:(0,R.d3)(e.href),isActive:i(e),position:O.has(e.href)?"left":W.has(e.href)?"right":"center",variant:"ghost",size:"md",isCloseOnItemClick:!0,containerClassName:"relative shrink-0",triggerClassName:(0,x.cn)("inline-flex h-11 max-w-none shrink-0 items-center rounded-md px-2 xl:px-2.5 2xl:px-3 text-xs xl:text-sm font-medium leading-none whitespace-nowrap no-underline transition-[color,background-color,box-shadow] duration-200 ease-out motion-reduce:transition-none","hover:bg-accent",p.tD,i(e)?"text-[color:var(--public-nav-active-text)] bg-primary/10":"text-muted-foreground hover:text-foreground"),menuZIndex:"var(--z-dropdown)",menuClassName:"bg-popover text-popover-foreground backdrop-blur-xl border border-border shadow-xl rounded-lg",children:e.children.some(e=>void 0!==e.depth)?(0,n.jsx)(D,{label:e.label,children:e.children}):e.children?.map(e=>{let t=(0,R.d3)(e.href);return(0,n.jsxs)(v.K,{href:t,isExternal:e.isExternal,className:(0,x.cn)("group relative flex items-center text-sm font-medium leading-tight no-underline transition-[color,background-color,box-shadow] duration-200 ease-out hover:no-underline motion-reduce:transition-none","min-h-11 py-2 px-4",r(e.href,e.isExact)?"text-[color:var(--public-nav-active-text)] bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-accent","rounded-lg my-0.5"),...e.isExternal&&{target:"_blank",rel:"noopener noreferrer"},"aria-current":r(e.href,e.isExact)?r(e.href,!0)?"page":"true":void 0,children:[e.icon&&(0,n.jsx)("span",{className:"mr-3 text-lg",children:e.icon}),(0,n.jsxs)("span",{className:"relative inline-block",children:[e.label,r(e.href,e.isExact)&&(0,n.jsx)("span",{className:"absolute -bottom-1 left-0 h-0.5 w-full bg-primary rounded-full"})]})]},`${e.href}-${e.label}`)})}):(0,n.jsxs)(v.K,{href:(0,R.d3)(e.href),isExternal:e.isExternal,className:(0,x.cn)("inline-flex h-11 max-w-none shrink-0 items-center rounded-md px-2 xl:px-2.5 2xl:px-3 text-xs xl:text-sm font-medium leading-none whitespace-nowrap no-underline transition-[color,background-color,box-shadow] duration-200 ease-out motion-reduce:transition-none","hover:bg-accent",p.tD,i(e)?"text-[color:var(--public-nav-active-text)] bg-primary/10":"text-muted-foreground hover:text-foreground"),"aria-current":i(e)?r(e.href,!0)?"page":"true":void 0,...e.isExternal&&{target:"_blank",rel:"noopener noreferrer"},children:[e.icon&&(0,n.jsx)("span",{className:"mr-2 text-lg",children:e.icon}),(0,n.jsxs)("span",{className:"relative inline-block",children:[e.label,e.badge&&(0,n.jsx)("span",{className:"ml-2 px-2 py-0.5 text-xs font-bold bg-primary text-primary-foreground rounded-full",children:e.badge}),i(e)&&(0,n.jsx)("span",{className:"absolute -bottom-1 left-0 h-0.5 w-full bg-primary rounded-full"})]})]})},`${e.href}-${e.label}`))})})}B.displayName="NavLinks";var $=r(34219),H=r(91745),U=r(14012),_=r(61697);let z=[{href:"/about",title:"About Bitscaled",description:"Mission, values, and how we deliver MSP outcomes",Icon:$.A,links:[{href:"/about#our-journey",label:"Our Journey"},{href:"/security",label:"Security"},{href:"/affiliates",label:"Affiliate Program"},{href:"/partners",label:"Partner Program"}]},{href:"/partners",title:"Partner Program",description:"MSP-grade channel for professional firms in Tampa Bay",Icon:H.A,links:[{href:"/partners",label:"Partner Program"},{href:"/partners/portal",label:"Partner portal"}]},{href:"/teams",title:"Our Team",description:"Meet the engineers and advisors behind delivery",Icon:U.A,links:[{href:"/teams",label:"Team directory"}]},{href:"/about#our-journey",title:"Company Timeline",description:"Milestones from founding to today",Icon:_.A,links:[{href:"/about#our-journey",label:"View timeline"},{href:y.OK.href,label:y.OK.label}]}];var q=r(2055),K=r(36041),G=r(67854),V=r(79272),J=r(17524),X=r(79778),Q=r(91001),Y=r(95682),Z=r(26120),ee=r(67986);let et=[{href:ee.bw.PLATFORM_DASHBOARD,title:"Run service delivery",description:"Command center, tickets, and asset inventory",Icon:q.A,links:[{href:ee.bw.PLATFORM_DASHBOARD,label:"Command Dashboard"},{href:ee.bw.PLATFORM_TICKETS,label:"Support & Tickets"},{href:ee.bw.PLATFORM_ASSETS,label:"Assets & Inventory"}]},{href:ee.bw.PLATFORM_AI_AGENTS,title:"Measure & automate",description:"AI agents, monitoring, and reporting",Icon:K.A,links:[{href:ee.bw.PLATFORM_AI_AGENTS,label:"AI Agents & Workflows"},{href:ee.bw.PLATFORM_MONITORING,label:"Monitoring"},{href:ee.bw.PLATFORM_REPORTS,label:"Reports"}]},{href:ee.bw.PLATFORM_BILLING,title:"Govern & transact",description:"Billing transparency and trust evidence",Icon:G.A,links:[{href:ee.bw.PLATFORM_BILLING,label:"Billing & Usage"},{href:ee.bw.PLATFORM_GOVERNANCE,label:"Trust & Governance"}]}];et.flatMap(e=>e.links),ee.bw.PLATFORM_DASHBOARD,q.A,ee.bw.PLATFORM_TICKETS,V.A,ee.bw.PLATFORM_ASSETS,J.A,ee.bw.PLATFORM_AI_AGENTS,K.A,ee.bw.PLATFORM_MONITORING,X.A,ee.bw.PLATFORM_REPORTS,Q.A,ee.bw.PLATFORM_BILLING,Y.A,ee.bw.PLATFORM_GOVERNANCE,Z.A;var er=r(73931),en=r(26175),ea=r(30816),ei=r(42619),eo=r(72277);let es=[{href:"/security",title:"Trust",description:"How we protect Bitscaled and our clients",Icon:er.A,links:[{href:"/security",label:"Security"},{href:"/status",label:"System Status"},{href:"/legal/dpa",label:"Data Processing Agreement"},{href:"/legal/privacy",label:"Privacy Policy"}]},{href:"/case-studies",title:"Evaluate",description:"Proof, pricing, and assessment paths",Icon:en.A,links:[{href:"/case-studies",label:"Reference Blueprints"},{href:"/pricing",label:"Pricing"},{href:y.OK.headerHref,label:y.OK.label}]},{href:"/articles",title:"Learn",description:"Insights on IT operations and growth",Icon:ea.A,links:[{href:"/articles",label:"Articles & insights"},{href:"/articles/categories",label:"Browse categories"}]},{href:"/faq",title:"Get answers",description:"Common questions before you reach out",Icon:ei.A,links:[{href:"/faq",label:"FAQ"},{href:"/status",label:"System Status"},{href:"/contact",label:"Contact us"}]},{href:eo.Bs.href,title:"Free security tools",description:eo.Bs.caption,Icon:Z.A,shouldUseToolActive:!0,links:eo.gw.flatMap(e=>e.links)}];var el=r(21855),ec=r(90761),ed=r(91425),eu=r(8533),em=r(73257);
1let ep=[{href:"/services/infrastructure",title:"Infrastructure",description:"Core systems, support, and monitoring",Icon:el.A,links:[{href:"/services/infrastructure/cloud",label:"Cloud Infrastructure"},{href:"/services/infrastructure/managed-it",label:"Managed IT Solutions"},{href:"/services/infrastructure/monitoring",label:"System Monitoring"},{href:"/services/infrastructure/support",label:"IT Support Services"}]},{href:"/services/development",title:"Development",description:"AI, automation, and transformation",Icon:ec.A,links:[{href:"/services/development/ai",label:"AI Development"},{href:"/services/development/digital-transformation",label:"Digital Transformation"}]},{href:"/services/security",title:"Security",description:"Risk reduction and advisory",Icon:Z.A,links:[{href:"/services/security/cybersecurity",label:"Cybersecurity Solutions"},{href:"/services/security/consulting",label:"Security Consulting"}]},{href:"/services/strategic",title:"Strategic",description:"Roadmaps, vCIO, and consulting",Icon:ed.A,links:[{href:"/services/strategic/consulting",label:"Strategic Consulting"},{href:"/services/strategic/consulting?focus=vcio",label:"IT Consulting & vCIO"}]},{href:"/services/data",title:"Data",description:"Recovery, continuity, and governance",Icon:eu.A,links:[{href:"/services/data/backup-recovery",label:"Backup & Recovery"},{href:"/services/data?focus=data-management",label:"Data Management"}]},{href:"/services/automation",title:"Automation",description:"Workflow and RPA execution",Icon:K.A,links:[{href:"/services/automation/rpa",label:"RPA Solutions"},{href:"/services/automation?focus=workflow-automation",label:"Workflow Automation"}]},{href:"/services/infrastructure/managed-it?focus=communications",title:"Communications",description:"VoIP and collaboration systems",Icon:em.A,links:[{href:"/services/infrastructure/managed-it?focus=voip-communications",label:"VoIP & Communications"}]}];var eh=r(45147);function ef(e,t){return!!t&&(0,P.BW)(e)===(0,P.BW)(t)&&!e.includes("#")}function eg(e,t){let r=[];for(let n of e)for(let e of(ef(n.href,t)||r.push({href:n.href,label:n.title,depth:0}),n.links))ef(e.href,t)||r.push({href:e.href,label:e.label,depth:1});return r}let eb=eg(ep,ee.bw.SERVICES),ev=eg(eh.YO,"/industries"),ey=eg(z,ee.bw.ABOUT),ew=eg(es,"/resources"),ex=[...eg(et,ee.bw.PLATFORM),{href:"/workspace/login",label:"Workspace sign in",depth:0}],ek=[{href:"/tools",label:"Risk / Diagnostics",children:[{href:"/risk-scorecard",label:"Free risk scorecard",depth:0},...eg(eo.gw,"/tools")]},{href:ee.bw.PLATFORM,label:"Platform / Capabilities",children:[{href:"/demo",label:"Explore Workspace demo",depth:0},...ex,{href:ee.bw.PLATFORM_AI_AGENTS,label:"Autonomous lifecycle",depth:0},{href:ee.bw.SERVICES,label:"Managed IT services",depth:0},...eb,{href:ee.bw.PRICING,label:"Pricing",depth:0}]},{href:"/industries",label:"Industries / Compliance",children:ev},{href:"/resources",label:"Resources / About",children:[...ew.filter(e=>!e.href.startsWith("/tools")),{href:ee.bw.ABOUT,label:"About Bitscaled",depth:0},...ey]}];var eA=r(57938),eS=r(40504);function eI({className:e,links:t,logoSrc:r,logoAlt:i="Bitscaled Logo",logoWidth:p=152,logoHeight:h=64,isLoginButtonShown:f=!0,loginUrl:g="/workspace/login",loginText:b="Client Portal",isAuthenticated:x,user:I,shouldShrinkOnScroll:M=!0,variant:C="default",isCtaShown:N=!0}){let j,R=t??ek,{isTopItemActive:E,pathname:L}=(j=(0,s.usePathname)(),{isTopItemActive:(0,a.useCallback)(e=>(0,P.Qj)(j,e,R),[j,R]),pathname:j}),[T,F]=(0,a.useState)(!1),D=x??!1;(0,a.useEffect)(()=>{F(!0)},[]);let W=a.useMemo(()=>{if(g&&!/^https?:\/\//i.test(g))return g;let e=(L||"").toLowerCase();return e.startsWith("/admin")?"/admin/login":e.startsWith("/intranet")?"/intranet/login":(e.startsWith("/workspace"),"/workspace/login")},[g,L]),O=(0,a.useCallback)(()=>{try{if(g&&/^https?:\/\//i.test(g))return g;if(!T)return W;{let e=window.location.hostname.toLowerCase();if(e.includes("localhost")||"127.0.0.1"===e)return new URL(W,window.location.origin).toString();return(0,S.W_)()}}catch{return"/workspace/login"}},[T,g,W]),$=a.useMemo(()=>{let e=e=>(0,P.BW)(e);return R.map(t=>{var r;let n;return{href:t.href,label:t.label,icon:t.icon,isActive:E(t),badge:t.badge,isFeatured:t.isFeatured,children:t.children?(n=(t=>{let r=null;for(let n of t){let t=e(n);(0,P.xi)(L,t)&&(!r||t.length>r.length)&&(r=t)}return r})((r=t.children.map(e=>({href:e.href,label:e.label,depth:e.depth,isExact:e.isExact}))).map(e=>e.href)),r.map(t=>({...t,isActive:!!n&&e(t.href)===n}))):void 0}})},[R,E,L]),H=a.useMemo(()=>{let e=[...$],t=L?.startsWith("/admin")?"admin":L?.startsWith("/intranet")?"intranet":(e=>{if(!e)return null;let t=e.toLowerCase();return"admin"===t?"admin":"intranet"===t?"intranet":"workspace"===t?"workspace":null})(I?.portal)??"workspace",r=`/${t}/dashboard`,a=`/${t}/profile`,i=`/${t}/settings`;return N&&(D&&I?e.push({href:r,label:"Dashboard",icon:(0,n.jsx)(l.A,{className:"h-4 w-4"})},{href:a,label:"Profile",icon:(0,n.jsx)(c.A,{className:"h-4 w-4"})},{href:i,label:"Settings",icon:(0,n.jsx)(d.A,{className:"h-4 w-4"})},{href:"/logout",label:"Logout",icon:(0,n.jsx)(u.A,{className:"h-4 w-4"})}):f&&!D&&(e.push({href:y.OK.headerHref,label:y.OK.label,isPrimary:!0,ctaVariant:"primary"}),e.push({href:y.Y5.href,label:y.Y5.label,isPrimary:!1,ctaVariant:"secondary"}),e.push({href:O(),label:b,isPrimary:!1,ctaVariant:"ghost"}))),e},[$,N,D,I,f,b,O,L]);return(0,n.jsxs)(k,{className:e,shouldShrinkOnScroll:M,variant:C,children:[(0,n.jsx)("div",{className:"hidden xl:block border-b border-border dark:border-border-strong",children:(0,n.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 h-11 flex items-center justify-end gap-4 xl:gap-6 text-xs text-foreground
1/75",children:[(0,n.jsx)(o(),{href:"mailto:[email protected]",className:"inline-flex min-h-11 items-center hover:text-foreground no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",children:"[email protected]"}),(0,n.jsx)(o(),{href:(0,eS.y)(eA.Ux.phone),className:"inline-flex min-h-11 items-center hover:text-foreground no-underline whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary","aria-label":"Call Bitscaled at (813) 419-0419",children:"(813) 419-0419"}),(0,n.jsx)(v.K,{href:"/workspace/login",className:"inline-flex min-h-11 items-center hover:text-foreground no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",children:"Client Portal Login"})]})}),(0,n.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,n.jsxs)("div",{className:"flex items-center h-16 w-full overflow-visible gap-2",children:[(0,n.jsx)("div",{className:"flex items-center shrink-0 mr-4 xl:mr-8",children:r?(0,n.jsx)(o(),{href:"/",className:"flex items-center rounded-md px-1.5 py-1 no-underline transition-[transform,filter] duration-200 ease-out drop-shadow-[0_1px_10px_rgba(0,0,0,0.18)] hover:scale-[1.01] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 motion-reduce:transform-none motion-reduce:transition-none dark:drop-shadow-[0_1px_12px_rgba(255,255,255,0.12)]","aria-label":"Bitscaled - Home",children:(0,n.jsx)(m._,{src:r,alt:i,width:p,height:h,className:"logo-image site-header-logo h-12 w-auto",sizes:`${p}px`})}):(0,n.jsx)(A.v,{className:"rounded-md px-1.5 py-1 transition-[transform,filter] duration-200 ease-out drop-shadow-[0_1px_10px_rgba(0,0,0,0.18)] hover:scale-[1.01] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 motion-reduce:transform-none motion-reduce:transition-none dark:drop-shadow-[0_1px_12px_rgba(255,255,255,0.12)]",markClassName:"site-header-logo h-10 w-10",labelClassName:"hidden sm:inline text-lg"})}),(0,n.jsx)(B,{links:R}),(0,n.jsx)(w,{isCtaShown:N,isAuthenticated:!!D&&!!I,user:I,isLoginButtonShown:f,loginText:b,finalMobileLinks:H})]})})]})}},57692:(e,t,r)=>{function n(e){switch(e){case"major_outage":return"Major outage";case"partial_outage":return"Partial outage";case"degraded":return"Degraded performance";case"maintenance":return"Scheduled maintenance";default:return"All systems operational"}}function a(e){switch(e){case"down":return"Down";case"degraded":return"Degraded";case"maintenance":return"Maintenance";default:return"Operational"}}r.d(t,{Ak:()=>n,Q1:()=>a}),r(5418)},61727:(e,t,r)=>{function n(e){if(!e)return"Unknown Role";let t=String(e.name||"").toUpperCase();if((Array.isArray(e.portalScopes)?e.portalScopes.map(e=>String(e).toUpperCase()):[]).includes("WORKSPACE")||"WORKSPACE"===String(e.defaultPortal||"").toUpperCase()){if("CLIENT"===t)return"Organization Admin";if("USER"===t)return"Organization Member"}return String(e.displayName||e.name||"Unknown Role")}function a(e){return e?n({name:e.role,displayName:e.roleName,portalScopes:e.portalScopes,defaultPortal:e.portal}):"Unknown Role"}r.d(t,{pd:()=>n,F4:()=>a}),r(31680)},63849:(e,t,r)=>{r.d(t,{h:()=>n});let n="(max-width: 1279px)"},64074:(e,t,r)=>{r(15942),r(23211)},68275:(e,t,r)=>{r.d(t,{I:()=>d,SQ:()=>u,_2:()=>m,lp:()=>p,mB:()=>h,rI:()=>l,ty:()=>c});var n=r(68987),a=r(2315),i=r(36331),o=r(14808),s=r(7031);let l=i.bL,c=i.l9,d=i.YJ;i.ZL,i.Pb,i.z6,a.forwardRef(({className:e,isInset:t,children:r,...a},l)=>(0,n.jsxs)(i.ZP,{ref:l,className:(0,s.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-[color,background-color] duration-150 ease-out focus:bg-accent data-[state=open]:bg-accent motion-reduce:transition-none",t&&"pl-8",e),...a,children:[r,(0,n.jsx)(o.vKP,{className:"ml-auto h-4 w-4"})]})).displayName=i.ZP.displayName,a.forwardRef(({className:e,...t},r)=>(0,n.jsx)(i.G5,{ref:r,className:(0,s.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out",e),...t})).displayName=i.G5.displayName;let u=a.forwardRef(({className:e,sideOffset:t=4,forceMount:r,...a},o)=>(0,n.jsx)(i.ZL,{forceMount:r,children:(0,n.jsx)(i.UC,{ref:o,sideOffset:t,forceMount:r,className:(0,s.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",e),...a})}));u.displayName=i.UC.displayName;let m=a.forwardRef(({className:e,isInset:t,...r},a)=>(0,n.jsx)(i.q7,{ref:a,className:(0,s.cn)("relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-[color,background-color] duration-150 ease-out motion-reduce:transition-none","focus:bg-accent focus:text-accent-foreground","hover:bg-accent hover:text-accent-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...r}));m.displayName=i.q7.displayName,a.forwardRef(({className:e,children:t,checked:r,...a},l)=>(0,n.jsxs)(i.H_,{ref:l,className:(0,s.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color] duration-150 ease-out focus:bg-accent focus:text-accent-foreground motion-reduce:transition-none",e),checked:r,...a,children:[(0,n.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(i.VF,{children:(0,n.jsx)(o.Srz,{className:"h-4 w-4"})})}),t]})).displayName=i.H_.displayName,a.forwardRef(({className:e,children:t,...r},a)=>(0,n.jsxs)(i.hN,{ref:a,className:(0,s.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color] duration-150 ease-out focus:bg-accent focus:text-accent-foreground motion-reduce:transition-none",e),...r,children:[(0,n.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(i.VF,{children:(0,n.jsx)(o.RiX,{className:"h-4 w-4 fill-current"})})}),t]})).displayName=i.hN.displayName;let p=a.forwardRef(({className:e,isInset:t,...r},a)=>(0,n.jsx)(i.JU,{ref:a,className:(0,s.cn)("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...r}));p.displayName=i.JU.displayName;let h=a.forwardRef(({className:e,...t},r)=>(0,n.jsx)(i.wv,{ref:r,className:(0,s.cn)("-mx-1 my-1 h-px bg-muted",e),...t}));h.displayName="DropdownMenuSeparator"},72277:(e,t,r)=>{r.d(t,{Bs:()=>m,gw:()=>p,xu:()=>u});var n=r(26120),a=r(37667),i=r(92152),o=r(15380),s=r(92301),l=r(34219),c=r(75935);let d=[{slug:"email-spoof-test",redirectPath:"/tools/email-spoof",title:"Email Spoof Test",eyebrow:"Email authentication",summary:"Check whether attackers can impersonate your domain in email.",description:"Review SPF, DKIM, DMARC, and live VaultSandbox SMTP spoofing signals before business email compromise turns into wire-fraud risk.",formKind:"spoof",inputLabel:"Domain to test",inputPlaceholder:"example.com",checks:["SPF and DMARC posture","DKIM alignment signals","Live VaultSandbox SMTP probe"],idealFor:["Law Firms","Finance Teams","Executive Assistants","Client-Facing Teams"],resultPreview:["Authentication Gaps","Risk Level","Recommended Fixes"],cta:"Ask Bitscaled to harden email authentication and monitor DMARC drift.",cardImage:"/images/tools/email-spoof-test.
1jpg",heroImage:(0,c.He)("email-spoof-test")},{slug:"dns-ssl-health",redirectPath:"/tools/dns-ssl",title:"DNS & SSL Health",eyebrow:"Domain reliability",summary:"Spot DNS, certificate, and web trust issues that break customer access.",description:"A fast domain check for DNS resolution, mail authentication (SPF, DKIM, DMARC), SSL certificate freshness, and public trust gaps.",endpoint:"/dns-ssl",apiPath:"/api/tools/dns-ssl",formKind:"domain",inputLabel:"Business domain",inputPlaceholder:"example.com",checks:["DNS resolution and mail records","SSL certificate validity","Expiration and trust warnings"],idealFor:["Managed Service Providers","Website Operators","SaaS Operations Teams"],resultPreview:["Mail Authentication Findings","Certificate Trust Status","Nameservers and Addresses"],cta:"Have Bitscaled add monitoring so outages are caught before customers notice.",cardImage:"/images/tools/dns-ssl-health.jpg",heroImage:(0,c.He)("dns-ssl-health")},{slug:"external-footprint-scan",redirectPath:"/tools/footprint-scan",title:"External Footprint Scan",eyebrow:"Attack surface",summary:"Review public-facing exposure for domains and IPs you are authorized to assess.",description:"A consent-gated scan for exposed services and internet-facing clues that should be validated by an MSP. Long scans run asynchronously and may take up to two minutes.",endpoint:"/footprint-scan",apiPath:"/api/tools/footprint-scan",formKind:"footprint",inputLabel:"Authorized domain or public IP",inputPlaceholder:"example.com or 203.0.113.10",checks:["Public port exposure","Service discovery summary","High-priority review ports"],idealFor:["IT Security Leads","M&A Diligence Teams","New MSP Clients"],resultPreview:["Open Ports and Services","Review-Priority Ports","Resolved Addresses"],cta:"Request a scoped assessment before changing production firewall or DNS settings.",cardImage:"/images/tools/external-footprint-scan.jpg",heroImage:(0,c.He)("external-footprint-scan")},{slug:"microsoft-365-security-snapshot",redirectPath:"/tools/m365-snapshot",title:"Microsoft 365 Security Snapshot",eyebrow:"Tenant posture",summary:"Start a guided review of Microsoft 365 controls that matter for SMB security.",description:"Start with a guided Microsoft 365 assessment request. Optionally connect a tenant with least-privilege Microsoft sign-in when OAuth is configured.",endpoint:"/m365-snapshot",apiPath:"/api/tools/m365-snapshot",formKind:"m365",inputLabel:"Tenant domain or work email",inputPlaceholder:"example.com",checks:["Conditional Access sampling","Admin-like account exposure","Guided assessment intake"],idealFor:["Microsoft 365 Administrators","Compliance Officers","IT Security Leads"],resultPreview:["Sampled Tenant Findings","Conditional Access Count","Recommended Next Steps"],cta:"Schedule a secure Microsoft 365 assessment with least-privilege access.",cardImage:"/images/tools/microsoft-365-security-snapshot.jpg",heroImage:(0,c.He)("microsoft-365-security-snapshot")},{slug:"breach-exposure-check",redirectPath:"/tools/breach-check",title:"Breach Exposure Check",eyebrow:"Credential exposure",summary:"Check whether a domain or mailbox has public exposure signals.",description:"Shows public breach names, dates, and data classes from exposure-index lookups. Password hashes and raw lookup dumps stay off the page.",endpoint:"/breach-check",apiPath:"/api/tools/breach-check",formKind:"breach",inputLabel:"Email address or domain",inputPlaceholder:"[email protected] or example.com",checks:["Public breach name signals","Mailbox or domain exposure signals","Exposed data class themes"],idealFor:["Business Owners","HR Teams","Finance Teams","IT Leads"],resultPreview:["Named Public Breaches","Exposure Summary","Exposed Data Types"],cta:"Ask Bitscaled to validate exposure, rotate credentials, and enforce MFA.",cardImage:"/images/tools/breach-exposure-check.jpg",heroImage:(0,c.He)("breach-exposure-check")},{slug:"ransomware-readiness-scorecard",redirectPath:"/tools/ransomware-scorecard",title:"Ransomware Readiness Scorecard",eyebrow:"Resilience planning",summary:"Answer eight MSP-focused questions and get a readiness score.",description:"Translate backup, MFA, endpoint, patching, and incident-response posture into a practical remediation roadmap.",endpoint:"/ransomware-scorec
1ard",apiPath:"/api/tools/ransomware-scorecard",formKind:"ransomware-scorecard",inputLabel:"Company domain",inputPlaceholder:"example.com",checks:["Backup and recovery resilience","Identity and MFA controls","Endpoint and response readiness"],idealFor:["Leadership Teams","Cyber Insurance Buyers","IT Operations Leads"],resultPreview:["0â100 Readiness Score","Control Gaps","Priority Remediation Roadmap"],cta:"Book a ransomware tabletop and backup validation session with Bitscaled.",cardImage:"/images/tools/ransomware-readiness-scorecard.jpg",heroImage:(0,c.He)("ransomware-readiness-scorecard")},{slug:"bimi-brand-check",redirectPath:"/tools/bimi-check",title:"BIMI Brand Check",eyebrow:"Brand trust",summary:"Check BIMI, DMARC alignment, and logo trust signals for inbox confidence.",description:"Validate whether your brand is positioned for BIMI and whether DMARC enforcement is ready for logo display.",endpoint:"/bimi-check",apiPath:"/api/tools/bimi-check",formKind:"domain",inputLabel:"Brand domain",inputPlaceholder:"example.com",checks:["BIMI DNS record presence","DMARC enforcement readiness","Logo and brand alignment signals"],idealFor:["Mar
1keting Teams","Brand and Communications Leads","Regulated SMB Operators"],resultPreview:["BIMI Record Status","DMARC Policy Blockers","Brand Trust Next Steps"],cta:"Have Bitscaled align DMARC, BIMI, and email security monitoring.",cardImage:"/images/tools/bimi-brand-check.jpg",heroImage:(0,c.He)("bimi-brand-check")}];function u(e){let t=function(e){let t=d.find(t=>t.slug===e);if(!t)throw Error("Unknown VaultTools slug: "+e);return t}(e);return t.redirectPath??`/tools/${t.slug}`}let m={href:"/tools",label:"All Tools",caption:"MSP checks for security, reliability, and remediation planning",icon:n.A};[...d.map(e=>({href:u(e.slug),label:e.title,caption:e.summary,icon:"email-spoof-test"===e.slug||"bimi-brand-check"===e.slug?a.A:"dns-ssl-health"===e.slug?i.A:"external-footprint-scan"===e.slug?o.A:"breach-exposure-check"===e.slug?s.A:"microsoft-365-security-snapshot"===e.slug?l.A:n.A,slug:e.slug}))];let p=[{href:u("email-spoof-test"),title:"Email & brand trust",description:"SPF, DKIM, DMARC, and BIMI alignment",Icon:a.A,links:[{href:u("email-spoof-test"),label:"Email Spoof Test"},{href:u("bimi-brand-check"),label:"BIMI Brand Check"}]},{href:u("ransomware-readiness-scorecard"),title:"Security posture",description:"Tenant, ransomware, and exposure reviews",Icon:n.A,links:[{href:u("ransomware-readiness-scorecard"),label:"Ransomware Scorecard"},{href:u("microsoft-365-security-snapshot"),label:"Microsoft 365 Snapshot"},{href:u("external-footprint-scan"),label:"External Footprint Scan"}]},{href:u("dns-ssl-health"),title:"Domain health",description:"DNS, SSL, and breach exposure signals",Icon:i.A,links:[{href:u("dns-ssl-health"),label:"DNS & SSL Health"},{href:u("breach-exposure-check"),label:"Breach Exposure Check"}]}]},72638:(e,t,r)=>{r.d(t,{FooterThemeControl:()=>s});var n=r(68987),a=r(2315),i=r(7031),o=r(46217);function s({className:e}){let t=(0,a.useId)();return(0,n.jsxs)("div",{className:(0,i.cn)("flex flex-col items-center gap-1.5",e),children:[(0,n.jsx)("span",{id:t,className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Theme"}),(0,n.jsx)(o.t,{layout:"footer",labelId:t})]})}},81716:(e,t,r)=>{r.d(t,{$:()=>d});var n=r(5418);function a(e){if(null==e)return null;let t=e instanceof Date?e.getTime():new Date(e).getTime();return Number.isFinite(t)?t:null}function i(e){let t=new Date(e);return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())}function o(e){return new Date(e).toISOString().slice(0,10)}function s(e){return"outage"===e?3:"degraded"===e?2:+("maintenance"===e)}function l(e){let t=Math.max(i(e.startMs),e.windowStart),r=Math.min(i(e.endMs),e.windowEnd);if(!(t>r))for(let n=t;n<=r;n+=864e5)e.visit(n)}let c=[{id:"catalog:public-website",name:"Public Website",description:"Bitscaled LLC public IT MSP website."},{id:"catalog:client-workspace",name:"Client Workspace",description:"Bitscaled Client Workspace sign-in and portal availability."},{id:"catalog:vaultsandbox-gateway",name:"VaultSandbox Gateway",description:"Email security lab used for spoof-test and authentication drills."},{id:"catalog:vaulttools-api",name:"VaultTools API",description:"VaultTools public API gateway used by Bitscaled security tools."}];function d(e){let t=e?.now??new Date,r=e?.historyDays??n.Se,d=function(e){let t=Math.max(1,Math.floor(e.historyDays??n.Se)),r=e.now??new Date,c=i(r.getTime()),d=c-(t-1)*864e5,u=new Map;for(let e=0;e<t;e+=1){let t=d+24*e*36e5;u.set(o(t),"operational")}for(let t of e.maintenanceWindows??[]){let e=a(t.startsAt),r=a(t.endsAt);null!=e&&null!=r&&l({startMs:e,endMs:r,windowStart:d,windowEnd:c,visit:e=>{let t=o(e),r=u.get(t);r&&u.set(t,s("maintenance")>s(r)?"maintenance":r)}})}for(let t of e.incidents??[]){let e=a(t.startedAt);if(null==e)continue;let n=a(t.resolvedAt)??r.getTime(),i=function(e){let t=String(e.severity||"").trim().toUpperCase();return"CRITICAL"===t||"HIGH"===t?"outage":"degraded"}(t);l({startMs:e,endMs:n,windowStart:d,windowEnd:c,visit:e=>{let t=o(e),r=u.get(t);r&&u.set(t,s(i)>s(r)?i:r)}})}return Array.from({length:t},(e,t)=>{let r=o(d+24*t*36e5);return{date:r,status:u.get(r)??"operational"}})}({now:t,historyDays:r,incidents:[],maintenanceWindows:[]}),u=0===d.length?100:Number((d.filter(e=>"outage"!==e.status).length/d.length*100).toFixed(2)),m=c.map(e=>({id:e.id,name:e.name,description:e.description,status:"operational",uptimePercent:u,history:d})),p=e&&"message"in e?e.message:n.kU;return{overall:"degraded",updatedAt:t.toISOString(),historyDays:r,components:m,incidents:[],maintenance:[],source:e?.source??"catalog",...p?{message:p}:{}}}},81727:(e,t,r)=>{r.d(t,{K:()=>y});var n=r(68987),a=r(2315),i=r(37866),o=r.n(i),s=r(81885),l=r(34784);let c=[],d=["/articles/tags","/articles/search"],u=["/workspace","/admin","/intranet","/logout","/api"],m=new Set(["/services","/platform","/pricing","/articles","/articles/categories"]),p=["javascript:","data:","vbscript:","file:","about:"],h=["mailto:","tel:","http:","https:"];function f(e,t){return e===t||e.startsWith(`${t}/`)}function g(e){if(function(e){if(v(e))return!0;let t=e.trim();if(!t||t.startsWith("#"))return!0;
1let r=b(e);return!!h.some(e=>r.startsWith(e))||!t.startsWith("/")}(e))return!0;let t=(0,l.BW)(e);return u.some(e=>f(t,e))}function b(e){return e.trim().replace(/[\s\0]+/g,"").toLowerCase()}function v(e){let t=e.trim();if(!t)return!0;let r=b(e);return!!p.some(e=>r.startsWith(e))||t.startsWith("//")||t.startsWith("/\\")}let y=(0,a.forwardRef)(function({href:e,isExternal:t,prefetch:r,onMouseEnter:i,onFocus:u,onTouchStart:p,className:h,...b},y){let[w,x]=(0,a.useState)(!1),k=function(e){if("string"==typeof e)return e;if(e instanceof URL||"string"==typeof e.href&&e.href.length>0)return e.href;let t=e.host??e.hostname??"",r=e.pathname??"",n=e.search??"",a=e.hash??"";if(t){let i=(e.protocol??"").replace(/:$/,""),o=i?`${i}://`:"//";return`${o}${t}${r}${n}${a}`}return`${r}${n}${a}`}(e),A=v(k)?"#":(0,s.d3)(k,"#"),S=(0,a.useCallback)(()=>{x(!0)},[]),I=!(!0===t||g(k)||g(A))&&(void 0!==r?r:function(e,t={}){let r=!0===t.isExternal,n=!0===t.hasIntent,a=t.isDataSaver??function(){if("u"<typeof navigator)return!1;let e=navigator.connection;if(e?.saveData)return!0;if(window.matchMedia)try{if(window.matchMedia("(prefers-reduced-data: reduce)").matches)return!0}catch{}return!1}();return!(r||a||g(e))&&(!!function(e){if(g(e))return!1;let t=(0,l.BW)(e);return!d.some(e=>f(t,e))&&(!!m.has(t)||c.some(e=>f(t,e)))}(e)||!!n)&&null}(A,{isExternal:t,hasIntent:w}));return(0,n.jsx)(o(),{ref:y,href:A,prefetch:I,className:h,...b,onMouseEnter:e=>{S(),i?.(e)},onFocus:e=>{S(),u?.(e)},onTouchStart:e=>{S(),p?.(e)}})});y.displayName="PublicNavPrefetchLink"},83839:(e,t,r)=>{r.d(t,{GI:()=>h,Q0:()=>c,SX:()=>y,Sz:()=>l,T_:()=>s,Ti:()=>w,Tv:()=>x,W_:()=>d,_l:()=>g,hm:()=>a,nQ:()=>i,u1:()=>v,xO:()=>p,yR:()=>b,zt:()=>o});let n=(0,r(13264).h)("urlUtils");function a(e){let t=(e||window.location.host).toLowerCase();if(t.includes("workspace."))return"workspace";if(t.includes("intranet."))return"intranet";if(t.includes("admin."))return"admin";{let e=window.location.pathname.toLowerCase();if(e.startsWith("/workspace/"))return"workspace";if(e.startsWith("/intranet/"))return"intranet";if(e.startsWith("/admin/"))return"admin"}return"default"}function i(){let e=a();return"workspace"===e?"/workspace/dashboard":"intranet"===e?"/intranet/dashboard":"admin"===e?"/admin/dashboard":"/workspace/dashboard"}function o(e){return"intranet"===e?"/intranet/login":"admin"===e?"/admin/login":"/workspace/login"}function s(){return o(a())}function l(e,t=s()){let r=(e||"").trim();if(!r.startsWith("/")||r.startsWith("//")||r.includes("\\"))return t;let n=u(r.split(/[?#]/,1)[0].toLowerCase());return"/workspace/login"===n||"/intranet/login"===n||"/admin/login"===n?n:t}function c(){let e=a();return"workspace"===e?"/workspace/unauthorized":"intranet"===e?"/intranet/unauthorized":"admin"===e?"/admin/unauthorized":"/workspace/unauthorized"}function d(e){let t=a(e);return"intranet"===t?"https://intranet.bitscaled.tech/intranet/login":"admin"===t?"https://admin.bitscaled.tech/admin/login":"https://workspace.bitscaled.tech/workspace/login"}function u(e){return e.length>1&&e.endsWith("/")?e.slice(0,-1):e}function m(e){try{let t=window.location?.origin?window.location.origin:"https://bitscaled.tech";return u(new URL(e,t).pathname.toLowerCase())}catch{return u(e.split(/[?#]/,1)[0].toLowerCase())}}function p(e,t){return m(e)===m(t)}function h(e){let t=m(e);return"/unauthorized"===t||"/admin/unauthorized"===t||"/intranet/unauthorized"===t||"/workspace/unauthorized"===t}function f(e){return/[\u0000-\u001F\u007F\\]/u.test(e)}function g(e,t=i(),r={}){let{shouldBlockAuthLoopTargets:o=!0}=r,s=String(e||"").trim();if(!s)return t;if(f(s))return n.warn("normalizeInternalRedirectUrl","Blocked redirect with unsafe characters",{redirectUrl:s}),t;if(/^https?:\/\//i.test(s))try{let e=new URL(s);if(e.origin!==window.location.origin)return n.warn("normalizeInternalRedirectUrl","Blocked redirect to external URL",{redirectUrl:s}),t;s=`${e.pathname}${e.search}${e.hash}`}catch{return t}else if(!s.startsWith("/")||s.startsWith("//"))return n.warn("normalizeInternalRedirectUrl","Blocked non-internal redirect URL",{redirectUrl:s}),t;if(f(s)||s.startsWith("//"))return t;let l=m(s);if(o&&(["/admin/login","/intranet/login","/workspace/login"].includes(l)||["/unauthorized","/admin/unauthorized","/intranet/unauthorized","/workspace/unauthorized"].includes(l)))return t;let c=a();if("default"!==c){let e=l.startsWith("/admin")?"admin":l.startsWith("/intranet")?"intranet":l.startsWith("/workspace")?"workspace":null;if(e&&e!==c)return n.warn("normalizeInternalRedirectUrl","Blocked cross-portal redirect",{redirectUrl:s,tenant:c}),t}return s||t}function b(e){try{let t=e??window.location.search;if(!t)return!1;let r=t.startsWith("?")?t.slice(1):t;return"portal"===new URLSearchParams(r).get("error")}catch{return!1}}function v(e=i()){let t=new URLSearchParams(window.location.search),r=t.get("callbackUrl"),a=t.get("returnTo"),o=t.get("redirect");if(!r&&!a&&!o)return null;let s=r||a||o||"";try{s=decodeURIComponent(s)}catch(e){n.warn("getRedirectUrlFromParams","Failed to decode redirect URL")}return s.includes("?")&&(s.includes("error=")||s.includes("message="))&&(s=s.split("?")[0]),g(s,e)}function y(e,t=100){let r=g(e,i(),{shouldBlockAuthLoopTargets:!1});if(window.location.href===r||window.location.pathname===r)return void n.warn("performRedirect","Prevented redirect loop to current URL",{redirectUrl:r});let a="last_redirect_time",o=Date.now();if(o-parseInt(sessionStorage.getItem(a)||"0",10)<1e3)return void n.warn("performRedirect","Redirect throttled - too many redirects in quick succession");try{sessionStorage.setItem(a,o.toString())}catch(e){}setTimeout(()=>{window.location.href=r},t)}function w(){return window.location.pathname}function x(e){let t=s();return`${t}?callbackUrl=${encodeURIComponent(e)}`}},93035:(e,t,r)=>{r.d(t,{_:()=>o});var n=r(68987);r(2315);var a=r(37182),i=r(21653);let o=({className:e="",src:t,width:r,height:o,alt:s="",isFill:l=!1,fill:c=!1,preload:d,fetchPriority:u,style:m={},sizes:p,quality:h,unoptimized:f,...g})=>{let b="string"==typeof t?t:t?.src||"",v=b.toLowerCase().split(".").pop()?.split("?")[0]||"",y=e.trim().split(/\s+/).filter(
1Boolean),w=["object-cover","object-contain","h-full","w-full","absolute","inset-0"].some(e=>y.includes(e)),x=l||c||w,k=d??!1,A=u??(k?"high":void 0),S=void 0!==h?h:"jpg"===v||"jpeg"===v||"webp"===v?75:85,I=k?{"data-priority":"true"}:{},M=x?"next-fill-image":"",C=`${"png"===v?"png-image":"jpg"===v||"jpeg"===v?"jpg-image":"webp"===v?"webp-image":"next-image"} ${M} ${e}`.trim(),N=p||(x?e.includes("aspect-video")?"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw":e.includes("rounded-full")||e.includes("avatar")?"(max-width: 768px) 100px, (max-width: 1200px) 150px, 200px":e.includes("aspect-square")?"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 25vw":["max-w-","w-1/","w-2/","w-3/","w-4/","w-5/","w-6/","w-7/","w-8/","w-9/","w-10/","w-11/","md:w-","lg:w-","xl:w-","col-span-","grid-cols-"].some(t=>e.includes(t))?"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw":"(max-width: 768px) 100vw, 1200px":"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"),j={objectFit:"png"===v?"contain":"cover",...m},P="string"!=typeof t||t.startsWith("/")||t.startsWith("http")||t.startsWith("data:")?t:`/${t}`,R="true"===i.env.NEXT_PUBLIC_DISABLE_LOCAL_IMAGE_OPTIMIZER&&"string"==typeof P&&(P.startsWith("/images/")||"/favicon.ico"===P),E=f??R;return x?(0,n.jsx)(a.default,{...I,src:P,alt:s,className:C,preload:k,fetchPriority:A,quality:S,unoptimized:E,fill:x,sizes:N,style:j,...g}):(0,n.jsx)(a.default,{...I,src:P,alt:s,className:C,width:r,height:o,preload:k,fetchPriority:A,quality:S,unoptimized:E,fill:x,sizes:N,style:j,...g})};o.displayName="Image"},94429:(e,t,r)=>{r.d(t,{Bz:()=>p,C9:()=>w,D7:()=>h,Hi:()=>x,Ot:()=>u,Pg:()=>f,Sn:()=>o,W:()=>y,bb:()=>v,bg:()=>l,fN:()=>d,lw:()=>g,t0:()=>m});var n=r(46586);let a={intranet:"/intranet",admin:"/admin",workspace:"/workspace"},i=new Set(["crm","aup","api","hr","pm","rmm","dpa","nda","msa","baa","qbr","ai"]),o={intranet:{id:"intranet",name:"Intranet",homeHref:"/intranet/dashboard",homeLabel:"Go to Intranet dashboard",loginHref:"/intranet/login",adminHint:"Ask an Intranet administrator to grant this permission, or open a module your role already includes.",permissionNoun:"Intranet"},admin:{id:"admin",name:"Admin Console",homeHref:"/admin/dashboard",homeLabel:"Go to Admin dashboard",loginHref:"/admin/login",adminHint:"Ask a Super Admin to grant this Admin Console permission, or return to a page your role can open.",permissionNoun:"Admin Console"}
1,workspace:{id:"workspace",name:"Workspace",homeHref:"/workspace/dashboard",homeLabel:"Go to Workspace dashboard",loginHref:"/workspace/login",adminHint:"Ask an Organization Admin to grant this Workspace permission, or open a page included in your role.",permissionNoun:"Workspace"}};function s(e){return(e||"").split("?")[0]?.split("#")[0]?.toLowerCase()||""}function l(e){let t=s(e);return"/intranet"===t||t.startsWith("/intranet/")?"intranet":"/admin"===t||t.startsWith("/admin/")?"admin":"/workspace"===t||t.startsWith("/workspace/")?"workspace":null}function c(e,t){return e===t||e.startsWith(`${t}/`)}function d(e){let t=s(e);return c(t,"/intranet/unauthorized")||c(t,"/admin/unauthorized")||c(t,"/workspace/unauthorized")}function u(e){let t=s(e);return c(t,"/intranet/login")||c(t,"/admin/login")||c(t,"/workspace/login")}function m(e){let t=s(e);return(0,n.yr)(t)||t.startsWith("/intranet/onboarding/legal")||t.startsWith("/intranet/legal/aup")?"auth-standalone":"chrome"}function p(e){let t=s(e);return(0,n.yr)(t)?"auth-standalone":"chrome"}function h(e){let t=s(e);return(0,n.yr)(t)||"/workspace/access-pending"===t||t.startsWith("/workspace/access-pending/")||"/workspace/onboarding/legal"===t||t.startsWith("/workspace/onboarding/legal/")?"auth-standalone":"chrome"}function f(e,t,r){let n,i,o=(e||"").trim();if(!o||o.startsWith("//")||o.includes("\\")||!o.startsWith("/"))return r;let s=a[t];return o===s||o.startsWith(`${s}/`)?(n=o.toLowerCase(),i=a[t],n===`${i}/login`||n.startsWith(`${i}/login/`)||n===`${i}/unauthorized`||n.startsWith(`${i}/unauthorized/`)||0)?r:o:r}function g(e,t){return f(e,t,"")||null}function b(e){let t=e.replace(/_/g," ").trim();return t?i.has(t.toLowerCase())?t.toUpperCase():t.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):""}function v(e){let t=(e||"").trim();if(!t)return"Required permission";let r=t.split(/[:.]/).map(b).filter(Boolean);return r.length>0?r.join(" \xb7 "):"Required permission"}function y(e){let t=(e||"").trim();return!!t&&"[REDACTED]"!==t.toUpperCase()&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}function w(e,t){let r=(e||"").trim();if(!r.startsWith("/")||r.startsWith("//")||r.includes("\\"))return r;try{let e=new URL(r,"https://example.invalid"),n=(t.attemptedPath||"").trim();n&&!e.searchParams.has("path")&&n.startsWith("/")&&!n.startsWith("//")&&!n.includes("\\")&&e.searchParams.set("path",n),e.searchParams.delete("permission");let a=(t.requestId||"").trim();return a&&!e.searchParams.has("requestId")&&e.searchParams.set("requestId",a),`${e.pathname}${e.search}`}catch{return r}}function x(e,t){let r=(e||"").trim();if(!r.startsWith("/")||r.startsWith("//")||r.includes("\\"))return r;try{let e=new URL(r,"https://example.invalid");for(let[r,n]of Object.entries(t)){let t=(n||"").trim();t&&!e.searchParams.has(r)&&e.searchParams.set(r,t)}return e.searchParams.delete("permission"),`${e.pathname}${e.search}`}catch{return r}}},98969:(e,t,r)=>{r.d(t,{v:()=>S});var n=r(68987),a=r(1343),i=r(30001),o=r(96349),s=r(62639),l=r(61389),c=r(71285),d=r(69900),u=r(34219),m=r(41827),p=r(34596),h=r(53084),f=r(68275),g=r(7031),b=r(970),v=r(43251),y=r(81885),w=r(13264),x=r(61727);(0,w.h)("AvatarDropdown");let k=e=>{if(!e)return null;let t=e.toLowerCase();return"admin"===t?"admin":"intranet"===t?"intranet":"workspace"===t?"workspace":null},A=(e,t)=>e.startsWith("/intranet")?"intranet":e.startsWith("/admin")?"admin":k(t)??"workspace";function S({user:e,className:t,onLogout:r,triggerVariant:w="icon",shouldShowAdminLink:I=!0}){let M=(0,a.useRouter)(),C=(0,a.usePathname)(),{logout:N}=(0,b.useAuth)(),{isClientMode:j,isAdminMode:P,switchToClient:R,switchToAdmin:E}=(()=>{try{return(0,v.h)()}catch{return{isClientMode:!0,isAdminMode:!1,switchToClient:()=>{},switchToAdmin:()=>{},hasAdminPermissions:!1,mode:"client",toggleMode:()=>{},isAutoMode:!0}}})(),L=(e=>{let t=(0,y.XT)(e.name);if(t)return t;if(e.firstName&&e.lastName)return`${(0,y.XT)(e.firstName)} ${(0,y.XT)(e.lastName)}`.trim();let r=(0,y.XT)(e.firstName);if(r)return r;let n=(0,y.XT)(e.lastName);return n||(e.email?e.email:"User")})(e),T=(e=>{for(let t of[e.name,e.firstName&&e.lastName?`${e.firstName} ${e.lastName}
1`:null,e.firstName,e.lastName,e.email].filter(Boolean))if(t){let e=(0,y.XT)(t);if(!e)continue;let r=e.split(/\s+/);if(1===r.length)return r[0].substring(0,2).toUpperCase();return r.slice(0,2).map(e=>e[0]).join("").toUpperCase()}return"U"})(e),F=(0,y.XT)(e.avatar)||(0,y.XT)(e.avatarUrl)||null,D=(0,x.F4)(e),W="sidebar"===w,O=C?.startsWith("/admin")||!1,B=function(e){let t=new Set;if(Array.isArray(e.portalScopes))for(let r of e.portalScopes){let e=k(String(r));e&&t.add(e)}let r=k(e.portal);return r&&t.add(r),t}(e),$=B.has("admin"),H=B.has("intranet"),U=B.has("workspace"),_=async()=>{try{r?await r():await N()}catch(e){}},z=()=>{R(),M.push("/workspace/dashboard")};return(0,n.jsxs)(f.rI,{modal:!1,children:[(0,n.jsx)(f.ty,{asChild:!0,children:W?(0,n.jsxs)(h.Button,{variant:"ghost",className:(0,g.cn)("group h-auto w-full justify-between rounded-lg border border-border px-2 py-2","bg-background text-left shadow-modern-sm transition-colors duration-200","hover:bg-slate-50 dark:hover:bg-slate-800/70","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-200 dark:focus-visible:ring-primary-300/40",t),"aria-label":"Open user profile menu",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,n.jsxs)(p.Avatar,{className:"h-9 w-9 border-2 border-modern shadow-modern-sm",children:[F&&(0,n.jsx)(p.AvatarImage,{src:F,alt:"",className:"object-cover"}),(0,n.jsx)(p.AvatarFallback,{delayMs:0,className:"gradient-primary text-primary-foreground font-semibold text-sm border-0",children:T})]}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("p",{className:"truncate text-sm font-semibold text-foreground",children:L}),(0,n.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:"Unknown Role"===D?"Member":D})]})]}),(0,n.jsx)(i.A,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-colors group-hover:text-foreground"})]}):(0,n.jsx)(h.Button,{variant:"ghost",className:(0,g.cn)("relative h-10 w-10 rounded-full p-0","bg-background border border-border","hover:bg-accent","focus-modern shadow-modern-sm","transition-[color,background-color,border-color,box-shadow,transform] duration-200 ease-out motion-reduce:transform-none motion-reduce:transition-none",t),"aria-label":"Open user menu",children:(0,n.jsxs)(p.Avatar,{className:"h-9 w-9 border-2 border-modern shadow-modern-sm",children:[F&&(0,n.jsx)(p.AvatarImage,{src:F,alt:L,className:"object-cover"}),(0,n.jsx)(p.AvatarFallback,{delayMs:0,className:"gradient-primary text-primary-foreground font-semibold text-sm border-0",children:T})]})})}),(0,n.jsxs)(f.SQ,{className:(0,g.cn)("z-[60] w-64 max-w-[calc(100vw_-_1rem)] p-2 rounded-lg","bg-popover text-popover-foreground border border-border shadow-modern-lg force-visible","origin-[var(--radix-dropdown-menu-content-transform-origin)]","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0","data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95","will-change-transform"),align:W?"start":"end",side:W?"top":"bottom",alignOffset:-2,sideOffset:8,collisionPadding:12,avoidCollisions:!0,children:[(0,n.jsx)(f.lp,{className:"font-normal p-3 force-visible",children:(0,n.jsx)("div",{className:"flex flex-col space-y-3",children:(0,n.jsxs)("div",{className:"flex min-w-0 items-center space-x-3",children:[(0,n.jsxs)(p.Avatar,{className:"h-10 w-10 border-2 border-modern shadow-modern-sm",children:[F&&(0,n.jsx)(p.AvatarImage,{src:F,alt:"",className:"object-cover"}),(0,n.jsx)(p.AvatarFallback,{delayMs:0,className:"gradient-primary text-primary-foreground font-semibold text-sm border-0",children:T})]}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-col space-y-1",children:[(0,n.jsx)("p",{className:"truncate text-sm font-semibold leading-none text-foreground",children:L}),(0,n.jsx)("p",{className:"truncate text-xs leading-none font-medium text-muted-foreground",children:e.email}),e.role&&(0,n.jsx)("span",{className:"inline-flex items-center rounded-full border border-primary/20 bg-primary/10 px-2 py-1 text-xs font-medium text-primary",children:e.role})]})]})})}),(0,n.jsx)(f.mB,{className:"my-2 border-modern"}),(0,n.jsxs)(f.I,{className:"space-y-1 force-visible",children:[(0,n.jsxs)(f._2,{onClick:()=>{let t=A(C??"",e.portal);M.push(`/${t}/dashboard`)},className:"rounded-md px-3 py-2.5 text-sm font-medium transition-[color,background-color,box-shadow] duration-150 ease-out hover:bg-accent hover:text-accent-foreground force-visible motion-reduce:transition-none",children:[(0,n.jsx)(o.A,{className:"mr-3 h-4 w-4 text-primary"}),(0,n.jsx)("span",{children:"Dashboard"})]}),(0,n.jsxs)(f._2,{onClick:()=>{let t=A(C??"",e.portal);M.push(`/${t}/profile`)},className:"rounded-md px-3 py-2.5 text-sm font-medium transition-[color,background-color,box-shadow] duration-150 ease-out hover:bg-accent hover:text-accent-foreground force-visible motion-reduce:transition-none",children:[(0,n.jsx)(s.A,{className:"mr-3 h-4 w-4 text-primary"}),(0,n.jsx)("span",{children:"Profile"})]}),(0,n.jsxs)(f._2,{onClick:()=>{let t=A(C??"",e.portal);M.push(`/${t}/settings`)},className:"rounded-md px-3 py-2.5 text-sm font-medium transition-[color,background-color,box-shadow] duration-150 ease-out hover:bg-accent hover:text-accent-foreground force-visible motion-reduce:transition-none",children:[(0,n.jsx)(l.A,{className:"mr-3 h-4 w-4 text-primary"}),(0,n.jsx)("span",{children:"Settings"})]}),I&&$&&j&&!O&&(0,n.jsxs)(f._2,{onClick:()=>{E(),M.push("/admin")},className:"rounded-md border-modern border-primary/20 bg-primary/5 px-3 py-2.5 text-sm font-medium text-primary transition-[background-color,border-color,box-shadow] duration-150 ease-out hover:bg-primary/10 hover:border-primary/30 force-visible motion-reduce:transition-none",children:[(0,n.jsx)(c.A,{className:"mr-3 h-4 w-4 text-primary"}),(0,n.jsx)("span",{children:"Admin Panel"}),(0,n.jsx)(d.A,{className:"ml-auto h-4 w-4 text-primary"})]}),O?(0,n.jsxs)(n.Fragment,{children:[H?(0,n.jsxs)(f._2,{onClick:()=>{M.push("/intranet/dashboard")},className:"rounded-md border-modern border-primary/20 bg-primary/5 px-3 py-2.5 text-sm font-medium text-primary transition-[background-color,border-color,box-shadow] duration-150 ease-out hover:bg-primary/10 hover:border-primary/30 force-visible motion-reduce:transition-none",children:[(0,n.jsx)(u.A,{className:"mr-3 h-4 w-4 text-primary"}),(0,n.jsx)("span",{children:"Intranet"}),(0,n.jsx)(d.A,{className:"ml-auto h-4 w-4 text-primary"})]}):null,U?(0,n.jsxs)(f._2,{onClick:z,className:"rounded-md border-modern border-primary/20 bg-primary/5 px-3 py-2.5 text-sm font-medium text-primary transition-[background-color,border-color,box-shadow] duration-150 ease-out hover:bg-primary/10 hover:border-primary/30 force-visible motion-reduce:transition-none",children:[(0,n.jsx)(o.A,{className:"mr-3 h-4 w-4 text-primary"}
1),(0,n.jsx)("span",{children:"Workspace"}),(0,n.jsx)(d.A,{className:"ml-auto h-4 w-4 text-primary"})]}):null]}):U&&(P||O)&&(0,n.jsxs)(f._2,{onClick:z,className:"rounded-md border-modern border-primary/20 bg-primary/5 px-3 py-2.5 text-sm font-medium text-primary transition-[background-color,border-color,box-shadow] duration-150 ease-out hover:bg-primary/10 hover:border-primary/30 force-visible motion-reduce:transition-none",children:[(0,n.jsx)(o.A,{className:"mr-3 h-4 w-4 text-primary"}),(0,n.jsx)("span",{children:"Client Portal"}),(0,n.jsx)(d.A,{className:"ml-auto h-4 w-4 text-primary"})]})]}),(0,n.jsx)(f.mB,{className:"my-2 border-modern"}),(0,n.jsxs)(f._2,{onClick:_,className:"rounded-md px-3 py-2.5 text-sm font-medium text-destructive transition-[color,background-color,box-shadow] duration-150 ease-out hover:bg-destructive/10 hover:text-destructive force-visible motion-reduce:transition-none",children:[(0,n.jsx)(m.A,{className:"mr-3 h-4 w-4"}),(0,n.jsx)("span",{children:"Log out"})]})]})]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.