.designer { max-width: 1280px; margin: 0 auto; padding: 12px 16px 40px; }
.d-topbar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 10px 0; }
.d-product { font-size: 17px; }
.d-views { display: flex; gap: 6px; flex: 1; }
.d-views button { border: 1px solid var(--line); background: #fff; padding: 7px 18px; border-radius: 999px; cursor: pointer; font-weight: 700; }
.d-views button.on { background: var(--navy); color: #fff; border-color: var(--navy); }
.d-actions { display: flex; gap: 10px; align-items: center; }
.d-savestate { color: #7787a0; font-size: 13px; min-width: 60px; }
.btn-line { background: #fff; border: 1px solid var(--line); color: var(--ink); }

.d-body { display: grid; grid-template-columns: 64px 260px 1fr; gap: 14px; align-items: start; }
.d-tools { display: flex; flex-direction: column; gap: 8px; }
.d-tool { border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 10px 4px; cursor: pointer; font-size: 20px; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.d-tool span { font-size: 11px; font-weight: 700; color: #44536f; }
.d-tool.on { border-color: var(--navy); box-shadow: 0 0 0 2px rgba(31,77,36,.18); }

.d-panel { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.d-panel h3 { margin: 0 0 10px; font-size: 15px; }
.d-panel input[type=text], .d-panel input:not([type]), .d-panel select { width: 100%; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; margin-bottom: 10px; font-size: 14px; }
.d-panel label { font-size: 13px; font-weight: 600; }
.d-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 8px 0; }
.d-row input[type=color] { width: 34px; height: 30px; padding: 1px; border: 1px solid var(--line); border-radius: 6px; }
.d-hint { color: #7787a0; font-size: 12.5px; }
.d-swatch-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.d-swatch { width: 26px; height: 26px; border-radius: 6px; border: 1px solid rgba(0,0,0,.22); cursor: pointer; padding: 0; transition: transform .1s; }
.d-swatch:hover { transform: scale(1.14); }
.d-btn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.d-btn-row .btn { font-size: 12.5px; padding: 7px 6px; }
.d-clipart { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.d-clipart button { border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 6px; cursor: pointer; }
.d-clipart img { width: 100%; }

.d-stage { min-width: 0; }
.d-canvas-wrap { background: repeating-conic-gradient(#f0f2f7 0 25%, #fff 0 50%) 0 0/24px 24px; border: 1px solid var(--line); border-radius: 12px; display: flex; justify-content: center; padding: 10px; }
.d-canvas-wrap canvas { max-width: 100%; }
.d-colors { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 12px; }
.d-colors button { display: flex; align-items: center; gap: 6px; border: 2px solid var(--line); background: #fff; border-radius: 999px; padding: 5px 12px; cursor: pointer; font-size: 13px; }
.d-colors button.on { border-color: var(--navy); font-weight: 700; }
.d-colors .sw { width: 15px; height: 15px; border-radius: 50%; border: 1px solid rgba(0,0,0,.2); }

#layers-list .layer { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; margin-bottom: 6px; cursor: pointer; font-size: 13.5px; }
#layers-list .layer.on { border-color: var(--navy); background: #eef3ea; }
#layers-list .layer .kind { font-size: 16px; }

@media (max-width: 900px) {
  .d-body { grid-template-columns: 1fr; }
  .d-tools { flex-direction: row; }
}
