    .wm-type-bar {
      display: flex;
      gap: 4px;
      background: var(--color-bg);
      padding: 4px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--color-border);
    }
    .wm-type-btn {
      flex: 1;
      padding: 10px 16px;
      border: none;
      background: transparent;
      border-radius: 6px;
      cursor: pointer;
      font-family: var(--font-body);
      font-size: 0.85rem;
      font-weight: 500;
      color: var(--color-text-secondary);
      transition: all var(--transition-fast);
    }
    .wm-type-btn:hover { color: var(--color-text); background: var(--color-surface-hover); }
    .wm-type-btn.active { background: var(--color-surface); color: var(--color-primary); box-shadow: var(--shadow-sm); font-weight: 600; }
    .wm-section { display: none; }
    .wm-section.active { display: block; }
    .position-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 6px;
      max-width: 200px;
    }
    .pos-btn {
      aspect-ratio: 1;
      border: 1px solid var(--color-border);
      border-radius: 6px;
      background: var(--color-bg);
      cursor: pointer;
      font-size: 0.65rem;
      font-weight: 600;
      color: var(--color-text-muted);
      transition: all var(--transition-fast);
      padding: 4px;
    }
    .pos-btn:hover { border-color: var(--color-primary-subtle); background: var(--color-primary-light); color: var(--color-primary); }
    .pos-btn.active { border-color: var(--color-primary); background: var(--color-primary-light); color: var(--color-primary); }
    .preview-canvas-wrapper {
      text-align: center;
      padding: 16px;
      background: var(--color-bg);
      border-radius: var(--radius-sm);
      border: 1px solid var(--color-border);
      min-height: 200px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .preview-canvas-wrapper canvas {
      max-width: 100%;
      max-height: 500px;
    }
    .wm-upload-zone {
      border: 2px dashed var(--color-border);
      border-radius: var(--radius-sm);
      padding: 20px;
      text-align: center;
      cursor: pointer;
      position: relative;
      transition: all var(--transition-fast);
    }
    .wm-upload-zone:hover { border-color: var(--color-primary); background: var(--color-primary-light); }
    .wm-upload-zone input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; pointer-events: none; }
    .wm-upload-zone p { font-size: 0.85rem; color: var(--color-text-muted); }
    .controls-2col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    @media (max-width: 768px) {
      .controls-2col { grid-template-columns: 1fr; }
      .position-grid { max-width: 100%; }
    }
