html.vsm-lock{overflow:hidden}.vsm{width:min(680px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;color:var(--v-ink);font-size:var(--fs-base);box-shadow:-12px 0 40px rgb(var(--v-navy-rgb) / .18);z-index:var(--z-modal);background:#fff;border:0;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden}.vsm[open]{flex-direction:column;animation:.22s ease-out vsm-in;display:flex}.vsm::backdrop{background:#0f0d3073}@keyframes vsm-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.vsm-head{border-bottom:1px solid var(--v-border);border-top:3px solid var(--v-accent);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 14px 20px;display:flex}.vsm-title{font-size:var(--fs-md);color:var(--v-navy);margin:0;line-height:1.3}.vsm-sub{font-size:var(--fs-xs);color:var(--v-muted);margin:4px 0 0;line-height:1.45}.vsm .vsm-close{border-radius:var(--v-radius-sm);width:40px;height:40px;min-height:0;color:var(--v-navy);cursor:pointer;background:0 0;border:0;flex-shrink:0;margin:0;padding:0;font-size:28px;line-height:1}.vsm .vsm-close:hover{background:var(--v-surface)}.vsm-body{overscroll-behavior:contain;flex:1;padding:4px 20px 12px;overflow-y:auto}.vsm-list{margin:0;padding:0;list-style:none}.vsm-item{border-bottom:1px solid var(--v-border);margin:0;padding:16px 0;scroll-margin:12px}.vsm-item:last-child{border-bottom:0}.vsm-item.is-attn{box-shadow:inset 3px 0 0 var(--v-err);margin-left:-12px;padding-left:12px}.vsm-row{align-items:flex-start;gap:14px;display:flex}.vsm-img{object-fit:contain;border-radius:var(--v-radius-sm);background:var(--v-surface);flex-shrink:0;width:64px;height:64px}.vsm-img--empty{background:var(--v-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c5c66' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12h8'/%3E%3C/svg%3E") center/26px no-repeat;display:block}.vsm-info{flex:1;min-width:0}.vsm-role{font-size:var(--fs-xs);letter-spacing:0;text-transform:none;color:var(--v-muted);font-weight:700;display:block}.vsm-name{font-size:var(--fs-sm);color:var(--v-navy);margin:2px 0 4px;font-weight:700;line-height:1.35;display:block}a.vsm-name:hover{text-underline-offset:2px;text-decoration:underline}.vsm-price{font-size:var(--fs-sm);color:var(--v-ink);margin:0}.vsm-price strong{color:var(--v-navy)}.vsm-price span{font-size:var(--fs-xs);color:var(--v-muted);margin-left:6px}.vsm-swapped{font-size:var(--fs-xs);color:var(--v-muted);margin:0 0 4px}.vsm .vsm-remove{border-radius:var(--v-radius-sm);width:40px;height:40px;min-height:0;color:var(--v-muted);cursor:pointer;transition:color var(--v-transition),background-color var(--v-transition);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;margin:-6px -8px 0 0;padding:0;display:inline-flex}.vsm .vsm-remove:before{content:"";background:currentColor;width:18px;height:18px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m3 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M10 11v6M14 11v6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m3 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M10 11v6M14 11v6'/%3E%3C/svg%3E") 50%/contain no-repeat}:is(.vsm .vsm-remove:hover,.vsm .vsm-remove:focus-visible){color:var(--v-err);background:#fbeeec}.vsm-removed{border-radius:var(--v-radius-sm);background:var(--v-surface);font-size:var(--fs-sm);color:var(--v-muted);border:1px dashed #cfd3dc;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.vsm-removed strong{color:var(--v-ink)}.vsm-item.is-removed{padding:10px 0}.vsm .vsm-link{min-height:0;color:var(--v-navy);font:inherit;text-underline-offset:3px;text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:700;text-decoration:underline;display:inline}.vsm .vsm-link:hover{color:var(--v-navy-light)}.vsm-attr{margin:12px 0 0 78px}.vsm-attr-label{font-size:var(--fs-xs);color:var(--v-ink);margin:0 0 6px;font-weight:700;display:block}.vsm-opts{flex-direction:column;gap:6px;display:flex}.vsm-opts-row{flex-wrap:wrap;gap:6px;display:flex}.vsm-opts-group{font-size:var(--fs-xs);color:var(--v-muted);margin:4px 0 0;font-weight:700}.vsm-opts-group:first-child{margin-top:0}.vsm .vsm-opt{border-radius:var(--v-radius-sm);min-width:44px;min-height:40px;color:var(--v-ink);font-size:var(--fs-sm);text-transform:none;letter-spacing:0;box-shadow:none;cursor:pointer;background:#fff;border:1px solid #cfd3dc;justify-content:center;align-items:center;gap:6px;margin:0;padding:5px 10px;font-weight:700;line-height:1.2;transition:border-color .15s,box-shadow .15s;display:inline-flex}.vsm .vsm-opt:hover{border-color:var(--v-navy)}.vsm .vsm-opt:focus-visible{outline:2px solid var(--v-navy);outline-offset:2px}.vsm .vsm-opt.is-active{border-color:var(--v-navy);box-shadow:inset 0 0 0 1px var(--v-navy);color:var(--v-navy);background:#f3f2fb}.vsm .vsm-opt.is-out{color:var(--v-muted);background:repeating-linear-gradient(135deg,#fff 0 6px,#f4f5f7 6px 7px);font-weight:400}.vsm .vsm-opt[disabled]{opacity:.4;cursor:not-allowed;font-weight:400;text-decoration:line-through}.vsm .vsm-opt.has-thumb{padding:3px 10px 3px 3px}.vsm .vsm-opt img{object-fit:contain;background:#f5f5f5;border-radius:3px;width:32px;height:32px}.vsm-need{font-size:var(--fs-xs);color:var(--v-b2b);margin:8px 0 0 78px;font-weight:700}.vsm-item.is-attn .vsm-need{color:var(--v-err)}.vsm-dist-grid{grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:6px;display:grid}.vsm-dist-cell{border:1px solid var(--v-line);border-radius:var(--v-radius-sm);background:#fff;justify-content:space-between;align-items:center;gap:6px;min-height:44px;padding:3px 3px 3px 10px;display:flex}.vsm-dist-cell.is-on{border-color:var(--v-navy);box-shadow:inset 0 0 0 1px var(--v-navy)}.vsm-dist-cell.is-out{background:var(--v-surface);color:var(--v-muted)}.vsm-dist-cell.is-out .vsm-dist-size{font-weight:400;text-decoration:line-through}.vsm-dist-size{font-size:var(--fs-sm);white-space:nowrap;flex-shrink:0;font-weight:700;line-height:1.2}.vsm-step{flex-shrink:0;align-items:center;display:inline-flex}.vsm .vsm-step-btn{border-radius:var(--v-radius-sm);background:var(--v-surface);width:36px;height:36px;min-height:0;color:var(--v-navy);box-shadow:none;cursor:pointer;border:0;margin:0;padding:0;font-size:18px;font-weight:700;line-height:1}.vsm .vsm-step-btn:hover:not(:disabled){background:rgb(var(--v-navy-rgb) / .1)}.vsm .vsm-step-btn:focus-visible{outline:2px solid var(--v-navy);outline-offset:1px}.vsm .vsm-step-btn:disabled{color:var(--v-line);cursor:not-allowed;background:0 0}.vsm-step-n{min-width:24px;font-size:var(--fs-sm);text-align:center;color:var(--v-ink);font-weight:700;display:inline-block}.vsm-dist-cell:not(.is-on) .vsm-step-n{color:var(--v-muted);font-weight:400}.vsm-dist-sum{font-size:var(--fs-xs);color:var(--v-muted);margin:8px 0 0;font-weight:700}.vsm-dist-sum.is-full{color:var(--v-navy)}.vsm-dist-done{border-radius:var(--v-radius-sm);background:var(--v-surface);font-size:var(--fs-sm);color:var(--v-ink);justify-content:space-between;align-items:baseline;gap:12px;margin:10px 0 0 78px;padding:8px 12px;display:flex}.vsm-price-qty{font-size:var(--fs-xs);color:var(--v-navy);margin:2px 0 0;font-weight:700;display:block}.vsm-price span.vsm-price-qty{color:var(--v-navy);margin-left:0}.vsm-bulk{background:var(--v-surface);border-left:3px solid var(--v-navy);color:var(--v-ink);margin:12px 0 4px}.vsm-bulk a{color:var(--v-navy);text-underline-offset:2px;font-weight:700;text-decoration:underline}.vsm-note{border-radius:var(--v-radius-sm);font-size:var(--fs-xs);margin:10px 0 0;padding:8px 12px;line-height:1.45}.vsm-note--warn{border-left:3px solid var(--v-b2b);color:var(--v-ink);background:#fdf3e9}.vsm-swap{font-size:var(--fs-sm);margin:10px 0 0 78px}.vsm-swap-title{font-size:var(--fs-xs);color:var(--v-ink);margin:0;font-weight:700}.vsm-alts{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;gap:8px;margin:8px 0 0;padding:2px 2px 6px;display:flex;overflow-x:auto}.vsm .vsm-alt{border:1px solid var(--v-border);border-radius:var(--v-radius-sm);min-height:0;color:var(--v-ink);text-align:left;text-transform:none;letter-spacing:0;cursor:pointer;scroll-snap-align:start;background:#fff;flex-direction:column;flex:0 0 150px;align-items:flex-start;gap:4px;margin:0;padding:8px;font-weight:400;line-height:1.3;transition:border-color .15s,box-shadow .15s;display:flex}:is(.vsm .vsm-alt:hover,.vsm .vsm-alt:focus-visible){border-color:var(--v-navy);box-shadow:var(--v-shadow)}.vsm .vsm-alt img{object-fit:contain;background:var(--v-surface);border-radius:3px;align-self:center;width:56px;height:56px}.vsm-alt-name{-webkit-line-clamp:2;font-size:var(--fs-xs);color:var(--v-navy);-webkit-box-orient:vertical;font-weight:700;display:-webkit-box;overflow:hidden}.vsm-alt-price{font-size:var(--fs-xs)}.vsm-alt-price small{color:var(--v-muted)}.vsm-alt-cta{font-size:var(--fs-xs);color:var(--v-navy);text-underline-offset:2px;margin-top:auto;font-weight:700;text-decoration:underline}.vsm-alts-msg{font-size:var(--fs-xs);color:var(--v-muted);margin:6px 0 0}.vsm-alts-msg a{color:var(--v-navy);font-weight:700;text-decoration:underline}.vsm-foot{padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--v-border);box-shadow:0 -6px 18px rgb(var(--v-navy-rgb) / .06);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px;display:flex}.vsm-foot:empty{display:none}.vsm-foot-err{flex-basis:100%;margin:0}.vsm-foot:has(.vsm-qty){grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.vsm-foot:has(.vsm-qty) .vsm-foot-err{grid-column:1/-1}.vsm-foot:has(.vsm-qty) .vsm-submit{grid-column:1/-1;justify-self:end}.vsm-sum{flex:200px;grid-template-columns:auto 1fr;align-items:baseline;gap:0 8px;min-width:0;display:grid}.vsm-sum-label{font-size:var(--fs-xs);letter-spacing:0;text-transform:none;color:var(--v-muted);grid-column:1/-1;font-weight:700}.vsm-sum-net{font-size:var(--fs-sm);color:var(--v-ink)}.vsm-sum-net strong{font-size:var(--fs-md);color:var(--v-navy)}.vsm-sum-gross{font-size:var(--fs-xs);color:var(--v-muted)}.vsm-sum-net,.vsm-sum-gross{white-space:nowrap}.vsm-sum-info{font-size:var(--fs-xs);color:var(--v-muted);grid-column:1/-1}.vsm-qty{grid-template-columns:40px 52px 40px;align-items:center;gap:0;display:grid}.vsm-qty-label{font-size:var(--fs-xs);letter-spacing:0;text-transform:none;color:var(--v-muted);grid-column:1/-1;margin-bottom:3px;font-weight:700}.vsm .vsm-qty-btn{width:40px;height:48px;min-height:0;color:var(--v-navy);box-shadow:none;cursor:pointer;background:#fff;border:1px solid #cfd3dc;margin:0;padding:0;font-size:20px;font-weight:700;line-height:1}.vsm .vsm-qty-btn:first-of-type{border-radius:var(--v-radius-sm) 0 0 var(--v-radius-sm)}.vsm .vsm-qty-btn:last-of-type{border-radius:0 var(--v-radius-sm) var(--v-radius-sm) 0}.vsm .vsm-qty-btn:hover:not(:disabled){background:var(--v-surface)}.vsm .vsm-qty-btn:disabled{color:#b8bbc6;cursor:not-allowed}.vsm .vsm-qty-input{width:52px;height:48px;min-height:0;color:var(--v-ink);font-size:var(--fs-base);text-align:center;box-shadow:none;-webkit-appearance:textfield;appearance:textfield;background:#fff;border:1px solid #cfd3dc;border-width:1px 0;border-radius:0;margin:0;padding:0;font-weight:700}.vsm .vsm-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.vsm .vsm-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.vsm .vsm-submit,.vsm .vsm-secondary{border:1.5px solid var(--v-navy);border-radius:var(--v-radius-sm);background:var(--v-navy);color:#fff;min-height:48px;font-size:var(--fs-base);text-transform:none;letter-spacing:0;box-shadow:none;cursor:pointer;transition:background-color var(--v-transition),border-color var(--v-transition);justify-content:center;align-items:center;margin:0;padding:10px 22px;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.vsm .vsm-submit:hover{background:var(--v-navy-light);border-color:var(--v-navy-light);color:#fff}.vsm .vsm-submit:disabled{cursor:not-allowed;background:#c9cbd3;border-color:#c9cbd3}.vsm .vsm-secondary{color:var(--v-navy);background:#fff}.vsm .vsm-secondary:hover{background:var(--v-surface)}.vsm-loading{color:var(--v-muted);font-size:var(--fs-sm);justify-content:center;align-items:center;gap:10px;padding:48px 0;display:flex}.vsm-spin{border:2px solid var(--v-border);border-top-color:var(--v-navy);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite vsm-spin}@keyframes vsm-spin{to{transform:rotate(360deg)}}.vsm-done{text-align:center;padding:32px 4px}.vsm-done-ic{background:var(--v-accent);width:44px;height:44px;color:var(--v-navy);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.vsm-done-title{font-size:var(--fs-md);color:var(--v-navy);margin:12px 0 6px;font-weight:700}.vsm-done-info{max-width:380px;font-size:var(--fs-sm);color:var(--v-muted);margin:10px auto 0}.vsm-done .vsm-note{text-align:left}@media (max-width:549px){.vsm{width:100vw;height:auto;max-height:92dvh;box-shadow:0 -12px 40px rgb(var(--v-navy-rgb) / .2);border-radius:12px 12px 0 0;inset:auto 0 0}.vsm[open]{animation-name:vsm-up}.vsm-head{border-radius:12px 12px 0 0;padding:14px 12px 12px 16px}.vsm-body{padding:0 16px 8px}.vsm-img{width:56px;height:56px}.vsm-attr,.vsm-need,.vsm-swap,.vsm-dist-done{margin-left:0}.vsm-dist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vsm-dist-cell{padding-left:8px}.vsm .vsm-step-btn{width:32px}.vsm-step-n{min-width:20px}.vsm-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.vsm-foot .vsm-submit{flex:100%}.vsm-sum{flex-wrap:wrap;align-items:baseline;column-gap:8px;display:flex}.vsm-sum-label,.vsm-sum-info{flex-basis:100%}.vsm-foot:has(.vsm-qty) .vsm-submit{justify-self:stretch}.vsm-foot .vsm-secondary+.vsm-submit{flex-basis:100%}.vsm-foot .vsm-secondary{flex:100%}}@keyframes vsm-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.vsm[open]{animation:none}.vsm-spin{animation-duration:2s}}
