:root{--loader-accent:var(--accent,#58b7ff);--loader-accent-rgb:var(--accent-rgb,88,183,255)}
body.authPending::before{content:none!important;display:none!important}
.workspaceLoadingOverlay{position:fixed;inset:0;z-index:1000000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 38%,rgba(var(--loader-accent-rgb),.16),transparent 36%),var(--bg,#0d1117);color:var(--text,#f5f7fb);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
body.authPending .workspaceLoadingOverlay{opacity:1;visibility:visible;pointer-events:auto}
.workspaceLoadingCard{position:relative;width:min(720px,94vw);overflow:hidden;border:1px solid color-mix(in srgb,var(--loader-accent) 68%,transparent);border-radius:34px;padding:clamp(28px,5vw,58px);text-align:center;background:linear-gradient(145deg,color-mix(in srgb,var(--panel,#1a212a) 94%,var(--loader-accent) 6%),var(--panel,#171d25));box-shadow:0 28px 90px rgba(0,0,0,.44),0 0 0 1px rgba(255,255,255,.025) inset}
.workspaceLoadingCard::after{content:"";position:absolute;inset:-60% -15%;background:linear-gradient(112deg,transparent 40%,rgba(255,255,255,.08) 49%,transparent 58%);transform:translateX(-45%);animation:workspaceSheen 2.8s linear infinite;pointer-events:none}
.workspaceLoadingMachine{position:relative;width:210px;height:210px;margin:0 auto 28px;display:grid;place-items:center;isolation:isolate}
.workspaceOrbit{position:absolute;border:1px solid color-mix(in srgb,var(--loader-accent) 62%,transparent);border-radius:50%;inset:12px;animation:workspaceOrbit 5s linear infinite;box-shadow:0 0 26px rgba(var(--loader-accent-rgb),.12) inset}
.workspaceOrbit::before,.workspaceOrbit::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--loader-accent);box-shadow:0 0 18px var(--loader-accent)}
.workspaceOrbit::before{top:8px;left:42px}.workspaceOrbit::after{right:14px;bottom:34px}
.orbitTwo{inset:36px;border-style:dashed;animation-direction:reverse;animation-duration:3.6s;opacity:.7}
.workspaceNozzle{position:absolute;top:31px;width:42px;height:55px;border:2px solid var(--loader-accent);border-radius:8px 8px 15px 15px;background:var(--surface,#11171e);box-shadow:0 0 24px rgba(var(--loader-accent-rgb),.25);animation:workspaceNozzle 1.8s ease-in-out infinite}
.workspaceNozzle::after{content:"";position:absolute;left:50%;bottom:-20px;width:4px;height:20px;transform:translateX(-50%);background:linear-gradient(var(--loader-accent),transparent)}
.workspacePrintCube{position:absolute;top:104px;width:58px;height:58px;border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--loader-accent) 88%,white 12%),color-mix(in srgb,var(--loader-accent) 62%,black 38%));clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);filter:drop-shadow(0 12px 20px rgba(var(--loader-accent-rgb),.32));animation:workspaceCube 1.8s ease-in-out infinite}
.workspacePrintBed{position:absolute;bottom:25px;width:136px;height:9px;border-radius:10px;background:linear-gradient(90deg,transparent,var(--loader-accent),transparent);box-shadow:0 0 18px rgba(var(--loader-accent-rgb),.38)}
.workspaceLoadingCopy>span,.workspaceLoadingStages span{font-size:.72rem;letter-spacing:.17em;font-weight:900;color:var(--loader-accent)}
.workspaceLoadingCopy h1{margin:8px 0 9px;font-size:clamp(1.7rem,4vw,2.8rem);letter-spacing:-.035em}.workspaceLoadingCopy p{margin:0 auto;max-width:560px;color:var(--muted,#aeb7c2);line-height:1.6}
.workspaceLoadingProgress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:30px auto 12px;max-width:500px}.workspaceLoadingProgress i{height:4px;border-radius:8px;background:color-mix(in srgb,var(--loader-accent) 18%,var(--line,#39424d));overflow:hidden}.workspaceLoadingProgress i::after{content:"";display:block;width:100%;height:100%;background:var(--loader-accent);transform:translateX(-105%);animation:workspaceLoad 2.4s ease-in-out infinite}.workspaceLoadingProgress i:nth-child(2)::after{animation-delay:.22s}.workspaceLoadingProgress i:nth-child(3)::after{animation-delay:.44s}.workspaceLoadingProgress i:nth-child(4)::after{animation-delay:.66s}
.workspaceLoadingStages{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:500px;margin:auto}.workspaceLoadingStages span{color:var(--muted,#aeb7c2);letter-spacing:.08em;font-size:.62rem}
@keyframes workspaceSheen{to{transform:translateX(45%)}}@keyframes workspaceOrbit{to{transform:rotate(360deg)}}@keyframes workspaceNozzle{50%{transform:translateY(8px)}}@keyframes workspaceCube{50%{transform:translateY(5px) scale(.96)}}@keyframes workspaceLoad{0%,12%{transform:translateX(-105%)}45%,75%{transform:translateX(0)}100%{transform:translateX(105%)}}

.legalLinksCard{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--surface-sub,var(--panel));display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.legalLinksCard h3{margin:0 0 4px}.legalLinksCard p{margin:0;color:var(--muted)}.legalLinkActions{display:flex;gap:10px;flex-wrap:wrap}.legalLinkButton,.appLegalFooter button{appearance:none;border:0;background:none;color:var(--accent);font:inherit;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.appLegalFooter{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;padding:12px 18px 22px;font-size:.82rem}
/* Above .authChooserLayer (2147483300, set inline in index.html). The sign-in screens carry a
   "Privacy Policy / Terms" notice, and at 310000 the policy opened BEHIND the sign-in card — fully
   hidden, and indistinguishable from a link that does nothing. This dialog is always the topmost
   thing while it is open, so it belongs at the top of the ladder rather than mid-stack. */
.legalBackdrop{position:fixed;inset:0;z-index:2147483400;display:grid;place-items:center;padding:clamp(10px,3vw,30px);background:rgba(4,7,12,.82);backdrop-filter:blur(12px)}.legalDialog{width:min(980px,96vw);height:min(860px,92dvh);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 70%,var(--line));border-radius:30px;background:var(--panel);box-shadow:0 34px 110px rgba(0,0,0,.56),0 0 36px color-mix(in srgb,var(--accent) 12%,transparent)}.legalDialog header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:26px 30px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 82% 0,color-mix(in srgb,var(--accent) 18%,transparent),transparent 48%),linear-gradient(115deg,color-mix(in srgb,var(--accent) 15%,var(--panel)),var(--panel))}.legalDialog header span{color:var(--accent);font-weight:900;letter-spacing:.15em;font-size:.72rem}.legalDialog h2{margin:5px 0 0;font-size:clamp(1.55rem,4vw,2.25rem);line-height:1.12}.legalClose{width:50px;height:50px;min-width:50px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--accent);font-size:1.8rem;line-height:1;display:grid;place-items:center;cursor:pointer}.legalBody{overflow:auto;padding:28px 34px;scrollbar-gutter:stable}.legalBody::-webkit-scrollbar{width:12px}.legalBody::-webkit-scrollbar-track{background:var(--surface);border-radius:999px;margin:10px}.legalBody::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 58%,var(--surface)));border:3px solid var(--surface);border-radius:999px}.legalBody{scrollbar-color:var(--accent) var(--surface);scrollbar-width:thin}.legalBody .legalIntro{margin:0 0 24px;padding:18px 20px;border-left:4px solid var(--accent);border-radius:0 16px 16px 0;background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--text);line-height:1.7}.legalBody>h3{margin:30px 0 10px;padding-bottom:8px;border-bottom:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));color:var(--text);font-size:1.02rem;letter-spacing:.01em}.legalBody>p,.legalBody li{color:var(--muted);line-height:1.75}.legalBody ul{margin:0 0 18px;padding:0 0 0 1.1rem;list-style:none}.legalBody ul li{position:relative;padding-left:4px}.legalBody ul li::before{content:"";position:absolute;left:-1rem;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 35%,transparent)}.legalBody ul li+li{margin-top:10px}.legalBody ul li strong{color:var(--text)}.legalBody>p+p{margin-top:12px}.legalDialog footer{padding:17px 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted);font-size:.8rem;background:color-mix(in srgb,var(--surface-sub,var(--panel)) 88%,var(--accent) 12%)}.legalDialog footer button{min-width:150px}

#inventory .inventoryTableWrap{max-height:min(570px,66vh)!important;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;touch-action:pan-x pan-y}#inventory .inventoryTable{min-width:900px}

.planCurrentBadge.planCurrentUntil{display:grid!important;grid-template-columns:auto 1fr!important;grid-template-areas:"check label" "check date"!important;align-items:center!important;gap:0 7px!important;max-width:min(210px,70%)!important;white-space:normal!important;text-align:left!important}.planCurrentBadge.planCurrentUntil::before{grid-area:check!important;margin:0!important}.planCurrentBadge.planCurrentUntil small{grid-area:date!important;margin:0!important;line-height:1.1}.planCurrentBadge.planCurrentUntil{line-height:1.15!important}
.businessPageHeader.compactDashboardHeader{display:none!important}
.planBusinessDashboard{position:relative}
.planBusinessDashboard .planReportHeading{position:relative}
.planReportHeading .dashboardBackCorner{position:absolute!important;top:0;right:0;width:auto!important;min-width:0!important;padding:8px 14px!important;font-size:.8rem!important}
.businessSection>span:first-child{color:var(--accent)}

@media(max-width:640px){.workspaceLoadingCard{border-radius:24px;padding:28px 20px}.workspaceLoadingMachine{width:165px;height:165px}.workspacePrintBed{bottom:8px}.workspaceLoadingStages{display:none}.legalBackdrop{padding:8px}.legalDialog{width:100%;height:min(94dvh,900px);border-radius:23px}.legalDialog header{padding:20px}.legalBody{padding:22px 20px}.legalDialog footer{padding:15px 20px;align-items:stretch;flex-direction:column}.legalDialog footer button{width:100%}}
@media(prefers-reduced-motion:reduce){.workspaceLoadingCard::after,.workspaceOrbit,.workspaceNozzle,.workspacePrintCube,.workspaceLoadingProgress i::after{animation:none!important}.workspaceLoadingProgress i::after{transform:none}}
