.session-loader{padding:16px;overflow:auto}.session-loader-card{width:min(800px,100%);max-width:800px;padding:28px 16px}.session-loader-card>p,.zzws-order-preparation h2{font-size:clamp(18px,3vw,25px);font-weight:750;line-height:1.5;margin:20px 0 4px}.zzws-scene{--scene-surface:#fff;--scene-line:#a7c1c9;--scene-soft:#e7f1f2;--scene-ink:#287d94;width:100%;margin:24px auto 0;background:#f0f8f9;border:1px solid #d9e8ec;border-radius:18px;overflow:hidden}.zzws-scene svg{display:block;width:100%;height:auto}.scene-building{fill:var(--scene-surface);stroke:var(--scene-line);stroke-width:2}.scene-roof,.scene-floor{fill:var(--scene-soft)}.scene-shelf{fill:none;stroke:var(--scene-line);stroke-width:5}.scene-box{fill:#e9b460}.scene-route{fill:none;stroke:#68b9c9;stroke-width:4;stroke-dasharray:3 12;stroke-linecap:round}.scene-appliance{fill:var(--scene-surface);stroke:var(--scene-line);stroke-width:2}.scene-handle{fill:none;stroke:var(--scene-line);stroke-width:2.5;stroke-linecap:round}.scene-glass{fill:#bfe5eb;stroke:#649ba9;stroke-width:2}.scene-catalog-tiles{fill:var(--scene-soft)}.catalog-transfer{opacity:0;animation:catalog-transfer 2.8s cubic-bezier(.4,0,.3,1) infinite}.transfer-fridge{--transfer-x:581px;--transfer-y:123px}.transfer-washer{--transfer-x:679px;--transfer-y:130px;animation-delay:-.93s}.transfer-tv{--transfer-x:772px;--transfer-y:133px;animation-delay:-1.86s}
@keyframes catalog-transfer{0%{transform:translate(175px,154px);opacity:0}12%{opacity:1}72%{transform:translate(var(--transfer-x),var(--transfer-y));opacity:1}90%,100%{transform:translate(var(--transfer-x),var(--transfer-y));opacity:0}}
/* Hidden and failed catalogue states contain no running animation. */
html:not([data-session-pending]) .catalog-transfer,#sessionSpinner[hidden] .catalog-transfer{animation:none}#sessionSpinner[hidden]{display:none}.session-loader-logo-dark{display:none}.dark .session-loader-logo-dark{display:block}.dark .session-loader-logo{display:none}
.zzws-order-preparation{width:min(800px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:28px 20px 20px;border:1px solid #d9e8ec;border-radius:22px;background:#fff;color:#274759;text-align:center;overflow:auto;box-shadow:0 22px 90px #102d4140}.zzws-order-preparation::backdrop{background:#0f172ab3;backdrop-filter:blur(5px)}.zzws-order-preparation:not([open]){display:none}.zzws-order-preparation h2{margin-bottom:0}.zzws-order-preparation p{font-size:12px;line-height:1.6;margin:16px 0;color:#64748b}.zzws-order-preparation button{padding:10px 22px;border:1px solid #a7c1c9;border-radius:10px;background:#edf7f9;color:#23677d;font-size:14px;font-weight:700}.zzws-order-preparation button:focus-visible{outline:3px solid #1688a6;outline-offset:3px}.scene-truck-body{fill:var(--scene-surface);stroke:var(--scene-ink);stroke-width:3}.scene-stripe,.scene-cab{fill:#1684a0}.scene-wheels{fill:#294959;stroke:#d5e3e8;stroke-width:3}.scene-road{stroke:#bbd2da;stroke-width:5;stroke-dasharray:24 16}.scene-forklift-body{fill:#f1c15f;stroke:#bd8d35;stroke-width:2}.scene-mast,.scene-forks{fill:none;stroke:#526f7b;stroke-width:5}.order-truck{animation:order-drive 4.4s ease-in-out both}.order-cargo{animation:order-load 4.4s ease-in-out both}.order-forklift{animation:order-fork 4.4s ease-in-out both}.scene-forks{animation:order-lift 4.4s ease-in-out both}
@keyframes order-drive{0%,60%{transform:translateX(0)}100%{transform:translateX(290px)}}
/* Cargo is a child of the truck; once loaded its local position stays fixed. */
@keyframes order-load{0%,8%{transform:translate(-140px,28px)}22%{transform:translate(-140px,0)}45%,100%{transform:translate(0,0)}}
@keyframes order-fork{0%,22%{transform:translateX(0)}45%,52%{transform:translateX(140px)}75%,100%{transform:translateX(0)}}
@keyframes order-lift{0%,8%{transform:translateY(0)}22%,52%{transform:translateY(-28px)}75%,100%{transform:translateY(0)}}
.dark .zzws-scene{--scene-surface:#203445;--scene-line:#6c929e;--scene-soft:#283f4e;--scene-ink:#61bdcf;background:#182c3b;border-color:#3e5969}.dark .zzws-order-preparation{background:#111f2e;color:#e2edf5;border-color:#3e5969}.dark .zzws-order-preparation p{color:#b4c7d3}.dark .zzws-order-preparation button{background:#234252;color:#e2edf5;border-color:#6c929e}
@media(max-width:480px){.session-loader{padding:10px}.session-loader-card{padding:24px 0}.zzws-scene{margin-top:18px;border-radius:12px}.zzws-order-preparation{padding:24px 10px 16px}.zzws-order-preparation h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.zzws-scene *{animation:none!important}.catalog-transfer{display:none}}
