:root {
  --bg:#eef1f3; --panel:#ffffff; --text:#101417; --muted:#66707a; --line:#cfd5da;
  --primary:#0f5bd3; --primary-soft:#e8f0fb; --danger:#c91f28;
  --tech:#1a2229;
}
.layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(390px,.85fr);gap:16px}
.panel{background:var(--panel);border:1px solid #bcc4ca;border-radius:3px;overflow:hidden;box-shadow:0 2px 0 rgba(0,0,0,.04)}

.preview{background:#ffffff;padding:24px}
.stage{position:relative;width:min(720px,100%);aspect-ratio:1/1;margin:0 auto;background:#fff;border:1px solid #bfc7cd;border-radius:0;overflow:hidden}
.stage canvas.bg{position:absolute;inset:0;width:100%;height:100%;display:block}
.print-area{position:absolute;border:2px dashed rgba(20,20,20,.48);pointer-events:none;z-index:2}
.design{position:absolute;transform:translate(-50%,-50%);transform-origin:center;cursor:move;touch-action:none;user-select:none;z-index:3}
.design.selected{outline:2px solid var(--primary);outline-offset:6px}
.design-handle{position:absolute;width:18px;height:18px;background:#fff;border:2px solid var(--primary);z-index:6;touch-action:none}
.design-handle.resize{right:-17px;bottom:-17px;cursor:nwse-resize}
.design-handle.rotate{left:50%;top:-42px;transform:translateX(-50%);border-radius:50%;cursor:grab}
.design-handle.rotate:before{content:'';position:absolute;left:50%;top:16px;width:2px;height:20px;background:var(--primary);transform:translateX(-50%)}
.design-delete{position:absolute;left:-18px;top:-18px;width:24px;height:24px;border:0;border-radius:50%;background:#c91f28;color:#fff;font:bold 16px/24px Arial;cursor:pointer;z-index:7;padding:0;text-align:center}
.design img{display:block;max-width:220px;max-height:220px;pointer-events:none}
.design-text{white-space:nowrap;font-size:48px;font-weight:700;line-height:1}

.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.thumb{border:1px solid #bfc7cd;background:#fff;border-radius:0;padding:7px;cursor:pointer;text-align:center}
.thumb.active{border:2px solid var(--primary);background:var(--primary-soft)}
.thumb img{width:100%;aspect-ratio:1/1;object-fit:contain;display:block;border-radius:0;background:#fff}
.thumb span{display:block;margin-top:7px;font-size:13px;color:#444}
.thumb.active span{color:var(--primary);font-weight:700}

.preview-note{padding:15px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}

.section{padding:18px 20px;border-bottom:1px solid #c9d0d5}
.section:last-child{border-bottom:0}
.section h3{margin:0 0 14px;font-size:15px;letter-spacing:.7px;text-transform:uppercase}
.colors{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.color-wrap{text-align:center;font-size:11px;color:#424750}
.color{width:100%;border:1px solid #bfc7cd;background:#fff;padding:6px;cursor:pointer}
.color.active{border:2px solid var(--primary);background:var(--primary-soft)}
.color canvas{width:100%;aspect-ratio:1/1;display:block;background:#fff}
.color-name{display:block;margin-top:5px;font-size:10px;color:#4f5660}
.color.active .color-name{color:var(--primary);font-weight:700}

.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.mode{border:1px solid #bfc7cd;background:#fff;border-radius:0;padding:16px 10px;text-align:center;cursor:pointer}
.mode strong{display:block;font-size:34px;font-weight:400;margin-bottom:6px}
.mode.active{border:2px solid var(--primary);background:var(--primary-soft);color:#0b55da}

.upload{display:block;border:1px dashed #8e99a2;border-radius:0;padding:22px;text-align:center;cursor:pointer;background:#fafbfc}
.upload input{display:none}
.upload .ico{font-size:34px;margin-bottom:8px}

.field{margin-top:12px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.field input,.field select{width:100%;border:1px solid #aeb7bf;border-radius:0;padding:10px 11px;background:#fff}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.range{display:grid;grid-template-columns:90px 1fr 58px;gap:10px;align-items:center;margin:12px 0}
.range input{width:100%}
.range output{text-align:right;font-size:13px;color:#444}

.action{width:100%;border:1px solid #0c4cab;background:var(--primary);color:#fff;border-radius:0;padding:12px 14px;cursor:pointer;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.secondary{background:#fff;color:#111;border:1px solid var(--line)}
.danger{background:#fff;color:var(--danger);border:1px solid #f0a4a4}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.hidden{display:none!important}
.output{width:100%;height:180px;border:1px solid #aeb7bf;border-radius:0;padding:10px;font:12px/1.45 Arial,Helvetica,sans-serif;margin-top:12px;background:#f7f9fa}


.size-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.size-link{color:var(--primary);text-decoration:none;font-size:13px}
.size-link:hover{text-decoration:underline}
.size-list{border:1px solid #bfc7cd;border-radius:0;overflow:hidden}
.size-row{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line)}
.size-row:last-child{border-bottom:0}
.size-name{font-weight:700;font-size:16px}
.size-desc{font-size:12px;color:var(--muted);line-height:1.45}.size-desc strong{color:var(--text);font-size:13px}
.qty{display:grid;grid-template-columns:36px 52px 36px;align-items:center}
.qty button{height:36px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:20px;line-height:1}
.qty button:first-child{border-radius:0}
.qty button:last-child{border-radius:0}
.qty input{height:36px;width:52px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-left:0;border-right:0;text-align:center;background:#fff}
.price-box{display:grid;gap:10px}
.price-row{display:flex;justify-content:space-between;align-items:center;gap:16px}
.price-row strong{font-size:18px}
.price-row.total{padding-top:10px;border-top:1px solid var(--line)}
.price-note{font-size:12px;color:var(--muted)}


.size-chart{margin-top:12px;border:1px solid #bfc7cd;border-radius:0;background:#f6f8f9;overflow:hidden}
.size-chart-inner{padding:16px}
.size-chart-grid{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr);gap:18px;align-items:start}
.size-figure{background:#fff;border:1px solid #bfc7cd;border-radius:0;padding:14px}
.size-figure svg{width:100%;height:auto;display:block}
.size-table{width:100%;border-collapse:collapse;background:#fff;border-radius:0;overflow:hidden}
.size-table th,.size-table td{border:1px solid var(--line);padding:10px;text-align:center}
.size-table th{background:#f3f5f7;font-weight:700}
.size-table td input{width:100%;border:1px solid #aeb7bf;border-radius:0;padding:7px;text-align:center}
.size-help{font-size:12px;color:var(--muted);margin-top:8px}

.section{position:relative}
.section:before{content:'';position:absolute;left:0;top:0;width:4px;height:100%;background:transparent}
.section:hover:before{background:var(--primary)}
.preview-note{font-family:Arial,Helvetica,sans-serif;background:#f8fafb}
.size-link{font-family:Arial,Helvetica,sans-serif;font-weight:700;text-transform:uppercase}
.qty input{font-family:Arial,Helvetica,sans-serif;font-weight:700}
.price-row strong{font-family:Arial,Helvetica,sans-serif}

@media(max-width:700px){
  .size-chart-grid{grid-template-columns:1fr}
}

@media(max-width:1000px){
  .layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .preview{padding:10px}
  .thumbs{gap:7px}
  .colors{grid-template-columns:repeat(5,1fr)}
  .grid2,.actions{grid-template-columns:1fr}
}

.dimension-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.dimension-card{border:1px solid #cfd5da;padding:10px;background:#fff}
.dimension-card label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
.dimension-card strong{font-size:16px}
.design-empty-info{margin-top:10px;border:1px solid #cfd5da;padding:10px;font-size:12px;color:var(--muted);background:#fafbfc}
.order-note{width:100%;min-height:86px;border:1px solid #aeb7bf;border-radius:0;padding:10px;resize:vertical;font-family:Arial,Helvetica,sans-serif}


.clipart-toolbar{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}
.clipart-search{width:100%;border:1px solid #aeb7bf;border-radius:0;padding:10px 11px;background:#fff}
.clipart-count{display:flex;align-items:center;border:1px solid #cfd5da;padding:0 10px;font-size:12px;color:var(--muted);background:#f8fafb}
.clipart-browser{border:1px solid #cfd5da;background:#f7f8f9}
.clipart-category{border-bottom:1px solid #d8dde1}
.clipart-category:last-child{border-bottom:0}
.clipart-category-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;border:0;background:#fff;padding:12px 13px;cursor:pointer;text-align:left;font-weight:700}
.clipart-category-btn:hover{background:#f2f5f7}
.clipart-cat-meta{display:flex;align-items:center;gap:8px}
.clipart-badge{display:inline-flex;min-width:25px;height:25px;align-items:center;justify-content:center;padding:0 7px;border-radius:14px;background:#ff4e68;color:#fff;font-size:11px;font-weight:700}
.clipart-arrow{font-size:18px;transition:transform .2s ease}
.clipart-category.open .clipart-arrow{transform:rotate(90deg)}
.clipart-grid{display:none;grid-template-columns:repeat(5,1fr);gap:8px;padding:10px;background:#f7f8f9;border-top:1px solid #d8dde1}
.clipart-category.open .clipart-grid{display:grid}
.clipart-item{aspect-ratio:1;border:1px solid #cfd5da;background:#fff;cursor:pointer;padding:7px;display:flex;align-items:center;justify-content:center}
.clipart-item:hover{border-color:var(--primary);background:var(--primary-soft)}
.clipart-item img{width:100%;height:100%;object-fit:contain;display:block}
.clipart-empty{grid-column:1/-1;padding:18px;text-align:center;color:var(--muted);font-size:12px}
.clipart-help{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.45}
@media(max-width:620px){.clipart-grid{grid-template-columns:repeat(4,1fr)}}