@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400&display=swap);
.rt-app{--rt-bg:#fff;--rt-surface:#f5f5f5;--rt-card:#fff;--rt-card-hover:#fff6ef;--rt-border:#e4e4e4;--rt-border-light:#ccc;--rt-accent:#ff6900;--rt-accent-dim:rgba(255,105,0,.08);--rt-accent-glow:rgba(255,105,0,.22);--rt-accent-light:#ff8533;--rt-accent-dark:#d95600;--rt-text:#2c2d33;--rt-text-sub:#6b7280;--rt-text-muted:#ababab;--rt-success:#16a34a;--rt-error:#dc2626;--rt-font-display:"Roboto",system-ui,sans-serif;--rt-font-body:"Roboto",system-ui,sans-serif;--rt-font-mono:"Roboto Mono",monospace;--rt-radius:5px;--rt-radius-lg:10px;--rt-radius-xl:14px;--rt-shadow:0 1px 4px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.06);--rt-shadow-lg:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);all:initial;background:var(--rt-bg);border:1px solid var(--rt-border);border-radius:var(--rt-radius-xl);box-sizing:border-box;color:var(--rt-text);display:block;font-family:var(--rt-font-body);font-size:14px;line-height:1.5;overflow:hidden;position:relative}.rt-app *,.rt-app :after,.rt-app :before{box-sizing:inherit;margin:0;padding:0}.rt-app img{border:0;display:block}.rt-app button{font-family:inherit}.rt-app .rt-header{align-items:center;background:#022a50;border-bottom:3px solid var(--rt-accent);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:16px 28px}.rt-app .rt-brand{gap:10px}.rt-app .rt-brand,.rt-app .rt-brand-mark{align-items:center;display:flex;flex-shrink:0}.rt-app .rt-brand-mark{background:var(--rt-accent);border-radius:var(--rt-radius);font-weight:700;height:30px;justify-content:center;width:30px}.rt-app .rt-brand-mark,.rt-app .rt-brand-name{color:#fff;font-family:var(--rt-font-body);font-size:15px}.rt-app .rt-brand-name{font-weight:500;letter-spacing:.02em}.rt-app .rt-brand-name em{color:var(--rt-accent);font-style:normal}.rt-app .rt-step,.rt-app .rt-step__bubble,.rt-app .rt-steps{align-items:center;display:flex}.rt-app .rt-step__bubble{background:hsla(0,0%,100%,.12);border:1.5px solid hsla(0,0%,100%,.2);border-radius:50%;color:hsla(0,0%,100%,.5);flex-shrink:0;font-family:var(--rt-font-mono);font-size:11px;font-weight:500;height:26px;justify-content:center;transition:all .25s ease;width:26px}.rt-app .rt-step__label{color:hsla(0,0%,100%,.4);font-size:11px;font-weight:500;letter-spacing:.04em;margin-left:6px;text-transform:uppercase;transition:color .25s ease;white-space:nowrap}.rt-app .rt-step__line{background:hsla(0,0%,100%,.15);display:block;flex-shrink:0;height:1px;margin:0 8px;overflow:hidden;position:relative;width:28px}.rt-app .rt-step__line:after{background:var(--rt-accent);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .4s ease .1s;width:100%}.rt-app .rt-step--active .rt-step__bubble{background:var(--rt-accent);border-color:var(--rt-accent);box-shadow:0 0 0 3px rgba(255,105,0,.3);color:#fff}.rt-app .rt-step--active .rt-step__label{color:#fff}.rt-app .rt-step--done .rt-step__bubble{background:rgba(255,105,0,.2);border-color:var(--rt-accent);color:var(--rt-accent)}.rt-app .rt-step--done .rt-step__label{color:hsla(0,0%,100%,.65)}.rt-app .rt-step--done .rt-step__line:after{left:0}.rt-app .rt-main{animation:rt-fadein .3s ease forwards;background:var(--rt-bg);min-height:440px;padding:36px 28px}@media(max-width:640px){.rt-app .rt-main{padding:24px 16px}}.rt-app .rt-btn{align-items:center;border:none;border-radius:var(--rt-radius);cursor:pointer;display:inline-flex;font-family:var(--rt-font-body);font-size:13px;font-weight:500;gap:6px;justify-content:center;letter-spacing:.02em;outline:none;padding:9px 18px;text-decoration:none;transition:all .18s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.rt-app .rt-btn svg{fill:none;flex-shrink:0;height:14px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:14px}.rt-app .rt-btn--ghost{background:transparent;border:1.5px solid var(--rt-border);color:var(--rt-text-sub)}.rt-app .rt-btn--ghost:hover{background:var(--rt-surface);border-color:var(--rt-border-light);color:var(--rt-text)}.rt-app .rt-btn--primary{background:var(--rt-accent);border:1.5px solid var(--rt-accent);color:#fff}.rt-app .rt-btn--primary:hover:not(:disabled){background:var(--rt-accent-dark);border-color:var(--rt-accent-dark);box-shadow:0 4px 16px var(--rt-accent-glow);transform:translateY(-1px)}.rt-app .rt-btn--primary:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.35;transform:none!important}.rt-app .rt-btn--danger{background:transparent;border:1.5px solid rgba(220,38,38,.25);color:var(--rt-error)}.rt-app .rt-btn--danger:hover{background:rgba(220,38,38,.06);border-color:rgba(220,38,38,.4)}.rt-app .rt-btn--sm{font-size:12px;padding:6px 13px}.rt-app .rt-head{margin-bottom:28px}.rt-app .rt-head h2{color:var(--rt-text);font-family:var(--rt-font-body);font-size:22px;font-weight:700;line-height:1.2;margin-bottom:5px}.rt-app .rt-head p{color:var(--rt-text-sub);font-size:13px;line-height:1.6}.rt-app .rt-head h2 span{color:var(--rt-accent)}.rt-app .rt-uploader{margin:0 auto;max-width:640px}.rt-app .rt-uploader__zone{align-items:center;background:var(--rt-surface);border:2px dashed var(--rt-border);border-radius:var(--rt-radius-lg);cursor:pointer;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:56px 36px;position:relative;text-align:center;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.rt-app .rt-uploader__zone--dragover,.rt-app .rt-uploader__zone:hover{background:var(--rt-card-hover);border-color:var(--rt-accent)}.rt-app .rt-uploader__zone--dragover .rt-uploader__icon,.rt-app .rt-uploader__zone:hover .rt-uploader__icon{color:var(--rt-accent);transform:scale(1.06) translateY(-3px)}.rt-app .rt-uploader__zone--dragover{box-shadow:0 0 0 4px var(--rt-accent-dim),inset 0 0 40px var(--rt-accent-dim)}.rt-app .rt-uploader__icon{color:var(--rt-text-muted);margin-bottom:20px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),color .2s ease}.rt-app .rt-uploader__icon svg{fill:none;height:48px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25;width:48px}.rt-app .rt-uploader__title{color:var(--rt-text);font-size:18px;font-weight:700;margin-bottom:7px}.rt-app .rt-uploader__sub{color:var(--rt-text-sub);font-size:13px;line-height:1.6;margin-bottom:24px;max-width:360px}.rt-app .rt-uploader__note{color:var(--rt-text-muted);font-size:11px;letter-spacing:.03em;margin-top:18px}.rt-app .rt-uploader__note strong{color:var(--rt-accent);font-weight:500}.rt-app .rt-masker{display:flex;flex-direction:column}.rt-app .rt-masker__toolbar{align-items:center;background:var(--rt-surface);border:1px solid var(--rt-border);border-radius:var(--rt-radius-lg) var(--rt-radius-lg) 0 0;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:11px 14px}.rt-app .rt-masker__toolbar-group{align-items:center;display:flex;gap:7px}.rt-app .rt-masker__toolbar-title{color:var(--rt-text);font-size:13px;font-weight:600}.rt-app .rt-masker__toolbar-badge{align-items:center;background:var(--rt-card);border:1px solid var(--rt-border);border-radius:100px;color:var(--rt-text-sub);display:flex;font-family:var(--rt-font-mono);font-size:11px;gap:5px;padding:3px 9px 3px 6px}.rt-app .rt-masker__toolbar-badge span{animation:rt-pulse 1.8s ease-in-out infinite;background:var(--rt-accent);border-radius:50%;flex-shrink:0;height:6px;width:6px}.rt-app .rt-masker__toolbar-badge span.done{animation:none;background:var(--rt-success)}.rt-app .rt-masker__canvas-wrap{align-items:center;background:#022a50;border-left:1px solid var(--rt-border);border-right:1px solid var(--rt-border);display:flex;justify-content:center;min-height:280px;overflow:hidden;position:relative}.rt-app .rt-masker__canvas-wrap canvas{cursor:crosshair;display:block;height:auto;max-width:100%}.rt-app .rt-masker__hint{align-items:center;background:var(--rt-surface);border:1px solid var(--rt-border);border-radius:0 0 var(--rt-radius-lg) var(--rt-radius-lg);border-top:none;display:flex;gap:8px;padding:10px 14px}.rt-app .rt-masker__hint-dot{animation:rt-pulse 1.8s ease-in-out infinite;background:var(--rt-accent);border-radius:50%;flex-shrink:0;height:6px;width:6px}.rt-app .rt-masker__hint-dot--done{animation:none;background:var(--rt-success)}.rt-app .rt-masker__hint p{color:var(--rt-text-sub);font-size:12px;line-height:1.4}.rt-app .rt-products__top{align-items:flex-end;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-bottom:24px}.rt-app .rt-products__count{color:var(--rt-text-muted);font-size:12px;margin-top:3px}.rt-app .rt-products__grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:28px}@media(max-width:480px){.rt-app .rt-products__grid{grid-template-columns:repeat(2,1fr)}}.rt-app .rt-products__card{animation:rt-fadein .3s ease both;background:var(--rt-card);border:2px solid var(--rt-border);border-radius:var(--rt-radius-lg);cursor:pointer;overflow:hidden;position:relative;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.rt-app .rt-products__card:hover{border-color:var(--rt-border-light);box-shadow:var(--rt-shadow);transform:translateY(-2px)}.rt-app .rt-products__card--selected{border-color:var(--rt-accent)!important;box-shadow:0 0 0 1px var(--rt-accent),0 4px 20px var(--rt-accent-dim)!important}.rt-app .rt-products__card--selected .rt-products__card-name{color:var(--rt-accent-dark)}.rt-app .rt-products__card--selected .rt-products__check{opacity:1;transform:scale(1)}.rt-app .rt-products__card img{aspect-ratio:4/3;border-bottom:1px solid var(--rt-border);display:block;-o-object-fit:cover;object-fit:cover;width:100%}.rt-app .rt-products__card-body{padding:9px 11px 11px}.rt-app .rt-products__card-name{color:var(--rt-text);font-size:12px;font-weight:500;line-height:1.3;margin-bottom:3px;transition:color .18s}.rt-app .rt-products__card-sku{color:var(--rt-text-muted);font-family:var(--rt-font-mono);font-size:10px}.rt-app .rt-products__check{align-items:center;background:var(--rt-accent);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.2);display:flex;height:21px;justify-content:center;opacity:0;position:absolute;right:7px;top:7px;transform:scale(.5);transition:opacity .2s ease,transform .28s cubic-bezier(.34,1.56,.64,1);width:21px}.rt-app .rt-products__check svg{fill:none;height:11px;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5;width:11px}.rt-app .rt-products__footer{align-items:center;border-top:1px solid var(--rt-border);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding-top:20px}.rt-app .rt-products__selection{align-items:center;display:flex;gap:10px}.rt-app .rt-products__selection img{border:1px solid var(--rt-border);border-radius:var(--rt-radius);flex-shrink:0;height:38px;-o-object-fit:cover;object-fit:cover;width:38px}.rt-app .rt-products__selection-info{color:var(--rt-text-sub);font-size:12px}.rt-app .rt-products__selection-info strong{color:var(--rt-text);display:block;font-size:13px;font-weight:500;margin-bottom:1px}.rt-app .rt-products__selection-none{color:var(--rt-text-muted);font-size:12px;font-style:italic}.rt-app .rt-products__loading{align-items:center;display:flex;flex-direction:column;gap:14px;justify-content:center;padding:64px 20px}.rt-app .rt-products__loading p{color:var(--rt-text-sub);font-size:13px}.rt-app .rt-products__error{background:rgba(220,38,38,.05);border:1px solid rgba(220,38,38,.2);border-radius:var(--rt-radius);color:var(--rt-error);font-size:13px;line-height:1.5;padding:14px 18px}.rt-app .rt-products__empty{color:var(--rt-text-sub);font-size:14px;padding:48px 20px;text-align:center}.rt-app .rt-visualizer{display:flex;flex-direction:column;gap:20px}.rt-app .rt-visualizer__loading{align-items:center;display:flex;flex-direction:column;gap:28px;justify-content:center;min-height:360px}.rt-app .rt-visualizer__spinner{height:64px;position:relative;width:64px}.rt-app .rt-visualizer__spinner-ring{border:2px solid transparent;border-radius:50%;inset:0;position:absolute}.rt-app .rt-visualizer__spinner-ring--outer{animation:rt-spin 1.4s linear infinite;border-top-color:var(--rt-accent)}.rt-app .rt-visualizer__spinner-ring--mid{animation:rt-spin .9s linear infinite reverse;border-top-color:var(--rt-accent-light);inset:10px;opacity:.6}.rt-app .rt-visualizer__spinner-ring--inner{animation:rt-spin .6s linear infinite;border-top-color:var(--rt-accent);inset:20px;opacity:.3}.rt-app .rt-visualizer__loading-text{text-align:center}.rt-app .rt-visualizer__loading-text h3{color:var(--rt-text);font-size:20px;font-weight:700;margin-bottom:7px}.rt-app .rt-visualizer__loading-text p{color:var(--rt-text-sub);font-size:13px;line-height:1.6;max-width:300px}.rt-app .rt-visualizer__result{animation:rt-fadein .5s ease forwards;border:1px solid var(--rt-border);border-radius:var(--rt-radius-lg);box-shadow:var(--rt-shadow-lg);overflow:hidden}.rt-app .rt-visualizer__result img{display:block;height:auto;width:100%}.rt-app .rt-visualizer__result-label{align-items:center;background:var(--rt-surface);border-top:1px solid var(--rt-border);display:flex;font-size:12px;justify-content:space-between;padding:11px 14px}.rt-app .rt-visualizer__result-label span{color:var(--rt-text-sub)}.rt-app .rt-visualizer__result-label span strong{color:var(--rt-text);font-weight:500}.rt-app .rt-visualizer__result-label a{color:var(--rt-accent);font-weight:500;text-decoration:none}.rt-app .rt-visualizer__result-label a:hover{color:var(--rt-accent-dark);text-decoration:underline}.rt-app .rt-visualizer__actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.rt-app .rt-visualizer__error{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:300px;padding:48px 20px;text-align:center}.rt-app .rt-visualizer__error-icon{color:var(--rt-error);height:44px;margin-bottom:18px;opacity:.8;width:44px}.rt-app .rt-visualizer__error-icon svg{fill:none;height:100%;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5;width:100%}.rt-app .rt-visualizer__error h3{color:var(--rt-error);font-size:20px;font-weight:700;margin-bottom:7px}.rt-app .rt-visualizer__error p{color:var(--rt-text-sub);font-size:13px;line-height:1.6;margin-bottom:24px;max-width:320px}.rt-app .rt-spinner{animation:rt-spin .8s linear infinite;border:2px solid var(--rt-border);border-radius:50%;border-top-color:var(--rt-accent);flex-shrink:0;height:22px;width:22px}@keyframes rt-fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes rt-spin{to{transform:rotate(1turn)}}@keyframes rt-pulse{0%,to{opacity:1}50%{opacity:.2}}
