.msc-configurator{
  display:grid;
  grid-template-columns:minmax(0,1fr) 400px;
  gap:26px;
  align-items:start;
  font-family:inherit
}
.msc-stage-wrap{min-width:0}
.msc-view-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:12px
}
.msc-view-tabs button{
  border:1px solid #d4d7dc;
  background:#fff;
  color:#101828;
  padding:9px 14px;
  border-radius:999px;
  cursor:pointer;
  font-weight:600;
  transition:.18s ease
}
.msc-view-tabs button:hover{border-color:#98a2b3}
.msc-view-tabs button.is-active{
  background:#101828;
  color:#fff;
  border-color:#101828;
  box-shadow:inset 0 0 0 2px #0b78e3
}
.msc-stage{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:linear-gradient(145deg,#fbfcfd,#eef2f6);
  border-radius:18px;
  border:1px solid #e3e7ed;
  user-select:none
}
.msc-layer-stack,.msc-base-layer,.msc-mask-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}
.msc-base-layer{
  object-fit:contain;
  z-index:50;
  pointer-events:none;
  image-rendering:auto
}
.msc-mask-layer{
  z-index:10;
  mask-image:var(--mask-url);
  -webkit-mask-image:var(--mask-url);
  mask-size:contain;
  -webkit-mask-size:contain;
  mask-position:center;
  -webkit-mask-position:center;
  mask-repeat:no-repeat;
  -webkit-mask-repeat:no-repeat;
  pointer-events:none
}
.msc-empty{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:30px;
  text-align:center;
  color:#667085
}
.msc-user-name,.msc-user-number,.msc-user-logo,.msc-fixed-brand{
  position:absolute;
  z-index:80;
  align-items:center;
  justify-content:center;
  transform-origin:center center;
  touch-action:none;
  user-select:none
}
.msc-user-name,.msc-user-number{
  cursor:grab;
  font-family:"Permanent Marker","Arial Black",sans-serif;
  line-height:1;
  text-align:center;
  white-space:nowrap;
  overflow:visible;
  letter-spacing:.012em;
  text-shadow:0 1px 0 rgba(255,255,255,.18)
}
.msc-user-number{z-index:82}
.msc-user-logo{overflow:visible;z-index:84;cursor:grab}
.msc-user-logo img,.msc-fixed-brand img{
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none
}
.msc-fixed-brand{
  z-index:72;
  pointer-events:none
}
.msc-position-mode .msc-draggable:hover{
  outline:1px dashed rgba(0,112,243,.72);
  outline-offset:4px
}
.msc-draggable.is-dragging{
  cursor:grabbing;
  outline:2px dashed #0070f3;
  outline-offset:5px
}
.msc-stage-tip{
  margin-top:10px;
  color:#667085;
  font-size:12px;
  line-height:1.5
}

.msc-controls{
  background:#fff;
  border:1px solid #e3e7ed;
  border-radius:18px;
  padding:18px;
  box-shadow:0 14px 38px rgba(16,24,40,.07);
  min-height:560px
}
.msc-controls-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px
}
.msc-controls-head h3{
  margin:2px 0 0;
  font-size:22px;
  line-height:1.1
}
.msc-eyebrow{
  display:block;
  color:#667085;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:10px;
  font-weight:700
}
.msc-step-counter{
  border:1px solid #d0d5dd;
  border-radius:999px;
  padding:5px 9px;
  font-size:11px;
  color:#475467;
  white-space:nowrap
}
.msc-stepper{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  padding-bottom:16px;
  margin-bottom:18px;
  border-bottom:1px solid #eaecf0
}
.msc-step-tab{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  display:grid;
  justify-items:center;
  gap:5px;
  color:#98a2b3
}
.msc-step-tab span{
  width:28px;height:28px;
  display:grid;place-items:center;
  border-radius:50%;
  border:1px solid #d0d5dd;
  font-size:12px;font-weight:700;
  background:#fff
}
.msc-step-tab em{
  font-style:normal;
  font-size:10px;
  font-weight:700
}
.msc-step-tab.is-active{color:#101828}
.msc-step-tab.is-active span{
  background:#101828;color:#fff;border-color:#101828;
  box-shadow:0 0 0 2px #0b78e3
}
.msc-step-panel{display:none}
.msc-step-panel.is-active{display:block}
.msc-step-title{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-bottom:16px
}
.msc-step-title>span{
  color:#0b78e3;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em
}
.msc-step-title strong{
  display:block;
  font-size:16px;
  color:#101828
}
.msc-step-title small{
  display:block;
  margin-top:2px;
  color:#667085;
  font-size:12px
}

.msc-color-controls{display:grid;gap:11px}
.msc-color-card{
  border:1px solid #e4e7ec;
  border-radius:12px;
  padding:11px;
  background:#fcfcfd
}
.msc-color-card-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  margin-bottom:9px
}
.msc-color-card-head strong{font-size:13px;color:#101828}
.msc-color-value{color:#667085;font-size:9px;white-space:nowrap}
.msc-swatches{display:flex;flex-wrap:wrap;gap:6px}
.msc-swatch{
  width:24px;height:24px;border-radius:50%;
  border:2px solid #fff;
  box-shadow:0 0 0 1px #d0d5dd;
  cursor:pointer;padding:0
}
.msc-swatch.is-selected{box-shadow:0 0 0 2px #101828}
.msc-custom-color{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:9px;padding-top:8px;
  border-top:1px dashed #eaecf0;
  color:#475467;font-size:11px
}
.msc-custom-color input[type=color],
.msc-inline-field input[type=color]{
  width:46px;height:32px;padding:1px;
  border:1px solid #d0d5dd;border-radius:7px
}

.msc-field{display:grid;gap:7px;margin:12px 0}
.msc-field>span{font-weight:650;color:#101828;font-size:13px}
.msc-field input[type=text],.msc-field input[type=file]{
  width:100%;box-sizing:border-box;min-height:42px;
  border:1px solid #d0d5dd;border-radius:9px;
  padding:9px 10px;background:#fff
}
.msc-inline-field{grid-template-columns:1fr auto;align-items:center}
.msc-divider{height:1px;background:#eaecf0;margin:18px 0}
.msc-mini-label{
  display:block;color:#667085;font-size:11px;
  font-weight:700;margin-bottom:7px
}
.msc-view-visibility{display:flex;flex-wrap:wrap;gap:7px}
.msc-view-check input{position:absolute;opacity:0;pointer-events:none}
.msc-view-check span{
  display:inline-flex;align-items:center;
  border:1px solid #d0d5dd;border-radius:999px;
  padding:6px 9px;font-size:10px;font-weight:650;
  color:#475467;cursor:pointer
}
.msc-view-check input:checked+span{
  background:#101828;color:#fff;border-color:#101828
}
.msc-font-note,.msc-note{font-size:11px;line-height:1.5;color:#667085}
.msc-font-note{background:#f8fafc;border-radius:9px;padding:9px 10px}

.msc-logo-preview{
  height:96px;border:1px dashed #cfd4dc;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  margin:12px 0;background:#fafafa;color:#98a2b3;font-size:11px
}
.msc-logo-preview img{
  display:none;max-width:86%;max-height:76px;object-fit:contain
}

.msc-position-help{
  background:#f4f8fc;border:1px solid #dce8f5;border-radius:11px;
  padding:11px 12px;color:#344054;font-size:12px;line-height:1.55
}
.msc-current-view-line{
  margin:12px 0 8px;
  color:#475467;font-size:11px
}
.msc-transform-card{
  border:1px solid #e4e7ec;
  border-radius:12px;
  padding:11px 12px;
  margin:10px 0;
  background:#fcfcfd
}
.msc-transform-head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:8px
}
.msc-transform-head strong{font-size:13px;color:#101828}
.msc-transform-reset{
  border:0;background:transparent;color:#0b78e3;
  font-size:10px;font-weight:700;cursor:pointer;padding:0
}
.msc-transform-card label{display:grid;gap:4px;margin:9px 0}
.msc-transform-card label>span{
  display:flex;justify-content:space-between;
  color:#475467;font-size:10px
}
.msc-transform-card input[type=range]{width:100%}
.msc-summary{display:grid;gap:8px;margin:14px 0}
.msc-summary>div{
  display:flex;justify-content:space-between;gap:12px;
  border-bottom:1px solid #f0f1f3;padding-bottom:7px
}
.msc-summary span{color:#667085;font-size:11px}
.msc-summary strong{color:#101828;font-size:11px;text-align:right}

.msc-step-actions{display:flex;gap:9px;margin-top:18px}
.msc-step-actions button,.msc-reset{
  min-height:40px;border-radius:9px;border:1px solid #cfd4dc;
  background:#fff;padding:9px 12px;cursor:pointer;font-weight:650
}
.msc-step-actions .msc-next,.msc-step-actions .msc-export{
  background:#101828;color:#fff;border-color:#101828;flex:1
}
.msc-step-actions .msc-prev{flex:0 0 auto}
.msc-reset{
  width:100%;margin-top:9px;color:#667085;background:#f9fafb
}

@media(max-width:1050px){
  .msc-configurator{grid-template-columns:minmax(0,1fr) 360px;gap:18px}
}
@media(max-width:900px){
  .msc-configurator{grid-template-columns:1fr}
  .msc-controls{order:2;min-height:0}
}
@media(max-width:480px){
  .msc-step-tab em{font-size:9px}
  .msc-color-card-head{display:block}
  .msc-color-value{display:block;margin-top:3px}
}
