:root{--color-bg:#161826;--color-surface:#232532;--color-text:#e9e9ed;--color-accent:#9184d9;--color-on-accent:#16141f;--color-error:#f07a7a;--color-divider:color-mix(in srgb,#e9e9ed 16%,transparent);--color-flag:#e3b86b;--color-neutral-100:#f3f5fe;--color-neutral-200:#e4e7f5;--color-neutral-300:#cfd3e5;--color-neutral-400:#b2b6ca;--color-neutral-500:#9397ab;--color-neutral-600:#75798c;--color-neutral-700:#595d6c;--color-neutral-800:#3f424d;--color-neutral-900:#292b31;--color-accent-100:#f5f4ff;--color-accent-200:#e7e5fe;--color-accent-300:#d2cefd;--color-accent-400:#b5abfc;--color-accent-500:#968ae0;--color-accent-600:#796cbf;--color-accent-700:#5d5294;--color-accent-800:#423a6a;--color-accent-900:#2b2741;--fs-body:16px;--fs-meta:13px;--fs-sub:15px;--fs-key:20px;--font-heading-weight:500;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 0 0 1px #3f424d;--shadow-md:0 0 0 1px #595d6c,0 6px 18px rgba(0,0,0,0.55);--shadow-lg:0 0 0 1px #9397ab,0 16px 40px rgba(0,0,0,0.65);color-scheme:dark}*,:after,:before{box-sizing:border-box}body,html{margin:0;height:100%;background:var(--color-bg);overscroll-behavior:none}body{color:var(--color-text);font-family:var(--font-body),system-ui,sans-serif;font-size:15px;line-height:1.55;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-weight:var(--font-heading-weight);line-height:1.12;letter-spacing:-.015em;margin:0}h6{font-size:13px;letter-spacing:.08em;text-transform:uppercase}p{margin:0}a{color:var(--color-accent)}input::placeholder{color:var(--color-neutral-600)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb,var(--color-accent) 30%,transparent)}.row:not(.adm *){display:flex!important;align-items:center!important}.stack:not(.adm *){display:flex!important;flex-direction:column!important}.cluster:not(.adm *){display:flex!important;flex-wrap:wrap!important}.muted:not(.adm *){color:var(--color-neutral-500)!important}.num:not(.adm *){font-feature-settings:"tnum"!important;font-variant-numeric:tabular-nums!important}.chip:not(.adm *){display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:var(--fs-meta);background:var(--color-neutral-900);color:var(--color-neutral-300)}.u-flex{display:flex!important}.u-grid{display:grid!important}.u-col{flex-direction:column!important}.u-wrap{flex-wrap:wrap!important}.u-center{align-items:center!important}.u-start{align-items:flex-start!important}.u-end{align-items:flex-end!important}.u-base{align-items:baseline!important}.u-jend{justify-content:flex-end!important}.u-jbetween{justify-content:space-between!important}.grow{flex:1 1!important}.none{flex:none!important}.min0{min-width:0!important}.w100{width:100%!important}.gap-1{gap:1px!important}.gap-2{gap:2px!important}.gap-4{gap:4px!important}.gap-6{gap:6px!important}.gap-8{gap:8px!important}.gap-10{gap:10px!important}.gap-12{gap:12px!important}.gap-14{gap:14px!important}.gap-16{gap:16px!important}.m0{margin:0!important}.p0{padding:0!important}.mt-4{margin-top:4px!important}.mt-6{margin-top:6px!important}.mt-8{margin-top:8px!important}.mt-12{margin-top:12px!important}.fs-meta{font-size:var(--fs-meta)!important}.fs-sub{font-size:var(--fs-sub)!important}.fs-body{font-size:var(--fs-body)!important}.fs-key{font-size:var(--fs-key)!important}.fs-15{font-size:15px!important}.fs-16{font-size:16px!important}.fs-17{font-size:17px!important}.fs-18{font-size:18px!important}.w500{font-weight:500!important}.w600{font-weight:600!important}.lh-13{line-height:1.3!important}.c-200{color:var(--color-neutral-200)!important}.c-300{color:var(--color-neutral-300)!important}.c-400{color:var(--color-neutral-400)!important}.c-500{color:var(--color-neutral-500)!important}.c-accent{color:var(--color-accent)!important}.c-bad{color:var(--bad)!important}.c-warn{color:var(--warn)!important}.tnum{font-feature-settings:"tnum"!important;font-variant-numeric:tabular-nums!important}.nowrap{white-space:nowrap!important}.break{overflow-wrap:anywhere!important}.pretty{text-wrap:pretty!important}.clip{overflow:hidden!important}.bg-surface{background:var(--color-surface)!important}.bg-900{background:var(--color-neutral-900)!important}.bg-none{background:transparent!important}.r-md{border-radius:var(--radius-md)!important}.r-lg{border-radius:var(--radius-lg)!important}.ring{box-shadow:inset 0 0 0 1px var(--color-divider)!important}.mh-44{min-height:44px!important}.mh-48{min-height:48px!important}.mh-52{min-height:52px!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:inherit;font-weight:var(--font-heading-weight);font-size:14px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:5.6px 10px;border-radius:var(--radius-md)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--color-accent-400);border-color:var(--color-accent-400)}.btn-primary:active:not(:disabled){background:var(--color-accent-600);border-color:var(--color-accent-600)}.btn-primary:disabled{opacity:1;background:var(--color-accent-800);border-color:var(--color-accent-800);color:color-mix(in srgb,var(--color-on-accent) 45%,var(--color-accent-400))}.btn-outline{color:var(--color-accent);border-color:var(--color-accent)}.btn-outline:hover{background:color-mix(in srgb,var(--color-accent) 12%,transparent)}.btn-outline:active{background:color-mix(in srgb,var(--color-accent) 22%,transparent)}.btn-danger{color:#1d1013;background:var(--color-error);border-color:var(--color-error);font-weight:600}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-error) 85%,#fff)}.btn-danger:active:not(:disabled){background:color-mix(in srgb,var(--color-error) 80%,#000)}.btn-danger:disabled{opacity:1;background:color-mix(in srgb,var(--color-error) 30%,var(--color-bg));border-color:transparent;color:color-mix(in srgb,#fff 45%,transparent)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:color-mix(in srgb,var(--color-text) 7%,transparent)}.btn-secondary:active{background:color-mix(in srgb,var(--color-text) 14%,transparent)}.btn-ghost{color:var(--color-accent);padding-inline:2.8px}.btn-ghost:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.btn-ghost:active{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.btn-icon{width:36px;height:36px;padding:0}.app-col .btn{min-height:48px}.app-col .btn-icon{min-height:44px;min-width:44px}.app-col .btn-lg{min-height:56px;font-size:17px}.app-col .btn-lg,.app-col .btn-xl{gap:8px;border-radius:var(--radius-lg)}.app-col .btn-xl{min-height:60px;font-size:19px}.w-full{width:100%}.btn-why{margin:0 0 -2px;text-align:center;font-size:var(--fs-sub);color:var(--color-neutral-300)}.toast-action{flex:none;min-height:56px!important;min-width:96px;padding:0 20px;font-size:17px;font-weight:600;border-radius:var(--radius-md)}.toast-timer{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--color-accent);transform-origin:left;animation:toast-timer linear forwards}@keyframes toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.toast-timer{display:none}}.seg{flex:none;display:flex;gap:4px}.seg>button{min-width:48px;min-height:48px;padding:0 10px;font-size:16px;border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--color-divider);color:var(--color-text);background:transparent}.seg>button[aria-checked=true]{box-shadow:inset 0 0 0 1.5px var(--color-accent);color:var(--color-accent-200);background:var(--color-accent-900)}.app-col .btn-md{min-height:48px;font-size:var(--fs-body);border-radius:var(--radius-md)}.app-col .btn.tap-sm{position:relative;min-height:0}.app-col .btn.tap-sm:before{content:"";position:absolute;inset:-6px -2px}.btn-row{width:100%;justify-content:flex-start;text-align:left;font-weight:400;border-radius:var(--radius-lg);background:var(--color-surface);border-color:transparent}.btn-row:hover{background:var(--color-neutral-900)}.btn-row:active{background:var(--color-accent-900)}.btn-row.btn-primary{color:var(--color-on-accent);background:var(--color-accent)}.btn-row.btn-primary:hover{background:var(--color-accent-400)}.btn-row.btn-primary:active{background:var(--color-accent-600)}.input{width:100%;min-height:36px;padding:6px 10px;font:inherit;font-size:14px;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md)}.input:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}.input:focus-visible{border-color:var(--color-accent);outline-offset:0}.card{display:flex;flex-direction:column;gap:5.6px;padding:8.4px;border-radius:var(--radius-md);background:var(--color-surface)}.elev-sm{box-shadow:var(--shadow-sm)}.tag{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.02em;padding:3px 10px;border-radius:6px}.tag-accent{background:var(--color-accent-800);color:var(--color-accent-100)}.tag-neutral{background:var(--color-neutral-800);color:var(--color-neutral-100)}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:end center;padding:12px;background:color-mix(in srgb,var(--color-neutral-900) 50%,transparent)}.dialog{width:min(440px,100%);display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg)}.dialog-title{font-weight:var(--font-heading-weight);font-size:20px}.dialog-body{font-size:16px;opacity:.85}.app-bg{position:fixed;top:0;left:0;right:0;bottom:0;height:100%;height:100lvh;display:flex;justify-content:center;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:radial-gradient(120% 50% at 0 0,var(--color-accent-900),var(--color-bg) 65%);background-color:var(--color-bg)}@media (display-mode:standalone){body,html{height:100lvh;overflow:hidden}}.app-col{position:relative;width:100%;max-width:440px;height:100%;display:flex;flex-direction:column;overflow:hidden;font-size:var(--fs-body)}.app-col .input,.app-col input,.app-col select,.app-col textarea{font-size:max(16px,1em)}.app-col input::placeholder,.app-col textarea::placeholder{color:var(--color-neutral-500)}.app-col .tag{font-size:var(--fs-meta)}.avatar{flex:none;border-radius:50%;display:grid;place-items:center;background:var(--color-accent-900);color:var(--color-accent-200);box-shadow:inset 0 0 0 1px var(--color-accent-700);font-weight:500}@keyframes scanline{0%{top:14%}50%{top:82%}to{top:14%}}.scanline{position:absolute;left:10%;right:10%;height:2px;background:var(--color-accent);box-shadow:0 0 14px var(--color-accent);animation:scanline 1.6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.scanline{animation:none;top:50%}}.mat-badge{flex:none;width:46px;height:46px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--color-accent-900);color:var(--color-accent-300);box-shadow:inset 0 0 0 1px var(--color-accent-800);font-size:11px;font-weight:600;letter-spacing:.04em}.scroll{flex:1 1;min-height:0;overflow-y:auto}@keyframes morph-in{0%{-webkit-clip-path:inset(6px 6px calc(100% - 50px) calc(100% - 50px) round 22px);clip-path:inset(6px 6px calc(100% - 50px) calc(100% - 50px) round 22px)}to{-webkit-clip-path:inset(0 0 0 0 round 28px);clip-path:inset(0 0 0 0 round 28px)}}@keyframes morph-out{0%{-webkit-clip-path:inset(0 0 0 0 round 28px);clip-path:inset(0 0 0 0 round 28px)}to{-webkit-clip-path:inset(6px 6px calc(100% - 50px) calc(100% - 50px) round 22px);clip-path:inset(6px 6px calc(100% - 50px) calc(100% - 50px) round 22px)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.morph{animation:morph-in .22s cubic-bezier(.2,.8,.2,1) both}.morph.closing{animation:morph-out .16s cubic-bezier(.4,0,.8,.4) both}.morph .morph-body{animation:fade-in .16s ease-out .06s both}.morph.closing .morph-body{animation:fade-out .08s ease-in both}.scrim{animation:fade-in .2s ease-out both}.scrim.closing{animation:fade-out .16s ease-in both}@media (prefers-reduced-motion:reduce){.morph,.morph .morph-body,.morph.closing,.morph.closing .morph-body{animation:none}}@keyframes spin{to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.form-error{display:flex;align-items:center;gap:8px;color:var(--color-error);font-size:15px}.form-error:empty{display:none}.home-tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-height:124px;padding:16px;border-radius:var(--radius-lg);text-decoration:none;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-divider);transition:background .12s,transform .08s}.home-tile[data-wide]{flex-direction:row;align-items:center;justify-content:flex-start;min-height:96px}.home-tile:hover{background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface))}.home-tile:active{background:var(--color-accent-900);transform:scale(.985)}.home-tile-icon{flex:none;width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:var(--color-accent-800);color:var(--color-accent-200);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent-400) 35%,transparent)}.home-tile-badge{position:absolute;top:12px;right:12px;min-width:28px;height:28px;padding:0 8px;border-radius:14px;background:var(--color-accent);color:var(--color-on-accent);font-size:15px;font-weight:700;line-height:28px;text-align:center;box-shadow:0 0 0 3px var(--color-surface)}.tabbar-tab{font-size:min(var(--fs-meta),3.6vw);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}@media (max-width:359px){.tabbar{--scan-col:74px}}@media (max-width:400px){.stalle-chip{width:40px;padding:0!important;justify-content:center}.stalle-chip-label{display:none}}@media (max-height:680px){.keypad>.btn{height:46px!important}}.flytta-qty-ctx{display:none}@media (max-height:680px){.flytta-qty-ctx{display:block}.flytta-qty-panel{gap:6px!important;padding-top:6px!important}.flytta-qty-num{font-size:30px!important}.flytta-qty-next{min-height:48px!important}}@media (max-height:500px){.count-page{overflow-y:auto}.count-page>.scroll{flex:none!important;overflow:visible}}.place-row{display:flex;align-items:center;gap:10px;min-height:60px;padding:10px 12px 10px 16px;color:inherit;text-decoration:none}.place-row:active{background:var(--color-accent-900)}.place-art{min-height:68px;padding:8px 6px 8px 12px}.place-art,.place-art-main{display:flex;align-items:center;gap:12px}.place-art-main{flex:1 1;min-width:0;padding:4px 0;color:inherit;text-decoration:none;border-radius:var(--radius-md)}.place-art-main:active{background:var(--color-accent-900)}.place-art[data-zero]{color:var(--color-neutral-500)}.place-head{display:flex;align-items:center;gap:8px;padding:0 2px}.place-head-go{display:inline-flex;align-items:center;gap:2px;min-height:48px;margin:-14px -6px -14px auto;padding:0 6px;color:var(--color-accent-300);font-size:var(--fs-meta);text-decoration:none;border-radius:var(--radius-md)}.place-head-go:active{background:var(--color-accent-900)}.pm-notice{display:flex;align-items:center;gap:8px;width:100%;min-height:48px;padding:8px 12px;border:0;border-radius:var(--radius-md);background:var(--color-neutral-900);color:var(--color-neutral-300);font:inherit;font-size:var(--fs-sub);text-align:left;cursor:pointer}.rv-wrap{overflow-x:auto;margin:0 -16px;padding:2px 16px 4px;scrollbar-width:thin}.rv-grid{flex-direction:column}.rv-grid,.rv-row{display:flex;gap:6px}.rv-row{align-items:stretch}.rv-lvl{flex:none;width:28px;display:grid;place-items:center;font-size:11px;color:var(--color-neutral-500);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rv-cells{flex:1 1;min-width:0;display:grid;grid-gap:6px;gap:6px}.rv-cells.walls .rv-cell{border-radius:3px}.rv-cell{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0;min-height:96px;padding:6px 6px 5px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font:inherit;text-align:left;cursor:pointer}.rv-cell .code{font-size:13px;font-weight:500;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rv-cell .img-gap,.rv-cell img{display:block;width:100%;height:50px;object-fit:contain}.rv-cell .st{font-size:11px;line-height:14px;color:var(--color-neutral-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rv-cell[data-empty]{background:transparent;border-style:dashed}.rv-cell[data-empty] .st{color:var(--color-neutral-500)}.rv-cell[data-none]{background:transparent;border-style:dashed;opacity:.45;cursor:default}.rv-cell[data-sel]{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent);background:var(--color-accent-900)}.rv-cell[data-hit]{border-color:var(--color-accent-400);border-style:solid}.rv-cell[data-dim]{opacity:.35}.rv-cell:not(:disabled):active{background:var(--color-accent-900)}.rv-cell{position:relative}.rv-cell[data-flag]:after{content:"";position:absolute;top:5px;right:5px;box-shadow:0 0 0 2px var(--color-surface)}.flag-dot,.rv-cell[data-flag]:after{width:9px;height:9px;border-radius:50%;background:var(--color-flag)}.flag-dot{flex:none}.flag-tag{flex:none;display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:6px;font-size:var(--fs-meta);color:var(--color-flag);box-shadow:inset 0 0 0 1px currentColor;white-space:nowrap}.rv-none{flex:1 1;display:grid;place-items:center;min-height:30px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);font-size:11px;color:var(--color-neutral-500)}.rv-floor{display:block;height:3px;border-radius:2px;background:var(--color-neutral-700)}.rv-sec{text-align:center;font-size:11px;color:var(--color-neutral-500);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rv-sheet{flex:none;display:flex;flex-direction:column;gap:10px;margin:0 8px 8px;padding:12px 12px 12px 16px;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-divider),0 -8px 24px rgb(0 0 0/.35)}.pm-rowmap{display:flex;align-items:center;gap:8px;flex-basis:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-md)}.pm-rowmap>:first-child{flex:1 1;min-width:0}.pm-rowmap-go{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-md);color:var(--color-accent-400)}.pm-rowmap:active .pm-rowmap-go{background:color-mix(in srgb,var(--color-text) 10%,transparent)}.pm-nopos{flex-basis:100%;font-size:var(--fs-meta);color:var(--color-neutral-500)}.lot-list{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.lot-chip{display:inline-flex;flex-wrap:wrap;align-items:center;column-gap:6px;max-width:100%;padding:3px 10px;border-radius:var(--radius-md);background:var(--color-neutral-900);color:var(--color-neutral-200);font-size:var(--fs-meta);line-height:1.45}.lot-chip .lot-ic{flex:none;color:var(--color-neutral-400)}:root{--env-band-h:0px}html[data-env=test]{--env-band-h:20px}.env-band{position:fixed;top:0;left:0;right:0;z-index:2147483000;height:calc(env(safe-area-inset-top) + var(--env-band-h));padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(-45deg,#f08a24 0 14px,#e47c14 14px 28px);color:#1d1206;font:700 11px/1 var(--font-body,system-ui),system-ui,sans-serif;letter-spacing:.14em;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 1px 0 #0006}html[data-env=test] .app-bg,html[data-env=test] body{padding-top:calc(env(safe-area-inset-top) + var(--env-band-h))}html[data-env=test] .adm,html[data-env=test] .adm .app,html[data-env=test] .adm .auth{min-height:calc(100vh - var(--env-band-h))}html[data-env=test] .adm .side{top:var(--env-band-h);height:calc(100vh - var(--env-band-h))}html[data-env=test] .adm .drawer{top:calc(env(safe-area-inset-top) + var(--env-band-h))}@media (max-width:900px){html[data-env=test] .adm .mbar{top:calc(env(safe-area-inset-top) + var(--env-band-h));padding-top:0}html[data-env=test] .adm .mnav .side{top:calc(env(safe-area-inset-top) + var(--env-band-h));height:auto;padding-top:16px}}