:root{--randex-orange:#ee652b;--randex-orange-soft:#feefeb;--randex-ink:#2d291d;--randex-grey:#737b8c;--randex-dark:#1a1814;--bg:#f7f4ef;--bg-panel:#fff;--ink:var(--randex-ink);--muted:var(--randex-grey);--line:#d8d2c8;--accent:var(--randex-orange);--accent-ink:#fff;--ok:#3f6212;--warn:#9a3412;--deck:#8b7355;--shelf-wire:#4a4338;--font-display:"Segoe UI", "Trebuchet MS", sans-serif;--font-mono:"Cascadia Mono", "Consolas", monospace;color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% 0%, #feefeb 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 100%, #e8ecef 0%, transparent 50%), var(--bg);font-family:var(--font-display);line-height:1.4}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--bg-panel);color:var(--ink);border-radius:4px;padding:.4rem .75rem}button.primary{background:var(--accent);color:var(--accent-ink);border-color:#d45520;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}button.active{outline:2px solid var(--accent);outline-offset:1px}input[type=number],input[type=text]{border:1px solid var(--line);background:#fff;border-radius:3px;width:100%;padding:.3rem .4rem}label{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}label.checkbox{flex-direction:row;align-items:center;gap:.4rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-nav{background:var(--randex-dark);color:#fff;border-bottom:3px solid var(--randex-orange)}.app-nav-inner{flex-wrap:wrap;align-items:center;gap:1.5rem;max-width:1760px;margin:0 auto;padding:.55rem 1rem;display:flex}.app-nav-brand{color:#fff;letter-spacing:-.02em;white-space:nowrap;font-size:1.05rem;font-weight:700;text-decoration:none}.app-nav-brand:hover,.app-nav-brand.active{color:var(--randex-orange)}.app-nav-menu{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.app-nav-link{color:#ffffffc7;white-space:nowrap;border-radius:4px;align-items:center;padding:.4rem .85rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.app-nav-link:hover{color:#fff;background:#ffffff14}.app-nav-link.active{background:var(--randex-orange);color:var(--accent-ink);font-weight:600}.app-nav-actions{flex-wrap:wrap;align-items:center;gap:.35rem;margin-left:auto;display:flex}.app-nav-actions button{color:#fff;white-space:nowrap;background:#ffffff1a;border:1px solid #ffffff38;border-radius:4px;padding:.38rem .7rem;font-size:.84rem}.app-nav-actions button:hover:not(:disabled){background:#ffffff29;border-color:#ffffff61}.app-nav-actions button:disabled{opacity:.45;cursor:not-allowed}.app-nav-actions button.primary{background:var(--randex-orange);color:var(--accent-ink);border-color:#d45520;font-weight:600}.app-nav-actions button.primary:hover:not(:disabled){background:#f07040;border-color:#e05a28}.app-nav-actions .lift-setup-badge{color:#ffffffeb;background:#ffffff24}.app{flex-direction:column;gap:.75rem;max-width:1760px;min-height:100vh;margin:0 auto;padding:.75rem 1rem 1.5rem;display:flex}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar h1{letter-spacing:-.02em;margin:0;font-size:1.45rem;font-weight:700}.topbar .sub{color:var(--muted);margin:.15rem 0 0;font-size:.8rem}.topbar-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.topbar-actions a{border:1px solid var(--line);background:var(--bg-panel);color:var(--ink);font:inherit;border-radius:6px;align-items:center;padding:.45rem .75rem;font-size:.9rem;text-decoration:none;display:inline-flex}.topbar-actions a:hover{border-color:var(--accent)}.layout{grid-template-columns:minmax(380px,460px) 1fr;align-items:start;gap:.75rem;display:grid}.layout.sidebar-panels-collapsed{grid-template-columns:1fr}.layout.sidebar-panels-collapsed .sidebar{display:none}.sidebar-mobile-open{border:1px dashed color-mix(in srgb, var(--accent) 50%, var(--line));background:var(--randex-orange-soft);width:100%;color:var(--ink);border-radius:6px;justify-content:center;align-items:center;padding:.55rem .75rem;font-size:.85rem;font-weight:600;display:none}.layout.sidebar-panels-collapsed .sidebar-mobile-open{display:flex}@media (width<=1100px){.layout{grid-template-columns:minmax(320px,380px) 1fr}}@media (width<=960px){.layout{grid-template-columns:1fr}.sidebar-backdrop{z-index:100;cursor:pointer;background:#1a181473;border:none;margin:0;padding:0;display:none;position:fixed;inset:0}.layout.sidebar-drawer-open .sidebar-backdrop{touch-action:none;display:block}.layout.sidebar-drawer-open .sidebar{z-index:101;background:var(--bg);flex-direction:column;gap:0;width:min(100vw,24rem);max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden;box-shadow:4px 0 28px #0000002e}.layout.sidebar-drawer-open .sidebar-toolbar{flex-shrink:0;padding:.75rem .75rem 0}.sidebar-drawer-scroll{display:contents}.layout.sidebar-drawer-open .sidebar-drawer-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;flex-direction:column;flex:auto;gap:.75rem;min-height:0;padding:.75rem;display:flex;overflow:hidden auto}.layout.sidebar-drawer-open .box-table-wrap{max-height:none;overflow:visible}.app.sidebar-drawer-open .topbar,.app.sidebar-drawer-open .main{touch-action:none}.app{padding:.5rem .65rem 1rem}.app-nav-inner{gap:.75rem;padding:.5rem .65rem}.app-nav-menu{width:100%}.app-nav-link{flex:auto;justify-content:center;padding:.38rem .5rem;font-size:.82rem}.app-nav-actions{justify-content:flex-start;width:100%;margin-left:0}.app-nav-actions button{flex:auto;min-width:0;padding:.38rem .45rem;font-size:.78rem}.topbar{gap:.65rem}.topbar h1{font-size:1.15rem}.topbar .sub{font-size:.72rem}.topbar-actions{width:100%}.topbar-actions button{flex:auto;min-width:0;padding:.4rem .55rem;font-size:.82rem}.main-tabs{grid-template-columns:1fr}.main-tabs .main-tab{min-height:unset}.settings-grid{grid-template-columns:1fr}.viewer-3d{height:min(52vh,460px);min-height:260px}.viewer-toolbar button{padding:.22rem .4rem;font-size:.7rem}.thumb-strip{flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.placement-wrap{max-height:none}}.panel{background:color-mix(in srgb, var(--bg-panel) 92%, white);border:1px solid var(--line);border-radius:6px;padding:.75rem}.panel h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .6rem;font-size:.95rem}.sidebar{flex-direction:column;align-self:start;gap:.75rem;display:flex}.sidebar-toolbar{justify-content:flex-end;display:flex}.sidebar-collapse-toggle{width:100%;color:var(--muted);padding:.35rem .55rem;font-size:.78rem}.panel.is-collapsed h2{margin-bottom:0}.panel-body[hidden]{display:none}.config-panel-help{color:var(--muted);margin:0 0 .65rem;font-size:.78rem;line-height:1.35}.config-select-field select{border:1px solid var(--line);background:#fff;border-radius:3px;width:100%;padding:.35rem .4rem}.config-meta{color:var(--muted);margin:.35rem 0 .65rem;font-size:.72rem}.config-meta-warn{color:var(--warn);font-weight:600}.config-actions{flex-wrap:wrap;gap:.4rem;display:flex}.config-actions button{flex:auto;min-width:4.5rem;padding:.35rem .55rem;font-size:.82rem}.main{flex-direction:column;gap:.75rem;min-width:0;display:flex}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem .65rem;display:grid}.setting-label{flex-wrap:nowrap;align-items:center;gap:.3rem;display:inline-flex}.settings-grid .setting-label{white-space:nowrap}.toggles .setting-label{white-space:normal;flex-wrap:wrap}.setting-help-line{color:var(--muted);margin:.15rem 0 .25rem;font-size:.72rem;font-weight:400;display:block}.shelf-count-field{grid-column:1/-1}.shelf-count-toggle{margin-top:.35rem;font-size:.82rem}.shelf-count-field input[readonly]{background:var(--bg);cursor:default}.setting-tip{border:1px solid var(--accent);width:1rem;height:1rem;color:var(--accent);cursor:help;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex;position:relative}.setting-tip-bubble{background:var(--randex-ink);color:#fff;z-index:1000;text-transform:none;letter-spacing:normal;pointer-events:none;white-space:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;border-radius:4px;width:min(260px,100vw - 16px);max-width:min(260px,100vw - 16px);padding:.45rem .55rem;font-size:.72rem;font-weight:400;line-height:1.4;display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000038}.setting-tip-bubble:after{content:"";top:100%;left:var(--arrow-x,50%);border:5px solid #0000;border-top-color:var(--randex-ink);position:absolute;transform:translate(-50%)}.setting-tip-bubble--fixed{position:fixed;bottom:auto;transform:none}.setting-tip-bubble--below:after{border-top-color:#0000;border-bottom-color:var(--randex-ink);top:auto;bottom:100%}.setting-tip-bubble.setting-tip-bubble--open{display:block}.settings-grid .span2{grid-column:span 2}.settings-grid .span3,.height-callout{grid-column:1/-1}.height-callout{border:2px solid var(--accent);background:var(--randex-orange-soft);border-radius:4px;padding:.5rem .6rem}.height-callout strong{color:var(--accent)}.toggles{background:var(--randex-orange-soft);border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));border-radius:4px;grid-template-columns:1fr;gap:.4rem;margin-top:.65rem;padding:.55rem .6rem;display:grid}.toggles .checkbox{font-size:.82rem}.axes-note{color:var(--muted);font-size:.75rem;font-family:var(--font-mono);margin-top:.6rem}.large-job-hint{color:var(--warn);background:var(--randex-orange-soft);border:1px solid #f0c4a8;border-radius:4px;margin:.75rem 0 0;padding:.6rem .75rem;font-size:.85rem}.pack-progress-overlay{z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a18148c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.pack-progress-card{background:var(--bg-panel);border:1px solid var(--line);border-radius:8px;width:min(420px,100%);padding:1.5rem 1.75rem;box-shadow:0 12px 40px #0003}.pack-progress-card h2{margin:0 0 .35rem;font-size:1.15rem}.pack-progress-phase{color:var(--ink);margin:0;font-size:.95rem}.pack-progress-count{color:var(--muted);font-size:.85rem;font-family:var(--font-mono);margin:.35rem 0 .75rem}.pack-progress-bar{background:#e8e2d8;border-radius:999px;height:10px;overflow:hidden}.pack-progress-fill{background:linear-gradient(90deg, var(--accent), #f08a4f);border-radius:999px;height:100%;transition:width .15s ease-out}.pack-progress-pct{font-size:.82rem;font-family:var(--font-mono);color:var(--muted);margin:.45rem 0 0}.pack-progress-hint{color:var(--muted);margin:.75rem 0 1rem;font-size:.8rem}.box-table-wrap{max-height:min(52vh,520px);overflow:auto}table{border-collapse:collapse;width:100%;font-size:.78rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:.25rem .3rem}th{color:var(--muted);white-space:nowrap;font-weight:600}td input[type=number],td input[type=text]{min-width:0;padding:.2rem}td input.narrow{width:3.5rem}td input.name{width:5.5rem}.color-swatch{border:1px solid var(--line);border-radius:2px;width:1.2rem;height:1.2rem;padding:0}.row-actions{flex-wrap:wrap;gap:.35rem;margin-top:.5rem;display:flex}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.25rem .65rem;font-size:.8rem}.chip strong{font-weight:700}.chip.warn{color:var(--warn);background:#fef2f2;border-color:#fca5a5}.heuristic{color:var(--muted);margin:.4rem 0 0;font-size:.75rem}.thumb-strip{gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.thumb{border:2px solid var(--line);text-align:center;cursor:pointer;background:#fff;border-radius:4px;flex:none;width:110px;padding:.25rem}.thumb.selected{border-color:var(--accent)}.thumb .label{color:var(--muted);font-size:.7rem}.thumb canvas,.thumb svg{width:100%;height:70px;display:block}.main-view-switcher{flex-direction:column;gap:.55rem;padding:.65rem .75rem;display:flex}.main-view-switcher-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:.72rem;font-weight:700}.main-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.main-tabs .main-tab{text-align:left;border:2px solid var(--line);min-height:3.1rem;color:var(--ink);cursor:pointer;background:#fff;border-radius:6px;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.55rem .65rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.main-tab-label{font-size:.88rem;font-weight:700;line-height:1.2}.main-tab-desc{color:var(--muted);font-size:.68rem;font-weight:500;line-height:1.25}.main-tabs .main-tab:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:var(--randex-orange-soft);box-shadow:0 1px 4px #2d291d14}.main-tabs .main-tab.active{color:var(--accent-ink);background:var(--accent);border-color:#d45520;box-shadow:0 2px 8px #ee652b47}.main-tabs .main-tab.active .main-tab-desc{color:#ffffffe0}.main-tabs .main-tab.main-tab-ready:not(.active):not(:disabled){border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:var(--randex-orange-soft)}.main-tabs .main-tab.main-tab-ready:not(.active):not(:disabled) .main-tab-desc{color:var(--warn);font-weight:600}.main-tabs .main-tab:disabled{opacity:.72;cursor:not-allowed;background:color-mix(in srgb, var(--bg-panel) 70%, var(--line))}.vlm-tab-panel{flex-direction:column;flex:1;min-height:min(75vh,720px);display:flex}.vlm-tab-empty{flex:1;place-items:center;min-height:240px;display:grid}.vlm-stack-standalone{background:color-mix(in srgb, var(--bg-panel) 92%, white);border:1px solid var(--line);border-radius:6px;flex-direction:column;flex:1;min-height:0;padding:.75rem;display:flex}.vlm-stack-standalone .vlm-stack-scroll{flex:1;min-height:min(70vh,680px);max-height:none}.vlm-stack-standalone .vlm-stack-zoom-surface{max-width:calc(640px * var(--vlm-zoom,1))}.vlm-stack-standalone .vlm-stack-svg{margin:0 auto}.vlm-panel{padding-bottom:.5rem}.vlm-stack-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem 1rem;margin-bottom:.5rem;display:flex}.vlm-stack-header h2{margin:0}.vlm-stack-sub{color:var(--muted);margin:.2rem 0 0;font-size:.78rem}.vlm-stack-legend{color:var(--muted);flex-wrap:wrap;gap:.65rem 1rem;font-size:.72rem;display:flex}.vlm-stack-header-actions{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;display:flex}.vlm-zoom-controls{align-items:center;gap:.3rem;display:inline-flex}.vlm-zoom-controls button{min-width:2rem;padding:.35rem .5rem;font-size:.95rem;font-weight:700;line-height:1}.vlm-zoom-controls button:last-child{min-width:auto;padding:.35rem .55rem;font-size:.72rem;font-weight:600}.vlm-zoom-controls button:disabled{opacity:.45;cursor:default}.vlm-legend-item{align-items:center;gap:.35rem;display:inline-flex}.vlm-legend-swatch{border:1px solid var(--line);border-radius:2px;width:14px;height:10px}.vlm-legend-tray{background:#faf8f4}.vlm-legend-empty{background:#f0eeea;border:1px dashed #b8b0a4}.vlm-legend-gap{background:repeating-linear-gradient(45deg,#e8ecef,#e8ecef 2px,#d7dde3 2px 4px)}.vlm-stack-scroll{border:1px solid var(--line);background:linear-gradient(#eef1f4 0%,#e4e9ee 100%);border-radius:4px;max-height:min(520px,55vh);position:relative;overflow:auto}.vlm-stack-zoom-surface{width:calc(100% * var(--vlm-zoom,1));min-width:calc(280px * var(--vlm-zoom,1));margin:0 auto}.vlm-stack-svg{width:100%;min-width:0;height:auto;display:block}.vlm-shaft-label,.vlm-scale-label,.vlm-tray-label,.vlm-tray-fill{fill:var(--randex-grey);font-size:9px;font-family:var(--font-display);-webkit-user-select:none;user-select:none}.vlm-tray-label{font-weight:600}.vlm-tray-label.selected{fill:var(--accent);font-weight:700}.vlm-tray-fill{opacity:.85;font-size:8px}.vlm-tray-empty-label{fill:#9ca3af;font-size:8px;font-style:italic}.vlm-tray-hit:hover{filter:brightness(.98)}.viewer-row{flex-direction:column;gap:.75rem;display:flex}.viewer-3d{border:1px solid var(--line);background:linear-gradient(#d7dde3 0%,#c5cdd6 100%);border-radius:4px;height:min(70vh,680px);min-height:520px;position:relative;overflow:hidden}.tray-front-label{color:#fff;letter-spacing:.03em;text-transform:uppercase;background:#ee652beb;border:1px solid #c44d128c;border-radius:2px;padding:.04rem .22rem;font-size:7px;font-weight:700;line-height:1;box-shadow:0 1px 2px #0000002e}.viewer-toolbar{z-index:2;flex-wrap:wrap;gap:.3rem;display:flex;position:absolute;top:.4rem;left:.4rem;right:.4rem}.viewer-toolbar button{background:#ffffffd9;padding:.25rem .45rem;font-size:.75rem}.camera-tune{z-index:3;flex-direction:column;align-items:flex-end;gap:.35rem;max-width:min(280px,100% - 1rem);display:flex;position:absolute;top:.5rem;right:.5rem}.camera-tune-toggle{background:#ffffffeb;padding:.3rem .55rem;font-size:.75rem;box-shadow:0 1px 3px #0000001f}.camera-tune-panel{border:1px solid var(--line);background:#fffffff2;border-radius:4px;padding:.65rem .75rem;font-size:.8rem;line-height:1.35;box-shadow:0 2px 8px #00000024}.camera-tune-panel strong{margin-bottom:.25rem;display:block}.camera-tune-help{color:var(--muted);margin:0 0 .5rem;font-size:.72rem}.camera-tune-stats{grid-template-columns:repeat(3,1fr);gap:.35rem;margin:0 0 .55rem;display:grid}.camera-tune-stats div{flex-direction:column;gap:.1rem;display:flex}.camera-tune-stats dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.65rem}.camera-tune-stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.camera-tune-empty{color:var(--muted);margin:0 0 .5rem;font-size:.75rem}.camera-tune-actions{flex-wrap:wrap;gap:.3rem;display:flex}.camera-tune-actions button{padding:.25rem .45rem;font-size:.72rem}.camera-tune-status{color:var(--accent);margin:.45rem 0 0;font-size:.72rem}.zoom-controls{z-index:2;flex-direction:column;gap:.3rem;display:flex;position:absolute;bottom:.5rem;right:.5rem}.zoom-controls button{background:#ffffffe6;min-width:2.4rem;padding:.45rem .55rem;font-size:1rem;font-weight:700;line-height:1;box-shadow:0 1px 3px #0000001f}.dim-card{z-index:2;border:1px solid var(--line);background:#ffffffeb;border-radius:4px;max-width:min(320px,100% - 5rem);padding:.55rem .75rem;font-size:.85rem;line-height:1.35;position:absolute;bottom:.5rem;left:.5rem;box-shadow:0 1px 4px #0000001f}.dim-card strong{margin-bottom:.15rem;display:block}.dim-meta{color:var(--muted);font-size:.75rem;font-family:var(--font-mono);margin-top:.2rem}.dim-hint{color:var(--muted);font-size:.8rem}.gap-card{z-index:2;border:1px solid var(--line);border-left:3px solid var(--accent);background:#ffffffeb;border-radius:4px;max-width:min(220px,100% - 1rem);padding:.5rem .65rem;font-size:.8rem;line-height:1.35;position:absolute;top:2.75rem;right:.5rem;box-shadow:0 1px 4px #0000001f}.gap-card strong{margin-bottom:.2rem;font-size:.82rem;display:block}.gap-card ul{margin:0;padding-left:1rem}.gap-card li{justify-content:space-between;gap:.5rem;margin:.15rem 0;font-size:.76rem;display:flex}.gap-card-help{color:var(--muted);margin:0 0 .35rem;font-size:.72rem}.gap-card-name{color:var(--muted)}.gap-card-size{font-family:var(--font-mono);color:var(--accent);white-space:nowrap;font-weight:600}.gap-filler-svg text{font-family:var(--font-mono);font-size:8px;font-weight:600}.views-2d{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}@media (width<=900px){.views-2d{grid-template-columns:1fr}}.view-2d{border:1px solid var(--line);background:#fff;border-radius:4px;padding:.4rem}.view-2d h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .3rem;font-size:.75rem}.view-2d svg{width:100%;height:auto;display:block}.placement-wrap{max-height:220px;overflow:auto}.free-space-help{color:var(--muted);margin:0 0 .5rem;font-size:.8rem}.shelf-stats{flex-wrap:wrap;gap:.75rem 1.5rem;margin:0;display:flex}.shelf-stats>div{flex-direction:column;gap:.15rem;display:flex}.shelf-stats dt{color:var(--muted);margin:0;font-size:.75rem}.shelf-stats dd{margin:0;font-size:.9rem}.shelf-display-stats h2{margin:0;font-size:1rem}.shelf-display-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1rem;margin-bottom:.5rem;display:flex}.pack-scenario-cycle{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:.35rem;padding:.2rem .35rem;display:inline-flex}.pack-scenario-cycle-btn{border:1px solid var(--line);width:1.75rem;height:1.75rem;color:var(--ink);cursor:pointer;background:#faf8f5;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;display:inline-flex}.pack-scenario-cycle-btn:hover{border-color:var(--accent);background:var(--randex-orange-soft);color:var(--accent-ink)}.pack-scenario-cycle-label{min-width:8rem;color:var(--ink);justify-content:center;align-items:baseline;gap:.4rem;font-size:.82rem;font-weight:600;display:inline-flex}.pack-scenario-cycle-index{color:var(--muted);font-size:.72rem;font-weight:700}.pack-scenario-cycle-live{color:var(--muted);font-weight:500}.shelf-stats-block{border-top:1px solid var(--line);margin-top:.75rem;padding-top:.75rem}.shelf-stats-wrap{flex-direction:column;gap:.35rem;display:flex}.shelf-stats-calc{color:var(--muted);margin:0;font-size:.75rem;line-height:1.45}.shelf-stats-heading{margin:0 0 .35rem;font-size:.85rem;font-weight:600}.unpacked{font-size:.8rem}.unpacked li{margin:.2rem 0}.selected-box{background:#ffedd5!important}.help-overlay{z-index:50;background:#2d291d73;justify-content:center;padding:1rem;display:flex;position:fixed;inset:0;overflow:auto}.help-page{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;width:min(920px,100%);max-height:calc(100vh - 2rem);margin:.5rem auto 2rem;display:flex;overflow:hidden;box-shadow:0 12px 40px #0000002e}.help-top{background:var(--randex-orange-soft);border-bottom:3px solid var(--accent);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.85rem 1rem;display:flex}.help-brand{align-items:center;gap:.75rem;min-width:0;display:flex}.help-logo{background:#1a1814;width:auto;height:28px;padding:.2rem .35rem}.help-top h1{margin:0;font-size:1.2rem}.help-top p{color:var(--muted);margin:.15rem 0 0;font-size:.85rem}.help-toc{border-bottom:1px solid var(--line);background:#faf8f5;flex-wrap:wrap;flex-shrink:0;gap:.35rem .55rem;padding:.65rem 1rem;display:flex}.help-toc a{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:#fff;border-radius:999px;padding:.15rem .45rem;font-size:.78rem;text-decoration:none}.help-toc a:hover{background:var(--randex-orange-soft)}.help-body{flex:1;min-height:0;padding:.5rem 1.1rem 1.5rem;overflow-y:auto}.help-body section{border-bottom:1px solid var(--line);padding:.85rem 0}.help-body section:last-child{border-bottom:none}.help-body h2{color:var(--ink);border-left:3px solid var(--accent);margin:0 0 .5rem;padding-left:.45rem;font-size:1.05rem}.help-body h3{margin:.75rem 0 .35rem;font-size:.92rem}.help-body p,.help-body li{color:var(--ink);font-size:.9rem}.help-body ul,.help-body ol{margin:.35rem 0 .5rem;padding-left:1.25rem}.help-body table{margin:.5rem 0;font-size:.85rem}.help-body th{background:var(--randex-orange-soft);color:var(--ink)}.help-body pre{border:1px solid var(--line);font-size:.8rem;font-family:var(--font-mono);background:#f4f1ea;padding:.55rem .7rem;overflow:auto}.help-body code{font-family:var(--font-mono);background:#f4f1ea;border-radius:3px;padding:.05rem .25rem;font-size:.84em}.app-footer{border-top:3px solid var(--accent);margin-top:auto;padding-top:.75rem}.app-footer-inner{text-align:center;color:var(--muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.app-footer-credit{color:var(--ink);margin:0;font-size:.84rem}.app-footer-company,.app-footer-support{margin:0}.app-footer a{color:var(--accent);text-decoration:none}.app-footer a:hover{text-decoration:underline}.help-footer-note{color:var(--muted)!important;margin-top:1rem!important;font-size:.82rem!important}.help-footer-note a{color:var(--accent)}.print-dialog{border:1px solid var(--line);background:#fff;border-radius:8px;width:min(560px,100%);margin:2rem auto;overflow:hidden;box-shadow:0 12px 40px #0000002e}.print-dialog-body{padding:1rem}.print-dialog-body h2{border-left:3px solid var(--accent);margin:1rem 0 .35rem;padding-left:.4rem;font-size:.95rem}.print-dialog-hint{color:var(--muted);margin:0 0 .75rem;font-size:.85rem}.print-dialog-large-notice{background:#fff7ed;border:1px solid #f5c49a;border-radius:4px;margin:0 0 .75rem;padding:.65rem .75rem;font-size:.9rem}.print-cli-steps{margin:0 0 .75rem 1.1rem;padding:0;font-size:.88rem;line-height:1.5}.print-cli-steps li+li{margin-top:.5rem}.print-cli-command{color:#f3f4f6;white-space:pre-wrap;word-break:break-all;background:#1e1e1e;border-radius:4px;margin:.45rem 0 0;padding:.55rem .65rem;font-size:.78rem;overflow-x:auto}.print-dialog-body button.linkish{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.print-dialog-actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.json-dialog-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin:.75rem 0 0;padding:.5rem .65rem;font-size:.85rem}.print-batch-select{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.print-scenario-select{margin-bottom:.75rem}.print-dialog-scenario-warn{color:#9a3412;background:#fff7ed;border:1px solid #f5c49a;border-radius:4px;margin:.5rem 0 0;padding:.5rem .65rem;font-size:.85rem}.print-batch-select select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:4px;padding:.4rem}.print-batch-list{margin:.5rem 0 0;padding-left:1.2rem;font-size:.82rem}.print-batch-list li{align-items:center;gap:.5rem;margin:.25rem 0;display:flex}.print-batch-list button{padding:.2rem .45rem;font-size:.8rem}.compare-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.compare-panel-lead{color:var(--muted);margin:.35rem 0 0;font-size:.88rem}.compare-panel-actions{flex-wrap:wrap;gap:.5rem;display:flex}.compare-panel-hint{margin:0 0 .75rem;font-size:.85rem}.compare-panel-warn{color:#9a3412}.compare-panel-footer{border-top:1px solid var(--line);flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:.75rem;display:flex}.compare-view-banner{background:var(--randex-orange-soft);border-left:3px solid var(--accent);margin-bottom:.75rem;padding:.55rem .75rem;font-size:.88rem}.scenario-compare-table-wrap{margin-top:.5rem;overflow-x:auto}.scenario-compare-table{border-collapse:collapse;width:100%;min-width:520px;font-size:.85rem}.scenario-compare-table th,.scenario-compare-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.45rem .55rem}.scenario-compare-row-label{background:#faf8f5;min-width:9rem}.scenario-compare-section td{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#f3f0ea;font-size:.78rem;font-weight:600}.scenario-compare-col{background:#fff;min-width:8.5rem;height:1px;padding:0}.scenario-compare-col.active{box-shadow:inset 0 3px 0 var(--accent);background:#fff7ed}.scenario-compare-col.winner:not(.active){box-shadow:inset 0 3px 0 var(--accent)}.scenario-compare-table col.scenario-compare-col-selected,.scenario-compare-table td.scenario-compare-selected,.scenario-compare-table th.scenario-compare-col.active{background:#fff7ed}.scenario-compare-table td.scenario-compare-selected{box-shadow:inset 2px 0 0 var(--accent), inset -2px 0 0 var(--accent)}.scenario-compare-table td.scenario-compare-selected.scenario-compare-diff{background:#ffedd5}.scenario-compare-table td.scenario-compare-selected.scenario-compare-best{color:#166534;background:#ecfdf3}.scenario-compare-col-btn{box-sizing:border-box;width:100%;height:100%;min-height:100%;font:inherit;text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.45rem .55rem;display:flex}.scenario-compare-col-btn:hover{background:#ee652b1a}.scenario-compare-col.active .scenario-compare-col-btn:hover{background:#ee652b14}.scenario-compare-col-label{font-weight:600}.scenario-compare-winner{text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:700}.scenario-compare-selected-badge{text-transform:uppercase;color:#9a3412;background:#fed7aa;border-radius:3px;padding:.12rem .4rem;font-size:.72rem;font-weight:700}.scenario-compare-status{color:var(--muted);font-size:.75rem}.scenario-compare-diff{background:#fffbeb}.scenario-compare-best{color:#166534;font-weight:600}.scenario-compare-box-list{margin:0;padding-left:1.1rem;font-size:.8rem}.scenario-compare-box-list li{margin:.15rem 0}.scenario-compare-muted{color:var(--muted);font-size:.8rem}.scenario-compare-detail-toggle{font-size:inherit;font-weight:600}.compare-panel-demo-note{background:#ecfdf5;border-left:3px solid #059669;border-radius:0 4px 4px 0;padding:.55rem .75rem}.compare-how-to{border:1px solid var(--line);background:#faf8f5;border-radius:6px;margin-bottom:1rem;padding:.65rem .85rem}.compare-how-to-toggle{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.compare-how-to-toggle:hover{text-decoration:underline}.compare-how-to-body{margin-top:.65rem}.compare-how-to-body ol{margin:0 0 .65rem;padding-left:1.25rem;font-size:.88rem;line-height:1.5}.compare-how-to-body li{margin:.35rem 0}.compare-how-to-note{color:var(--muted);margin:0;font-size:.82rem}.compare-edit-hint{background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;margin-bottom:.75rem;padding:.55rem .75rem;font-size:.85rem}.password-gate{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.password-gate-card{flex-direction:column;gap:.85rem;width:min(100%,22rem);display:flex}.password-gate-card h1{margin:0;font-size:1.35rem}.password-gate-card .sub{margin:0}.password-gate-error{color:var(--warn);margin:0;font-size:.85rem}input[type=password]{border:1px solid var(--line);background:#fff;border-radius:3px;width:100%;padding:.3rem .4rem}:root{--configurator-width:1200px;--configurator-height:800px}html.configurator-embed,html.configurator-embed body,html.configurator-embed #root{width:var(--configurator-width);height:var(--configurator-height);min-height:0;max-width:var(--configurator-width);max-height:var(--configurator-height);margin:0;overflow:hidden}.configurator-app{width:var(--configurator-width);height:var(--configurator-height);min-height:0;max-height:var(--configurator-height);background:var(--bg);flex-direction:column;display:flex;overflow:hidden}.configurator-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;width:100%;padding:.75rem 1rem .35rem;display:flex}.configurator-header h1{margin:0;font-size:1.25rem;font-weight:700}.configurator-sub{color:var(--muted);margin:.15rem 0 0;font-size:.85rem}.configurator-pro-link{color:var(--muted);white-space:nowrap;padding-top:.2rem;font-size:.85rem;text-decoration:none}.configurator-pro-link:hover{color:var(--accent)}.configurator-progress{flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:.5rem 1.25rem;padding:.35rem 1rem .65rem;display:flex}.configurator-progress-step{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.configurator-progress-step.active{color:var(--ink);font-weight:600}.configurator-progress-step.done{color:var(--ok)}.configurator-progress-num{border:2px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:1.45rem;height:1.45rem;font-size:.75rem;font-weight:700;display:inline-flex}.configurator-progress-step.active .configurator-progress-num{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.configurator-progress-step.done .configurator-progress-num{border-color:var(--ok);background:var(--ok);color:#fff}.configurator-progress-label{display:inline}.configurator-main{flex:1;width:100%;max-width:720px;min-height:0;margin:0 auto;padding:0 1rem .75rem;overflow:hidden auto}.configurator-main-wide{max-width:none;padding-inline:1rem}.configurator-step-title{margin:0 0 .25rem;font-size:1.1rem}.configurator-step-lead{color:var(--muted);margin:0 0 .85rem;font-size:.9rem}.configurator-packing-msg{text-align:center;padding:1.5rem 0}.configurator-label{color:var(--muted);margin-bottom:.25rem;font-size:.8rem;font-weight:600;display:block}.configurator-box-list{flex-direction:column;gap:.65rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.configurator-box-card{padding:.85rem}.configurator-box-card-header{align-items:flex-start;gap:.75rem;margin-bottom:.65rem;display:flex}.configurator-field{flex-direction:column;min-width:0;display:flex}.configurator-field-grow{flex:1}.configurator-dim-grid{grid-template-columns:repeat(4,1fr);gap:.65rem;display:grid}.configurator-remove{width:2rem;height:2rem;color:var(--muted);border-radius:50%;flex-shrink:0;padding:0;font-size:1.25rem;line-height:1}.configurator-remove:hover{color:var(--warn);border-color:var(--warn)}.configurator-add-box{width:100%;color:var(--muted);background:0 0;border-style:dashed;padding:.55rem}.configurator-add-box:hover{border-color:var(--accent);color:var(--accent)}.configurator-preset-group{border:none;margin:0 0 .85rem;padding:0}.configurator-preset-group legend{margin-bottom:.5rem}.configurator-preset-list{flex-direction:column;gap:.45rem;display:flex}.configurator-preset-card{cursor:pointer;border:2px solid var(--line);flex-direction:column;gap:.15rem;padding:.75rem 1rem .75rem 2.5rem;transition:border-color .15s;display:flex;position:relative}.configurator-preset-card input{position:absolute;top:1rem;left:1rem}.configurator-preset-card.selected{border-color:var(--accent);background:var(--randex-orange-soft)}.configurator-preset-label{font-weight:600}.configurator-preset-desc{color:var(--muted);font-size:.85rem}.configurator-toggles{flex-direction:column;gap:.65rem;padding:.85rem;display:flex}.configurator-toggle{cursor:pointer;align-items:flex-start;gap:.65rem;display:flex}.configurator-toggle input{flex-shrink:0;margin-top:.2rem}.configurator-toggle strong{font-size:.9rem;font-weight:600;display:block}.configurator-toggle-hint{color:var(--muted);margin-top:.1rem;font-size:.8rem;display:block}.configurator-section{margin-bottom:.85rem}.configurator-section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .45rem;font-size:.85rem;font-weight:600}.configurator-advanced{flex-direction:column;gap:.85rem;padding:.85rem;display:flex}.configurator-advanced input[type=number]{max-width:8rem}.configurator-advanced input[type=range]{width:100%;max-width:20rem}.configurator-shelf-count input[type=number]{margin-top:.35rem}.configurator-inline-toggle{margin-top:.5rem}.configurator-inline-toggle span{font-size:.9rem}.configurator-box-options{border-top:1px solid var(--line);flex-wrap:wrap;gap:.65rem 1rem;margin-top:.65rem;padding-top:.65rem;display:flex}.configurator-box-option{color:var(--muted);cursor:pointer;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.configurator-footer{border-top:1px solid var(--line);background:var(--bg-panel);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:720px;margin:0 auto;padding:.6rem 1rem;display:flex}.configurator-app:has(.configurator-main-wide) .configurator-footer{max-width:none}.configurator-next{min-width:7rem;padding:.5rem 1.15rem}.configurator-back{color:var(--muted);background:0 0;border-color:#0000}.configurator-back:hover{color:var(--ink);border-color:var(--line)}.configurator-results-tabs{gap:.45rem;margin-bottom:.65rem;display:flex}.configurator-results-tabs button{flex:1;padding:.5rem .85rem;font-size:.85rem;font-weight:600}.configurator-results-tabs button.active{background:var(--accent);color:var(--accent-ink);border-color:#d45520}.configurator-subheading{margin:0 0 .5rem;font-size:.95rem}.configurator-summary-panel{margin-bottom:.65rem}.configurator-app .thumb-strip{flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.configurator-viewer-row{grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.65rem;display:grid}.configurator-viewer-panel{min-width:0;padding:0;overflow:hidden}.configurator-viewer-toolbar{z-index:1;position:relative}.configurator-app .viewer-3d{height:260px;min-height:260px}.configurator-app .views-2d{min-width:0}.configurator-app .view-2d svg{max-height:120px}.configurator-freespace-panel h2{font-size:.95rem}.configurator-results-stack{height:420px;min-height:0;overflow:hidden}.configurator-app .vlm-stack-standalone{height:100%;min-height:0}.configurator-app .vlm-stack-standalone .vlm-stack-scroll{flex:1;min-height:0;max-height:none}@media (width<=900px){.configurator-viewer-row{grid-template-columns:1fr}.configurator-app .viewer-3d{height:220px;min-height:220px}}.lift-setup-layout{flex:1;grid-template-columns:minmax(260px,320px) 1fr;gap:1rem;min-height:0;padding:1rem;display:grid}.lift-setup-sidebar{flex-direction:column;gap:.75rem;display:flex}.lift-setup-main{flex-direction:column;gap:.75rem;min-width:0;display:flex}.lift-setup-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lift-setup-lift-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.lift-setup-lift-tabs button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.lift-setup-tray-list{flex-direction:column;gap:.25rem;max-height:320px;display:flex;overflow-y:auto}.lift-setup-tray-list button{text-align:left;width:100%}.lift-setup-tray-list button.active{background:var(--randex-orange-soft);border-color:var(--accent)}.lift-setup-view-tabs{gap:.35rem;display:flex}.lift-setup-view-tabs button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.lift-setup-viewer{flex:1;min-height:420px}.lift-setup-stats{color:var(--muted);font-size:.9rem}.lift-setup-warnings{color:var(--warn);margin:0;padding-left:1.25rem;font-size:.9rem}.lift-setup-empty{text-align:center;color:var(--muted);padding:2rem}.lift-setup-badge{background:var(--randex-orange-soft);color:var(--ink);border-radius:4px;padding:.15rem .5rem;font-size:.8rem}.lift-setup-bin-detail{background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;padding:.5rem .75rem;font-size:.85rem}.lift-setup-tray-stock .lift-setup-stock-table-wrap{--lift-stock-row-h:2rem;max-height:calc(var(--lift-stock-row-h) * 5 + 2.25rem);overflow:auto}.lift-setup-tray-stock .lift-setup-stock-table thead th{z-index:1;background:var(--bg-panel);box-shadow:0 1px 0 var(--line);position:sticky;top:0}.lift-setup-tray-stock .lift-setup-stock-table tbody tr{height:var(--lift-stock-row-h)}.lift-setup-stock-table-wrap{overflow-x:auto}.lift-setup-stock-table{border-collapse:collapse;width:100%;font-size:.85rem}.lift-setup-stock-table th,.lift-setup-stock-table td{text-align:left;border-bottom:1px solid var(--line);padding:.35rem .5rem}.lift-setup-stock-table th{color:var(--muted);font-size:.8rem;font-weight:600}.lift-setup-stock-table tbody tr{cursor:pointer}.lift-setup-stock-table tbody tr:hover{background:var(--randex-orange-soft)}.lift-setup-stock-table tbody tr.selected{background:var(--randex-orange-soft);outline:2px solid var(--accent);outline-offset:-2px}.lift-setup-stock-bin-cell{text-overflow:ellipsis;white-space:nowrap;max-width:10rem;color:var(--muted);font-size:.8rem;overflow:hidden}.lift-setup-tray-stock .shelf-display-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.lift-setup-sidebar .lift-setup-tray-stock .shelf-display-header{flex-direction:column;align-items:stretch}.lift-setup-sidebar .lift-setup-tray-stock .shelf-display-header h2{margin:0;font-size:.95rem}.lift-setup-sidebar .lift-setup-tray-stock .lift-setup-stock-filter{width:100%;min-width:0}.lift-setup-sidebar .lift-setup-stock-table{font-size:.78rem}.lift-setup-sidebar .lift-setup-stock-table th:nth-child(2),.lift-setup-sidebar .lift-setup-stock-table td:nth-child(2),.lift-setup-sidebar .lift-setup-stock-table th:nth-child(4),.lift-setup-sidebar .lift-setup-stock-table td:nth-child(4){display:none}.lift-setup-sidebar .lift-setup-stock-bin-cell{max-width:4.5rem}.lift-setup-stock-filter{border:1px solid var(--line);min-width:12rem;font:inherit;border-radius:6px;padding:.35rem .5rem}.lift-setup-import-group{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.lift-setup-lift-select{border:1px solid var(--line);width:100%;font:inherit;background:var(--bg-panel);border-radius:6px;padding:.45rem .5rem}.lift-setup-app{flex-direction:column;min-height:100vh;display:flex}.lift-setup-query-block{margin-top:.5rem}.lift-setup-query-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.lift-setup-query-block+.lift-setup-query-block{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.lift-setup-query-block pre{white-space:pre;max-height:28rem;font-size:.82rem;line-height:1.45;overflow:auto}@media (width<=900px){.lift-setup-layout{grid-template-columns:1fr}}
